name: Lint Agent Files

on:
  pull_request:
    paths:
      - 'design/**'
      - 'engineering/**'
      - 'marketing/**'
      - 'product/**'
      - 'project-management/**'
      - 'testing/**'
      - 'support/**'
      - 'spatial-computing/**'
      - 'specialized/**'
      - 'strategy/**'

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 -- \
            'design/*.md' 'engineering/*.md' 'marketing/*.md' 'product/*.md' \
            'project-management/*.md' 'testing/*.md' 'support/*.md' \
            'spatial-computing/*.md' 'specialized/*.md' 'strategy/*.md')
          echo "files=$FILES" >> "$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
