Showcase Website Routing
Canonical routing rule for public-facing website page implementation. Established Apr 17, 2026 following a routing incident where a new Astro page was delegated to Squire (code maintenance) instead of Showcase (page builder).
The Rule
All public-facing website page implementation routes to Showcase.
| Work | Owner | Path |
|---|---|---|
| New Astro page on valuefirstteam.com | Showcase | apps/website/src/pages/**/*.astro |
| New React component on valuefirstteam.com | Showcase | apps/website/src/components/**/*.tsx |
| New layout on valuefirstteam.com | Showcase | apps/website/src/layouts/**/*.astro |
| Style changes on valuefirstteam.com | Showcase | apps/website/src/styles/**/* |
| Client portal build | Showcase | apps/portal/public/{slug}/portal/ |
| UCV microsite | Showcase | clients/{slug}/apps/{slug}-ucv/ |
| Public presentation deck | Showcase | apps/website/src/pages/presentations/** |
Exception: /about/ai-team/* pages are owned by Aegis (org chart, team roster, agent profiles).
What Squire Does NOT Own
Squire is code maintenance:
- Dependency updates
- Unused import removal
- Linting and repo hygiene
- TODO/FIXME scanning
Squire does NOT own page creation, component development, or any work that results in a page visible to visitors.
Detection Triggers
Stop immediately if you catch any of these:
| If you're doing this... | You're misrouting because... | Fix |
|---|---|---|
| Delegating a new Astro page to Squire | Squire is maintenance, not building | Spawn showcase |
| Delegating website component work to Squire | Same reason | Spawn showcase |
Building an apps/website/src/ file inline without delegating |
V doesn't build — delegates | Spawn showcase |
| Routing "website code work" to Squire because it involves TypeScript | TypeScript ≠ code maintenance | Spawn showcase |
| Asking Squire to "add a section" or "create a page" | That is page building | Spawn showcase |
How to Invoke Showcase for Website Work
In any command's Team table:
| showcase | Showcase | **opus** | Build {page/component description} — scaffold Astro page at `apps/website/src/pages/{path}`, implement component, run `tsc --noEmit` type check, commit. | Design spec, content requirements, existing page patterns from `apps/website/src/pages/` |
Key inputs Showcase needs:
- Target path in
apps/website/src/ - Design reference or spec
- Content requirements
- Existing patterns to follow (point to similar existing page)
Boundary Clarifications
| Scenario | Owner | Reason |
|---|---|---|
New /collective/faq.astro page |
Showcase | Public-facing page |
New /about/values.astro page |
Showcase | Public-facing page |
New /media/shows/{new-show}/index.astro page |
Showcase | Public-facing page |
/about/ai-team.astro changes |
Aegis | AI team pages are Aegis's surface |
/about/ai-team/org-chart.astro changes |
Aegis | Org chart is Aegis's surface |
Unused import cleanup in apps/website/src/ |
Squire | Code maintenance |
Dependency updates in apps/website/package.json |
Squire | Dependency management |
| New article in Sanity | Canon | Sanity write governance |
| New episode in Sanity | Canon | Sanity write governance |
Root Cause (Apr 17, 2026)
The incident occurred because:
- Showcase's agent description referenced portals/microsites/decks — no mention of general website pages
- No command had a routing rule documenting "website page = Showcase"
- "Code work" defaulted to Squire as the nearest code-adjacent agent
This skill closes the gap at the enforcement layer. The agent definition (showcase.md) and delegation manifest template also carry this rule.