Implement typed artifact roots and migration
Define the canonical directory and identity contract, then migrate discovery and authoring through a compatibility-tested resolver.
Project: reckon Plan: typed-artifact-layout (http://localhost:8765/reckon/typed-artifact-layout.html) Section: full plan Tier: opus Context Plan, research and evidence types are shipped but remain physically interleaved. Introduce typed roots without losing stable references or historical state. State to read reckon/serve.py, reckon/_store.py, reckon/_plan_html.py, reckon/mcp.py docs/ui/, skills/reckon-create/, skills/reckon-sync/, PLAN-FORMAT.md Scope locks / constraints Preserve HTML-first state and provide an idempotent mixed-layout migration. Done-when 1. typed roots, resolver and migration land with cross-layout fixtures 2. tests still green 3. followup written into plan + this followup marked resolved
Typed roots, stable resource identities, canonical typed and archive routes, safe idempotent migration, typed MCP read/write selection, SPA graph identity, and typed audit resolution landed in 5dec5be and 74ddd7b; integrated by 7dbac54. Independent review found six blockers, all corrected. Full integration: 1,308 tests passed; Ruff clean. done — no followup; downstream work continues in distributed-sprint-state.