9e5e98f22e
Establishes the two-doc contract between the product owner and the ciagent: - oy-spec (PO-authored, ciagent ingests): authoritative product input - oy-state (ciagent-authored, PO ingests): current shipped state Both live in .ciagent/oy/ with no .md extension (PO ingestion keys on the bare stem oy-spec / oy-state). The 10 existing .ciagent/oy/*.md files remain ciagent-internal working memory. PROJECT/REQUIREMENTS/ARCHITECTURE gain a one-line header note pointing to oy-spec as the source and oy-state as the shipped-state mirror. oy-spec holds the schema the PO fills (Objective, Vision source, Principles [locked], Requirements table with acceptance criteria, Constraints, Lexicon [locked], Milestone intent, Open questions, Changelog) + the mandatory docs(spec): Conventional Commit convention for spec edits. oy-state is backfilled from shipped v0.6 state: 45-REQ coverage table, 24 locked constants, 18 deferred items, firewall status (G-003 GREEN, G-006 controlled exception cosmos-sdk v0.50.8, REQ-012 GREEN x3, Mission Lock GREEN, coverage >=80% GREEN), and 5 open PO decisions for v0.7 scoping. Closes the loop: PO reads oy-state -> edits oy-spec (docs(spec): commit) -> ciagent regenerates PROJECT/REQUIREMENTS/ARCHITECTURE at next P0 -> flags drift in oy-state §5. Prevents re-proposing shipped or explicitly-deferred REQs. ---ci--- phase: 0 milestone: v0.6 status: execute project: oy ---/ci---