# This workflow is managed by gh actions-lock. # SPDX-License-Identifier: MPL-2.0 name: "🟡 CHECK: DEED Manifest Validation" on: pull_request: branches: ['**'] push: branches: [main, master] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: deed-validate: name: Validate DEED manifests runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout repository uses: actions/checkout@v7.0.1 - name: Check for A2ML files id: detect run: | 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/.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: "🟡 CHECK: Validate DEED manifests" if: steps.detect.outputs.count > 0 uses: hyperpolymath/deed-ecosystem/validate-action@main with: path: '.' strict: 'false' - name: Write summary run: | MANIFEST_COUNT="${{ steps.detect.outputs.count }}" if [ "$MANIFEST_COUNT" -eq 0 ]; then cat <<'EOF' >> "$GITHUB_STEP_SUMMARY" ## DEED Manifest Validation :warning: **No .a2ml/.deed manifest files found.** Every RSR-compliant repo should have a repo deed (`_chora.deed`) at its root. 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 "## DEED Manifest Validation" >> "$GITHUB_STEP_SUMMARY" echo "" >> "$GITHUB_STEP_SUMMARY" echo "Scanned **${MANIFEST_COUNT}** .a2ml/.deed manifest(s). See step output for details." >> "$GITHUB_STEP_SUMMARY" fi