Website Strategy Validation (Phase G.5)
A final architectural review of the website strategy before implementation, evaluated against the portal’s actual purpose — an architecture exploration tool, EA knowledge base, operating manual, portfolio showcase, and daily architecture-working environment — not a conventional documentation site. This is planning only: no code, no Astro project, no file moves, no modification of existing documentation. It is one new additive file that refines the Website Implementation Plan by reference — the plan is not edited; this document states what is approved, refined, or newly recommended.
Every recommendation is tagged: ✅ APPROVED (keep as planned) · 🔧 REFINED (change, with reason) · 🟢 OPTIONAL-FUTURE (design-ready, build later).
Headline outcome: the clarified objective changes one major decision — the technology base — and adds a build-time content graph as the architectural backbone for exploration and future Portfolio Intelligence. Most of the Phase-G plan stands. Nothing is changed for the sake of change.
Part 1 — Technology recommendation (re-evaluated)
Phase G recommended Astro Starlight, optimising for a documentation site. The objective is now explicitly a platform: exploration, interactive visualisation, premium presentation, dashboards, and future intelligence. That reframing changes the recommendation.
Evaluation against the real objectives
| Objective | Astro + Starlight | Custom Astro | Weight |
|---|---|---|---|
| Long-term flexibility | 🔶 Opinionated docs layout; fights non-doc surfaces | ✅ Total layout freedom | High |
| Architectural exploration (graph, focus mode) | 🔶 Possible only as bolt-on custom routes | ✅ First-class | High |
| Interactive visualisation / dashboards | 🔶 Not its model | ✅ Islands anywhere | High |
| Premium, distinctive presentation | 🔶 Recognisably “Starlight”; heavy theming to escape | ✅ Own identity | High |
| Daily working environment (dense, custom views) | 🔶 Doc-reading model | ✅ Build the views you need | High |
| Markdown integration | ✅ Native | ✅ Native (content collections) | High |
| Mermaid support | ✅ | ✅ (identical integration) | Med |
| Search | ✅ Pagefind built-in | ✅ Pagefind (one integration) | Med |
| Cloudflare deployment | ✅ | ✅ (identical) | Med |
| Future AI-generated content | 🔶 Constrained to doc pages | ✅ Any route/endpoint | High |
| Future interactive dashboards | ❌ Out of model | ✅ Native islands + JSON endpoints | High |
| Future Portfolio Intelligence | 🔶 Bolt-on | ✅ Designed-in via content graph | High |
| Maintainability | ✅ Chrome is free | 🔶 Rebuild chrome (mitigated below) | Med |
| Time-to-first-deploy | ✅ Fastest | 🔶 Slower start | Low (one-time) |
Starlight wins maintainability and time-to-first-deploy (both one-time/near-term). Custom Astro wins on almost every dimension tied to the portal’s long-term purpose.
The maintainability counter-argument, mitigated
Starlight’s real value is the free doc chrome. In custom Astro it is recoverable with modest, well-supported effort:
| Starlight freebie | Custom-Astro equivalent | Effort |
|---|---|---|
| Sidebar nav | Generate from content collections + folder + optional sidebar frontmatter |
Low |
| Search | pagefind integration |
Low |
| TOC | rehype-autolink-headings + a small component |
Low |
| Dark/light + persistence | ~40 lines + CSS tokens | Low |
| Prev/next, breadcrumbs | Derive from the nav tree | Low |
| Accessibility baseline | Semantic layout + axe in CI (needed either way) | Med |
| MDX, sitemap, RSS | @astrojs/mdx, @astrojs/sitemap |
Low |
Net: custom Astro recovers ~80% of Starlight’s chrome in a few days — a one-time cost — in exchange for the freedom the platform objectives require permanently.
Other alternatives (screened)
- Next.js / React SPA: heavier, SSR/client-oriented; overkill for a mostly-static knowledge base; worse markdown ergonomics than Astro. ❌
- VitePress / Docusaurus: more doc-locked than Starlight; framework-coupled (Vue/React); less island flexibility. ❌
- Notion/Obsidian-publish/GitBook (hosted): would make a hosted tool the source of truth, violating “markdown = source of truth” and Cloudflare-static goals. ❌
Final recommendation — 🔧 REFINED: Custom Astro (reversing the Starlight default)
Build on custom Astro (content collections + Pagefind + MDX + Mermaid + React islands + Cloudflare Pages). Astro remains correct — it is the Starlight base recommendation that changes. Reasoning: the portal’s centre of gravity is exploration, showcase, and a working environment, not long-form reading; Starlight optimises the subset (doc pages) and constrains the differentiators (explorer, platform homepage, dashboards, premium identity, intelligence UI). Astro keeps all of Starlight’s underlying primitives while removing its layout ceiling.
Adopt from the Starlight approach anyway: Pagefind search, content-collection modelling, and Starlight’s open-source components as reference patterns for the doc-chrome we rebuild. If time-to-first-deploy ever becomes paramount, a Starlight MVP is a valid stepping stone — but since intent is known, building custom now avoids a later rewrite.
Everything else in the Phase-G plan (glob loaders, files-stay-in-place, Pagefind, client-side theme-aware Mermaid, Cloudflare Pages,
site/isolation, additive migration) remains ✅ APPROVED and is more natural under custom Astro than under Starlight.
Part 2 — User Journeys
Design for audiences and their journeys, then validate nav/homepage against them.
Primary audiences & journeys
| Audience | Why they arrived | Key questions | Ideal path | Prioritise | Actions |
|---|---|---|---|---|---|
| You (founder/architect) — daily working env | Make/record an architecture decision; check health | “What depends on X? What’s stale? Where does this belong?” | Home → Explorer (focus a node) → related ADRs → Decision Matrix → new ADR | The graph, decision framework, current-state, risks | Trace dependencies; run the decision matrix; draft an ADR; spot stale pages |
| Solution architects | Evaluate the system design | “How is this structured? Principles? Trade-offs?” | Home → Overview → Architecture (layered) → dependency map → principles → ADRs | Layered model, dependency map, principles, review | Explore layers; read ADR rationale; follow reuse map |
| Software engineers | Understand a repo/how to contribute | “What is this repo? Its deps, stack, interfaces?” | Search/Repos → repo page → related capabilities → source | Repo digest, tech badges, interfaces, dependencies | Jump to source; see consumers; read CLAUDE.md rules |
| AI engineers | Understand the AI platform & collaboration model | “How do skills/agents/intelligence fit? What’s autonomous?” | Overview → Intelligence Platform → AI Collaboration → capabilities | Runtime flows, skills, agent governance, Hermes/OpenClaw | Trace information flow; see AI authority boundaries |
| New collaborators | Onboard fast | “Where do I start? How does it all fit?” | Home → Overview → Operating Model → Governance → a repo | Overview, operating model, glossary, governance | Read start-here; use glossary; find the contribution rules |
| Employers / recruiters | Assess capability & sophistication | “Is this person a serious architect? Evidence?” | Home (scale + explorer) → Architecture Review → ADRs → a deep capability | Scale metrics, EA review, decision quality | Skim breadth; drill one deep example; see rigor |
| Clients | Assess the offering (e.g. Website Assessment) | “What can this do for me? Is it credible?” | Home → Capabilities → Website Assessment → outcomes | Capability value, maturity, ventures served | Understand the product; see it’s real (evidence) |
| Investors | Assess scale, moat, commercialisation | “How big/defensible? What’s the platform thesis?” | Home (vision + scale) → Overview → Strategic Opportunities → Evolution | Vision, layers, reuse leverage, commercialisation | Grasp the thesis; see the roadmap; gauge maturity honestly |
| Future contributors / AI agents | Extend the ecosystem correctly | “Where does a new thing belong? What are the rules?” | Governance → Decision Matrix → templates → AI Governance | Decision framework, templates, governance, llms.txt |
Place a new capability; follow templates; respect approvals |
What the journeys imply (validation)
- Two dominant modes: explore relationships (you, architects, AI engineers) and assess quickly then drill (employers, investors, clients). The homepage and nav must serve both — an explorer for the first, scale + curated deep-links for the second.
- Search is a primary entry for engineers — must be excellent and faceted.
- Audience-aware entry on the homepage (“I’m an architect / engineer / investor …”) materially shortens paths — 🔧 REFINED into the homepage (Part 5).
- Honesty is a feature for investors/employers — the maturity/▢-labelling already in content is a credibility asset; surface it, don’t hide it.
Part 3 — Interactive Architecture Explorer
The portal should let users move through relationships, not just read linked pages.
The relationship model (derived from existing metadata — no new content)
The chain the brief describes already exists implicitly in frontmatter + links:
Capability ─ owns/consumed-by ─ Repositories ─ uses ─ Technologies
│ │
├─ serves ─ Ventures ├─ decided-by ─ ADRs
├─ governed-by ─ Principles └─ documented-in ─ Diagrams
└─ realised-in ─ Operating Model / Knowledge Assets
Edges come from: providers/consumers/layer/system frontmatter, the markdown link graph, and diagram
node IDs (which were deliberately kept equal to slugs — a key enabler).
How it should work (two complementary mechanisms)
A. Per-entity “relationship rails” (🔧 REFINED, primary). Every page gains a structured side/end panel of typed related entities (Capabilities ▸ Repos ▸ Technologies ▸ Consumers ▸ Ventures ▸ Principles ▸ ADRs ▸ Diagrams). Intuitive, low-risk, works without heavy graph UI, and is generated from the content graph (Part 8).
B. A global interactive graph — the “Explorer” (🟢 OPTIONAL-FUTURE, high value). A dedicated /explore
route with a node-link graph:
- Focus mode: click a node → recenter on it → show its immediate neighbourhood (avoids hairball).
- Filter by layer / maturity / type.
- Nodes link to their pages; edges are typed and labelled.
- Fed by the same build-time JSON graph; rendered by a lightweight island.
graph LR
HOME[Home] --> EXP["/explore — global graph"]
EXP -->|focus node| NODE[Entity neighbourhood]
NODE --> PAGE[Entity page]
PAGE --> RAILS[Relationship rails]
RAILS --> PAGE2[Another entity]
ANY[Any page] --> RAILS
Visualisation recommendations (avoid over-engineering)
- Do: reuse existing Mermaid diagrams as interactive navigation (Part 6); build relationship rails from
the content graph; add one focused
/exploregraph with focus+filter. - Don’t: introduce a graph database, a 3D graph, or a bespoke query language. Derive edges at build time; keep the client light. Intuitive beats impressive.
Part 4 — Information Architecture review
Challenging the current nav (Overview · Capabilities · Repos · Ventures · Architecture · Operating Model · Governance · Decisions + About).
Findings
| Issue | Assessment | Recommendation |
|---|---|---|
| Header has 8 top items | Borderline (guideline ≤ 7); some are thin | 🔧 Group into fewer buckets (below) |
Ventures/Systems is thin (mostly placeholders) |
Real but under-populated | 🔧 Keep the data; in nav, fold under Explore/Architecture until layer-5 is populated |
Architecture is overloaded (9 pages: system-of-systems, intelligence-platform, principles, reuse-map, review, risks, opportunities, evolution, recommendations) |
Hard to scan | 🔧 Split visually into Architecture (structure) and Review (review/risks/opportunities/evolution) |
| Duplicated surfaces | Capabilities appear in registry and reuse-map; glossary in two files | ✅ Acceptable (different purpose) — label clearly; authoritative glossary primary |
| Terminology: “Repos” vs “Repositories”, “Ventures” vs “Systems” | Minor inconsistency | 🔧 Standardise labels: Repositories, and Ventures & Systems |
| No “Explore” entry | The portal’s headline purpose isn’t in the nav | 🔧 Add Explore as a primary entry |
| No audience entry | Journeys show it helps | 🔧 Homepage audience chips (Part 5), not a nav item |
Recommended top-level nav (🔧 REFINED — materially simpler, purpose-first)
Explore · Overview · Capabilities · Repositories · Architecture · Operating & Governance · Decisions
- Explore → the graph + relationship-first entry (new front door for the platform purpose).
- Operating & Governance merges the two meta-sections under one bucket (each keeps its landing page and sub-nav) — reduces header load without losing content.
- Ventures & Systems moves under Architecture/Explore until populated (data unchanged).
This is a navigation refinement only — no content moves or renames; it changes how the site groups existing pages. The Information Architecture doc’s routes are preserved.
Part 5 — Homepage review
The Phase-G homepage (hero + layered diagram + registry links + status + start-here) is solid but reads a bit documentation-like. Against the “entering a sophisticated AI platform” bar:
| Should communicate | Phase-G homepage | Refinement |
|---|---|---|
| What the platform is | ✅ Vision one-liner | Keep, tighten to one confident sentence |
| Why it exists | ✅ | Keep |
| Scale of the ecosystem | 🔶 Implicit | 🔧 Add a live scale strip: 169 skills · N capabilities · N repos · N ADRs · 60 diagrams · N principles (computed from the content graph) |
| How layers fit | ✅ Layered diagram | 🔧 Make it the interactive hero — clickable layers → sections |
| Why continue | 🔶 Start-here cards | 🔧 Add audience chips (“Architect · Engineer · Investor · Client”) → tailored paths (Part 2) |
Refined homepage (🔧 REFINED)
- Hero = the interactive layered architecture (clickable, theme-aware), with the vision sentence.
- Scale strip (computed metrics) — instant “this is substantial”.
- Audience chips — route by intent.
- The two registries (Capabilities, Repositories) as prominent cards.
- Current phase / health (from current-state) — signals it’s alive and maintained.
- Entry to
/explore— the platform’s defining action.
The test: within 10 seconds a visitor should grasp what it is, how big it is, how it fits, and feel invited to explore — not to read a manual. Motion/depth should be restrained and purposeful (premium, not flashy).
Part 6 — Visual exploration (diagrams as primary navigation)
Today diagrams illustrate content. They should drive navigation. The decisive enabler already exists: Mermaid node IDs were kept equal to entity slugs across the portal, so nodes can map to routes mechanically.
Recommendations
| Diagram | Make it… | Mechanism |
|---|---|---|
| Layered architecture | Clickable layers → section/registry filtered by layer | Node→route map; hero on homepage |
| System dependency map | Interactive: click a node → its page + neighbourhood in /explore |
Node ID = slug → route |
| Capability relationship graph | Explorable graph (focus/filter) | Content-graph island |
| Venture composition | Click a venture → its repos/capabilities | Node→route |
| Runtime information flows | Click a stage → the owning system/capability | Node→route |
Implementation note (design-level): add a build/render step that turns Mermaid nodes into links where a node
ID matches a known slug (Mermaid supports click bindings / post-render link injection). Diagrams that are just
narrative stay static. This is low effort, high payoff precisely because of the earlier slug-discipline.
🔧 REFINED: treat “interactive diagrams” as a first-class site feature, not a nice-to-have; 🟢
OPTIONAL-FUTURE: the full /explore graph.
Part 7 — Metadata recommendations
Current frontmatter (title · type · status · last_reviewed · owner + type-specific slug · layer · providers · consumers · maturity · lifecycle · adr_number) is strong. Recommended additive fields — only those with
clear long-term value for automation & intelligence (Part 8). All optional; no existing content rewritten.
| Field | Value | Why (long-term) | Priority |
|---|---|---|---|
id |
stable unique id (≈ slug) | Durable graph edges even if titles change | 🔧 High |
related |
explicit list of ids | Typed relationship rails without inferring | 🔧 High |
implementation_status |
implemented / partial / planned / vision | Structured (today it’s prose) → drives health & filters | 🔧 High |
confidence |
high / medium / low | Flags uncertain claims for review & intelligence | 🔧 Med |
review_frequency |
e.g. 30d / 90d / 180d | With last_reviewed → stale-doc detection |
🔧 Med |
source_repos |
repo slugs | Repo↔doc drift detection | 🔧 Med (repos have repo_url; generalise) |
venture_relevance |
venture slugs | Venture-scoped views/filters | 🟢 Optional |
description |
one line | SEO + card subtitle (from Phase G) | ✅ Approved |
sidebar |
order/group | Deterministic nav (from Phase G) | ✅ Approved |
Guidance: introduce these lazily (page-by-page, highest-value pages first), keep schema all-optional, and
let the site derive fallbacks. Encode them in the templates so new pages get them for free. last_reviewed +
review_frequency + implementation_status + confidence are the four that unlock Portfolio Intelligence.
Part 8 — Portfolio Intelligence readiness
Ensure the website architecture is ready for future intelligence — design now, build later — to avoid expensive refactoring.
The one thing to design now: a build-time Content Graph
A JSON model of the whole portal, produced at build from frontmatter + links + diagram nodes:
graph LR
MD[Markdown + frontmatter] --> BUILD[Build step]
LINKS[Link graph] --> BUILD
DIAG[Mermaid node IDs] --> BUILD
BUILD --> GRAPH[(content-graph.json<br/>entities + typed edges + metadata)]
GRAPH --> SITE[Site: rails · explorer · scale strip]
GRAPH --> ENDPOINT[Static JSON endpoints]
ENDPOINT --> FUTURE[Future: dashboards · drift · health · AI · Hermes]
The content graph is the single backbone the site and every future intelligence feature consume. Design it now; it costs little and prevents a later rewrite.
Readiness per future capability
| Future capability | What must exist now | Status if we do Part 7 + graph |
|---|---|---|
| Architecture drift detection | Stable ids + source_repos + link graph |
✅ Ready |
| Stale documentation detection | last_reviewed + review_frequency |
✅ Ready |
| Capability health | implementation_status + maturity + confidence + edges |
✅ Ready |
| Repository health | repo metadata + source_repos + registry rows |
✅ Ready |
| Recommendation engine (portfolio) | The content graph + metadata | ✅ Ready |
| Hermes learning | One-way, versioned outputs; graph as input | ✅ Ready (aligns with ADR 0005 one-way feedback) |
| Autonomous portfolio analysis | JSON endpoints + GENERATED/HUMAN regions (already present) + llms.txt |
✅ Ready |
Design-now checklist (no implementation)
- [ ] Content graph as a build artefact + static JSON endpoints (Astro supports both).
- [ ] Additive metadata (Part 7):
id,implementation_status,confidence,review_frequency,related,source_repos. - [ ] Preserve
<!-- GENERATED -->/<!-- HUMAN -->regions so the orchestrator can write safely. - [ ] Keep node ID = slug discipline (already in place) so diagrams join the graph.
- [ ] A per-entity health schema computable from metadata (staleness, gaps, drift) — design the schema, don’t build the checks.
- [ ] The site consumes the graph via components so intelligence features reuse the same data path.
This directly serves — and does not pre-empt — the existing
portfolio-portal-orchestrator spec and the operating model’s
future-autonomy vision.
Summary of decisions
✅ Approved (Phase-G plan stands)
Files stay in place (glob loaders) · Pagefind static search · client-side theme-aware Mermaid · Cloudflare
Pages · site/ isolation · additive migration · content strategy · validation strategy · roadmap shape ·
description/sidebar frontmatter.
🔧 Refined (change, with reason)
- Custom Astro instead of Starlight (objectives = platform, not docs).
- “Explore” as a primary nav entry; simpler top-nav buckets; standardise labels; fold thin sections.
- Homepage = interactive layered hero + scale strip + audience chips + explore CTA (platform feel).
- Diagrams as primary navigation (clickable nodes → routes, via the slug discipline).
- Relationship rails on every entity page.
- Additive intelligence metadata (
id,implementation_status,confidence,review_frequency,related,source_repos).
🟢 Optional-future (design-ready, build later)
Global /explore graph with focus+filter · content-graph JSON endpoints · dashboards · drift/health/stale
detection · venture-scoped views · generated OG images.
Roadmap impact (refines Phase G’s G1–G6, does not replace it)
- G1 now stands up custom Astro (not Starlight) + rebuild minimal chrome; add the content-graph build artefact early (it underpins G2/G3/G5).
- G3 interactive Mermaid (node→route) is promoted from nice-to-have to core.
- G5 registries + relationship rails + optional
/explore. - Metadata (Part 7) is applied lazily across all phases via templates.
Phase G.5 deliverable — validation & refinement only. One new file added (
docs/website-strategy-validation.md); no code, no Astro project, no file moves/renames, no existing documentation modified.