0%

Section 01: Proposal Governance

Goal: An approved proposal exists at compiler_repo/docs/ori_lang/proposals/approved/ covering adoption of a versioned JSON corpus as the canonical source for the Ori language spec, with markdown clause/annex files and grammar.ebnf becoming generated artifacts.

Success Criteria:

  • Proposal file exists under proposals/approved/ and is cited by commit message Proposal: <filename> per .claude/rules/spec.md
  • Proposal explicitly settles: JSON corpus location (compiler_repo/docs/ori_lang/v2026/spec/corpus/, inside the existing hook-gated tree per user-approved architecture), and confirms grammar.ebnf’s flat-string round-trip approach (decisions/01)

Context: .claude/hooks/block-spec-edits.sh blocks ALL Edit/Write under compiler_repo/docs/ori_lang/v2026/spec/ (including a future corpus/ subdirectory) unless ORI_SPEC_PROPOSAL/.claude/.spec-proposal-active names an approved proposal. Sections 03/04/07 all write generated content into that tree and are BLOCKED until this section’s proposal is approved. Section 02’s safe subset (clause/annex/frontmatter schema, versioning package — pure scripts/spec_corpus/ Python, zero writes under v2026/spec/) is NOT blocked and may proceed in parallel; ONLY Section 02’s grammar-production-schema shape and cross-ref-edge schema (02.3-02.4) wait on this proposal settling scope, since those decisions depend on what the approved proposal actually settles about grammar.ebnf’s fate.

Depends on: None (plan root for the governance chain).

Intelligence Reconnaissance

Queries run 2026-07-09:

  • scripts/intel-query.sh cypher 'MATCH (c:SpecClause) RETURN count(c)' — 822 existing :SpecClause nodes confirmed live in the graph.
  • Read .claude/hooks/block-spec-edits.sh directly — confirmed the exact bypass mechanism (ORI_SPEC_PROPOSAL env var or .claude/.spec-proposal-active marker file, both requiring an approved-proposal filename).

Results summary [ori]: proposal gate is real and enforced (not merely documented); 822 :SpecClause nodes already populated give a concrete post-cutover count target for Section 08’s graph-verification gate.

01.1 Draft the Proposal

File(s): compiler_repo/docs/ori_lang/proposals/drafts/spec-json-canonical-source-proposal.md

Run /create-draft-proposal covering: motivation (schema-first enforcement, graph linkage, drift elimination); scope (JSON corpus location, generated-artifact list: clause/annex/operator-rules.md/grammar.ebnf); explicitly cite the two /tp-help consensus rounds already run during this plan’s authoring as prior design validation.

  • Draft the proposal via /create-draft-proposal, citing this plan’s architecture (JSON location, flat-string grammar.ebnf, additive schema-field coordination with plans/compiler-spec-system)

  • Subsection close-out (01.1)

    • Draft complete; status updated to complete

01.2 Review to Approval

Run /review-draft-proposal and address findings until the proposal’s status is Approved and the file has moved to proposals/approved/.

  • Run /review-draft-proposal; iterate on findings until approved

  • Subsection close-out (01.2)

    • Proposal status Approved; file under proposals/approved/

01.3 Record the Approved Reference

  • Record the approved proposal’s exact filename in this plan’s 00-overview.md/mission provenance so Sections 03/04/07 can cite ORI_SPEC_PROPOSAL=<filename> when their writes need the bypass

  • Subsection close-out (01.3)

    • Filename recorded; Sections 02 (unblocked subset) may proceed; 03/04/07 unblocked

01.R Third Party Review Findings

  • None.

01.N Completion Checklist

  • Proposal Approved, filed under proposals/approved/
  • Commit message(s) for this section cite Proposal: <filename>
  • Plan sync: this section’s status -> complete; downstream sections’ depends_on unblocked
  • /tpr-review passed
  • /impl-hygiene-review passed

Exit Criteria: An approved proposal file exists under proposals/approved/ explicitly covering this plan’s JSON-canonical-source architecture.