Typed artifact layout — landed record

This immutable record preserves the implementation contract and verification evidence collapsed from the evergreen plan after shipping.

Identity and routing

Each artifact has a safe project, type, slug, and archive-state identity. Canonical locations are plans/, research/, evidence/, and sprints/, with history under each type’s archive/. Canonical URLs include the type; bounded flat aliases preserve legacy reads.

Duplicate leaf slugs remain distinct through typed resolver keys and SPA nav_key identities. MCP reads and writes accept the same type selector, enforce optimistic concurrency against that exact resource, and reject ambiguous untyped edits.

Typed artifact hierarchy with type-local archives.
Filesystem location and semantic metadata jointly establish resource identity.

Migration

The migration command classifies legacy HTML, validates source and destination containment, moves resources into typed roots, rewrites HTML links, and records cumulative move and rewrite provenance. It is deterministic and idempotent across incremental runs.

Project-absolute and relative non-HTML assets preserve their extensions, query strings, and fragments. Type-local archive routes resolve canonically. Process-level failures restore original bytes; a host crash during the multi-file install remains the documented residual risk, with the manifest providing deterministic inspection and recovery evidence.

Verification

Verdict

PASS. The canonical typed layout, compatibility resolver, migration, routing, collision handling, and live/static integration meet the plan’s done-when contract. Repository-wide physical migration remains intentionally assigned to the registered-repository migration work.