From c78c8f788b611ff42cd2298578df7f32ce20b178 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 21 Sep 2026 12:07:38 +0100 Subject: [PATCH 1/2] fix(gates): the required manifest is .deed, not the deprecated .a2ml The guard counted `.a2ml` files only, so a repo carrying just a `.deed` document was told it had no manifest at all: - find \. -name '\*\.a2ml' -not -path '\./\.git/\*' + find . -type f \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' The validator already reads both grammars; the caller's predicate was the bug. Wording follows the estate's own migrated copy and `deed-ecosystem/README.adoc`: `.deed` is final, `.a2ml` is legacy and no longer authored, and the template bootstraps with `just repo-init` (so the `a2mliser init` instruction is removed). Retained `.machine_readable/*.a2ml` inputs are untouched. --- .github/workflows/dogfood-gate.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/dogfood-gate.yml b/.github/workflows/dogfood-gate.yml index 1886fb1..20175cc 100644 --- a/.github/workflows/dogfood-gate.yml +++ b/.github/workflows/dogfood-gate.yml @@ -26,10 +26,10 @@ jobs: - name: Check for A2ML files id: detect run: | - COUNT=$(find . -name '*.a2ml' -not -path './.git/*' | wc -l) + COUNT=$(find . -type f \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' | wc -l) echo "count=$COUNT" >> "$GITHUB_OUTPUT" if [ "$COUNT" -eq 0 ]; then - echo "::warning::No .a2ml manifest files found. Every RSR repo should have 0-AI-MANIFEST.a2ml" + echo "::warning::No .deed manifest files found. Every RSR repo should have 0-AI-MANIFEST.deed (.a2ml is legacy and no longer authored)" fi - name: Validate A2ML manifests if: steps.detect.outputs.count > 0 @@ -44,14 +44,14 @@ jobs: cat <<'EOF' >> "$GITHUB_STEP_SUMMARY" ## A2ML Validation - :warning: **No .a2ml files found.** Every RSR-compliant repo should have at least `0-AI-MANIFEST.a2ml`. + :warning: **No manifest found.** Every RSR-compliant repo should have at least `0-AI-MANIFEST.deed`. (`.a2ml` still validates as legacy but is no longer authored.) - Create one with: `a2mliser init` or copy from [rsr-template-repo](https://github.com/hyperpolymath/rsr-template-repo). + Copy one from [rsr-template-repo](https://github.com/hyperpolymath/rsr-template-repo). EOF else echo "## A2ML Validation" >> "$GITHUB_STEP_SUMMARY" echo "" >> "$GITHUB_STEP_SUMMARY" - echo "Scanned **${A2ML_COUNT}** .a2ml file(s). See step output for details." >> "$GITHUB_STEP_SUMMARY" + echo "Scanned **${A2ML_COUNT}** manifest file(s) (.deed, or legacy .a2ml). See step output for details." >> "$GITHUB_STEP_SUMMARY" fi # --------------------------------------------------------------------------- # Job 2: K9 contract validation @@ -232,7 +232,7 @@ jobs: MAX=5 # A2ML manifest present? - if find . -name '*.a2ml' -not -path './.git/*' | head -1 | grep -q .; then + if find . -type f \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' | head -1 | grep -q .; then SCORE=$((SCORE + 1)) A2ML_STATUS=":white_check_mark:" else @@ -278,7 +278,7 @@ jobs: | Tool/Format | Status | Notes | |-------------|--------|-------| - | A2ML manifest (0-AI-MANIFEST.a2ml) | ${A2ML_STATUS} | Required for all RSR repos | + | DEED manifest (0-AI-MANIFEST.deed) | ${A2ML_STATUS} | Required for all RSR repos | | K9 contracts | ${K9_STATUS} | Required for repos with config files | | .editorconfig | ${EC_STATUS} | Required for all repos | | Groove endpoint | ${GROOVE_STATUS} | Required for service repos | From 1a817ff69d052715a5ed8736c9b3c8c1c2112a38 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 21 Sep 2026 12:15:07 +0100 Subject: [PATCH 2/2] fix(gates): converge the manifest guard on the template's DEED wording Mirrors `rsr-template-repo/.github/workflows/deed-validate.yml` and standards#837 step 4. No `.a2ml` document is translated and no retained-input gate is touched. --- .github/workflows/dogfood-gate.yml | 44 +++++++++++++++--------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/dogfood-gate.yml b/.github/workflows/dogfood-gate.yml index 20175cc..c23370d 100644 --- a/.github/workflows/dogfood-gate.yml +++ b/.github/workflows/dogfood-gate.yml @@ -14,44 +14,44 @@ permissions: contents: read jobs: # --------------------------------------------------------------------------- - # Job 1: A2ML manifest validation + # Job 1: DEED manifest validation # --------------------------------------------------------------------------- - a2ml-validate: - name: Validate A2ML manifests + deed-validate: + name: Validate DEED manifests runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - name: Check for A2ML files + - name: Check for manifest files (.a2ml/.deed) id: detect run: | - COUNT=$(find . -type f \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' | wc -l) + COUNT=$(find . \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' | wc -l) echo "count=$COUNT" >> "$GITHUB_OUTPUT" if [ "$COUNT" -eq 0 ]; then - echo "::warning::No .deed manifest files found. Every RSR repo should have 0-AI-MANIFEST.deed (.a2ml is legacy and no longer authored)" + echo "::warning::No .a2ml/.deed manifest files found. Every RSR repo should have a repo deed (_chora.deed); legacy 0-AI-MANIFEST.a2ml accepted mid-migration — standards #837" fi - - name: Validate A2ML manifests + - name: Validate DEED manifests if: steps.detect.outputs.count > 0 - uses: hyperpolymath/a2ml-ecosystem/validate-action@aa4b836bd969df2bc58128cb8e3d20bbc88d5e79 # main + uses: hyperpolymath/deed-ecosystem/validate-action@aa4b836bd969df2bc58128cb8e3d20bbc88d5e79 # main with: path: '.' strict: 'false' - name: Write summary run: | - A2ML_COUNT="${{ steps.detect.outputs.count }}" - if [ "$A2ML_COUNT" -eq 0 ]; then + MANIFEST_COUNT="${{ steps.detect.outputs.count }}" + if [ "$MANIFEST_COUNT" -eq 0 ]; then cat <<'EOF' >> "$GITHUB_STEP_SUMMARY" - ## A2ML Validation + ## DEED Manifest Validation - :warning: **No manifest found.** Every RSR-compliant repo should have at least `0-AI-MANIFEST.deed`. (`.a2ml` still validates as legacy but is no longer authored.) + :warning: **No .a2ml/.deed manifest files found.** Every RSR-compliant repo should have a repo deed (`_chora.deed`) at its root. - Copy one from [rsr-template-repo](https://github.com/hyperpolymath/rsr-template-repo). + Copy it from [rsr-template-repo](https://github.com/hyperpolymath/rsr-template-repo). Manifests are validated against the DEED grammar (standards `1-formats/deed/`); the `.a2ml` → `.deed` extension migration is tracked in standards #837 — the deed validator scans both. EOF else - echo "## A2ML Validation" >> "$GITHUB_STEP_SUMMARY" + echo "## DEED Manifest Validation" >> "$GITHUB_STEP_SUMMARY" echo "" >> "$GITHUB_STEP_SUMMARY" - echo "Scanned **${A2ML_COUNT}** manifest file(s) (.deed, or legacy .a2ml). See step output for details." >> "$GITHUB_STEP_SUMMARY" + echo "Scanned **${MANIFEST_COUNT}** .a2ml/.deed manifest(s). See step output for details." >> "$GITHUB_STEP_SUMMARY" fi # --------------------------------------------------------------------------- # Job 2: K9 contract validation @@ -89,7 +89,7 @@ jobs: cat <<'EOF' >> "$GITHUB_STEP_SUMMARY" ## K9 Contract Validation - :warning: **No K9 contract files found.** Repos with configuration files should have K9 contracts. + :warning: **No .a2ml/.deed manifest files found.** Every RSR-compliant repo should have a repo deed (`_chora.deed`) at its root. Generate contracts with: `k9iser generate .` EOF @@ -221,7 +221,7 @@ jobs: name: Dogfooding compliance summary runs-on: ubuntu-latest timeout-minutes: 15 - needs: [a2ml-validate, k9-validate, empty-lint, groove-check] + needs: [deed-validate, k9-validate, empty-lint, groove-check] if: always() steps: - name: Checkout repository @@ -231,12 +231,12 @@ jobs: SCORE=0 MAX=5 - # A2ML manifest present? - if find . -type f \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' | head -1 | grep -q .; then + # DEED manifest present? + if find . \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' | head -1 | grep -q .; then SCORE=$((SCORE + 1)) - A2ML_STATUS=":white_check_mark:" + DEED_STATUS=":white_check_mark:" else - A2ML_STATUS=":x:" + DEED_STATUS=":x:" fi # K9 contracts present? @@ -278,7 +278,7 @@ jobs: | Tool/Format | Status | Notes | |-------------|--------|-------| - | DEED manifest (0-AI-MANIFEST.deed) | ${A2ML_STATUS} | Required for all RSR repos | + | DEED repo deed (`_chora.deed`) | ${DEED_STATUS} | Required for all RSR repos | | K9 contracts | ${K9_STATUS} | Required for repos with config files | | .editorconfig | ${EC_STATUS} | Required for all repos | | Groove endpoint | ${GROOVE_STATUS} | Required for service repos |