schema_version: 1
audit:
  reviewed_at: "2026-08-11"
  reviewed_repository_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
  issue_audits:
    - id: github-open-issues-2026-08-04
      provider: github_search_api
      repository: ydah/ibex
      query: "repo:ydah/ibex is:issue is:open"
      command: "gh api -X GET search/issues -f q='repo:ydah/ibex is:issue is:open' -f per_page=100"
      source: https://api.github.com/search/issues?q=repo%3Aydah%2Fibex+is%3Aissue+is%3Aopen
      checked_at: "2026-08-04"
      fresh_until: "2026-09-03"
      result:
        status: complete
        total_count: 0
        incomplete_results: false
        issues: []
        limitation: >-
          Zero open issues means that this exact public tracker query found no report; it is not proof
          that the feature has no correctness defects, private reports, or unreported failures.
budgets:
  active_new_preview_tracks: 1
  preview_track_limit: 3
  active_grammar_syntax_tracks: 1
  grammar_syntax_track_limit: 1
  experimental_product_features: 2
  experimental_product_limit: 5
release_dependencies:
  R001:
    status: hold_external
    evidence: docs/error-ux-review-status-v1.json
    summary: Independent error-UX review is absent, so the release gate remains HOLD.
  R002:
    status: pending_exact_revision
    evidence: docs/release-readiness.md
    summary: The complete release suite has not been rerun and recorded for the eventual exact release revision.
  B003:
    status: complete
    evidence: docs/workloads.yml
    summary: The public workload registry is available and distinguishes public, external, repository, and synthetic evidence.
