- 18 agent specs across Software, Support, Marketing, Cross-cutting (orchestrator + 7 software + 5 support + 3 cross-cutting + leads-finder) - 8 reusable skills (handoff, pr-review, dokploy-deploy, campaign-structure, content-calendar, ticket-triage, license-lifecycle, invoice-draft) - 3 JSON schemas: handoff, deliverable, approval - Policies: autonomy levels, tool risk classification, compliance (DSGVO/GoBD/UWG) - routing.toml: model tiers T1/T2/T3 + provider config (PII gating) - Rust workspace (5 crates, all compile + 16 tests pass): - aos-mcp: tool registry + risk tagging - aos-policy: autonomy levels, budget enforcement, approval requests - aos-license: ed25519 license issue/verify (real crypto + CLI binary) - aos-ledger: integer-cents money math, gapless numbering, VAT, audit chain - aos-sync: frontmatter validator (18/18 specs pass), CLI binary - CLAUDE.md entry point with architecture overview + roadmap
4.1 KiB
4.1 KiB
name, version, applies_to, risk
| name | version | applies_to | risk | |||
|---|---|---|---|---|---|---|
| pr-review | 1.0.0 |
|
low |
PR Review (review_verdict)
When to use
Whenever a pull request is opened against a project's protected branch and a verdict is needed before the PR can be merged. The reviewer is read-only — it returns a verdict; it never pushes, merges, or edits the diff.
Steps
- Read the project's
RULES.mdfrom the repo root. If it is missing, returnblockedand flag tosoftware-lead— review is against that file, not against personal taste. - Fetch the PR diff via
github:read_pr; read the touched files in context withgithub:read_repoand recent history withgit:log. - Run the project's test suite (CI status on the PR). If CI is red, the
verdict is
changes_requested— do not proceed to substantive review until the build is green. - Check the diff against the
RULES.mdchecklist, covering at minimum:- Correctness against the task's
definition_of_done. - GoBD: no deletion of accounting records (invoices, ledger entries, audit log); storno-only for reversals; gapless numbering untouched.
- Secrets: no API keys, tokens, passwords, private keys, or connection strings in the diff or in committed env files.
- Brand/UI: no
indigoorbluepalette unless explicitly requested inRULES.md; sticky footer present and functional; responsive breakpoints covered; WCAG 2.1 AA (labels, focus, contrast, alt text). - Input validation / authn / authz on any new endpoint or form.
- Log content: no PII in logs; no full request bodies.
- Dependencies: new packages reviewed for necessity and license.
- Correctness against the task's
- For PRs touching auth, payments, file uploads, external APIs, or user
input, run
security-review. Flag injection, IDOR, SSRF, XSS, auth bypass, and supply-chain risks with severity. - Classify every finding as blocking or non-blocking:
- Blocking = breaks
RULES.md, security hole, build break, data loss, accessibility regression, missing tests for new behavior. - Non-blocking = stylistic preferences
RULES.mddoes not codify → goes innotes, never in the verdict.
- Blocking = breaks
- Produce the
review_verdictperschemas/deliverable.json:approved— meetsRULES.md, no unresolved blocking findings, CI green.changes_requested— concrete fixable blocking findings; list each with file, line, and the rule it breaks.rejected— fundamentally wrong (wrong layer, wrong abstraction, security hole the author should not patch over). The PR should be closed, not iterated.
Inputs
- A PR URL or PR id on a project repo.
- The project's
RULES.mdin the repo root. - The originating AOS task id and its
definition_of_done.
Outputs
An AgentDeliverable (schemas/deliverable.json) with:
status:done|blockeddeliverables[]: review notes (inline, per-file with line refs) and security findings list where relevant.risks[]: unresolved high-severity findings, areas not reviewed (e.g. generated files, vendored deps), assumptions made.review_verdict:reviewed_task_id: the PR's source AOS taskverdict:approved|changes_requested|rejectednotes: blocking findings first, then non-blocking suggestions
cost: tokens only.
Guard rails / compliance
- Never merge the PR.
github:merge_to_mainis forbidden in this spec. - Never block on style nitpicks that
RULES.mddoes not codify. - Never approve with an unresolved high-severity security finding.
- Never approve without reading the full diff.
- GoBD: flag any deletion of accounting/audit records as blocking.
- DSGVO: flag any PII added to logs, error messages, or commits as blocking.
- Secrets in the diff are always blocking and must be reported to
software-leadimmediately for rotation. - WCAG 2.1 AA regressions on client-facing UI are blocking (BFSG).
References
schemas/deliverable.json—review_verdictshapepolicies/compliance.md— GoBD, DSGVO, UWG, BFSG, secretsagents/software/code-reviewer.md— operating rules- Project
RULES.mdin the reviewed repo