Skip to content

Commit a500007

Browse files
hyperpolymathclaude
andcommitted
fix(ci): address review - align the gate's labels with what it counts
CodeRabbit raised three findings on the first commit. All three are correct. 1. The step summary reported the combined .a2ml+.deed count as ".a2ml file(s)", and the scorecard row was renamed to "DEED manifest" while its status still came from a find matching .a2ml too - so a repo holding only legacy manifests scored a green DEED row. That is a label asserting one thing while its check asks another, which is the exact defect class this branch exists to cure. Fixed by aligning the LABELS to the check rather than narrowing the check: narrowing to .deed only would red-score essentially every repo in the estate today (19,477 tracked .a2ml against 15 .deed), and this branch is behaviour-neutral by design. 2. Both find sites now pass -type f. A directory named *.deed is not a manifest. 3. The validator's structural-identity exemption no longer waives the schema version for .deed. DEED is the live, grammar-bearing format; legacy .a2ml keeps the exemption. Proved by control: two files in one machine-readable directory differing only by extension now get different verdicts. Severity is unchanged (warning, and the gate invokes strict:false), so no repo can turn red on this. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0168Bgpez8mFBcAqYAj8VgEx
1 parent c52ceaf commit a500007

2 files changed

Lines changed: 10 additions & 5 deletions

File tree

‎.githooks/validate-a2ml.sh‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,12 @@ validate_a2ml() {
281281
"Missing required identity field (agent-id, name, or project)"
282282
fi
283283

284-
if [[ "$has_version" == "false" && "$is_manifest" == "false" && "$is_contractile_shape" == "false" && "$is_structural_identity" == "false" ]]; then
284+
# DEED is the live, grammar-bearing format: its schema version is required even
285+
# under a machine-readable tree. The structural-identity exemption below stays
286+
# scoped to legacy *.a2ml, which is no longer authored. (CodeRabbit, PR review.)
287+
local version_exempt_structural="$is_structural_identity"
288+
case "$file" in *.deed) version_exempt_structural=false ;; esac
289+
if [[ "$has_version" == "false" && "$is_manifest" == "false" && "$is_contractile_shape" == "false" && "$version_exempt_structural" == "false" ]]; then
285290
report_issue "warning" "$file" 1 \
286291
"Missing version or schema_version field"
287292
fi

‎.github/workflows/dogfood-gate.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
- name: Check for A2ML files
3434
id: detect
3535
run: |
36-
COUNT=$(find . \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' | wc -l)
36+
COUNT=$(find . -type f \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' | wc -l)
3737
echo "count=$COUNT" >> "$GITHUB_OUTPUT"
3838
if [ "$COUNT" -eq 0 ]; then
3939
echo "::warning::No .deed manifest files found. Every RSR repo should have 0-AI-MANIFEST.deed (.a2ml is legacy and no longer authored)"
@@ -56,7 +56,7 @@ jobs:
5656
else
5757
echo "## A2ML Validation" >> "$GITHUB_STEP_SUMMARY"
5858
echo "" >> "$GITHUB_STEP_SUMMARY"
59-
echo "Scanned **${A2ML_COUNT}** .a2ml file(s). See step output for details." >> "$GITHUB_STEP_SUMMARY"
59+
echo "Scanned **${A2ML_COUNT}** manifest file(s) (.deed, or legacy .a2ml). See step output for details." >> "$GITHUB_STEP_SUMMARY"
6060
fi
6161
6262
# ---------------------------------------------------------------------------
@@ -245,7 +245,7 @@ jobs:
245245
MAX=5
246246
247247
# A2ML manifest present?
248-
if find . \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' | head -1 | grep -q .; then
248+
if find . -type f \( -name '*.a2ml' -o -name '*.deed' \) -not -path './.git/*' | head -1 | grep -q .; then
249249
SCORE=$((SCORE + 1))
250250
A2ML_STATUS=":white_check_mark:"
251251
else
@@ -291,7 +291,7 @@ jobs:
291291
292292
| Tool/Format | Status | Notes |
293293
|-------------|--------|-------|
294-
| DEED manifest (0-AI-MANIFEST.deed) | ${A2ML_STATUS} | Required for all RSR repos |
294+
| AI manifest (0-AI-MANIFEST.deed, or legacy .a2ml) | ${A2ML_STATUS} | Required for all RSR repos |
295295
| K9 contracts | ${K9_STATUS} | Required for repos with config files |
296296
| .editorconfig | ${EC_STATUS} | Required for all repos |
297297
| Groove endpoint | ${GROOVE_STATUS} | Required for service repos |

0 commit comments

Comments
 (0)