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.jsonExit 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