Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions .github/workflows/dogfood-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,47 +17,47 @@

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

steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4

- name: Check for A2ML files
- name: Check for manifest files (.a2ml/.deed)
id: detect
run: |
COUNT=$(find . -name '*.a2ml' -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 .a2ml manifest files found. Every RSR repo should have 0-AI-MANIFEST.a2ml"
echo "::warning::No .a2ml/.deed manifest files found. Every RSR repo should have a repo deed (<reponame>_chora.deed); legacy 0-AI-MANIFEST.a2ml accepted mid-migration — a2ml retired: 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 .a2ml files found.** Every RSR-compliant repo should have at least `0-AI-MANIFEST.a2ml`.

Create one with: `a2mliser init` or copy 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}** .a2ml file(s). 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

# ---------------------------------------------------------------------------
Expand Down Expand Up @@ -300,7 +300,7 @@
dogfood-summary:
name: Dogfooding compliance summary
runs-on: ubuntu-latest
needs: [a2ml-validate, k9-validate, empty-lint, groove-check, eclexiaiser-validate]
needs: [deed-validate, k9-validate, empty-lint, groove-check, eclexiaiser-validate]
if: always()

steps:
Expand All @@ -312,12 +312,12 @@
SCORE=0
MAX=6

# A2ML manifest present?
if find . -name '*.a2ml' -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?
Expand Down Expand Up @@ -367,7 +367,7 @@

| Tool/Format | Status | Notes |
|-------------|--------|-------|
| A2ML manifest (0-AI-MANIFEST.a2ml) | ${A2ML_STATUS} | Required for all RSR repos |
| DEED manifest (<reponame>_chora.deed, or legacy .a2ml) | ${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 |
Expand Down
Loading