features:
  - id: ebnf-groups
    name: EBNF groups
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: extended-grammar
          availability: extended
          mechanism: "`pragma extended` or `--mode=extended`, then parenthesized EBNF groups"
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real workload records use EBNF groups; repository fixtures do not establish third-party adoption.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 4ea1196c01c3dd604a42e9139a32edec0d25c7ec, path: lib/ibex/frontend/ast.rb, query: "Group = Struct", summary: Grouped EBNF entered in Expand heredoc and grouped EBNF support. }
      first_release: { status: released, tag: v0.1.0, revision: 65d41edf381afb9c18e01e55332a293332f340e6 }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/normalize/expander.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 8cfa81239f10890e886c0f48269eac546bfdb9bda423d36c0981409cc0b5d8f6
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/normalize/expander.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 9fd614c09314c28fa4fe5a4d56d2425b46fc2b5905fa72a1ab58784c4505af2f
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/normalize/expander.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 96f1fa5683395b561bfaf24671ea1f25fee14adde44110f38874ed69aff7b3d0
      changes:
        - boundary: introduction..v0.1.0
          from_revision: 346aabfd867a4eb13ebbe4a372084f129fb7401f
          to_revision: 65d41edf381afb9c18e01e55332a293332f340e6
          classification: introduced
          commit_assessments:
            - revision: 4ea1196c01c3dd604a42e9139a32edec0d25c7ec
              classification: semantic_change
              summary: "Expand heredoc and grouped EBNF support"
              contract_effect: "Expand heredoc and grouped EBNF support expands heredoc and grouped EBNF support for EBNF groups; the audited diff changes the public EBNF syntax, lowering behavior, or report output. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 53718928d43cf720d4fd051844c85068bc325791
              classification: internal_refactor
              summary: "Expand whole-library type checking"
              contract_effect: "Expand whole-library type checking expands whole-library type checking in shared implementation paths for EBNF groups, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 4cd9b03453b0bdcbffcf8f19812ecfa269a0d327
              classification: internal_refactor
              summary: "Strengthen whole-library type coverage"
              contract_effect: "Strengthen whole-library type coverage changes whole-library type coverage in shared implementation paths for EBNF groups, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/frontend/ast.rb."
            - revision: f3bdaffde3ddb36282921954efa334b86036abd8
              classification: semantic_change
              summary: "Render EBNF origins in reports"
              contract_effect: "Render EBNF origins in reports renders EBNF origins in reports for EBNF groups; the audited diff changes the public EBNF syntax, lowering behavior, or report output. Evidence: lib/ibex/normalize/expander.rb."
          diff_paths:
            - lib/ibex/frontend/ast.rb
            - lib/ibex/normalize/expander.rb
          rationale: The named semantic commits introduce the reviewed public EBNF groups syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream EBNF groups compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.1.0..v0.2.0
          from_revision: 65d41edf381afb9c18e01e55332a293332f340e6
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: no_semantic_change
          commit_assessments:
            - revision: 1418a5a36c6fdeb5370a7cc2dc4ad62de2317656
              classification: no_semantic_change
              summary: "Add typed diagnostics and parser tooling"
              contract_effect: "Add typed diagnostics and parser tooling adds typed diagnostics and parser tooling for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: cf4fbd16fe614d48bcdb93092399352fc7917f95
              classification: no_semantic_change
              summary: "Add canonical grammar fragment includes"
              contract_effect: "Add canonical grammar fragment includes adds canonical grammar fragment includes for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 81026ff3390990cad716e9953c8b485f9ac198fe
              classification: no_semantic_change
              summary: "Add lossless rule documentation"
              contract_effect: "Add lossless rule documentation adds lossless rule documentation for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 18f618c490c91837b97e628c178c6dd4e50abb4d
              classification: no_semantic_change
              summary: "Add parameterized grammar rules"
              contract_effect: "Add parameterized grammar rules adds parameterized grammar rules for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 51234f2acc5080981c399f3821fe61d07f4b38af
              classification: no_semantic_change
              summary: "Add bounded inline rule expansion"
              contract_effect: "Add bounded inline rule expansion adds bounded inline rule expansion for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 3320a2a862628c14f12205575b894a604c9dffc8
              classification: no_semantic_change
              summary: "Add extended declaration contracts"
              contract_effect: "Add extended declaration contracts adds extended declaration contracts for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: e170cee79243d0aa975be3e107cd95cd7cc8baf0
              classification: no_semantic_change
              summary: "Add declarative parser parameters"
              contract_effect: "Add declarative parser parameters adds declarative parser parameters for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: ee83cf3f06e1b4f7d7c1ece292d43fd7844ee3aa
              classification: no_semantic_change
              summary: "Add declarative debug value printers"
              contract_effect: "Add declarative debug value printers adds declarative debug value printers for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: af3f23e6c3fd6d9a19ce9a84c5a4655f6761a49d
              classification: no_semantic_change
              summary: "Add multiple parser entry points"
              contract_effect: "Add multiple parser entry points adds multiple parser entry points for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: d589970fa588fd6a0464e6396fe2da668431aec4
              classification: no_semantic_change
              summary: "Add declarative parser recovery policies"
              contract_effect: "Add declarative parser recovery policies adds declarative parser recovery policies for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 6a97c6580eb60f21bee3019dd5301898f4e927f1
              classification: no_semantic_change
              summary: "Add grammar-declared parser tests"
              contract_effect: "Add grammar-declared parser tests adds grammar-declared parser tests for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 8b21624e348fb6096a0efdd87f45bc1bea1806bb
              classification: no_semantic_change
              summary: "Add lexer declaration syntax"
              contract_effect: "Add lexer declaration syntax adds lexer declaration syntax for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 7bbab102d981df3c3efffba0bdab301ea4939293
              classification: no_semantic_change
              summary: "Build error-tolerant concrete trees"
              contract_effect: "Build error-tolerant concrete trees builds error-tolerant concrete trees for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: c7117a5acaa51b501b8de20b75bbac4e3675ec35
              classification: no_semantic_change
              summary: "Generate typed data syntax trees"
              contract_effect: "Generate typed data syntax trees generates typed data syntax trees for an adjacent capability in shared audited paths; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
          diff_paths:
            - lib/ibex/frontend/ast.rb
            - lib/ibex/normalize/expander.rb
          rationale: Every path-relevant commit is explicitly assessed above; all belong to adjacent capabilities and leave the public EBNF groups syntax and behavior unchanged in this boundary.
          unresolved_uncertainty: No release-bound EBNF groups contract or behavior oracle isolates this surface from adjacent edits in the shared paths, so unchanged public semantics cannot be established.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: f63742a4e7296b45d9ae071bb7bcd55c06edd414
              classification: no_semantic_change
              summary: "fix: preserve grammar mode provenance"
              contract_effect: "fix: preserve grammar mode provenance adds root pragma-location metadata without changing group nodes, EBNF parsing, or expansion; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 8dae6f7cede1d262cb9211a07b72b8c903e96126
              classification: no_semantic_change
              summary: "feat: parse declarative parser settings"
              contract_effect: "feat: parse declarative parser settings adds declarative parser settings to shared grammar parsing without changing group nodes, EBNF parsing, or expansion; the EBNF groups public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 911b8502fde8ce80ca047f0aa43afd4607cdcfdb
              classification: no_semantic_change
              summary: "Type frontend AST serialization"
              contract_effect: "Type frontend AST serialization updates type annotations and checked boundaries without changing the ebnf-groups public contract; the public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 3ce117eeaa7147dc31aa40d88baf3e6866f36b7c
              classification: no_semantic_change
              summary: "Type auxiliary boundaries"
              contract_effect: "Type auxiliary boundaries updates type annotations and checked boundaries without changing the ebnf-groups public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize/expander.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the ebnf-groups public contract; the public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
          diff_paths:
            - lib/ibex/frontend/ast.rb
            - lib/ibex/normalize/expander.rb
          rationale: The exact path-limited Git review inspected one root-metadata commit; it preserves the public EBNF groups syntax, API, behavior, and contract.
          unresolved_uncertainty: This path review does not establish downstream EBNF groups compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Commit and source snapshots do not establish downstream compatibility or undocumented field use.]
      evidence: [docs/decisions/0006-bounded-structural-grammar-lowering.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: "The exact open-issue query found no report, but unreported correctness defects remain possible." }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, README.md]
      gaps: [No third-party migration report or released-version compatibility ledger is published.]
    dependent_tooling:
      status: present
      evidence: [test/ir/normalizer_test.rb, test/frontend/parser_test.rb]
      gaps: [Coverage is repository-owned and does not include a public_real EBNF grammar.]
    limitations:
      performance: [Lowering can increase production count; no public_real size or generation-time bound is published.]
      safety: [Actions remain trusted Ruby and actions inside EBNF groups are rejected rather than sandboxed.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Express repeated optional and grouped grammar structure without hand-written helper productions.
      value_classification: repository_only
      alternatives: [Use ordinary helper nonterminals in compatible grammar syntax.]
      reason: Passing lowering tests does not establish two unchanged releases, external field use, or the pending release gates.
      kill_condition: Remove the Preview syntax if bounded lowering cannot preserve grammar behavior or no external user emerges after the next review window.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/ir/normalizer_test.rb]
    next_review:
      triggers: [Two released versions complete without an EBNF specification change., A public_real workload adopts EBNF groups.]
      required_evidence: [Exact-release R002 results, external-use evidence, specification-change ledger]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/normalize/expander.rb, sha256: 980501cbc4e119d69d9d9a7d68fe9557346f06a65d70b5595d003e24f21009ad }]

  - id: parameterized-rules
    name: parameterized rules
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: extended-grammar
          availability: extended
          mechanism: "`pragma extended` or `--mode=extended`, then parameterized rule declarations"
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real workload records use parameterized rules; the shadow frontend is repository evidence only.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 18f618c490c91837b97e628c178c6dd4e50abb4d, path: lib/ibex/frontend/ast.rb, query: ParameterizedReference, summary: Parameterized rules entered in Add parameterized grammar rules. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/normalize/parameters.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: 752a8f54eb3f064a8f4488253189fee24665567262e2d8cc7f00414766009e8f
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/normalize/parameters.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 737cc90a5cd158bba61a9984fc121fbc859f6bf91d633b31cc77d98eb5b340c1
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/normalize/parameters.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 82351458e422c000e2fb49f4a4bd10f0789af53fbd216c93585d3146267330ff
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 81026ff3390990cad716e9953c8b485f9ac198fe
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 18f618c490c91837b97e628c178c6dd4e50abb4d
              classification: semantic_change
              summary: "Add parameterized grammar rules"
              contract_effect: "Add parameterized grammar rules adds parameterized grammar rules for parameterized rules; the audited diff changes the public parameterized-rule syntax or lowering behavior. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 51234f2acc5080981c399f3821fe61d07f4b38af
              classification: semantic_change
              summary: "Add bounded inline rule expansion"
              contract_effect: "Add bounded inline rule expansion adds bounded inline rule expansion for parameterized rules; the audited diff changes the public parameterized-rule syntax or lowering behavior. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 3320a2a862628c14f12205575b894a604c9dffc8
              classification: semantic_change
              summary: "Add extended declaration contracts"
              contract_effect: "Add extended declaration contracts adds extended declaration contracts for parameterized rules; the audited diff changes the public parameterized-rule syntax or lowering behavior. Evidence: lib/ibex/frontend/ast.rb."
            - revision: e170cee79243d0aa975be3e107cd95cd7cc8baf0
              classification: no_semantic_change
              summary: "Add declarative parser parameters"
              contract_effect: "Add declarative parser parameters adds declarative parser parameters for an adjacent capability in shared audited paths; the parameterized rules public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: ee83cf3f06e1b4f7d7c1ece292d43fd7844ee3aa
              classification: no_semantic_change
              summary: "Add declarative debug value printers"
              contract_effect: "Add declarative debug value printers adds declarative debug value printers for an adjacent capability in shared audited paths; the parameterized rules public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: af3f23e6c3fd6d9a19ce9a84c5a4655f6761a49d
              classification: no_semantic_change
              summary: "Add multiple parser entry points"
              contract_effect: "Add multiple parser entry points adds multiple parser entry points for an adjacent capability in shared audited paths; the parameterized rules public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: d589970fa588fd6a0464e6396fe2da668431aec4
              classification: no_semantic_change
              summary: "Add declarative parser recovery policies"
              contract_effect: "Add declarative parser recovery policies adds declarative parser recovery policies for an adjacent capability in shared audited paths; the parameterized rules public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 6a97c6580eb60f21bee3019dd5301898f4e927f1
              classification: no_semantic_change
              summary: "Add grammar-declared parser tests"
              contract_effect: "Add grammar-declared parser tests adds grammar-declared parser tests for an adjacent capability in shared audited paths; the parameterized rules public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 8b21624e348fb6096a0efdd87f45bc1bea1806bb
              classification: no_semantic_change
              summary: "Add lexer declaration syntax"
              contract_effect: "Add lexer declaration syntax adds lexer declaration syntax for an adjacent capability in shared audited paths; the parameterized rules public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 7bbab102d981df3c3efffba0bdab301ea4939293
              classification: no_semantic_change
              summary: "Build error-tolerant concrete trees"
              contract_effect: "Build error-tolerant concrete trees builds error-tolerant concrete trees for an adjacent capability in shared audited paths; the parameterized rules public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: c7117a5acaa51b501b8de20b75bbac4e3675ec35
              classification: no_semantic_change
              summary: "Generate typed data syntax trees"
              contract_effect: "Generate typed data syntax trees generates typed data syntax trees for an adjacent capability in shared audited paths; the parameterized rules public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
          diff_paths:
            - lib/ibex/frontend/ast.rb
            - lib/ibex/normalize/parameters.rb
          rationale: The named semantic commits introduce the reviewed public parameterized rules syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream parameterized rules compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: f63742a4e7296b45d9ae071bb7bcd55c06edd414
              classification: no_semantic_change
              summary: "fix: preserve grammar mode provenance"
              contract_effect: "fix: preserve grammar mode provenance adds root pragma-location metadata without changing parameter references, arguments, or expansion; the parameterized rules public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 8dae6f7cede1d262cb9211a07b72b8c903e96126
              classification: no_semantic_change
              summary: "feat: parse declarative parser settings"
              contract_effect: "feat: parse declarative parser settings adds declarative parser settings to shared grammar parsing without changing parameter references, arguments, or expansion; the parameterized rules public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 86dad0e7f7795440cd66fdedb4fbcadd702d92ff
              classification: no_semantic_change
              summary: "Strengthen runtime type contracts"
              contract_effect: "Strengthen runtime type contracts updates type annotations and checked boundaries without changing the parameterized-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize/parameters.rb."
            - revision: 858d8f7a3232dc609ceda3685bb7ded85691479f
              classification: no_semantic_change
              summary: "Preserve audited source contracts"
              contract_effect: "Preserve audited source contracts updates type annotations and checked boundaries without changing the parameterized-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize/parameters.rb."
            - revision: 5c4539de3401f4d4d725d46775bb966a3f77c842
              classification: no_semantic_change
              summary: "Align generated signatures with typed sources"
              contract_effect: "Align generated signatures with typed sources updates type annotations and checked boundaries without changing the parameterized-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize/parameters.rb."
            - revision: 911b8502fde8ce80ca047f0aa43afd4607cdcfdb
              classification: no_semantic_change
              summary: "Type frontend AST serialization"
              contract_effect: "Type frontend AST serialization updates type annotations and checked boundaries without changing the parameterized-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the parameterized-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: ec18c6e64731eb2997756a5a585dc74e2356b8fe
              classification: no_semantic_change
              summary: "Clarify typed boundary annotations"
              contract_effect: "Clarify typed boundary annotations updates type annotations and checked boundaries without changing the parameterized-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize/parameters.rb."
          diff_paths:
            - lib/ibex/frontend/ast.rb
            - lib/ibex/normalize/parameters.rb
          rationale: The exact path-limited Git review inspected one root-metadata commit; it preserves the public parameterized rules syntax, API, behavior, and contract.
          unresolved_uncertainty: This path review does not establish downstream parameterized rules compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git history does not record independent adopter compatibility across these releases.]
      evidence: [docs/decisions/0006-bounded-structural-grammar-lowering.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; private and unreported failures are outside the query. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/architecture.md]
      gaps: [No public adopter migration or catalog-impact report exists.]
    dependent_tooling:
      status: present
      evidence: [test/ir/parameterized_rules_test.rb, test/frontend/parameterized_rules_test.rb]
      gaps: [Self-host shadow use is not an independent consumer and no public_real grammar is covered.]
    limitations:
      performance: [Specialization is bounded but can multiply grammar size; no public_real cost distribution is published.]
      safety: [Specialized actions are trusted Ruby, and structural cycle rejection does not sandbox action effects.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Reuse structurally similar grammar rules without copying each concrete specialization.
      value_classification: repository_only
      alternatives: [Write explicit specialized helper nonterminals in the grammar.]
      reason: Bounded specialization and shadow tests do not replace external adoption, released stability, or exact release evidence.
      kill_condition: Remove parameter syntax if specialization bounds or diagnostics remain unsuitable for a real adopter by the next field review.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/ir/parameterized_rules_test.rb]
    next_review:
      triggers: [Two releases complete without parameter-rule specification changes., Another independently maintained grammar adopts the feature.]
      required_evidence: [External workload record, exact-release R002 results, specification-change ledger]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/normalize/parameters.rb, sha256: 62f01879b1d945b65a8434fd2704d08318af17add6263fb76fd72fd61b421bb9 }]

  - id: inline-rules
    name: inline rules
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: extended-grammar
          availability: extended
          mechanism: "`pragma extended` or `--mode=extended`, then `%inline` rule declarations"
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real workload records use inline rules; repository shadow and fixtures are not external field use.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 51234f2acc5080981c399f3821fe61d07f4b38af, path: lib/ibex/normalize.rb, query: inline_rule_names, summary: Inline rules entered in Add bounded inline rule expansion. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/normalize/inline_expansion.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: 2310d623dcb5d0d6b51fb21478f78f24209171f60830078e6da0fe6eac1494f2
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/normalize/inline_expansion.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 02919ea72da0a741bbac49d28cc5caffc5649895c3cf46dc6fcc207c06ef47c4
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/normalize/inline_expansion.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: ce2892ceefd8257a2e98f0c867c8c6e8a22ec1c7172e0363bc9e68b95c773f08
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 18f618c490c91837b97e628c178c6dd4e50abb4d
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 51234f2acc5080981c399f3821fe61d07f4b38af
              classification: semantic_change
              summary: "Add bounded inline rule expansion"
              contract_effect: "Add bounded inline rule expansion adds bounded inline rule expansion for inline rules; the audited diff changes the public inline-rule syntax, diagnostics, or expansion behavior. Evidence: lib/ibex/normalize.rb."
            - revision: 3187b74d3933259a1a44deee8ed90aabf61a2efb
              classification: semantic_change
              summary: "Add static semantic action checking"
              contract_effect: "Add static semantic action checking adds static semantic action checking for inline rules; the audited diff changes the public inline-rule syntax, diagnostics, or expansion behavior. Evidence: lib/ibex/normalize/inline_expansion.rb."
            - revision: 3320a2a862628c14f12205575b894a604c9dffc8
              classification: no_semantic_change
              summary: "Add extended declaration contracts"
              contract_effect: "Add extended declaration contracts adds extended declaration contracts for an adjacent capability in shared audited paths; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: e170cee79243d0aa975be3e107cd95cd7cc8baf0
              classification: no_semantic_change
              summary: "Add declarative parser parameters"
              contract_effect: "Add declarative parser parameters adds declarative parser parameters for an adjacent capability in shared audited paths; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: ee83cf3f06e1b4f7d7c1ece292d43fd7844ee3aa
              classification: no_semantic_change
              summary: "Add declarative debug value printers"
              contract_effect: "Add declarative debug value printers adds declarative debug value printers for an adjacent capability in shared audited paths; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: 24c7d97c2dc9f6fc9e90cef618cec56f1e5a6a9a
              classification: no_semantic_change
              summary: "Add exact lookahead correction"
              contract_effect: "Add exact lookahead correction adds exact lookahead correction for an adjacent capability in shared audited paths; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: af3f23e6c3fd6d9a19ce9a84c5a4655f6761a49d
              classification: no_semantic_change
              summary: "Add multiple parser entry points"
              contract_effect: "Add multiple parser entry points adds multiple parser entry points for an adjacent capability in shared audited paths; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: d589970fa588fd6a0464e6396fe2da668431aec4
              classification: no_semantic_change
              summary: "Add declarative parser recovery policies"
              contract_effect: "Add declarative parser recovery policies adds declarative parser recovery policies for an adjacent capability in shared audited paths; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: 6a97c6580eb60f21bee3019dd5301898f4e927f1
              classification: no_semantic_change
              summary: "Add grammar-declared parser tests"
              contract_effect: "Add grammar-declared parser tests adds grammar-declared parser tests for an adjacent capability in shared audited paths; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: 04dd9773f522cd76bbf3c6678b66f0ee3e9142f1
              classification: no_semantic_change
              summary: "Add versioned lexer intermediate representation"
              contract_effect: "Add versioned lexer intermediate representation adds versioned lexer intermediate representation for an adjacent capability in shared audited paths; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: c7117a5acaa51b501b8de20b75bbac4e3675ec35
              classification: no_semantic_change
              summary: "Generate typed data syntax trees"
              contract_effect: "Generate typed data syntax trees generates typed data syntax trees for an adjacent capability in shared audited paths; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: 97fce7fa2476bc7ecd399c7bf30d765420dfc39a
              classification: no_semantic_change
              summary: "Rename the standard grammar mode to default"
              contract_effect: "Rename the standard grammar mode to default renames the standard grammar mode to default for an adjacent capability in shared audited paths; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
          diff_paths:
            - lib/ibex/normalize.rb
            - lib/ibex/normalize/inline_expansion.rb
          rationale: The named semantic commits introduce the reviewed public inline rules syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream inline rules compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: 34aff77cecb6c9edf3aaef04d1dd63e0766db4b1
              classification: no_semantic_change
              summary: "feat: persist parser settings in grammar IR"
              contract_effect: "feat: persist parser settings in grammar IR carries declarative settings through normalization without changing inline expansion syntax, ordering, or action behavior; the inline rules public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: 86dad0e7f7795440cd66fdedb4fbcadd702d92ff
              classification: no_semantic_change
              summary: "Strengthen runtime type contracts"
              contract_effect: "Strengthen runtime type contracts updates type annotations and checked boundaries without changing the inline-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: 858d8f7a3232dc609ceda3685bb7ded85691479f
              classification: no_semantic_change
              summary: "Preserve audited source contracts"
              contract_effect: "Preserve audited source contracts updates type annotations and checked boundaries without changing the inline-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize/inline_expansion.rb."
            - revision: 30147de023c91bb761b951f38ecd4d126b9fc39b
              classification: no_semantic_change
              summary: "Tighten repair and normalization value types"
              contract_effect: "Tighten repair and normalization value types updates type annotations and checked boundaries without changing the inline-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize.rb."
            - revision: e86d01b51d046e061b9adc25df5a8eb572bb2a8d
              classification: no_semantic_change
              summary: "Type inline expansion frames and plans"
              contract_effect: "Type inline expansion frames and plans updates type annotations and checked boundaries without changing the inline-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize/inline_expansion.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the inline-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize/inline_expansion.rb."
            - revision: ec18c6e64731eb2997756a5a585dc74e2356b8fe
              classification: no_semantic_change
              summary: "Clarify typed boundary annotations"
              contract_effect: "Clarify typed boundary annotations updates type annotations and checked boundaries without changing the inline-rules public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize/inline_expansion.rb."
          diff_paths:
            - lib/ibex/normalize.rb
            - lib/ibex/normalize/inline_expansion.rb
          rationale: The exact path-limited Git review found no commits in this boundary, so no public inline rules syntax, API, or behavior change appears in the reviewed scope.
          unresolved_uncertainty: This path review does not establish downstream inline rules compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git history does not establish downstream action and precedence compatibility.]
      evidence: [docs/decisions/0006-bounded-structural-grammar-lowering.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report and does not prove action-composition correctness. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/architecture.md]
      gaps: [No external catalog-impact or migration evidence is public.]
    dependent_tooling:
      status: present
      evidence: [test/ir/inline_rules_test.rb, test/codegen/inline_rules_test.rb]
      gaps: [Action-order coverage is repository-owned and lacks a public_real inline grammar.]
    limitations:
      performance: [Expansion has a configured bound but can multiply productions before construction.]
      safety: [Composed semantic actions remain trusted Ruby and may have application side effects.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Reuse grammar phrases while preserving caller-visible action and precedence semantics.
      value_classification: repository_only
      alternatives: [Use ordinary named nonterminals and accept an additional runtime reduction.]
      reason: Expansion and action-order tests do not supply a field period, public catalog evidence, or completed release gates.
      kill_condition: Remove inline syntax if expansion cost or composed action semantics cannot be validated on an external grammar.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/codegen/inline_rules_test.rb]
    next_review:
      triggers: [Two releases complete without inline-rule specification changes., A public catalog records inline expansion impact.]
      required_evidence: [External workload record, catalog measurements, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/normalize/inline_expansion.rb, sha256: a4cac4b0b875e37554edea5f7570ee68b466958344bed455c98bc20487223cb9 }]

  - id: middle-actions
    name: middle actions
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: embedded-production-action
          availability: compatible
          mechanism: A Ruby action placed between RHS symbols in an ordinary default-mode production; no pragma is required.
          default_enabled: true
      stable_overlap:
        surface_ids: [embedded-production-action]
        governing_maturity: stable
        breaking_policy: stable_compatibility_lock
        guarantee: Compatible Racc middle-action syntax and lowering are governed by the Stable compatibility contract and cannot break under Preview notice.
        separable_preview_activation: none
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real workload records use Ibex middle actions; opaque actions in imported grammars do not prove this feature.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 3bf5565285cbb22eb2acee9f0f6c7ea63a85e096, path: lib/ibex/frontend/ast.rb, query: InlineAction, summary: Embedded production actions entered in Parse grammars into AST. }
      first_release: { status: released, tag: v0.1.0, revision: 65d41edf381afb9c18e01e55332a293332f340e6 }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/frontend/parser/rules.rb
              - lib/ibex/normalize/expander.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 23b0223eee62d5d72c55243f8485909c7db9be14f44d5222bfd4064501327270
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/frontend/parser/rules.rb
              - lib/ibex/normalize/expander.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 14c3291260bae717d1ff850db06f73b748047d4686de72cbc85d3926903c73ce
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/frontend/parser/rules.rb
              - lib/ibex/normalize/expander.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: e6dbde03b3332e30b02579deefeab84939c1b3206e355abb80b6ef7f1d869471
      changes:
        - boundary: introduction..v0.1.0
          from_revision: 7a7a33b0743e80bf5a93e34259eec98318558ee5
          to_revision: 65d41edf381afb9c18e01e55332a293332f340e6
          classification: introduced
          commit_assessments:
            - revision: 3bf5565285cbb22eb2acee9f0f6c7ea63a85e096
              classification: semantic_change
              summary: "Parse grammars into AST"
              contract_effect: "Parse grammars into AST parses grammars into AST for middle actions; the audited diff changes the public middle-action syntax, typed API, or lowering behavior. Evidence: lib/ibex/frontend/ast.rb."
            - revision: cb6dc27b0a76f6023e82ba9491274fdf7a4cd42a
              classification: semantic_change
              summary: "Add normalized grammar IR"
              contract_effect: "Add normalized grammar IR adds normalized grammar IR for middle actions; the audited diff changes the public middle-action syntax, typed API, or lowering behavior. Evidence: lib/ibex/normalize/expander.rb."
            - revision: 4ea1196c01c3dd604a42e9139a32edec0d25c7ec
              classification: no_semantic_change
              summary: "Expand heredoc and grouped EBNF support"
              contract_effect: "Expand heredoc and grouped EBNF support expands heredoc and grouped EBNF support for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: c6ab9265d16759a378e06644c586cda702e026d9
              classification: internal_refactor
              summary: "Self-host the grammar frontend"
              contract_effect: "Self-host the grammar frontend self-hosts the grammar frontend in shared implementation paths for middle actions, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/frontend/parser/rules.rb."
            - revision: 53718928d43cf720d4fd051844c85068bc325791
              classification: internal_refactor
              summary: "Expand whole-library type checking"
              contract_effect: "Expand whole-library type checking expands whole-library type checking in shared implementation paths for middle actions, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 4cd9b03453b0bdcbffcf8f19812ecfa269a0d327
              classification: internal_refactor
              summary: "Strengthen whole-library type coverage"
              contract_effect: "Strengthen whole-library type coverage changes whole-library type coverage in shared implementation paths for middle actions, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/frontend/ast.rb."
            - revision: cf3844d9f28c660570b8b5ae0545fdcf6b88a51e
              classification: internal_refactor
              summary: "Restore typed public contracts"
              contract_effect: "Restore typed public contracts adds inline RBS annotations and typed token extraction without changing middle-action parsing or lowering, preserving the public contract. Evidence: lib/ibex/frontend/parser/rules.rb."
            - revision: f3bdaffde3ddb36282921954efa334b86036abd8
              classification: no_semantic_change
              summary: "Render EBNF origins in reports"
              contract_effect: "Render EBNF origins in reports renders EBNF origins in reports for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/normalize/expander.rb."
          diff_paths:
            - lib/ibex/frontend/ast.rb
            - lib/ibex/frontend/parser/rules.rb
            - lib/ibex/normalize/expander.rb
          rationale: The named semantic commits introduce the reviewed public middle actions syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream middle actions compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.1.0..v0.2.0
          from_revision: 65d41edf381afb9c18e01e55332a293332f340e6
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: no_semantic_change
          commit_assessments:
            - revision: 1418a5a36c6fdeb5370a7cc2dc4ad62de2317656
              classification: no_semantic_change
              summary: "Add typed diagnostics and parser tooling"
              contract_effect: "Add typed diagnostics and parser tooling adds typed diagnostics and parser tooling for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: cf4fbd16fe614d48bcdb93092399352fc7917f95
              classification: no_semantic_change
              summary: "Add canonical grammar fragment includes"
              contract_effect: "Add canonical grammar fragment includes adds canonical grammar fragment includes for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 81026ff3390990cad716e9953c8b485f9ac198fe
              classification: no_semantic_change
              summary: "Add lossless rule documentation"
              contract_effect: "Add lossless rule documentation adds lossless rule documentation for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 18f618c490c91837b97e628c178c6dd4e50abb4d
              classification: no_semantic_change
              summary: "Add parameterized grammar rules"
              contract_effect: "Add parameterized grammar rules adds parameterized grammar rules for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 51234f2acc5080981c399f3821fe61d07f4b38af
              classification: no_semantic_change
              summary: "Add bounded inline rule expansion"
              contract_effect: "Add bounded inline rule expansion adds bounded inline rule expansion for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 3320a2a862628c14f12205575b894a604c9dffc8
              classification: no_semantic_change
              summary: "Add extended declaration contracts"
              contract_effect: "Add extended declaration contracts adds extended declaration contracts for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: e170cee79243d0aa975be3e107cd95cd7cc8baf0
              classification: no_semantic_change
              summary: "Add declarative parser parameters"
              contract_effect: "Add declarative parser parameters adds declarative parser parameters for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: ee83cf3f06e1b4f7d7c1ece292d43fd7844ee3aa
              classification: no_semantic_change
              summary: "Add declarative debug value printers"
              contract_effect: "Add declarative debug value printers adds declarative debug value printers for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: af3f23e6c3fd6d9a19ce9a84c5a4655f6761a49d
              classification: no_semantic_change
              summary: "Add multiple parser entry points"
              contract_effect: "Add multiple parser entry points adds multiple parser entry points for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: d589970fa588fd6a0464e6396fe2da668431aec4
              classification: no_semantic_change
              summary: "Add declarative parser recovery policies"
              contract_effect: "Add declarative parser recovery policies adds declarative parser recovery policies for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 6a97c6580eb60f21bee3019dd5301898f4e927f1
              classification: no_semantic_change
              summary: "Add grammar-declared parser tests"
              contract_effect: "Add grammar-declared parser tests adds grammar-declared parser tests for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 8b21624e348fb6096a0efdd87f45bc1bea1806bb
              classification: no_semantic_change
              summary: "Add lexer declaration syntax"
              contract_effect: "Add lexer declaration syntax adds lexer declaration syntax for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 7bbab102d981df3c3efffba0bdab301ea4939293
              classification: no_semantic_change
              summary: "Build error-tolerant concrete trees"
              contract_effect: "Build error-tolerant concrete trees builds error-tolerant concrete trees for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: c7117a5acaa51b501b8de20b75bbac4e3675ec35
              classification: no_semantic_change
              summary: "Generate typed data syntax trees"
              contract_effect: "Generate typed data syntax trees generates typed data syntax trees for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 00f17a0cd7d049ce970261b050ffb6ae60dd4186
              classification: no_semantic_change
              summary: "Accept legacy user code rule endings"
              contract_effect: "Accept legacy user code rule endings accepts legacy user code rule endings for an adjacent capability in shared audited paths; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/parser/rules.rb."
          diff_paths:
            - lib/ibex/frontend/ast.rb
            - lib/ibex/frontend/parser/rules.rb
            - lib/ibex/normalize/expander.rb
          rationale: Every path-relevant commit is explicitly assessed above; all belong to adjacent capabilities or internal work and leave the public middle actions contract unchanged in this boundary.
          unresolved_uncertainty: No release-bound middle actions contract or behavior oracle isolates this surface from adjacent edits in the shared paths, so unchanged public semantics cannot be established.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: f63742a4e7296b45d9ae071bb7bcd55c06edd414
              classification: no_semantic_change
              summary: "fix: preserve grammar mode provenance"
              contract_effect: "fix: preserve grammar mode provenance adds root pragma-location metadata without changing inline-action representation, ordering, or execution; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 8dae6f7cede1d262cb9211a07b72b8c903e96126
              classification: no_semantic_change
              summary: "feat: parse declarative parser settings"
              contract_effect: "feat: parse declarative parser settings adds declarative parser settings to shared grammar parsing without changing inline-action representation, ordering, or execution; the middle actions public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 911b8502fde8ce80ca047f0aa43afd4607cdcfdb
              classification: no_semantic_change
              summary: "Type frontend AST serialization"
              contract_effect: "Type frontend AST serialization updates type annotations and checked boundaries without changing the middle-actions public contract; the public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
            - revision: 3ce117eeaa7147dc31aa40d88baf3e6866f36b7c
              classification: no_semantic_change
              summary: "Type auxiliary boundaries"
              contract_effect: "Type auxiliary boundaries updates type annotations and checked boundaries without changing the middle-actions public contract; the public contract remains unchanged. Evidence: lib/ibex/normalize/expander.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the middle-actions public contract; the public contract remains unchanged. Evidence: lib/ibex/frontend/ast.rb."
          diff_paths:
            - lib/ibex/frontend/ast.rb
            - lib/ibex/frontend/parser/rules.rb
            - lib/ibex/normalize/expander.rb
          rationale: The exact path-limited Git review inspected one root-metadata commit; it preserves the public middle actions syntax, API, behavior, and contract.
          unresolved_uncertainty: This path review does not establish downstream middle actions compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Source snapshots do not prove field compatibility of trusted action side effects.]
      evidence: [docs/grammar-reference.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; hidden action-order defects remain possible. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/architecture.md]
      gaps: [No production-use report demonstrates long-term action compatibility.]
    dependent_tooling:
      status: present
      evidence: [test/runtime/action_contract_test.rb, test/codegen/action_locations_test.rb]
      gaps: [No independent grammar exercises middle-action early-exit and location semantics.]
    limitations:
      performance: [Each middle action introduces a helper reduction; public_real overhead has not been measured.]
      safety: [Middle actions execute trusted Ruby earlier than the enclosing reduction and can cause irreversible side effects.]
    decision:
      outcome: redesign
      target_maturity: preview
      criteria_status: planned
      user_problem: Run a semantic action before the enclosing compatible-mode production has reduced.
      value_classification: repository_only
      alternatives: [Introduce an explicit empty helper production or defer work to the trailing reduction.]
      reason: No separable Preview activation currently exists; the compatible/default Racc surface is already governed by the Stable compatibility lock.
      kill_condition: Remove the redundant Preview inventory row if no distinct opt-in extension is defined for separate review.
      redesign_plan: Split or remove the redundant Preview classification at the next reviewed release unless a distinct opt-in extension is defined.
      evidence: [docs/stability.md, test/runtime/action_contract_test.rb]
    next_review:
      triggers: [Two releases complete without a middle-action semantic change., A public_real grammar uses middle actions in production.]
      required_evidence: [Production-use record, exact-release R002 results, semantic history ledger]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources:
      - { path: lib/ibex/frontend/parser/rules.rb, sha256: 3e94ab8f08275e9cfdc6cc5a2db905498102648c4a9117939e2c7a7f062c46ca }
      - { path: lib/ibex/normalize/expander.rb, sha256: 980501cbc4e119d69d9d9a7d68fe9557346f06a65d70b5595d003e24f21009ad }

  - id: multiple-entries
    name: multiple entries
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: multiple-start-declarations
          availability: extended
          mechanism: Multiple declared start symbols optionally combined with `--entry-isolation`.
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real workload records multiple Ibex entry points; compatibility workloads each use one start symbol.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: af3f23e6c3fd6d9a19ce9a84c5a4655f6761a49d, path: lib/ibex/lalr/builder.rb, query: entry_isolation, summary: Multiple entries entered in Add multiple parser entry points. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: partial
            present_paths:
              - lib/ibex/codegen/ruby.rb
            absent_paths: []
            rationale: Pre-existing or shared canonical paths are explicit and do not prove that the absent feature exists.
          source_tree_sha256: 97c9668559cb5aa3fdfef27beca16b215fd1232f678308e883be37ba6942fff4
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/codegen/ruby.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: f4188d78228e88003c7f969f1bcb54ff57e243a79eb045634cb6b7522ccadeb5
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/codegen/ruby.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: b40844327d15c778a95f24c43e4a126592594791d63b16af1f4e2af520d8ecea
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 24c7d97c2dc9f6fc9e90cef618cec56f1e5a6a9a
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: af3f23e6c3fd6d9a19ce9a84c5a4655f6761a49d
              classification: semantic_change
              summary: "Add multiple parser entry points"
              contract_effect: "Add multiple parser entry points adds multiple parser entry points for multiple entries; the audited diff changes the public generated-parser output, entry API, or runtime behavior. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 050206fbc9f9d25d16e4a89a1b744caf1bfed87f
              classification: no_semantic_change
              summary: "Add stable example keyed error messages"
              contract_effect: "Add stable example keyed error messages adds stable example keyed error messages for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: d589970fa588fd6a0464e6396fe2da668431aec4
              classification: no_semantic_change
              summary: "Add declarative parser recovery policies"
              contract_effect: "Add declarative parser recovery policies adds declarative parser recovery policies for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: d8ee14f8b80a1acc4bf27b15d52b1c3517aed5b5
              classification: no_semantic_change
              summary: "Generate stateful streaming lexers"
              contract_effect: "Generate stateful streaming lexers generates stateful streaming lexers for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 7bbab102d981df3c3efffba0bdab301ea4939293
              classification: no_semantic_change
              summary: "Build error-tolerant concrete trees"
              contract_effect: "Build error-tolerant concrete trees builds error-tolerant concrete trees for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: c7117a5acaa51b501b8de20b75bbac4e3675ec35
              classification: no_semantic_change
              summary: "Generate typed data syntax trees"
              contract_effect: "Generate typed data syntax trees generates typed data syntax trees for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: d606ca436f11ac98e0a0bd3ab60363b30f7ac1ae
              classification: no_semantic_change
              summary: "Bound and isolate parser sessions"
              contract_effect: "Bound and isolate parser sessions bundles generic resource-limit support but does not change entry states, generated entry methods, or entry isolation; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 14a35ebf10274e8ff0edab9d830068a7024f8123
              classification: internal_refactor
              summary: "Split the parser runtime package"
              contract_effect: "Split the parser runtime package splits the parser runtime package in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 7e74c7a5adaf01207b17c3b15fc6564a8fca64a7
              classification: no_semantic_change
              summary: "Stabilize legacy Ruby compatibility"
              contract_effect: "Stabilize legacy Ruby compatibility adds the runtime version source to every embedded parser and does not alter entry dispatch or isolation; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 673d5315a770a8d943f7213a0e015ca42ae496f0
              classification: internal_refactor
              summary: "Cache canonical closure lookaheads"
              contract_effect: "Cache canonical closure lookaheads caches canonical closure lookaheads in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/lalr/builder.rb."
            - revision: fb8799b9a4f1b94c54a134dcc103f2616e3c9ba4
              classification: internal_refactor
              summary: "Pack canonical automaton keys"
              contract_effect: "Pack canonical automaton keys packs canonical automaton keys in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 811fb4a5414c23b93278e96fd05631a23502b43f
              classification: internal_refactor
              summary: "Reuse canonical LR items"
              contract_effect: "Reuse canonical LR items reuses canonical LR items in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/lalr/builder.rb."
            - revision: f0550e44be15e26bb05fa59a08bada27e1a5ebfa
              classification: internal_refactor
              summary: "Group canonical shifted kernels"
              contract_effect: "Group canonical shifted kernels groups canonical shifted kernels in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/lalr/builder.rb."
            - revision: ffbfe9765ccf4da14f2e79b0435e957b1bc5bdb5
              classification: no_semantic_change
              summary: "Version values-only generated actions"
              contract_effect: "Version values-only generated actions selects an action ABI from production context and location use independently of entry selection; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 9eeb1c953548d05e071194e3f59ef0d0f411576c
              classification: internal_refactor
              summary: "Drive compact pull parsers directly"
              contract_effect: "Drive compact pull parsers directly drives compact pull parsers directly in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 013761ebf4c645180d81391e2fbd144c7770b3fb
              classification: internal_refactor
              summary: "Encode compact parser actions as integers"
              contract_effect: "Encode compact parser actions as integers encodes compact parser actions as integers in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: fdc4d64ccf46f866d058e7861d0a1e6dae2c6745
              classification: internal_refactor
              summary: "Reduce compact parser overhead"
              contract_effect: "Reduce compact parser overhead reduces compact parser overhead in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: a76eb92ea3baf1c01447159e5f174758748373dd
              classification: internal_refactor
              summary: "Pack generated integer tables"
              contract_effect: "Pack generated integer tables packs generated integer tables in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: badd607b9d6d027fb5f8172c227ce3c89acc68c8
              classification: internal_refactor
              summary: "Avoid optional generator work"
              contract_effect: "Avoid optional generator work avoids optional generator work in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/lalr/builder.rb."
            - revision: fbb97aadffee300a8f3ee2fc6dc4d5a44dacddbe
              classification: internal_refactor
              summary: "Use signed compact action codes"
              contract_effect: "Use signed compact action codes uses signed compact action codes in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: d13f5c422fc83a5137375d74184f2aa1e087b26f
              classification: internal_refactor
              summary: "Specialize compact parser dispatch"
              contract_effect: "Specialize compact parser dispatch specializes compact parser dispatch in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 5633de6da189a29a05866c4a29b4f5298e45cea5
              classification: no_semantic_change
              summary: "Add the immutable Green syntax core"
              contract_effect: "Add the immutable Green syntax core adds the immutable Green syntax core for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 74e7f849a32d5af486117171a00e6bfe74f19632
              classification: no_semantic_change
              summary: "Add lazy Red syntax navigation"
              contract_effect: "Add lazy Red syntax navigation adds lazy Red syntax navigation for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 86f9a7face90cc15cc988c3da36925981bdc1513
              classification: no_semantic_change
              summary: "Integrate the Red Green CST runtime"
              contract_effect: "Integrate the Red Green CST runtime integrates the Red Green CST runtime for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 40771d64a0c4900afd1327e3b47552a5739b4cbb
              classification: no_semantic_change
              summary: "Generate typed syntax views from node metadata"
              contract_effect: "Generate typed syntax views from node metadata generates typed syntax views from node metadata for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 4a30d70329e60986282a6ed292a53be1310e5e2f
              classification: no_semantic_change
              summary: "Add persistent syntax editing and tree diffing"
              contract_effect: "Add persistent syntax editing and tree diffing adds persistent syntax editing and tree diffing for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 5da90340090232df0e4266cf6ddd835777ca00f7
              classification: no_semantic_change
              summary: "Add versioned concrete syntax serialization"
              contract_effect: "Add versioned concrete syntax serialization adds versioned concrete syntax serialization for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 0b33bac2d2a2e2bfdaa31f5721d34231f23ce23e
              classification: no_semantic_change
              summary: "Add syntax-only incremental parsing"
              contract_effect: "Add syntax-only incremental parsing adds syntax-only incremental parsing for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: ba5ee02b3afcb38a62618604faf6b77a53b1671e
              classification: internal_refactor
              summary: "Reuse validated syntax subtrees incrementally"
              contract_effect: "Reuse validated syntax subtrees incrementally reuses validated syntax subtrees incrementally in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 1be1a47400fb882a56ead8cef3d6e7a89db7f7d7
              classification: internal_refactor
              summary: "Optimize CST construction hot paths"
              contract_effect: "Optimize CST construction hot paths optimizes CST construction hot paths in shared implementation paths for multiple entries, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 9b783bf084c8dfb3528c9164c83dc56a6f2a530f
              classification: no_semantic_change
              summary: "Fix isolated gem packaging"
              contract_effect: "Fix isolated gem packaging fixes isolated gem packaging for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 55bb4570bbcf2690ebbd78c231facb456f205f1e
              classification: no_semantic_change
              summary: "Expose all CST trivia policies"
              contract_effect: "Expose all CST trivia policies exposes all CST trivia policies for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
          diff_paths:
            - lib/ibex/codegen/ruby.rb
            - lib/ibex/lalr/builder.rb
          rationale: The named semantic commits introduce the reviewed public multiple entries syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream multiple entries compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: 789d1ea5eece0fb2e4461a89398acc84ded93885
              classification: no_semantic_change
              summary: "Fix embedded generation from installed gems"
              contract_effect: "Fix embedded generation from installed gems fixes generic embedded runtime loading from installed gems without changing multi-entry generation or dispatch; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 06aad493f98b47126d61c92e7274765b7e6e7622
              classification: no_semantic_change
              summary: "Add analysis-only Bison grammar import"
              contract_effect: "Add analysis-only Bison grammar import adds analysis-only Bison grammar import for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 9c583e6fdd61a9c3e106f17231a32647360aa9be
              classification: no_semantic_change
              summary: "Close v1 safety and release gaps"
              contract_effect: "Close v1 safety and release gaps closes v1 safety and release gaps for an adjacent capability in shared audited paths; the multiple entries public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 354fd62c44a6ba3519376842cd4bbad1c910da80
              classification: no_semantic_change
              summary: "feat: profile parser construction costs"
              contract_effect: "feat: profile parser construction costs adds bounded construction measurements without changing multi-entry declarations, isolation, or generated dispatch; the multiple entries public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 32c6b2bb94f5ce4879136bf17d97bf1599be403f
              classification: no_semantic_change
              summary: "feat: add Grammar IR v3 parser contracts"
              contract_effect: "feat: add Grammar IR v3 parser contracts records the selected shared or isolated construction in versioned IR without changing entry states, generated entry methods, or dispatch; the multiple entries public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: c5fd7f6b49ea8a645e43b802587178dbea94447d
              classification: no_semantic_change
              summary: "fix: preserve stable IR constructor signatures"
              contract_effect: "fix: preserve stable IR constructor signatures routes version-3 construction through explicit factories without changing entry states, generated entry methods, or dispatch; the multiple entries public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 9cdd1a97e1ee5f6a6fb8da83295a1d42bd3e6c51
              classification: no_semantic_change
              summary: "feat: honor declared parser construction"
              contract_effect: "feat: honor declared parser construction applies declarative construction settings without changing multi-entry declarations, isolation, or generated dispatch; the multiple entries public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 4fbe791ceb10d89aff42b1344cf65906714c2b55
              classification: no_semantic_change
              summary: "Type code generation composition inputs"
              contract_effect: "Type code generation composition inputs updates type annotations and checked boundaries without changing the multiple-entries public contract; the public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: c025c452e6409fed91cd6ef0136d673f777acc44
              classification: no_semantic_change
              summary: "Type LALR build collections"
              contract_effect: "Type LALR build collections updates type annotations and checked boundaries without changing the multiple-entries public contract; the public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the multiple-entries public contract; the public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 0c8f379f6682edc637302bc17b9a81c6b7dc2a90
              classification: internal_refactor
              summary: "refactor: make grammar and automaton IR current-only"
              contract_effect: "refactor: make grammar and automaton IR current-only removes obsolete versioned IR compatibility branches while preserving the public contract for multiple-entries construction and dispatch. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
              classification: no_semantic_change
              summary: "feat: add experimental direct IELR construction"
              contract_effect: "feat: add experimental direct IELR construction adds an opt-in construction path without changing entry declarations, isolation, generated entry methods, or dispatch; the multiple entries public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
          diff_paths:
            - lib/ibex/codegen/ruby.rb
            - lib/ibex/lalr/builder.rb
          rationale: The exhaustive commit assessments find generic embedded-generation, adjacent Bison/release work, construction measurement, additive IR persistence, and a typed construction factory refactor; the public multiple-entry generation, dispatch, and isolation contract is unchanged.
          unresolved_uncertainty: This path review does not establish downstream multiple entries compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Source history does not establish multi-entry application lifecycle compatibility.]
      evidence: [docs/grammar-reference.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: "The exact open-issue query found no report, not proof that every entry interaction is correct." }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/test-interactions.md]
      gaps: [No multi-entry public application migration is documented.]
    dependent_tooling:
      status: present
      evidence: [test/codegen/multiple_start_test.rb, test/tooling/matrix_runner_test.rb]
      gaps: [The matrix is repository evidence and does not represent field lifecycle behavior.]
    limitations:
      performance: [Shared and isolated construction trade state reuse for isolation; no public_real comparison is published.]
      safety: [Entry isolation separates construction, not trusted parser action side effects.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Expose several parser entry points from one grammar with shared or isolated construction.
      value_classification: repository_only
      alternatives: [Generate and maintain one parser class per start symbol.]
      reason: Matrix coverage does not replace multi-entry field use, two unchanged releases, or the pending release gates.
      kill_condition: Remove shared multi-entry generation if no external grammar needs it or isolation cannot preserve independent behavior.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/codegen/multiple_start_test.rb]
    next_review:
      triggers: [Two releases complete without entry-semantics changes., A public_real multi-entry grammar is registered.]
      required_evidence: [Multi-entry external workload, full promotion matrix, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/codegen/ruby.rb, sha256: 933a156a39aa4dcbfe3396da0262054378ca3c73c7f651561b24347997fdd3dc }]

  - id: canonical-imports
    name: canonical imports
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: import-declarations
          availability: extended
          mechanism: "`pragma extended` or `--mode=extended`, a path-backed root, and `import` declarations"
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real workload uses Ibex imports; Bison inputs and the self-hosted single grammar are not import adoption.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: cf4fbd16fe614d48bcdb93092399352fc7917f95, path: lib/ibex/frontend/resolver.rb, query: "class Resolver", summary: Canonical imports entered in Add canonical grammar fragment includes. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/frontend/resolver.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: 2d19110ae2191f758b5ecf970ff8c8592de0609f9c0de81b5e53d82afeaf19fd
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/frontend/resolver.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 2146bc5fe8a3e676508e4a34d966ced6f9845d7733917c701e6b27e1ea3c569f
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/frontend/resolver.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 678046aa801cda0db101209d561f6615e6d1f6577d1cac83df414e7afb5d935d
      changes:
        - boundary: introduction..v0.2.0
          from_revision: eb257df8410aa86aa230bb157bf6d82a01d33fcd
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: cf4fbd16fe614d48bcdb93092399352fc7917f95
              classification: semantic_change
              summary: "Add canonical grammar fragment includes"
              contract_effect: "Add canonical grammar fragment includes adds canonical grammar fragment includes for canonical imports; the audited diff changes the public import syntax or source-resolution behavior. Evidence: lib/ibex/frontend/resolver.rb."
            - revision: 5b8151385c491366deb41c930a1132599edfb9e9
              classification: semantic_change
              summary: "Add overlay-aware grammar language server"
              contract_effect: "Add overlay-aware grammar language server adds overlay-aware grammar language server for canonical imports; the audited diff changes the public import syntax or source-resolution behavior. Evidence: lib/ibex/frontend/resolver.rb."
            - revision: 570d857f582cb61ac60840210b22a86db086cc51
              classification: semantic_change
              summary: "Add transactional generation and watch mode"
              contract_effect: "Add transactional generation and watch mode adds transactional generation and watch mode for canonical imports; the audited diff changes the public import syntax or source-resolution behavior. Evidence: lib/ibex/frontend/resolver.rb."
            - revision: af3f23e6c3fd6d9a19ce9a84c5a4655f6761a49d
              classification: semantic_change
              summary: "Add multiple parser entry points"
              contract_effect: "Add multiple parser entry points adds multiple parser entry points for canonical imports; the audited diff changes the public import syntax or source-resolution behavior. Evidence: lib/ibex/frontend/resolver.rb."
            - revision: 7bbab102d981df3c3efffba0bdab301ea4939293
              classification: semantic_change
              summary: "Build error-tolerant concrete trees"
              contract_effect: "Build error-tolerant concrete trees builds error-tolerant concrete trees for canonical imports; the audited diff changes the public import syntax or source-resolution behavior. Evidence: lib/ibex/frontend/resolver.rb."
            - revision: 97fce7fa2476bc7ecd399c7bf30d765420dfc39a
              classification: semantic_change
              summary: "Rename the standard grammar mode to default"
              contract_effect: "Rename the standard grammar mode to default renames the standard grammar mode to default for canonical imports; the audited diff changes the public import syntax or source-resolution behavior. Evidence: lib/ibex/frontend/resolver.rb."
          diff_paths:
            - lib/ibex/frontend/resolver.rb
          rationale: The named semantic commits introduce the reviewed public canonical imports syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream canonical imports compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: f63742a4e7296b45d9ae071bb7bcd55c06edd414
              classification: no_semantic_change
              summary: "fix: preserve grammar mode provenance"
              contract_effect: "fix: preserve grammar mode provenance carries the root pragma location through resolution for configuration reporting without changing import graph traversal, containment, or composition semantics; the canonical imports public contract remains unchanged. Evidence: lib/ibex/frontend/resolver.rb."
          diff_paths:
            - lib/ibex/frontend/resolver.rb
          rationale: The exact path-limited Git review inspected one pragma-provenance metadata commit; it preserves the public canonical imports syntax, API, behavior, and contract.
          unresolved_uncertainty: This path review does not establish downstream canonical imports compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Repository history does not establish cross-host field portability.]
      evidence: [docs/decisions/0005-contained-grammar-composition.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; filesystem boundary defects may be unreported. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/architecture.md]
      gaps: [No multi-file public grammar migration or portability report exists.]
    dependent_tooling:
      status: present
      evidence: [test/frontend/resolver_test.rb, test/frontend/resolver_security_test.rb]
      gaps: [Tests cover repository fixtures, not hostile external project layouts across supported hosts.]
    limitations:
      performance: [Every resolution hashes and parses a contained graph; no public_real graph-size profile is published.]
      safety: [Containment rejects escapes and aliases but still reads explicitly imported local files from a trusted project.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Compose a large grammar from contained files without textual pre-processing.
      value_classification: repository_only
      alternatives: [Concatenate or generate a single grammar source before invoking Ibex.]
      reason: Resolver security and transaction tests do not demonstrate portable multi-file field use or released specification stability.
      kill_condition: Remove imports if containment cannot be portable or no public multi-file grammar adopts them.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/frontend/resolver_security_test.rb]
    next_review:
      triggers: [Two releases complete without import-contract changes., A public multi-file grammar is registered and reproduced.]
      required_evidence: [External multi-file workload, cross-host evidence, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/frontend/resolver.rb, sha256: 2d4d8d481a0d7bfacc068869d88564f4673a79b458b4e7debbcdc24b8fe53de3 }]

  - id: generated-lexers
    name: generated lexers
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: lexer-declarations
          availability: extended
          mechanism: "`pragma extended` or `--mode=extended` with a `lexer` declaration block"
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: [gallery-calc, gallery-json, gallery-sql-lite]
      evidence: [docs/workloads.yml]
      summary: The three cited users are repository_synthetic gallery fixtures; they support tests but not external adoption.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: d8ee14f8b80a1acc4bf27b15d52b1c3517aed5b5, path: lib/ibex/runtime/generated_lexer.rb, query: "module GeneratedLexer", summary: Generated lexers entered in Generate stateful streaming lexers. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/runtime/generated_lexer.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: 328671d74028c9c76f2d64016c3896d3eafe50aede2a9b9731ed3f48101259bc
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/runtime/generated_lexer.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: f7f21704a0bd536f0c144a08dcd1f5df629385c6a2842fc74b81f548e33f4177
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/runtime/generated_lexer.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 482f7ba6b11471f1707bca53a2accf2e253518202794cd2a8df4639342778488
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 04dd9773f522cd76bbf3c6678b66f0ee3e9142f1
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: d8ee14f8b80a1acc4bf27b15d52b1c3517aed5b5
              classification: semantic_change
              summary: "Generate stateful streaming lexers"
              contract_effect: "Generate stateful streaming lexers generates stateful streaming lexers for generated lexers; the audited diff changes the public generated-lexer output, API, or runtime behavior. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: 7bbab102d981df3c3efffba0bdab301ea4939293
              classification: semantic_change
              summary: "Build error-tolerant concrete trees"
              contract_effect: "Build error-tolerant concrete trees builds error-tolerant concrete trees for generated lexers; the audited diff changes the public generated-lexer output, API, or runtime behavior. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: 86f9a7face90cc15cc988c3da36925981bdc1513
              classification: semantic_change
              summary: "Integrate the Red Green CST runtime"
              contract_effect: "Integrate the Red Green CST runtime integrates the Red Green CST runtime for generated lexers; the audited diff changes the public generated-lexer output, API, or runtime behavior. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: 0b33bac2d2a2e2bfdaa31f5721d34231f23ce23e
              classification: semantic_change
              summary: "Add syntax-only incremental parsing"
              contract_effect: "Add syntax-only incremental parsing adds syntax-only incremental parsing for generated lexers; the audited diff changes the public generated-lexer output, API, or runtime behavior. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: ba5ee02b3afcb38a62618604faf6b77a53b1671e
              classification: semantic_change
              summary: "Reuse validated syntax subtrees incrementally"
              contract_effect: "Reuse validated syntax subtrees incrementally reuses validated syntax subtrees incrementally for generated lexers; the audited diff changes the public generated-lexer output, API, or runtime behavior. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: f3cb3826efa6bfcdb7c7ef11494a9d43c47af352
              classification: semantic_change
              summary: "Harden CST fidelity and runtime contracts"
              contract_effect: "Harden CST fidelity and runtime contracts hardens CST fidelity and runtime contracts for generated lexers; the audited diff changes the public generated-lexer output, API, or runtime behavior. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: 1be1a47400fb882a56ead8cef3d6e7a89db7f7d7
              classification: internal_refactor
              summary: "Optimize CST construction hot paths"
              contract_effect: "Optimize CST construction hot paths optimizes CST construction hot paths in shared implementation paths for generated lexers, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: c6722bd9cb90e24a81786411e300edd6196619b7
              classification: no_semantic_change
              summary: "Remove legacy CST runtime"
              contract_effect: "Remove legacy CST runtime removes legacy CST branches while ordinary generated-lexer tokenization and current Red/Green behavior stay the same; the generated lexers public contract remains unchanged. Evidence: lib/ibex/runtime/generated_lexer.rb."
          diff_paths:
            - lib/ibex/runtime/generated_lexer.rb
          rationale: The named semantic commits introduce the reviewed public generated lexers syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream generated lexers compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: 55d19ab8e6b182b970e080a27073d8f4de2d4287
              classification: docs_test_only
              summary: "docs: define generated parser trust boundaries"
              contract_effect: "docs: define generated parser trust boundaries records documentation or test guidance in shared audited paths for generated lexers; executable behavior remains unchanged. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: 86dad0e7f7795440cd66fdedb4fbcadd702d92ff
              classification: no_semantic_change
              summary: "Strengthen runtime type contracts"
              contract_effect: "Strengthen runtime type contracts updates type annotations and checked boundaries without changing the generated-lexers public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: 858d8f7a3232dc609ceda3685bb7ded85691479f
              classification: no_semantic_change
              summary: "Preserve audited source contracts"
              contract_effect: "Preserve audited source contracts updates type annotations and checked boundaries without changing the generated-lexers public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: c89008a546f95f7c30a5ded4684288b179599d94
              classification: no_semantic_change
              summary: "Type generated lexer values"
              contract_effect: "Type generated lexer values updates type annotations and checked boundaries without changing the generated-lexers public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: d9a7d1f4fb7718409a0fc40f65a27608718099b1
              classification: no_semantic_change
              summary: "Type parser and lexer value boundaries"
              contract_effect: "Type parser and lexer value boundaries updates type annotations and checked boundaries without changing the generated-lexers public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/generated_lexer.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the generated-lexers public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/generated_lexer.rb."
          diff_paths:
            - lib/ibex/runtime/generated_lexer.rb
          rationale: The exact path-limited Git review inspected 1 commits; their changes do not alter the public generated lexers syntax, API, or behavior represented by this inventory row.
          unresolved_uncertainty: This path review does not establish downstream generated lexers compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Versioned source history does not establish third-party stateful lexer compatibility.]
      evidence: [docs/decisions/0014-versioned-generated-lexer.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report and does not cover unreported stateful-lexer defects. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/lexer-migration.md]
      gaps: [No public_real stateful-lexer adoption or compatibility history is published.]
    dependent_tooling:
      status: present
      evidence: [test/codegen/lexer_test.rb, test/frontend/lexer_test.rb]
      gaps: [Gallery coverage is synthetic and cannot establish third-party lexer semantics.]
    limitations:
      performance: [Regex matching and state transitions have no representative public_real throughput or memory baseline.]
      safety: [Generated lexer actions execute trusted Ruby even on syntax-only parsing paths.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Generate a stateful streaming lexer together with parser tables from one grammar definition.
      value_classification: repository_synthetic
      alternatives: [Supply a handwritten lexer through the stable pull or token-fed runtime APIs.]
      reason: Versioned IR and adversarial regex tests cannot substitute for stateful external field use or exact release evidence.
      kill_condition: Remove generated lexer declarations if stateful external use does not appear or regex safety cannot remain bounded.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/codegen/lexer_test.rb]
    next_review:
      triggers: [Two releases complete without lexer specification changes., A public_real stateful lexer is registered.]
      required_evidence: [External lexer workload, safety review, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/runtime/generated_lexer.rb, sha256: f2a798d9f45ced3a6dba12a9473b40fb0b904e2f8f3e0875ee88b49a4daf0f55 }]

  - id: semantic-locations-types
    name: semantic locations/types
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: semantic-locations
          availability: compatible
          mechanism: Compatible/default grammar actions may consume lexer locations through `@N`, `@$`, `loc`, and `result_loc`.
          default_enabled: true
        - id: semantic-type-declarations
          availability: extended
          mechanism: Extended grammar `type SYMBOL "RBS type"` declarations feed generated signatures.
          default_enabled: false
      stable_overlap:
        surface_ids: [semantic-locations]
        governing_maturity: stable
        breaking_policy: stable_compatibility_lock
        guarantee: Compatible semantic-location behavior is governed by the Stable compatibility contract; only extended semantic type declarations remain a separable Preview surface.
        separable_preview_activation: semantic-type-declarations
    external_use:
      status: not_demonstrated
      workload_ids: [bison-jq-parser, bison-postgresql-parser, bison-ruby-bison-era]
      evidence: [docs/workloads.yml]
      summary: The cited external_real sources contain analogous declarations but are diagnostic imports, not Ibex runtime adoption.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 1418a5a36c6fdeb5370a7cc2dc4ad62de2317656, path: lib/ibex/frontend/generated_parser_metadata.rb, query: build_semantic_type, summary: Type declarations entered first in Add typed diagnostics and parser tooling; compatible location APIs followed before v0.2.0. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: partial
            present_paths:
              - lib/ibex/codegen/rbs.rb
              - lib/ibex/codegen/ruby.rb
              - lib/ibex/runtime/parser.rb
            absent_paths:
              - lib/ibex/frontend/generated_parser_metadata.rb
            rationale: Pre-existing or shared canonical paths are explicit and do not prove that the absent feature exists.
          source_tree_sha256: 1548e7c5ced3c012ceae6ac3ef283b33fa65421f5303daeccf69947cc2914b51
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/codegen/rbs.rb
              - lib/ibex/codegen/ruby.rb
              - lib/ibex/frontend/generated_parser_metadata.rb
              - lib/ibex/runtime/parser.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 3f06fbb519913e0f96033da484dbeefc2490b4756aa8d450013c511720e89bde
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/codegen/rbs.rb
              - lib/ibex/codegen/ruby.rb
              - lib/ibex/frontend/generated_parser_metadata.rb
              - lib/ibex/runtime/parser.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: ecdf1743e5be9b108f692c678459afa95f2b7d539f6910e0508ab657d35bb5ad
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 3b763cc9f7a79618816db029de4e5d14339796f0
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 1418a5a36c6fdeb5370a7cc2dc4ad62de2317656
              classification: semantic_change
              summary: "Add typed diagnostics and parser tooling"
              contract_effect: "Add typed diagnostics and parser tooling adds typed diagnostics and parser tooling for semantic locations/types; the audited diff changes the public semantic-location/type API, generated output, or runtime behavior. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 104a8b19b007201366e25ea13e17b5b8a85076e9
              classification: semantic_change
              summary: "Add semantic action locations"
              contract_effect: "Add semantic action locations adds semantic action locations for semantic locations/types; the audited diff changes the public semantic-location/type API, generated output, or runtime behavior. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 978465d7996f3610e674da76718f9b2eb118f2dd
              classification: semantic_change
              summary: "Harden semantic location contracts"
              contract_effect: "Harden semantic location contracts hardens semantic location contracts for semantic locations/types; the audited diff changes the public semantic-location/type API, generated output, or runtime behavior. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 04ded745a43e364bcb8b07f1306a0731223a32ab
              classification: semantic_change
              summary: "Version semantic location action tables"
              contract_effect: "Version semantic location action tables versions semantic location action tables for semantic locations/types; the audited diff changes the public semantic-location/type API, generated output, or runtime behavior. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 51234f2acc5080981c399f3821fe61d07f4b38af
              classification: semantic_change
              summary: "Add bounded inline rule expansion"
              contract_effect: "Add bounded inline rule expansion adds bounded inline rule expansion for semantic locations/types; the audited diff changes the public semantic-location/type API, generated output, or runtime behavior. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 3187b74d3933259a1a44deee8ed90aabf61a2efb
              classification: semantic_change
              summary: "Add static semantic action checking"
              contract_effect: "Add static semantic action checking adds static semantic action checking for semantic locations/types; the audited diff changes the public semantic-location/type API, generated output, or runtime behavior. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 4e53ffb911d712a55c2465b57da6fd2a5332889c
              classification: no_semantic_change
              summary: "Add stable immutable runtime events"
              contract_effect: "Add stable immutable runtime events adds stable immutable runtime events for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: df8ac82c0ed0c8862190ac88671949f0d5e8a001
              classification: no_semantic_change
              summary: "Add bounded runtime token repair"
              contract_effect: "Add bounded runtime token repair adds bounded runtime token repair for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: bb8c9a741c96ee4b53b8b63290f988a623d32aa0
              classification: semantic_change
              summary: "Add lazy semantic location APIs"
              contract_effect: "Add lazy semantic location APIs adds lazy semantic location APIs for semantic locations/types; the audited diff changes the public semantic-location/type API, generated output, or runtime behavior. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: e170cee79243d0aa975be3e107cd95cd7cc8baf0
              classification: no_semantic_change
              summary: "Add declarative parser parameters"
              contract_effect: "Add declarative parser parameters adds declarative parser parameters for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: ee83cf3f06e1b4f7d7c1ece292d43fd7844ee3aa
              classification: no_semantic_change
              summary: "Add declarative debug value printers"
              contract_effect: "Add declarative debug value printers adds declarative debug value printers for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 24c7d97c2dc9f6fc9e90cef618cec56f1e5a6a9a
              classification: no_semantic_change
              summary: "Add exact lookahead correction"
              contract_effect: "Add exact lookahead correction adds exact lookahead correction for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: af3f23e6c3fd6d9a19ce9a84c5a4655f6761a49d
              classification: no_semantic_change
              summary: "Add multiple parser entry points"
              contract_effect: "Add multiple parser entry points adds multiple parser entry points for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 050206fbc9f9d25d16e4a89a1b744caf1bfed87f
              classification: no_semantic_change
              summary: "Add stable example keyed error messages"
              contract_effect: "Add stable example keyed error messages adds stable example keyed error messages for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: d589970fa588fd6a0464e6396fe2da668431aec4
              classification: no_semantic_change
              summary: "Add declarative parser recovery policies"
              contract_effect: "Add declarative parser recovery policies adds declarative parser recovery policies for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: d8ee14f8b80a1acc4bf27b15d52b1c3517aed5b5
              classification: no_semantic_change
              summary: "Generate stateful streaming lexers"
              contract_effect: "Generate stateful streaming lexers generates stateful streaming lexers for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 7bbab102d981df3c3efffba0bdab301ea4939293
              classification: no_semantic_change
              summary: "Build error-tolerant concrete trees"
              contract_effect: "Build error-tolerant concrete trees builds error-tolerant concrete trees for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: c7117a5acaa51b501b8de20b75bbac4e3675ec35
              classification: no_semantic_change
              summary: "Generate typed data syntax trees"
              contract_effect: "Generate typed data syntax trees generates typed data syntax trees for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: d606ca436f11ac98e0a0bd3ab60363b30f7ac1ae
              classification: no_semantic_change
              summary: "Bound and isolate parser sessions"
              contract_effect: "Bound and isolate parser sessions adds parser-wide resource budgets without changing location tracking, semantic type metadata, or action signatures; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 14a35ebf10274e8ff0edab9d830068a7024f8123
              classification: internal_refactor
              summary: "Split the parser runtime package"
              contract_effect: "Split the parser runtime package splits the parser runtime package in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 7226fb9d2e3c70536d33b16511a110477f881761
              classification: no_semantic_change
              summary: "Support legacy parser session setup"
              contract_effect: "Support legacy parser session setup lazily initializes generic legacy parser state but leaves location accessors and generated type output unchanged; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: f391869d0d835e59613f2b2d6c899f45a49d7fc6
              classification: no_semantic_change
              summary: "Expose parser rejection errors"
              contract_effect: "Expose parser rejection errors aliases the generic ParseError class on Parser without changing location values, type declarations, or action contracts; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 7e74c7a5adaf01207b17c3b15fc6564a8fca64a7
              classification: no_semantic_change
              summary: "Stabilize legacy Ruby compatibility"
              contract_effect: "Stabilize legacy Ruby compatibility adds runtime version code to embedded output without changing semantic location or type generation; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: fd29b7f8171cf1cdd7936b430d86bfa64b060c1e
              classification: internal_refactor
              summary: "Avoid dormant debug trace allocations"
              contract_effect: "Avoid dormant debug trace allocations avoids dormant debug trace allocations in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 3017150fbc2264b17a576283dfab355d2dd4da56
              classification: internal_refactor
              summary: "Reuse immutable parser control outcomes"
              contract_effect: "Reuse immutable parser control outcomes reuses immutable parser control outcomes in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: d66277258e6e1a0b125388cfe20709f2d2bc4db7
              classification: internal_refactor
              summary: "Cache parser tables per parsing session"
              contract_effect: "Cache parser tables per parsing session caches parser tables per parsing session in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: d41acedf7037e146510cf7fa2b581f840a5450b3
              classification: internal_refactor
              summary: "Avoid discarded reduction pop arrays"
              contract_effect: "Avoid discarded reduction pop arrays avoids discarded reduction pop arrays in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 7dba2ac14757c9104d57907f503c8bdf01174262
              classification: no_semantic_change
              summary: "Bound malformed reduction stack pops"
              contract_effect: "Bound malformed reduction stack pops preserves native errors for malformed negative production lengths; valid generated location tables are unaffected and the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 1820348eb8c0b691dd57b5cc9fc5d2a7c8d60716
              classification: no_semantic_change
              summary: "Preserve coerced reduction lengths"
              contract_effect: "Preserve coerced reduction lengths preserves native coercion errors for invalid production lengths; valid location-aware tables are unaffected and the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 365404b8935b8e4c1dab840dec7159b2e5935cac
              classification: internal_refactor
              summary: "Avoid semantic action argument arrays"
              contract_effect: "Avoid semantic action argument arrays avoids semantic action argument arrays in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 669ef003125b6b0db8e39a525093442ffbb06b6b
              classification: no_semantic_change
              summary: "Add eligibility-gated runtime fast path"
              contract_effect: "Add eligibility-gated runtime fast path adds eligibility-gated runtime fast path for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: cf073f767aa4dfefaaf370bc10a5927257b92364
              classification: no_semantic_change
              summary: "Preserve fast-path recovery diagnostics"
              contract_effect: "Preserve fast-path recovery diagnostics changes recovery only on the compact fast path, which requires uses_locations to be false; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: c81618b1a951a9e1b0b1b8101d2ea0e7cd5dcad1
              classification: no_semantic_change
              summary: "Harden runtime fast-path eligibility"
              contract_effect: "Harden runtime fast-path eligibility hardens runtime fast-path eligibility for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: c7c48548cab5591f10dda9e4ee2247f011ccf267
              classification: no_semantic_change
              summary: "Honor overridden parser control flags"
              contract_effect: "Honor overridden parser control flags invalidates only the compact fast path, which is disabled when uses_locations is true; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: ad64016fb9873cad399f7e86b943f67feb9afb5a
              classification: internal_refactor
              summary: "Avoid repeated fast-path method lookup"
              contract_effect: "Avoid repeated fast-path method lookup avoids repeated fast-path method lookup in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: fcf28445211e7136042545006294d6d3995026da
              classification: no_semantic_change
              summary: "Harden fast-path invalidation boundaries"
              contract_effect: "Harden fast-path invalidation boundaries hardens fast-path hook invalidation, but location-enabled tables fail the !uses_locations eligibility guard; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: ffbfe9765ccf4da14f2e79b0435e957b1bc5bdb5
              classification: semantic_change
              summary: "Version values-only generated actions"
              contract_effect: "Version values-only generated actions versions values-only generated actions for semantic locations/types; the audited diff changes the public semantic-location/type API, generated output, or runtime behavior. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: b593792b47760c3d09fa73e412a11293600d77c4
              classification: internal_refactor
              summary: "Cache immutable parser table validation"
              contract_effect: "Cache immutable parser table validation caches immutable parser table validation in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 9eeb1c953548d05e071194e3f59ef0d0f411576c
              classification: internal_refactor
              summary: "Drive compact pull parsers directly"
              contract_effect: "Drive compact pull parsers directly drives compact pull parsers directly in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 013761ebf4c645180d81391e2fbd144c7770b3fb
              classification: internal_refactor
              summary: "Encode compact parser actions as integers"
              contract_effect: "Encode compact parser actions as integers encodes compact parser actions as integers in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: fdc4d64ccf46f866d058e7861d0a1e6dae2c6745
              classification: internal_refactor
              summary: "Reduce compact parser overhead"
              contract_effect: "Reduce compact parser overhead reduces compact parser overhead in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: a76eb92ea3baf1c01447159e5f174758748373dd
              classification: internal_refactor
              summary: "Pack generated integer tables"
              contract_effect: "Pack generated integer tables packs generated integer tables in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: f9475685ad8a2ae9e3e2efc40c4e48afbd669d42
              classification: internal_refactor
              summary: "Trim direct pull parser boundaries"
              contract_effect: "Trim direct pull parser boundaries trims direct pull parser boundaries in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: b150c7d9ebf2283179461c9075b96789e1b8c4e1
              classification: internal_refactor
              summary: "Reuse parser session scratch arrays"
              contract_effect: "Reuse parser session scratch arrays reuses parser session scratch arrays in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: fbb97aadffee300a8f3ee2fc6dc4d5a44dacddbe
              classification: internal_refactor
              summary: "Use signed compact action codes"
              contract_effect: "Use signed compact action codes uses signed compact action codes in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: a4b17a114070a6d6447a7c62a9594d494b25b372
              classification: internal_refactor
              summary: "Read compact production columns directly"
              contract_effect: "Read compact production columns directly reads compact production columns directly in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: d13f5c422fc83a5137375d74184f2aa1e087b26f
              classification: internal_refactor
              summary: "Specialize compact parser dispatch"
              contract_effect: "Specialize compact parser dispatch specializes compact parser dispatch in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 429389ca04861fff104c4bf64e449c9266caa181
              classification: semantic_change
              summary: "Restore cross-Ruby runtime compatibility"
              contract_effect: "Restore cross-Ruby runtime compatibility restores cross-Ruby runtime compatibility for semantic locations/types; the audited diff changes the public semantic-location/type API, generated output, or runtime behavior. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 5633de6da189a29a05866c4a29b4f5298e45cea5
              classification: no_semantic_change
              summary: "Add the immutable Green syntax core"
              contract_effect: "Add the immutable Green syntax core adds the immutable Green syntax core for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 74e7f849a32d5af486117171a00e6bfe74f19632
              classification: no_semantic_change
              summary: "Add lazy Red syntax navigation"
              contract_effect: "Add lazy Red syntax navigation adds lazy Red syntax navigation for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 86f9a7face90cc15cc988c3da36925981bdc1513
              classification: no_semantic_change
              summary: "Integrate the Red Green CST runtime"
              contract_effect: "Integrate the Red Green CST runtime integrates the Red Green CST runtime for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 40771d64a0c4900afd1327e3b47552a5739b4cbb
              classification: no_semantic_change
              summary: "Generate typed syntax views from node metadata"
              contract_effect: "Generate typed syntax views from node metadata generates typed syntax views from node metadata for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 4a30d70329e60986282a6ed292a53be1310e5e2f
              classification: no_semantic_change
              summary: "Add persistent syntax editing and tree diffing"
              contract_effect: "Add persistent syntax editing and tree diffing adds persistent syntax editing and tree diffing for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 5da90340090232df0e4266cf6ddd835777ca00f7
              classification: no_semantic_change
              summary: "Add versioned concrete syntax serialization"
              contract_effect: "Add versioned concrete syntax serialization adds versioned concrete syntax serialization for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 0b33bac2d2a2e2bfdaa31f5721d34231f23ce23e
              classification: no_semantic_change
              summary: "Add syntax-only incremental parsing"
              contract_effect: "Add syntax-only incremental parsing adds syntax-only incremental parsing for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: ba5ee02b3afcb38a62618604faf6b77a53b1671e
              classification: internal_refactor
              summary: "Reuse validated syntax subtrees incrementally"
              contract_effect: "Reuse validated syntax subtrees incrementally reuses validated syntax subtrees incrementally in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 5799152a6403f61af8674a1b9b4a03526dd287fe
              classification: no_semantic_change
              summary: "Finish Red Green CST rollout"
              contract_effect: "Finish Red Green CST rollout finishes Red Green CST rollout for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: f3cb3826efa6bfcdb7c7ef11494a9d43c47af352
              classification: no_semantic_change
              summary: "Harden CST fidelity and runtime contracts"
              contract_effect: "Harden CST fidelity and runtime contracts changes CST lexical-error and repair-tree fidelity behind cst_enabled? without changing location accessors or type output; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 1be1a47400fb882a56ead8cef3d6e7a89db7f7d7
              classification: internal_refactor
              summary: "Optimize CST construction hot paths"
              contract_effect: "Optimize CST construction hot paths optimizes CST construction hot paths in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 9b783bf084c8dfb3528c9164c83dc56a6f2a530f
              classification: no_semantic_change
              summary: "Fix isolated gem packaging"
              contract_effect: "Fix isolated gem packaging fixes isolated gem packaging for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: c6722bd9cb90e24a81786411e300edd6196619b7
              classification: no_semantic_change
              summary: "Remove legacy CST runtime"
              contract_effect: "Remove legacy CST runtime removes legacy CST runtime for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 55bb4570bbcf2690ebbd78c231facb456f205f1e
              classification: no_semantic_change
              summary: "Expose all CST trivia policies"
              contract_effect: "Expose all CST trivia policies exposes all CST trivia policies for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
          diff_paths:
            - lib/ibex/codegen/rbs.rb
            - lib/ibex/codegen/ruby.rb
            - lib/ibex/frontend/generated_parser_metadata.rb
            - lib/ibex/runtime/parser.rb
          rationale: The named semantic commits introduce the reviewed public semantic locations/types syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream semantic locations/types compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: 021994f6342c2795d19ee90e58fbf7386ef5fa95
              classification: internal_refactor
              summary: "Fix TruffleRuby fast-path tracker recursion"
              contract_effect: "Fix TruffleRuby fast-path tracker recursion fixes recursion in fast-path mutation tracking, while location tables fail the !uses_locations guard and incremental CST fails the !cst guard, preserving the public contract. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 789d1ea5eece0fb2e4461a89398acc84ded93885
              classification: no_semantic_change
              summary: "Fix embedded generation from installed gems"
              contract_effect: "Fix embedded generation from installed gems fixes embedded generation from installed gems for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 06aad493f98b47126d61c92e7274765b7e6e7622
              classification: no_semantic_change
              summary: "Add analysis-only Bison grammar import"
              contract_effect: "Add analysis-only Bison grammar import adds analysis-only Bison grammar import for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 9c583e6fdd61a9c3e106f17231a32647360aa9be
              classification: no_semantic_change
              summary: "Close v1 safety and release gaps"
              contract_effect: "Close v1 safety and release gaps closes v1 safety and release gaps for an adjacent capability in shared audited paths; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: c03e842b7147ef9b19e38b95ac127d6e87c1a9b6
              classification: internal_refactor
              summary: "Avoid dormant CST parser state"
              contract_effect: "Avoid dormant CST parser state avoids dormant CST parser state in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 74645fc16e2606b120dee313be714a9be5b8acef
              classification: internal_refactor
              summary: "Keep dormant CST state signature-neutral"
              contract_effect: "Keep dormant CST state signature-neutral keeps dormant CST state signature-neutral in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 984d4ae7a1c96db4c71e3077669842b7bbc3b4ea
              classification: internal_refactor
              summary: "Reuse shareable runtime hook lookups"
              contract_effect: "Reuse shareable runtime hook lookups reuses shareable runtime hook lookups in shared implementation paths for semantic locations/types, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 1e332a694abbc0b520af97d8a205dc8b8d311360
              classification: internal_refactor
              summary: "Fix runtime caches across Ruby engines"
              contract_effect: "Fix runtime caches across Ruby engines adjusts fast-path caches across Ruby engines, while uses_locations disables that path, preserving the public contract. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 643365686f7a04578b5794a73b8e64028e497f7e
              classification: internal_refactor
              summary: "Limit runtime lookup caches to MRI"
              contract_effect: "Limit runtime lookup caches to MRI limits fast-path lookup caches to MRI, while uses_locations disables that path, preserving the public contract. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 55d19ab8e6b182b970e080a27073d8f4de2d4287
              classification: docs_test_only
              summary: "docs: define generated parser trust boundaries"
              contract_effect: "docs: define generated parser trust boundaries records documentation or test guidance in shared audited paths for semantic locations/types; executable behavior remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: a9808e0cc848b3f337c6ca57ed0b6852f30379fc
              classification: docs_test_only
              summary: "docs: distinguish semantic input trust paths"
              contract_effect: "docs: distinguish semantic input trust paths records documentation or test guidance in shared audited paths for semantic locations/types; executable behavior remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: c05888c71781ecd20a938e8d135248450467f8db
              classification: no_semantic_change
              summary: "feat: add generated syntax sessions"
              contract_effect: "feat: add generated syntax sessions adds an adjacent syntax-only service entry point without changing semantic location values, type declarations, or action signatures; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: fde47e3a1c2f66b42f419e4e9f58438dff4c2269
              classification: no_semantic_change
              summary: "fix: preserve stable parser signatures"
              contract_effect: "fix: preserve stable parser signatures moves syntax-session RBS declarations to an additive overlay without changing semantic location values, type declarations, generated callable types, or parser behavior; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 5d3895e7b9d7cf88760063fee3afc9b56a9ad66f
              classification: no_semantic_change
              summary: "feat: add syntax-only repair results and contract validation"
              contract_effect: "feat: add syntax-only repair results and contract validation adds syntax-only repair result validation and bounded recovery plumbing without changing semantic location values, type declarations, generated callable types, or parser behavior; the semantic locations/types public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: a3d1331fd54698eb111200299f573ec1d3d25cfa
              classification: internal_refactor
              summary: "quality: isolate repair helpers from stable signatures"
              contract_effect: "quality: isolate repair helpers from stable signatures relocates private repair helper signature ownership while preserving the public contract and without changing semantic location values, type declarations, generated callable types, or parser behavior. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 86dad0e7f7795440cd66fdedb4fbcadd702d92ff
              classification: no_semantic_change
              summary: "Strengthen runtime type contracts"
              contract_effect: "Strengthen runtime type contracts updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 856f78d4d97d97af2b503c394d6ec65444617a5f
              classification: no_semantic_change
              summary: "Fix typed runtime table boundaries"
              contract_effect: "Fix typed runtime table boundaries updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 858d8f7a3232dc609ceda3685bb7ded85691479f
              classification: no_semantic_change
              summary: "Preserve audited source contracts"
              contract_effect: "Preserve audited source contracts updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 468e49a38f9ef0897c98ea9f498c5020e38a47e4
              classification: no_semantic_change
              summary: "Type generated parser signature metadata"
              contract_effect: "Type generated parser signature metadata updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/codegen/rbs.rb."
            - revision: 4fbe791ceb10d89aff42b1344cf65906714c2b55
              classification: no_semantic_change
              summary: "Type code generation composition inputs"
              contract_effect: "Type code generation composition inputs updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: 9f4b94c276563fe0e1adfae5ff7d10c773080937
              classification: no_semantic_change
              summary: "Type parser runtime state"
              contract_effect: "Type parser runtime state updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 5f833b5cedbf2005c840fb642d3857aa1a5d6fb9
              classification: no_semantic_change
              summary: "Type parser semantic callbacks"
              contract_effect: "Type parser semantic callbacks updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: d9a7d1f4fb7718409a0fc40f65a27608718099b1
              classification: no_semantic_change
              summary: "Type parser and lexer value boundaries"
              contract_effect: "Type parser and lexer value boundaries updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 906d9b602953432b47bdb2557daa4b9c1f43460f
              classification: no_semantic_change
              summary: "Type parser recovery value boundaries"
              contract_effect: "Type parser recovery value boundaries updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/codegen/ruby.rb."
            - revision: ec18c6e64731eb2997756a5a585dc74e2356b8fe
              classification: no_semantic_change
              summary: "Clarify typed boundary annotations"
              contract_effect: "Clarify typed boundary annotations updates type annotations and checked boundaries without changing the semantic-locations-types public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 962292965894cbd1b284680886ea6d7ccc176d88
              classification: internal_refactor
              summary: "Retire pre-v1 parser table compatibility"
              contract_effect: "Retire pre-v1 parser table compatibility removes dormant pre-v1 parser table and action-encoding branches while preserving the public contract for semantic locations/types. Evidence: lib/ibex/runtime/parser.rb."
            - revision: ddd7c444202a46e38dd879bd9c1670218651416d
              classification: internal_refactor
              summary: "Polish current parser contract diagnostics"
              contract_effect: "Polish current parser contract diagnostics reformats current parser contract diagnostics in lib/ibex/runtime/parser.rb while preserving the public contract for semantic locations/types."
          diff_paths:
            - lib/ibex/codegen/rbs.rb
            - lib/ibex/codegen/ruby.rb
            - lib/ibex/frontend/generated_parser_metadata.rb
            - lib/ibex/runtime/parser.rb
          rationale: The cross-engine fixes are confined to a fast path requiring uses_locations to be false; the other executable commits are adjacent codegen/import/syntax-service work, contract-preserving state refactors, or signature-ownership relocation, so public semantic location/type API and runtime behavior are unchanged.
          unresolved_uncertainty: This path review does not establish downstream semantic locations/types compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [The combined inventory row cannot supply one compatibility history for two activation and API boundaries.]
      evidence: [docs/grammar-reference.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; type unsoundness and location edge cases may be unreported. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/architecture.md]
      gaps: [No external generated-RBS consumer or signature migration history is published.]
    dependent_tooling:
      status: present
      evidence: [test/codegen/semantic_locations_test.rb, test/ir/symbol_metadata_test.rb]
      gaps: [Repository type validation does not demonstrate downstream signature compatibility.]
    limitations:
      performance: [Location tracking carries runtime allocation and copying costs not measured on public_real workloads.]
      safety: [Declared RBS strings are metadata and validation does not make trusted semantic actions type-safe at runtime.]
    decision:
      outcome: redesign
      target_maturity: preview
      criteria_status: planned
      user_problem: Carry source locations through compatible actions while optionally declaring semantic value types for generated tooling.
      value_classification: diagnostic_external
      alternatives: [Use compatible runtime location values with handwritten RBS declarations maintained outside the grammar.]
      reason: One maturity decision is unsound because compatible semantic locations and extended-only type declarations have different activation and compatibility boundaries.
      kill_condition: Remove the combined inventory row once the two replacement records exist; remove either replacement if its own field evidence never appears.
      redesign_plan: Split this row into semantic-locations and semantic-type-declarations with independent activation history evidence promotion criteria and release triggers.
      evidence: [docs/stability.md, test/codegen/semantic_locations_test.rb]
    next_review:
      triggers: [The next maturity inventory change splits this combined row., Either replacement gains external use or becomes a promotion candidate.]
      required_evidence: [Independent location and type-declaration histories, downstream tooling records, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources:
      - { path: lib/ibex/codegen/rbs.rb, sha256: 80dead575a27ed8c4d78d57e7d47bbab815864c474b170ffd3da4411e7c74c4a }
      - { path: lib/ibex/codegen/ruby.rb, sha256: 933a156a39aa4dcbfe3396da0262054378ca3c73c7f651561b24347997fdd3dc }
      - { path: lib/ibex/frontend/generated_parser_metadata.rb, sha256: 27fdc65dd639fe8c7766bcaaa6c8e495948405e1e37b49edf042cf9cd34664b7 }
      - { path: lib/ibex/runtime/parser.rb, sha256: 61a0b1fedc16cacf6386e2a3eb1d0381e72698c7562f920c9b763b476f5f23dd }

  - id: ast-generation
    name: AST generation
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: node-declarations
          availability: extended
          mechanism: Extended `@node` declarations and AST/RBS generation output.
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real workload records generated Data nodes, visitors, listeners, or their RBS output.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: c7117a5acaa51b501b8de20b75bbac4e3675ec35, path: lib/ibex/codegen/ruby_ast.rb, query: RubyAST, summary: AST generation entered in Generate typed data syntax trees. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/codegen/ruby_ast.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: da8181a97680bf185e5b3a459c82d2c7a7078a64fbb4f6af8b2e8e44a8633046
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/codegen/ruby_ast.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 9d4f4758d4a277bfe13bc1ab29439bd16e6fbe1e6c91a8b501a3cc72b2d228cf
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/codegen/ruby_ast.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 9d4f4758d4a277bfe13bc1ab29439bd16e6fbe1e6c91a8b501a3cc72b2d228cf
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 7bbab102d981df3c3efffba0bdab301ea4939293
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: c7117a5acaa51b501b8de20b75bbac4e3675ec35
              classification: semantic_change
              summary: "Generate typed data syntax trees"
              contract_effect: "Generate typed data syntax trees generates typed data syntax trees for AST generation; the audited diff changes the public generated-AST output or API. Evidence: lib/ibex/codegen/ruby_ast.rb."
            - revision: ffbfe9765ccf4da14f2e79b0435e957b1bc5bdb5
              classification: semantic_change
              summary: "Version values-only generated actions"
              contract_effect: "Version values-only generated actions versions values-only generated actions for AST generation; the audited diff changes the public generated-AST output or API. Evidence: lib/ibex/codegen/ruby_ast.rb."
            - revision: d13f5c422fc83a5137375d74184f2aa1e087b26f
              classification: internal_refactor
              summary: "Specialize compact parser dispatch"
              contract_effect: "Specialize compact parser dispatch specializes compact parser dispatch in shared implementation paths for AST generation, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/ruby_ast.rb."
          diff_paths:
            - lib/ibex/codegen/ruby_ast.rb
          rationale: The named semantic commits introduce the reviewed public AST generation syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream AST generation compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments: []
          diff_paths:
            - lib/ibex/codegen/ruby_ast.rb
          rationale: The exact path-limited Git review found no commits in this boundary, so no public AST generation syntax, API, or behavior change appears in the reviewed scope.
          unresolved_uncertainty: This path review does not establish downstream AST generation compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git snapshots do not establish downstream generated API compatibility.]
      evidence: [docs/grammar-reference.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report and does not prove downstream AST compatibility. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, README.md]
      gaps: [No public user migration, generated API evolution history, or two-user field evidence exists.]
    dependent_tooling:
      status: present
      evidence: [test/codegen/ast_test.rb, test/tooling/matrix_runner_test.rb]
      gaps: [Generated traversal tests have no independent downstream consumer.]
    limitations:
      performance: [Node allocation and traversal costs have no public_real baseline.]
      safety: [Generated immutable nodes do not sandbox parser or lexer actions used to produce their fields.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Generate immutable typed syntax nodes and traversal APIs directly from grammar annotations.
      value_classification: repository_only
      alternatives: [Maintain application AST classes and traversal code by hand.]
      reason: Generator coverage does not provide two public users, released API stability, or exact-revision release proof.
      kill_condition: Remove generated AST annotations if two downstream users do not validate the API or allocation cost is unacceptable.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/codegen/ast_test.rb]
    next_review:
      triggers: [Two releases complete without generated AST contract changes., Two public users publish compatible adoption evidence.]
      required_evidence: [Two external user records, allocation measurements, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/codegen/ruby_ast.rb, sha256: d7a2b97ce75a9ee3aba1097634dcb175a791e1d05ad085b1cf5e2aeffa41eab5 }]

  - id: grammar-tests
    name: grammar tests
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: grammar-test-command
          availability: explicit_command
          mechanism: Extended `%test` declarations executed by the explicit `ibex test` command.
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real workload records `%test` adoption in its project CI.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 6a97c6580eb60f21bee3019dd5301898f4e927f1, path: lib/ibex/grammar_tests.rb, query: GrammarTests, summary: Grammar tests entered in Add grammar-declared parser tests. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/grammar_tests.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: f66fdbc3cdb54ae9aac32b70c8073ddd86cf3a4efca18219030d999e537dcc5a
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/grammar_tests.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: f0d93af7ff066a056227c8e17ff986e6ceec8191942a74040c89f9942f64cf53
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/grammar_tests.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: b6d3d4cdc56ef3ff03bfeae2da7bd74db560bc3d3a6dea1e74c4eca3ff6c8d3d
      changes:
        - boundary: introduction..v0.2.0
          from_revision: d589970fa588fd6a0464e6396fe2da668431aec4
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 6a97c6580eb60f21bee3019dd5301898f4e927f1
              classification: semantic_change
              summary: "Add grammar-declared parser tests"
              contract_effect: "Add grammar-declared parser tests adds grammar-declared parser tests for grammar tests; the audited diff changes the public grammar-test command, fixtures, or output. Evidence: lib/ibex/grammar_tests.rb."
            - revision: 6d92ec6d49bf27538fcb115e26ab32c843e4187d
              classification: semantic_change
              summary: "Complete documentation and grammar gallery"
              contract_effect: "Complete documentation and grammar gallery completes documentation and grammar gallery for grammar tests; the audited diff changes the public grammar-test command, fixtures, or output. Evidence: lib/ibex/grammar_tests.rb."
          diff_paths:
            - lib/ibex/grammar_tests.rb
          rationale: The named semantic commits introduce the reviewed public grammar tests syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream grammar tests compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: 3ce117eeaa7147dc31aa40d88baf3e6866f36b7c
              classification: no_semantic_change
              summary: "Type auxiliary boundaries"
              contract_effect: "Type auxiliary boundaries updates type annotations and checked boundaries without changing the grammar-tests public contract; the public contract remains unchanged. Evidence: lib/ibex/grammar_tests.rb."
          diff_paths:
            - lib/ibex/grammar_tests.rb
          rationale: The exact path-limited Git review found no commits in this boundary, so no public grammar tests syntax, API, or behavior change appears in the reviewed scope.
          unresolved_uncertainty: This path review does not establish downstream grammar tests compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git snapshots do not establish portability in external project CI environments.]
      evidence: [docs/grammar-reference.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; subprocess and coverage defects may still be unreported. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/development.md]
      gaps: [No gallery or public project adoption report demonstrates CI lifecycle use.]
    dependent_tooling:
      status: present
      evidence: [test/grammar_tests_runner_test.rb, test/cli_grammar_tests_test.rb]
      gaps: [Repository tests do not establish portability across public project test environments.]
    limitations:
      performance: [Each suite executes generated parsers in bounded subprocesses; large-suite scheduling costs are unmeasured.]
      safety: [Grammar tests execute trusted parser and lexer application code inside a subprocess, not a security sandbox.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Keep parser acceptance and rejection examples beside the grammar and run them through a bounded command.
      value_classification: repository_only
      alternatives: [Exercise the generated parser from the application test suite.]
      reason: Deterministic isolation and thresholds do not establish external CI adoption or two unchanged releases.
      kill_condition: Remove grammar-declared tests if external projects prefer application tests or subprocess isolation cannot be portable.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/grammar_tests_runner_test.rb]
    next_review:
      triggers: [Two releases complete without grammar-test contract changes., A public project adopts `%test` in CI.]
      required_evidence: [External CI record, portability results, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/grammar_tests.rb, sha256: 9b14fcf8b027ce005d270976679da3af223a0ed3f555aaa53593a6f3761ab29a }]

  - id: documentation-tooling
    name: documentation tooling
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: documentation-command
          availability: explicit_command
          mechanism: Documentation and report output commands and formats selected explicitly.
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real project records generated Markdown, HTML, or railroad artifacts as maintained output.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 81026ff3390990cad716e9953c8b485f9ac198fe, path: lib/ibex/codegen/documentation.rb, query: Documentation, summary: Documentation tooling entered in Add lossless rule documentation. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/codegen/documentation.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: fd4cc1dfa6b66dae021d2a7dc66453112af3d5406a6414db8b731dd8450ba5cc
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/codegen/documentation.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 053062524dddaac323bcc886db766e68d4231697308b27409951bd49b3005d72
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/codegen/documentation.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 053062524dddaac323bcc886db766e68d4231697308b27409951bd49b3005d72
      changes:
        - boundary: introduction..v0.2.0
          from_revision: cf4fbd16fe614d48bcdb93092399352fc7917f95
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 81026ff3390990cad716e9953c8b485f9ac198fe
              classification: semantic_change
              summary: "Add lossless rule documentation"
              contract_effect: "Add lossless rule documentation adds lossless rule documentation for documentation tooling; the audited diff changes the public documentation command or generated output. Evidence: lib/ibex/codegen/documentation.rb."
          diff_paths:
            - lib/ibex/codegen/documentation.rb
          rationale: The named semantic commits introduce the reviewed public documentation tooling syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream documentation tooling compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments: []
          diff_paths:
            - lib/ibex/codegen/documentation.rb
          rationale: The exact path-limited Git review found no commits in this boundary, so no public documentation tooling syntax, API, or behavior change appears in the reviewed scope.
          unresolved_uncertainty: This path review does not establish downstream documentation tooling compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git snapshots do not cover independent accessibility or downstream rendering compatibility.]
      evidence: [docs/grammar-reference.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; renderer and accessibility defects may be unreported. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/development.md]
      gaps: [No independent accessibility review or downstream artifact compatibility report is published.]
    dependent_tooling:
      status: present
      evidence: [test/codegen/documentation_test.rb, test/cli_documentation_test.rb]
      gaps: [Deterministic snapshots do not cover independent assistive-technology review.]
    limitations:
      performance: [Large-grammar rendering time and output size are not measured on public_real documentation builds.]
      safety: [Static generation does not execute actions, but rendered labels and documentation remain untrusted display content.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Publish deterministic human-readable grammar references and railroad views from one source.
      value_classification: repository_only
      alternatives: [Maintain documentation separately with an external documentation generator.]
      reason: Deterministic rendering tests cannot replace accessibility review, external adoption, or released format stability.
      kill_condition: Remove a generated format if it lacks downstream use or cannot pass independent accessibility review.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/codegen/documentation_test.rb]
    next_review:
      triggers: [Two releases complete without documentation-output contract changes., An independent accessibility review completes.]
      required_evidence: [Accessibility review, external artifact record, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/codegen/documentation.rb, sha256: 6551a3dc29862c1de172ee75681f20b234f7c271891419d9a997d61e1b69e5c9 }]

  - id: ielr
    name: IELR
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: ielr-algorithm
          availability: explicit_option
          mechanism: "`--algorithm=ielr` or `algorithm: :ielr`"
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: [bison-jq-parser]
      evidence: [docs/workloads.yml]
      summary: The jq import exposes a conflict-volume problem, but diagnostic analysis does not demonstrate production IELR adoption or benefit.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 14968f22795f4fd8ff894b0753b01b92712bd183, path: lib/ibex/lalr/builder.rb, query: "algorithm == :ielr", summary: IELR entered in Add IELR parser construction. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: partial
            present_paths:
              - lib/ibex/lalr/builder.rb
            absent_paths: []
            rationale: Pre-existing or shared canonical paths are explicit and do not prove that the absent feature exists.
          source_tree_sha256: fb3dee4a9b29dc724f379bab142a2aaf1cd779edf88aa093c943fa54819bd5ef
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/lalr/builder.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: ded44c69663f48c36cd15fda5b10cc1c8c2a0b19b0a763269d9db2bfa969ef5a
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/lalr/builder.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 6fb787334e8d4953ab071ca81b941105c2e3495887c41cbfcfd9d17e4cb6adb9
      changes:
        - boundary: introduction..v0.2.0
          from_revision: bd09dc7ddff179923a0d629b619f86908db8183c
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 14968f22795f4fd8ff894b0753b01b92712bd183
              classification: semantic_change
              summary: "Add IELR parser construction"
              contract_effect: "Add IELR parser construction adds IELR parser construction for IELR; the audited diff changes the public IELR option, table construction, or parser behavior. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 3320a2a862628c14f12205575b894a604c9dffc8
              classification: semantic_change
              summary: "Add extended declaration contracts"
              contract_effect: "Add extended declaration contracts adds extended declaration contracts for IELR; the audited diff changes the public IELR option, table construction, or parser behavior. Evidence: lib/ibex/lalr/builder.rb."
            - revision: bb8c9a741c96ee4b53b8b63290f988a623d32aa0
              classification: no_semantic_change
              summary: "Add lazy semantic location APIs"
              contract_effect: "Add lazy semantic location APIs adds lazy semantic location APIs for an adjacent capability in shared audited paths; the IELR public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: af3f23e6c3fd6d9a19ce9a84c5a4655f6761a49d
              classification: semantic_change
              summary: "Add multiple parser entry points"
              contract_effect: "Add multiple parser entry points adds multiple parser entry points for IELR; the audited diff changes the public IELR option, table construction, or parser behavior. Evidence: lib/ibex/lalr/builder.rb."
            - revision: d589970fa588fd6a0464e6396fe2da668431aec4
              classification: semantic_change
              summary: "Add declarative parser recovery policies"
              contract_effect: "Add declarative parser recovery policies adds declarative parser recovery policies for IELR; the audited diff changes the public IELR option, table construction, or parser behavior. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 673d5315a770a8d943f7213a0e015ca42ae496f0
              classification: internal_refactor
              summary: "Cache canonical closure lookaheads"
              contract_effect: "Cache canonical closure lookaheads caches canonical closure lookaheads in shared implementation paths for IELR, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/lalr/builder.rb."
            - revision: fb8799b9a4f1b94c54a134dcc103f2616e3c9ba4
              classification: internal_refactor
              summary: "Pack canonical automaton keys"
              contract_effect: "Pack canonical automaton keys packs canonical automaton keys in shared implementation paths for IELR, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 811fb4a5414c23b93278e96fd05631a23502b43f
              classification: internal_refactor
              summary: "Reuse canonical LR items"
              contract_effect: "Reuse canonical LR items reuses canonical LR items in shared implementation paths for IELR, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/lalr/builder.rb."
            - revision: f0550e44be15e26bb05fa59a08bada27e1a5ebfa
              classification: internal_refactor
              summary: "Group canonical shifted kernels"
              contract_effect: "Group canonical shifted kernels groups canonical shifted kernels in shared implementation paths for IELR, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/lalr/builder.rb."
            - revision: badd607b9d6d027fb5f8172c227ce3c89acc68c8
              classification: internal_refactor
              summary: "Avoid optional generator work"
              contract_effect: "Avoid optional generator work avoids optional generator work in shared implementation paths for IELR, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/lalr/builder.rb."
          diff_paths:
            - lib/ibex/lalr/builder.rb
          rationale: The named semantic commits introduce the reviewed public IELR syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream IELR compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: semantic_change
          commit_assessments:
            - revision: 354fd62c44a6ba3519376842cd4bbad1c910da80
              classification: no_semantic_change
              summary: "feat: profile parser construction costs"
              contract_effect: "feat: profile parser construction costs observes construction phases without changing IELR state splitting, conflict behavior, or selected tables; the IELR public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 32c6b2bb94f5ce4879136bf17d97bf1599be403f
              classification: no_semantic_change
              summary: "feat: add Grammar IR v3 parser contracts"
              contract_effect: "feat: add Grammar IR v3 parser contracts carries the selected algorithm into versioned Automaton IR without changing IELR state splitting, conflict resolution, or selected tables; the IELR public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: c5fd7f6b49ea8a645e43b802587178dbea94447d
              classification: no_semantic_change
              summary: "fix: preserve stable IR constructor signatures"
              contract_effect: "fix: preserve stable IR constructor signatures routes version-3 automata through an explicit typed factory without changing IELR state splitting, conflict resolution, or selected tables; the IELR public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 9cdd1a97e1ee5f6a6fb8da83295a1d42bd3e6c51
              classification: semantic_change
              summary: "feat: honor declared parser construction"
              contract_effect: "feat: honor declared parser construction exposes declarative parser construction and algorithm selection, changing the public IELR configuration behavior. Evidence: lib/ibex/lalr/builder.rb."
            - revision: c025c452e6409fed91cd6ef0136d673f777acc44
              classification: no_semantic_change
              summary: "Type LALR build collections"
              contract_effect: "Type LALR build collections updates type annotations and checked boundaries without changing the ielr public contract; the public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the ielr public contract; the public contract remains unchanged. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 0c8f379f6682edc637302bc17b9a81c6b7dc2a90
              classification: internal_refactor
              summary: "refactor: make grammar and automaton IR current-only"
              contract_effect: "refactor: make grammar and automaton IR current-only removes obsolete versioned IR compatibility branches while preserving the public contract for IELR syntax, API, behavior, and construction. Evidence: lib/ibex/lalr/builder.rb."
            - revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
              classification: semantic_change
              summary: "feat: add experimental direct IELR construction"
              contract_effect: "feat: add experimental direct IELR construction adds an explicit opt-in direct construction strategy while preserving the default IELR configuration; the public IELR configuration API and table construction behavior remain opt-in. Evidence: lib/ibex/lalr/builder.rb."
          diff_paths:
            - lib/ibex/lalr/builder.rb
          rationale: The path-limited review found bounded construction profiling, additive IR persistence, and a typed construction factory refactor; all preserve the public IELR syntax, API, behavior, and construction contract.
          unresolved_uncertainty: This path review does not establish downstream IELR compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Source stability does not provide an independent algorithm oracle or application benefit.]
      evidence: [docs/decisions/0007-shared-parser-construction-pipeline.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; absence is not an independent algorithm oracle. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/architecture.md, docs/grammar-reference.md]
      gaps: [No public LALR-inadequacy user or real-workload benefit report is published.]
    dependent_tooling:
      status: present
      evidence: [test/lalr/builder_test.rb, test/tooling/matrix_runner_test.rb]
      gaps: [Repository verification does not demonstrate application benefit on the diagnostic jq import.]
    limitations:
      performance: [Canonical-context construction can cost more memory/time; no public_real IELR profile is published.]
      safety: [Algorithm selection changes tables but does not sandbox trusted semantic or lexer actions.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Avoid conflicts introduced only by LALR state merging without paying for fully separate canonical states.
      value_classification: diagnostic_external
      alternatives: [Use stable direct LALR when adequate or canonical LR1 for verified LALR inadequacy.]
      reason: Correctness and state-bound tests do not establish external LALR-inadequacy use, two stable releases, or final release evidence.
      kill_condition: Remove IELR if V001 cannot independently validate it or no public LALR-inadequacy workload shows a benefit.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/lalr/builder_test.rb]
    next_review:
      triggers: [Two releases complete without IELR semantics changes., A public_real LALR-inadequacy user publishes a verified benefit.]
      required_evidence: [V001/direct-comparison evidence, external workload benefit, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/lalr/builder.rb, sha256: 69a4b832abf5c1d6332049fc584b9c46f8b43609fad65dc0682e618e84ea52ad }]

  - id: lsp
    name: LSP
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: lsp-command
          availability: explicit_command
          mechanism: "`ibex lsp --stdio` and an editor client configuration"
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real workload or editor integration is registered as an LSP field user.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 5b8151385c491366deb41c930a1132599edfb9e9, path: lib/ibex/lsp/server.rb, query: "class Server", summary: LSP entered in Add overlay-aware grammar language server. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/lsp/server.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: 82d99430ea6b1c556cb7c757a507d60fbb6405c5f2e43d0893019908f8ee24eb
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/lsp/server.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: bec58a0b4eaa7387561cd67b1d3aba981ab21898c55749e188f9bc85e6155963
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/lsp/server.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 65fd657a4cfc1a24f9bd4e0aee986d45693a0b0c293f65af146035f0768600a5
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 0210f4b2be2099599ff6406e18509bee5c6e6cf8
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 5b8151385c491366deb41c930a1132599edfb9e9
              classification: semantic_change
              summary: "Add overlay-aware grammar language server"
              contract_effect: "Add overlay-aware grammar language server adds overlay-aware grammar language server for LSP; the audited diff changes the public language-server protocol behavior. Evidence: lib/ibex/lsp/server.rb."
          diff_paths:
            - lib/ibex/lsp/server.rb
          rationale: The named semantic commits introduce the reviewed public LSP syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream LSP compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: semantic_change
          commit_assessments:
            - revision: c2648ee2dca3fc8df86d4a5213b5a8e8bf688063
              classification: semantic_change
              summary: "feat: guide parser settings in the language server"
              contract_effect: "feat: guide parser settings in the language server adds parser-configuration assistance and notifications, changing the public language-server protocol behavior. Evidence: lib/ibex/lsp/server.rb."
            - revision: c4ae1b254089723692142ade26305036b5bbe9d3
              classification: no_semantic_change
              summary: "Type LSP server protocol values"
              contract_effect: "Type LSP server protocol values updates type annotations and checked boundaries without changing the lsp public contract; the public contract remains unchanged. Evidence: lib/ibex/lsp/server.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the lsp public contract; the public contract remains unchanged. Evidence: lib/ibex/lsp/server.rb."
          diff_paths:
            - lib/ibex/lsp/server.rb
          rationale: The reviewed parser-settings assistance commit changes the public LSP API behavior; no broader editor compatibility claim is made from repository evidence.
          unresolved_uncertainty: This path review does not establish downstream LSP compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Source history does not reconstruct real editor lifecycle and extension compatibility.]
      evidence: [docs/editor-setup.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; editor-specific failures may not be in the repository tracker. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/editor-setup.md, README.md]
      gaps: [No two-editor field report, capability compatibility table, or release history is published.]
    dependent_tooling:
      status: present
      evidence: [test/lsp/server_test.rb, test/lsp/document_store_security_test.rb]
      gaps: [Protocol tests do not cover real editor lifecycle and extension packaging.]
    limitations:
      performance: [Workspace scaling and latency have no public project measurement.]
      safety: [The server parses workspace files and must retain containment and resource limits; it is not a sandbox.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Provide live grammar diagnostics and navigation to editors over the standard language-server protocol.
      value_classification: repository_only
      alternatives: [Run static CLI diagnostics and use editor-agnostic text navigation.]
      reason: Protocol and overlay tests do not replace two editor integrations, field latency evidence, or released compatibility.
      kill_condition: Remove or narrow LSP capabilities if two maintained editor clients do not emerge or workspace limits prove inadequate.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/lsp/server_test.rb]
    next_review:
      triggers: [Two releases complete without LSP contract changes., Two independently maintained editor integrations report field use.]
      required_evidence: [Editor integration records, workspace profile, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/lsp/server.rb, sha256: f60bff6bade17057a37c75a30f311303217f7ff48f3d4c4b7ffaf72fea945a94 }]

  - id: watch
    name: watch
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: watch-option
          availability: explicit_option
          mechanism: "`ibex --watch` generation mode"
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real project records long-running watch use or its operational behavior.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 570d857f582cb61ac60840210b22a86db086cc51, path: lib/ibex/watch/runner.rb, query: "class Runner", summary: Watch entered in Add transactional generation and watch mode. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/watch/runner.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: 344e787b3adf70d0e6ee2d5cd57193a35d88eeff535079eccc53d1169958ebcc
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/watch/runner.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: cda7969bb4aee0e322fe7f2fb6cc510b42e9070f1b356c1f5430c8e391c98e1c
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/watch/runner.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 799b547ef892841aa9df2e6a29ca24d73ef37aaa8076857e757dc19b8110c8fd
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 5b8151385c491366deb41c930a1132599edfb9e9
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 570d857f582cb61ac60840210b22a86db086cc51
              classification: semantic_change
              summary: "Add transactional generation and watch mode"
              contract_effect: "Add transactional generation and watch mode adds transactional generation and watch mode for watch; the audited diff changes the public watch command and transactional generation behavior. Evidence: lib/ibex/watch/runner.rb."
          diff_paths:
            - lib/ibex/watch/runner.rb
          rationale: The named semantic commits introduce the reviewed public watch syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream watch compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: 4edacea73c2b5c3d880162bf80497f7cb2b0062e
              classification: no_semantic_change
              summary: "Type watch runner callbacks"
              contract_effect: "Type watch runner callbacks updates type annotations and checked boundaries without changing the watch public contract; the public contract remains unchanged. Evidence: lib/ibex/watch/runner.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the watch public contract; the public contract remains unchanged. Evidence: lib/ibex/watch/runner.rb."
          diff_paths:
            - lib/ibex/watch/runner.rb
          rationale: The exact path-limited Git review found no commits in this boundary, so no public watch syntax, API, or behavior change appears in the reviewed scope.
          unresolved_uncertainty: This path review does not establish downstream watch compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git history does not establish long-running host-specific operational compatibility.]
      evidence: [docs/grammar-reference.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; long-running and host-specific defects may be unreported. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/development.md]
      gaps: [No public operational report covers sustained use, host watchers, or failure recovery.]
    dependent_tooling:
      status: present
      evidence: [test/watch/runner_test.rb, test/cli_watch_test.rb]
      gaps: [Bounded tests do not establish long-running field reliability.]
    limitations:
      performance: [Repeated hashing and regeneration costs are not profiled for large public multi-file projects.]
      safety: [Watch publishes generated files and executes no actions itself, but generated application loading remains trusted.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Regenerate parser outputs transactionally as grammar and imported files change.
      value_classification: repository_only
      alternatives: [Use an external file watcher to invoke one-shot generation.]
      reason: Transaction and cancellation tests do not establish sustained external use or released operational stability.
      kill_condition: Remove built-in watch if external watchers are sufficient or long-running publication cannot be reliable across supported hosts.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/watch/runner_test.rb]
    next_review:
      triggers: [Two releases complete without watch-contract changes., A public project reports sustained watch operation.]
      required_evidence: [Long-running external record, host matrix, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/watch/runner.rb, sha256: 0011eab3c3d059e4f89048e12b934984ecbe031aa1c9d023821cf8807af418e9 }]

  - id: debug
    name: debug
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: debug-command
          availability: explicit_command
          mechanism: "`ibex debug` with validated Automaton IR and explicit tokens"
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real project records debug-command use or public debugging reports.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 4aa58c5e6f013c6ad187b9a739d55147829aa42c, path: lib/ibex/table_simulation.rb, query: "module TableSimulation", summary: Debug simulation entered in Add safe parser table simulation. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/table_simulation.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: 1431737aa190be4ea8704488f2ac6d853905ce59258f2057f0a73ea70957cfda
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/table_simulation.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: d222492d82cf0d871cec9b7c187ebe45c839ce0dfe22e980dd66950cd7c0159d
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/table_simulation.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: d222492d82cf0d871cec9b7c187ebe45c839ce0dfe22e980dd66950cd7c0159d
      changes:
        - boundary: introduction..v0.2.0
          from_revision: f10cb2af61566d5180724469a5498fbc7325dc2c
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 4aa58c5e6f013c6ad187b9a739d55147829aa42c
              classification: semantic_change
              summary: "Add safe parser table simulation"
              contract_effect: "Add safe parser table simulation adds safe parser table simulation for debug; the audited diff changes the public debug command and table-simulation output. Evidence: lib/ibex/table_simulation.rb."
          diff_paths:
            - lib/ibex/table_simulation.rb
          rationale: The named semantic commits introduce the reviewed public debug syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream debug compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments: []
          diff_paths:
            - lib/ibex/table_simulation.rb
          rationale: The exact path-limited Git review found no commits in this boundary, so no public debug syntax, API, or behavior change appears in the reviewed scope.
          unresolved_uncertainty: This path review does not establish downstream debug compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git snapshots do not establish external diagnostic usefulness or output compatibility.]
      evidence: [docs/grammar-reference.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report and does not prove simulator fidelity. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/architecture.md]
      gaps: [No external debugging case report or output compatibility history is published.]
    dependent_tooling:
      status: present
      evidence: [test/cli_debug_test.rb, test/table_simulation_test.rb]
      gaps: [Repository fixtures do not demonstrate user diagnostic usefulness.]
    limitations:
      performance: [Long token traces and large tables have no public workload latency or memory profile.]
      safety: [Table simulation is nonexecuting, but displayed token inputs and labels are untrusted data.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Inspect table transitions for explicit tokens without executing user semantic actions.
      value_classification: repository_only
      alternatives: [Read the static automaton report and trace an application parser manually.]
      reason: Nonexecuting schema tests do not establish external diagnostic usefulness or two-release output stability.
      kill_condition: Remove the command if public debugging reports do not show actionable value or simulator fidelity cannot be independently maintained.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/cli_debug_test.rb]
    next_review:
      triggers: [Two releases complete without debug schema changes., Public debugging reports demonstrate actionable use.]
      required_evidence: [External debugging reports, scale profile, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/table_simulation.rb, sha256: dcf21feb35440673e7eff60d910a158696563c6569a912b213c1ddb27c0bbcf9 }]

  - id: coverage
    name: coverage
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: coverage-command
          availability: explicit_command
          mechanism: Runtime observation plus explicit `ibex coverage collect|merge|check` commands.
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real project records the coverage event pipeline in CI.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: f10cb2af61566d5180724469a5498fbc7325dc2c, path: lib/ibex/coverage/collector.rb, query: "class Collector", summary: Coverage entered in Add deterministic runtime coverage. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/coverage/collector.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: 91d858146819ec5ab80e08429bf58977c05cdbf1f108b52c295c01fd70cbb783
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/coverage/collector.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 9b6bb2992c0d329800afe3d235b34419311c882f91ec0f196d7407ba63a24a02
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/coverage/collector.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 57794702aa75d9e5a20cd486a6d6a83609bb53b4dcf813c52a413389ed9f737b
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 4e53ffb911d712a55c2465b57da6fd2a5332889c
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: f10cb2af61566d5180724469a5498fbc7325dc2c
              classification: semantic_change
              summary: "Add deterministic runtime coverage"
              contract_effect: "Add deterministic runtime coverage adds deterministic runtime coverage for coverage; the audited diff changes the public coverage API and deterministic report output. Evidence: lib/ibex/coverage/collector.rb."
          diff_paths:
            - lib/ibex/coverage/collector.rb
          rationale: The named semantic commits introduce the reviewed public coverage syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream coverage compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: e001e6390b18ae907fe72c80742fbc01e31e6570
              classification: no_semantic_change
              summary: "Type coverage JSON boundaries"
              contract_effect: "Type coverage JSON boundaries updates type annotations and checked boundaries without changing the coverage public contract; the public contract remains unchanged. Evidence: lib/ibex/coverage/collector.rb."
            - revision: 411e850c625dd8ba920b5e28d3804b11c631fe66
              classification: no_semantic_change
              summary: "Polish typed artifact boundaries"
              contract_effect: "Polish typed artifact boundaries updates type annotations and checked boundaries without changing the coverage public contract; the public contract remains unchanged. Evidence: lib/ibex/coverage/collector.rb."
          diff_paths:
            - lib/ibex/coverage/collector.rb
          rationale: The exact path-limited Git review found no commits in this boundary, so no public coverage syntax, API, or behavior change appears in the reviewed scope.
          unresolved_uncertainty: This path review does not establish downstream coverage compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git snapshots do not establish external CI threshold usefulness or observation overhead.]
      evidence: [docs/decisions/0010-committed-runtime-observation.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; missing-event defects may be unreported. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/development.md]
      gaps: [No external CI adoption, schema consumer, or released compatibility record exists.]
    dependent_tooling:
      status: present
      evidence: [test/coverage/report_test.rb, test/cli_coverage_test.rb]
      gaps: [Deterministic repository tests do not demonstrate usefulness of thresholds on public applications.]
    limitations:
      performance: [Observation and event persistence overhead is not measured on public_real runtime workloads.]
      safety: [Coverage consumes runtime events and can expose grammar structure; it does not sandbox actions or application data.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Measure state and production execution across processes and enforce deterministic grammar coverage thresholds.
      value_classification: repository_only
      alternatives: [Collect application-specific counters from stable runtime observation events.]
      reason: Deterministic merge and threshold contracts do not establish external CI adoption or released schema stability.
      kill_condition: Remove the specialized coverage commands if no public CI adopts them or observation overhead exceeds measured value.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/coverage/report_test.rb]
    next_review:
      triggers: [Two releases complete without coverage schema changes., A public project adopts coverage checks in CI.]
      required_evidence: [External CI record, overhead measurement, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/coverage/collector.rb, sha256: 8e573956fe787766c40f45eacab484995e7ff453e3045e3ea4188e21396069a5 }]

  - id: browser-playground
    name: browser playground
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: browser-application
          availability: explicit_application
          mechanism: Open the separately built browser playground and submit grammar text to its worker.
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real workload or published browser deployment is registered as field use.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 30c41be981e41c3fbd71e1f75afe296b329ddbd3, path: site/playground/analyzer.rb, query: IbexPlayground, summary: Browser playground entered in Add browser grammar playground. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - site/playground/analyzer.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: 2377befe2b991b494550b05c9a916fb6ec093e0d473c246eb248ca5e9538c3da
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - site/playground/analyzer.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 4b8e347c3ce4bd539c1e2fec9807e33c7f268265ae6ec8a3abc01fe58e6c1daa
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - site/playground/analyzer.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 4b8e347c3ce4bd539c1e2fec9807e33c7f268265ae6ec8a3abc01fe58e6c1daa
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 94b22d55a974db8d976c16d08a4b7daaca7989a7
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 30c41be981e41c3fbd71e1f75afe296b329ddbd3
              classification: semantic_change
              summary: "Add browser grammar playground"
              contract_effect: "Add browser grammar playground adds browser grammar playground for browser playground; the audited diff changes the public browser application behavior. Evidence: site/playground/analyzer.rb."
          diff_paths:
            - site/playground/analyzer.rb
          rationale: The named semantic commits introduce the reviewed public browser playground syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream browser playground compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments: []
          diff_paths:
            - site/playground/analyzer.rb
          rationale: The exact path-limited Git review found no commits in this boundary, so no public browser playground syntax, API, or behavior change appears in the reviewed scope.
          unresolved_uncertainty: This path review does not establish downstream browser playground compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git history does not reconstruct supported browser and assistive technology compatibility.]
      evidence: [docs/decisions/0015-worker-isolated-browser-analysis.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; browser and accessibility defects may be reported elsewhere or not at all. }
    documentation:
      status: incomplete
      evidence: [README.md, docs/stability.md]
      gaps: [Supported browser versions and an independent accessibility review are not published.]
    dependent_tooling:
      status: partial
      evidence: [test/site/playground_analyzer_test.rb, site/playground/index.html]
      gaps: [Analyzer and site CI do not provide a cross-browser or assistive-technology matrix.]
    limitations:
      performance: [Wasm startup and large-grammar latency have no representative browser measurements.]
      safety: [Worker isolation narrows UI impact but is not a security boundary for every browser or dependency defect.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Explore grammar diagnostics in a browser without installing the Ruby gem locally.
      value_classification: repository_only
      alternatives: [Use the local nonexecuting CLI analysis commands.]
      reason: Worker isolation and site tests do not establish browser coverage, accessibility approval, external use, or release stability.
      kill_condition: Remove the playground if supported-browser and accessibility reviews cannot be sustained or no public deployment uses it.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/site/playground_analyzer_test.rb]
    next_review:
      triggers: [Two releases complete without playground contract changes., Browser support and independent accessibility reviews are published.]
      required_evidence: [Cross-browser matrix, accessibility review, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: site/playground/analyzer.rb, sha256: cc89ed54d761ce81bec12a080c528c92478492d67e2169f0833d219be5bc81d3 }]

  - id: action-shadow
    name: action-shadow
    maturity: preview
    activation:
      maturity_independent: true
      surfaces:
        - id: action-shadow-output
          availability: explicit_option
          mechanism: Explicit action-shadow source generation output.
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real project records action-shadow output in a type-checking workflow.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 3187b74d3933259a1a44deee8ed90aabf61a2efb, path: lib/ibex/codegen/action_method_source.rb, query: "class ActionMethodSource", summary: Action-shadow entered in Add static semantic action checking. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/codegen/action_method_source.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: 08840d9c151ab14a116f9e9877e29a3b1ed52cbd0e17cde82e5c9511217bcee1
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/codegen/action_method_source.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: a26d41b60b98d6d4b2e7e51d18c28a44242e08ec1922745be48c63ad58facff5
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/codegen/action_method_source.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 62f980d82c3a756e4bb6eb1267db867676b0781e85ededc733e65caca1064353
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 51234f2acc5080981c399f3821fe61d07f4b38af
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 3187b74d3933259a1a44deee8ed90aabf61a2efb
              classification: semantic_change
              summary: "Add static semantic action checking"
              contract_effect: "Add static semantic action checking adds static semantic action checking for action-shadow; the audited diff changes the public action-shadow generated output and checking behavior. Evidence: lib/ibex/codegen/action_method_source.rb."
            - revision: e170cee79243d0aa975be3e107cd95cd7cc8baf0
              classification: semantic_change
              summary: "Add declarative parser parameters"
              contract_effect: "Add declarative parser parameters adds declarative parser parameters for action-shadow; the audited diff changes the public action-shadow generated output and checking behavior. Evidence: lib/ibex/codegen/action_method_source.rb."
            - revision: ee83cf3f06e1b4f7d7c1ece292d43fd7844ee3aa
              classification: semantic_change
              summary: "Add declarative debug value printers"
              contract_effect: "Add declarative debug value printers adds declarative debug value printers for action-shadow; the audited diff changes the public action-shadow generated output and checking behavior. Evidence: lib/ibex/codegen/action_method_source.rb."
            - revision: f7e1533003989b4c13f6158f4c482ba5cc3b9090
              classification: internal_refactor
              summary: "Load Ruby lexer only when required"
              contract_effect: "Load Ruby lexer only when required defers require ripper until heredoc detection and leaves generated action-shadow source and checking results identical, preserving the public contract. Evidence: lib/ibex/codegen/action_method_source.rb."
            - revision: ffbfe9765ccf4da14f2e79b0435e957b1bc5bdb5
              classification: semantic_change
              summary: "Version values-only generated actions"
              contract_effect: "Version values-only generated actions versions values-only generated actions for action-shadow; the audited diff changes the public action-shadow generated output and checking behavior. Evidence: lib/ibex/codegen/action_method_source.rb."
            - revision: d13f5c422fc83a5137375d74184f2aa1e087b26f
              classification: internal_refactor
              summary: "Specialize compact parser dispatch"
              contract_effect: "Specialize compact parser dispatch specializes compact parser dispatch in shared implementation paths for action-shadow, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/codegen/action_method_source.rb."
          diff_paths:
            - lib/ibex/codegen/action_method_source.rb
          rationale: The named semantic commits introduce the reviewed public action-shadow syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream action-shadow compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: no_semantic_change
          commit_assessments:
            - revision: 4fbe791ceb10d89aff42b1344cf65906714c2b55
              classification: no_semantic_change
              summary: "Type code generation composition inputs"
              contract_effect: "Type code generation composition inputs updates type annotations and checked boundaries without changing the action-shadow public contract; the public contract remains unchanged. Evidence: lib/ibex/codegen/action_method_source.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the action-shadow public contract; the public contract remains unchanged. Evidence: lib/ibex/codegen/action_method_source.rb."
          diff_paths:
            - lib/ibex/codegen/action_method_source.rb
          rationale: The exact path-limited Git review found no commits in this boundary, so no public action-shadow syntax, API, or behavior change appears in the reviewed scope.
          unresolved_uncertainty: This path review does not establish downstream action-shadow compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git snapshots do not establish compatibility with an independent type-checker consumer.]
      evidence: [docs/decisions/0011-versioned-semantic-action-boundary.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report and does not establish semantic equivalence with runtime execution. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/architecture.md]
      gaps: [No external type-checker field report or generated-source compatibility history is published.]
    dependent_tooling:
      status: present
      evidence: [test/codegen/action_source_test.rb, test/cli_action_source_test.rb]
      gaps: [Static source snapshots lack an independent downstream type-checker consumer.]
    limitations:
      performance: [Generated shadow-source size and type-checker cost are not measured on public_real grammars.]
      safety: [Shadow generation is static and nonexecuting, but it cannot prove runtime action behavior or remove trusted-code risk.]
    decision:
      outcome: keep
      target_maturity: preview
      criteria_status: unmet
      user_problem: Present semantic action method bodies to static type tools without executing grammar code.
      value_classification: repository_only
      alternatives: [Maintain handwritten typed wrapper methods or generated RBS without action-shadow source.]
      reason: Static generation tests do not establish type-checker field use, semantic parity, or two-release compatibility.
      kill_condition: Remove action-shadow if no external type-checker consumes it or it cannot track runtime action semantics.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, test/codegen/action_source_test.rb]
    next_review:
      triggers: [Two releases complete without action-shadow contract changes., A public project adopts the output in type checking.]
      required_evidence: [External type-checker record, source-size profile, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources: [{ path: lib/ibex/codegen/action_method_source.rb, sha256: 4331c52fd0e478e864f4fa52c1c66212529fb17597f2e6b543a8d88dd4682291 }]

  - id: bounded-repair
    name: bounded repair
    maturity: experimental
    activation:
      maturity_independent: true
      surfaces:
        - id: repair-policy
          availability: explicit_api
          mechanism: Assign an immutable `Ibex::Runtime::RepairPolicy` before parsing.
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real runtime workload records RepairPolicy use; the ten-case repository corpus is not field adoption.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: df8ac82c0ed0c8862190ac88671949f0d5e8a001, path: lib/ibex/runtime/repair.rb, query: "class RepairPolicy", summary: Bounded repair entered in Add bounded runtime token repair. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: absent
            present_paths: []
            absent_paths:
              - lib/ibex/runtime/repair.rb
            rationale: No validator-owned canonical blob exists before this feature introduction.
          source_tree_sha256: c104966352de61946e0e1c0da64b2847f00d60d63e1b64fc6a0bb0fa9373284b
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/runtime/repair.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 1246123e021816c3e0c04887e091f72e34235356de937f669cf8a2cd18a84cc7
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/runtime/repair.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 3c55423b63eafb84a2f42e5b9413da182c0a929fa6854c6e5295a19cd1c63ec7
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 4aa58c5e6f013c6ad187b9a739d55147829aa42c
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: df8ac82c0ed0c8862190ac88671949f0d5e8a001
              classification: semantic_change
              summary: "Add bounded runtime token repair"
              contract_effect: "Add bounded runtime token repair adds bounded runtime token repair for bounded repair; the audited diff changes the public repair API and bounded runtime behavior. Evidence: lib/ibex/runtime/repair.rb."
          diff_paths:
            - lib/ibex/runtime/repair.rb
          rationale: The named semantic commits introduce the reviewed public bounded repair syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream bounded repair compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: semantic_change
          commit_assessments:
            - revision: 5d3895e7b9d7cf88760063fee3afc9b56a9ad66f
              classification: semantic_change
              summary: "feat: add syntax-only repair results and contract validation"
              contract_effect: "feat: add syntax-only repair results and contract validation adds a typed repair-search result and bounded syntax repair behavior for bounded repair; the audited diff changes the public repair API and runtime behavior. Evidence: lib/ibex/runtime/repair.rb."
            - revision: eb9998a7955b37f509b395a241218c288c4b6e9b
              classification: no_semantic_change
              summary: "Type repair value boundaries"
              contract_effect: "Type repair value boundaries updates type annotations and checked boundaries without changing the bounded-repair public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/repair.rb."
          diff_paths:
            - lib/ibex/runtime/repair.rb
          rationale: The reviewed syntax-only repair commit extends the public bounded repair result and runtime behavior; no broader usefulness or external compatibility claim is made from this repository evidence.
          unresolved_uncertainty: This path review does not establish downstream bounded repair compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git history does not establish external usefulness or a non-nil inserted-value contract.]
      evidence: [docs/decisions/0012-bounded-nonexecuting-analysis.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; it does not negate the two known unhelpful baseline plans. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/grammar-reference.md, docs/error-ux.md]
      gaps: [No external usefulness assessment, semantic-value strategy, or released behavior history exists.]
    dependent_tooling:
      status: present
      evidence: [test/runtime/repair_test.rb, test/codegen/cst_runtime_integration_test.rb]
      gaps: [The fixed ten-case maintainer assessment still lacks independent review under R001.]
    limitations:
      performance: [Bounded Dijkstra search adds configurable time and memory cost; public_real overhead is unmeasured.]
      safety: [Inserted semantic values may be nil, and replay executes ordinary trusted parser actions after a plan is selected.]
    decision:
      outcome: keep
      target_maturity: experimental
      criteria_status: unmet
      user_problem: Offer a bounded candidate repair after a syntax error instead of only rejecting the input.
      value_classification: repository_only
      alternatives: [Use the stable on_error callback and application-specific recovery or diagnostics.]
      reason: Eight useful baseline plans out of ten and repository tests do not establish external usefulness, value safety, or independent review.
      kill_condition: Remove bounded repair if independent review rejects usefulness or inserted semantic values cannot receive a safe contract.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, docs/error-ux-review-status-v1.json, test/runtime/repair_test.rb]
    next_review:
      triggers: [Independent R001 review completes., External field evidence and a non-nil inserted-value contract are available.]
      required_evidence: [Independent usefulness review, external runtime record, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is directly relevant and HOLD; the exact-revision R002 rerun is also pending. }
    sources: [{ path: lib/ibex/runtime/repair.rb, sha256: ebc613ae0a6e5a11723097c8141748edeeeb5ae9e9051937690cb0823eda9e43 }]

  - id: incremental-cst
    name: incremental CST
    maturity: experimental
    activation:
      maturity_independent: true
      surfaces:
        - id: incremental-session
          availability: explicit_api
          mechanism: Call generated `incremental_session` with `SourceText` and format-v6 CST metadata.
          default_enabled: false
        - id: syntax-session
          availability: explicit_api
          mechanism: Call generated `syntax_session` with an explicitly acknowledged execution profile.
          default_enabled: false
    external_use:
      status: not_demonstrated
      workload_ids: []
      evidence: [docs/workloads.yml]
      summary: No public_real editor or parser workload records incremental CST use; repository properties and benchmarks are not adoption.
    specification_history:
      method: git_pickaxe_and_source_snapshots_v1
      introduction: { revision: 0b33bac2d2a2e2bfdaa31f5721d34231f23ce23e, path: lib/ibex/runtime/parser.rb, query: incremental_session, summary: Incremental CST entered in Add syntax-only incremental parsing. }
      first_release: { status: released, tag: v0.2.0, revision: bd88b1203706c37bf225e837a2fe46d334d4651d }
      snapshots:
        - id: v0.1.0
          revision: 65d41edf381afb9c18e01e55332a293332f340e6
          feature_status: absent
          canonical_presence:
            status: partial
            present_paths:
              - lib/ibex/runtime.rb
              - lib/ibex/runtime/parser.rb
            absent_paths:
              - lib/ibex/runtime/embedded_source.rb
              - lib/ibex/runtime/syntax_session.rb
              - lib/ibex/runtime/cst/incremental/relexer.rb
              - lib/ibex/runtime/cst/incremental/session.rb
            rationale: The shared runtime entrypoint and parser existed, but no incremental or syntax-session implementation blob was present.
          source_tree_sha256: c0ba86f099a7936fc6621352a7df3fe6af64b9416c24fbbfb9a4922a7c78b989
        - id: v0.2.0
          revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          feature_status: partial
          canonical_presence:
            status: partial
            present_paths:
              - lib/ibex/runtime.rb
              - lib/ibex/runtime/parser.rb
              - lib/ibex/runtime/cst/incremental/relexer.rb
              - lib/ibex/runtime/cst/incremental/session.rb
            absent_paths:
              - lib/ibex/runtime/embedded_source.rb
              - lib/ibex/runtime/syntax_session.rb
            rationale: Incremental CST was present, while the later embedded manifest and public SyntaxSession façade were not yet available.
          source_tree_sha256: 2d60905f328e3ac5f4307964a07d910a25009991f47e42895044e23662046d5d
        - id: reviewed
          revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          feature_status: present
          canonical_presence:
            status: complete
            present_paths:
              - lib/ibex/runtime.rb
              - lib/ibex/runtime/embedded_source.rb
              - lib/ibex/runtime/parser.rb
              - lib/ibex/runtime/syntax_session.rb
              - lib/ibex/runtime/cst/incremental/relexer.rb
              - lib/ibex/runtime/cst/incremental/session.rb
            absent_paths: []
            rationale: All validator-owned canonical blobs exist at this reviewed tree.
          source_tree_sha256: 7afe3b01a94c7bee3c66c0489e0f8f1e9035bfd9ca935d77c2abfdb7bd368316
      changes:
        - boundary: introduction..v0.2.0
          from_revision: 5da90340090232df0e4266cf6ddd835777ca00f7
          to_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          classification: introduced
          commit_assessments:
            - revision: 0b33bac2d2a2e2bfdaa31f5721d34231f23ce23e
              classification: semantic_change
              summary: "Add syntax-only incremental parsing"
              contract_effect: "Add syntax-only incremental parsing adds syntax-only incremental parsing for incremental CST; the audited diff changes the public incremental-CST API and runtime behavior. Evidence: lib/ibex/runtime/cst/incremental/session.rb."
            - revision: ba5ee02b3afcb38a62618604faf6b77a53b1671e
              classification: semantic_change
              summary: "Reuse validated syntax subtrees incrementally"
              contract_effect: "Reuse validated syntax subtrees incrementally reuses validated syntax subtrees incrementally for incremental CST; the audited diff changes the public incremental-CST API and runtime behavior. Evidence: lib/ibex/runtime/cst/incremental/session.rb."
            - revision: 5799152a6403f61af8674a1b9b4a03526dd287fe
              classification: no_semantic_change
              summary: "Finish Red Green CST rollout"
              contract_effect: "Finish Red Green CST rollout adds a warning only for legacy CST tables; incremental sessions already use current Red/Green tables, so the incremental CST public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: f3cb3826efa6bfcdb7c7ef11494a9d43c47af352
              classification: semantic_change
              summary: "Harden CST fidelity and runtime contracts"
              contract_effect: "Harden CST fidelity and runtime contracts hardens CST fidelity and runtime contracts for incremental CST; the audited diff changes the public incremental-CST API and runtime behavior. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 1be1a47400fb882a56ead8cef3d6e7a89db7f7d7
              classification: internal_refactor
              summary: "Optimize CST construction hot paths"
              contract_effect: "Optimize CST construction hot paths optimizes CST construction hot paths in shared implementation paths for incremental CST, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: c6722bd9cb90e24a81786411e300edd6196619b7
              classification: internal_refactor
              summary: "Remove legacy CST runtime"
              contract_effect: "Remove legacy CST runtime removes legacy CST branches that current incremental sessions never enter, preserving the public contract. Evidence: lib/ibex/runtime/parser.rb."
          diff_paths:
            - lib/ibex/runtime.rb
            - lib/ibex/runtime/cst/incremental/relexer.rb
            - lib/ibex/runtime/cst/incremental/session.rb
            - lib/ibex/runtime/embedded_source.rb
            - lib/ibex/runtime/parser.rb
            - lib/ibex/runtime/syntax_session.rb
          rationale: The named semantic commits introduce the reviewed public incremental CST syntax, API, or behavior; other path commits were inspected and are not classified from digest changes alone.
          unresolved_uncertainty: This path review does not establish downstream incremental CST compatibility or behavior outside the validator-owned introduction and canonical source scope.
        - boundary: v0.2.0..reviewed
          from_revision: bd88b1203706c37bf225e837a2fe46d334d4651d
          to_revision: 1d65430f3b3788854cd930d05a7c9a55d8d0d11e
          classification: semantic_change
          commit_assessments:
            - revision: 021994f6342c2795d19ee90e58fbf7386ef5fa95
              classification: internal_refactor
              summary: "Fix TruffleRuby fast-path tracker recursion"
              contract_effect: "Fix TruffleRuby fast-path tracker recursion fixes fast-path mutation tracking, but incremental tables set cst and fail the !cst eligibility guard, preserving the public contract. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 789d1ea5eece0fb2e4461a89398acc84ded93885
              classification: semantic_change
              summary: "Fix embedded generation from installed gems"
              contract_effect: "Fix embedded generation from installed gems makes the installed runtime the public source for dependency-free embedded output, changing the incremental-CST packaging contract. Evidence: lib/ibex/runtime/embedded_source.rb."
            - revision: c03e842b7147ef9b19e38b95ac127d6e87c1a9b6
              classification: internal_refactor
              summary: "Avoid dormant CST parser state"
              contract_effect: "Avoid dormant CST parser state avoids dormant CST parser state in shared implementation paths for incremental CST, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 74645fc16e2606b120dee313be714a9be5b8acef
              classification: internal_refactor
              summary: "Keep dormant CST state signature-neutral"
              contract_effect: "Keep dormant CST state signature-neutral keeps dormant CST state signature-neutral in shared implementation paths for incremental CST, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 984d4ae7a1c96db4c71e3077669842b7bbc3b4ea
              classification: internal_refactor
              summary: "Reuse shareable runtime hook lookups"
              contract_effect: "Reuse shareable runtime hook lookups reuses shareable runtime hook lookups in shared implementation paths for incremental CST, preserving the public contract while changing internal mechanics. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 1e332a694abbc0b520af97d8a205dc8b8d311360
              classification: internal_refactor
              summary: "Fix runtime caches across Ruby engines"
              contract_effect: "Fix runtime caches across Ruby engines adjusts fast-path caches across Ruby engines, but incremental tables fail the !cst guard, preserving the public contract. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 643365686f7a04578b5794a73b8e64028e497f7e
              classification: internal_refactor
              summary: "Limit runtime lookup caches to MRI"
              contract_effect: "Limit runtime lookup caches to MRI limits fast-path caches to MRI, but incremental tables fail the !cst guard, preserving the public contract. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 55d19ab8e6b182b970e080a27073d8f4de2d4287
              classification: docs_test_only
              summary: "docs: define generated parser trust boundaries"
              contract_effect: "docs: define generated parser trust boundaries records documentation or test guidance in shared audited paths for incremental CST; executable behavior remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: a9808e0cc848b3f337c6ca57ed0b6852f30379fc
              classification: docs_test_only
              summary: "docs: distinguish semantic input trust paths"
              contract_effect: "docs: distinguish semantic input trust paths records documentation or test guidance in shared audited paths for incremental CST; executable behavior remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: c05888c71781ecd20a938e8d135248450467f8db
              classification: semantic_change
              summary: "feat: add generated syntax sessions"
              contract_effect: "feat: add generated syntax sessions adds the public trust-labelled syntax session façade, immutable results and metrics, cancellation, resource bounds, and transactional abort behavior for incremental CST. Evidence: lib/ibex/runtime/cst/incremental/session.rb."
            - revision: 2d2ba95466ead0a4079c5826f28ef4d8549726a1
              classification: semantic_change
              summary: "fix: harden syntax sessions across error edits"
              contract_effect: "fix: harden syntax sessions across error edits makes completed-operation metrics accurate and error-edit reuse bounds-safe; the audited diff changes the public incremental-CST runtime behavior. Evidence: lib/ibex/runtime/cst/incremental/session.rb."
            - revision: fde47e3a1c2f66b42f419e4e9f58438dff4c2269
              classification: no_semantic_change
              summary: "fix: preserve stable parser signatures"
              contract_effect: "fix: preserve stable parser signatures relocates existing syntax-session RBS declarations to the syntax-session overlay without changing session creation, edits, cancellation, metrics, or reuse; the incremental CST public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 5d3895e7b9d7cf88760063fee3afc9b56a9ad66f
              classification: semantic_change
              summary: "feat: add syntax-only repair results and contract validation"
              contract_effect: "feat: add syntax-only repair results and contract validation adds the explicit SyntaxSession repair operation, typed results, and bounded resource-aware recovery behavior; the audited diff changes the public incremental-CST runtime API. Evidence: lib/ibex/runtime/parser.rb."
            - revision: a3d1331fd54698eb111200299f573ec1d3d25cfa
              classification: internal_refactor
              summary: "quality: isolate repair helpers from stable signatures"
              contract_effect: "quality: isolate repair helpers from stable signatures relocates private repair helper signature ownership while preserving the public contract and without changing session creation, edits, cancellation, metrics, or reuse. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 86dad0e7f7795440cd66fdedb4fbcadd702d92ff
              classification: no_semantic_change
              summary: "Strengthen runtime type contracts"
              contract_effect: "Strengthen runtime type contracts updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 856f78d4d97d97af2b503c394d6ec65444617a5f
              classification: no_semantic_change
              summary: "Fix typed runtime table boundaries"
              contract_effect: "Fix typed runtime table boundaries updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 858d8f7a3232dc609ceda3685bb7ded85691479f
              classification: no_semantic_change
              summary: "Preserve audited source contracts"
              contract_effect: "Preserve audited source contracts updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: f2bbf7303ce5b917bb832d35b0a47f979e705b46
              classification: no_semantic_change
              summary: "Type syntax session diagnostics"
              contract_effect: "Type syntax session diagnostics updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/syntax_session.rb."
            - revision: 37291dd74f2ffb1dd70808a2b49d2bac277cf4bc
              classification: no_semantic_change
              summary: "Type incremental CST token boundaries"
              contract_effect: "Type incremental CST token boundaries updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/cst/incremental/session.rb."
            - revision: 9f4b94c276563fe0e1adfae5ff7d10c773080937
              classification: no_semantic_change
              summary: "Type parser runtime state"
              contract_effect: "Type parser runtime state updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 5f833b5cedbf2005c840fb642d3857aa1a5d6fb9
              classification: no_semantic_change
              summary: "Type parser semantic callbacks"
              contract_effect: "Type parser semantic callbacks updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: d9a7d1f4fb7718409a0fc40f65a27608718099b1
              classification: no_semantic_change
              summary: "Type parser and lexer value boundaries"
              contract_effect: "Type parser and lexer value boundaries updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 906d9b602953432b47bdb2557daa4b9c1f43460f
              classification: no_semantic_change
              summary: "Type parser recovery value boundaries"
              contract_effect: "Type parser recovery value boundaries updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 4ae4d9ef6cca589c2a0ca354e5482cfdb05fefb2
              classification: no_semantic_change
              summary: "Strengthen type boundaries and refresh inventory"
              contract_effect: "Strengthen type boundaries and refresh inventory updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: ec18c6e64731eb2997756a5a585dc74e2356b8fe
              classification: no_semantic_change
              summary: "Clarify typed boundary annotations"
              contract_effect: "Clarify typed boundary annotations updates type annotations and checked boundaries without changing the incremental-cst public contract; the public contract remains unchanged. Evidence: lib/ibex/runtime/parser.rb."
            - revision: 962292965894cbd1b284680886ea6d7ccc176d88
              classification: internal_refactor
              summary: "Retire pre-v1 parser table compatibility"
              contract_effect: "Retire pre-v1 parser table compatibility removes dormant pre-v1 parser table and action-encoding branches while preserving the public contract for incremental CST. Evidence: lib/ibex/runtime/parser.rb."
            - revision: ddd7c444202a46e38dd879bd9c1670218651416d
              classification: internal_refactor
              summary: "Polish current parser contract diagnostics"
              contract_effect: "Polish current parser contract diagnostics reformats current parser contract diagnostics in lib/ibex/runtime/parser.rb while preserving the public contract for incremental CST."
            - revision: fe9fc364c3517c789b38a8cfd91acf3e36383d10
              classification: internal_refactor
              summary: "Remove legacy hook-based JSONL tracer"
              contract_effect: "Remove legacy hook-based JSONL tracer removes an obsolete hook-based tracing adapter and its embedded source entry while preserving the public contract for incremental-CST and the current EventJSONLTracer event contract. Evidence: lib/ibex/runtime.rb."
          diff_paths:
            - lib/ibex/runtime.rb
            - lib/ibex/runtime/cst/incremental/relexer.rb
            - lib/ibex/runtime/cst/incremental/session.rb
            - lib/ibex/runtime/embedded_source.rb
            - lib/ibex/runtime/parser.rb
            - lib/ibex/runtime/syntax_session.rb
          rationale: Earlier cross-engine fixes preserve incremental behavior; the reviewed syntax-session commits add the Experimental public API, make its completed metrics and malformed-edit public behavior accurate and bounds-safe, then relocate signature ownership without changing runtime behavior.
          unresolved_uncertainty: This path review does not establish downstream incremental CST compatibility or behavior outside the validator-owned introduction and canonical source scope.
      unknowns: [Git snapshots do not establish editor lifecycle correctness or external latency behavior.]
      evidence: [docs/decisions/0018-conservative-incremental-syntax-reuse.md, docs/decisions/0019-runtime-syntax-session-boundary.md, docs/stability.md]
    issue_audit: { audit_id: github-open-issues-2026-08-04, status: none_found, summary: The exact open-issue query found no report; fixed-seed and property tests cannot prove every edit sequence. }
    documentation:
      status: complete_with_gaps
      evidence: [docs/cst.md, docs/cst-migration.md, docs/syntax-sessions.md]
      gaps: [No external editor integration, released compatibility history, or field cancellation behavior is documented.]
    dependent_tooling:
      status: present
      evidence: [test/runtime/cst_incremental_test.rb, test/runtime/cst_incremental_property_test.rb, test/runtime/syntax_session_test.rb]
      gaps: [Repository edit properties and cancellation tests do not represent external editor workloads or lifecycle behavior.]
    limitations:
      performance: [Published speedups cover repository benchmarks only and do not establish public_real latency or memory bounds.]
      safety: [Parser actions are suppressed, but generated lexer actions and runtime hooks still execute trusted Ruby after explicit profile acknowledgement; the API is not a nonexecuting sandbox.]
    decision:
      outcome: keep
      target_maturity: experimental
      criteria_status: unmet
      user_problem: Reparse edited generated-language syntax behind an explicit trust boundary while conservatively reusing unaffected Green subtrees.
      value_classification: repository_only
      alternatives: [Use stable batch CST parsing or watch mode with a deterministic full reparse.]
      reason: Structural equality and repository speedups do not establish external editor use, two stable releases, or a fully nonexecuting trust boundary.
      kill_condition: Remove incremental sessions if external editors cannot validate edit correctness or reuse fails to beat full batch parsing reliably.
      redesign_plan: not_applicable
      evidence: [docs/stability.md, docs/cst.md, docs/syntax-sessions.md, test/runtime/cst_incremental_property_test.rb, test/runtime/syntax_session_test.rb]
    next_review:
      triggers: [Two releases complete without incremental API changes., An external editor integration supplies correctness and latency evidence.]
      required_evidence: [External editor workload, external cancellation/lifecycle review, exact-release R002 results]
    release_gate: { status: blocked, blockers: [R001, R002], summary: R001 is HOLD and the exact-revision R002 rerun is pending; H001 grants no promotion. }
    sources:
      - { path: lib/ibex/runtime.rb, sha256: ff3acecc17a199bafc92c2bf7c9c8adda7bac9949b2a449920f92b88c7cc5f68 }
      - { path: lib/ibex/runtime/embedded_source.rb, sha256: 76b933beec10a8202e93cf92eb825226fcb1d085f281645399c83734e06b5fc3 }
      - { path: lib/ibex/runtime/parser.rb, sha256: 61a0b1fedc16cacf6386e2a3eb1d0381e72698c7562f920c9b763b476f5f23dd }
      - { path: lib/ibex/runtime/syntax_session.rb, sha256: 75c35d1cfcc68258b1981e7543942597348936e25427c7b4615be89d18cea12e }
      - { path: lib/ibex/runtime/cst/incremental/relexer.rb, sha256: 14157088f33f4517cfe91af7de5fc428bd0f114222b31d3c3ea7ff7ce257dfb3 }
      - { path: lib/ibex/runtime/cst/incremental/session.rb, sha256: 8092f39b1a57d29d89188ec0189923a78063ec9d05cceff300b7158b87afe806 }
