UI-3: Promote Specs to top-level nav (/specs + /specs/:specName) #399
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#399
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
As an operator, I want Specs to be a first-class top-nav entry with a dedicated list page and editor, so that I can discover, draft, and dispatch specs without first navigating to Planner and expanding a sidebar.
Why
Specs are a first-class entity (create / edit / dispatch via
/breakdown), but today they live as a collapsible section in the Planner sidebar. The legacy/specsroute is a pure redirect to/planner?spec=..., which is a clear sign the IA wasn't settled. UX audit 2026-04-26 calls this out: specs should be visible in the top nav.Acceptance criteria
New routes
apps/web/src/routes/specs.tsx— empty layout wrapper (mirrorsmonitor.tsx/planner.tsx/flows.tsxpattern)apps/web/src/routes/specs.index.tsx— full-page Specs list. Reuses the existing list rendering fromplanner.index.tsx(~L409-437), extracted into a sharedSpecsListcomponentapps/web/src/routes/specs.$specName.tsx— full-page Spec editor. Reuses the existingSpecEditorpanel from Planner (~L466-532) extracted into a shared componentTop nav
/specsand/specs/$specNamePlanner sidebar — keep as quick-jump
/specs/$specName(not setting?spec=inline)Backward compatibility
/planner?spec=...keeps working (Planner editor panel still renders the spec inline if param present) for one release, then deprecation log/specs?name=...redirect (current behaviour) becomes a redirect to/specs/$nameTests
specs.test.tsxcovers: list renders all specs, click → editor route, editor saves changes, "Breakdown" button dispatches/specs/$specNamebun run qacleanDocs
docs/breakdown.mdif it links to/planner?spec=apps/web/CLAUDE.mdif any new conventions emergeOut of scope
References
apps/web/src/routes/planner.index.tsxL377-438 (specs sidebar), L466-532 (spec editor)apps/web/src/routes/specs.tsx— current pure-redirect route to be replaceddocs/breakdown.md— operator runbook