CI integration

Fail the build, not the agent.

AFPS exposes three exit-coded commands designed for CI: lint, review, and eval. Each writes a machine-readable report that can be uploaded as a build artifact.

GitHub Actions

# .github/workflows/afps.yml
name: afps
on: [pull_request]
jobs:
  afps:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: afps/setup-afps@v1
        with: { version: '0.4' }

      - name: Lint pack manifests
        run: afps lint --reporter junit > afps-lint.xml

      - name: Reviewer score
        run: afps review --threshold 0.85 --report review.json

      - name: Scenario evals (baseline vs. with-pack)
        run: afps eval run --baseline --with-pack --threshold 0.85 --report eval.json

      - uses: actions/upload-artifact@v4
        if: always()
        with:
          name: afps-reports
          path: |
            afps-lint.xml
            review.json
            eval.json

Exit codes

  • 0All checks passed. Safe to publish.
  • 10Lint failed: manifest, schema, or activation metadata invalid.
  • 20Reviewer below threshold.
  • 30Eval gate failed: uplift below configured floor.
  • 40Signature or provenance verification failed.

Reproducible local runs

afps lint
afps review --threshold 0.85
afps eval run --baseline --with-pack
afps publish --dry-run