mirror of
https://github.com/msitarzewski/agency-agents.git
synced 2026-06-26 11:44:38 +03:00
4d07efdb70
strategy/ holds 16 markdown files and ZERO have agent frontmatter — they're playbooks (playbooks/phase-*.md), runbooks (runbooks/scenario-*.md), and briefs (EXECUTIVE-BRIEF.md, QUICKSTART.md, nexus-strategy.md), not agent definitions. There are 16 real agent divisions, 232 agents; strategy is not one of them. #592 added `strategy` to lint-agents.sh AGENT_DIRS and the lint workflow paths (to match divisions.json), which made CI lint those 16 frontmatter-less docs as agents and fail every one with "missing frontmatter opening ---". So any PR touching strategy/ broke CI. The original lint-agents.sh correctly excluded strategy; #592 misread that deliberate exclusion as drift (same mistake as integrations/ in #593). Fix: remove strategy from convert.sh / lint-agents.sh AGENT_DIRS, the lint workflow, and divisions.json; add it to NON_DIVISION_DIRS in check-divisions.sh. divisions.json is now 16, matching the app's parse_agent count exactly. Also add a content-derived backstop to check-divisions.sh: every division must contain at least one .md with '---' frontmatter, or the build fails. This is what stops a docs/playbook directory from being registered as an empty agent division again — regardless of whether someone remembers the exclude list. check-divisions.sh PASSES at 16; negative-tested that re-adding strategy fails with "division 'strategy' has no agent files". Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
66 lines
1.9 KiB
YAML
66 lines
1.9 KiB
YAML
name: Lint Agent Files
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- "academic/**"
|
|
- "design/**"
|
|
- "engineering/**"
|
|
- "finance/**"
|
|
- "game-development/**"
|
|
- "gis/**"
|
|
- "marketing/**"
|
|
- "paid-media/**"
|
|
- "sales/**"
|
|
- "security/**"
|
|
- "product/**"
|
|
- "project-management/**"
|
|
- "testing/**"
|
|
- "support/**"
|
|
- "spatial-computing/**"
|
|
- "specialized/**"
|
|
|
|
jobs:
|
|
lint:
|
|
name: Validate agent frontmatter and structure
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Get changed agent files
|
|
id: changed
|
|
run: |
|
|
FILES=$(git diff --name-only --diff-filter=ACMR origin/${{ github.base_ref }}...HEAD -- \
|
|
'academic/**/*.md' 'design/**/*.md' 'engineering/**/*.md' 'finance/**/*.md' 'game-development/**/*.md' 'gis/**/*.md' 'marketing/**/*.md' 'paid-media/**/*.md' 'sales/**/*.md' 'security/**/*.md' 'product/**/*.md' \
|
|
'project-management/**/*.md' 'testing/**/*.md' 'support/**/*.md' \
|
|
'spatial-computing/**/*.md' 'specialized/**/*.md')
|
|
{
|
|
echo "files<<ENDOFLIST"
|
|
echo "$FILES"
|
|
echo "ENDOFLIST"
|
|
} >> "$GITHUB_OUTPUT"
|
|
if [ -z "$FILES" ]; then
|
|
echo "No agent files changed."
|
|
else
|
|
echo "Changed files:"
|
|
echo "$FILES"
|
|
fi
|
|
|
|
- name: Run agent linter
|
|
if: steps.changed.outputs.files != ''
|
|
env:
|
|
CHANGED_FILES: ${{ steps.changed.outputs.files }}
|
|
run: |
|
|
chmod +x scripts/lint-agents.sh
|
|
./scripts/lint-agents.sh $CHANGED_FILES
|
|
|
|
- name: Check agent originality
|
|
if: steps.changed.outputs.files != ''
|
|
env:
|
|
CHANGED_FILES: ${{ steps.changed.outputs.files }}
|
|
run: |
|
|
chmod +x scripts/check-agent-originality.sh
|
|
./scripts/check-agent-originality.sh $CHANGED_FILES
|