Files
AOS/agency-agents/skills/pr-review/SKILL.md
T
Z User 136379c666 feat: zeroclaw agentic agency architecture — agents, skills, Rust crates
- 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
2026-10-30 13:01:03 +00:00

86 lines
4.1 KiB
Markdown

---
name: pr-review
version: 1.0.0
applies_to: [code-reviewer, frontend-dev, backend-dev]
risk: 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
1. Read the project's `RULES.md` from the repo root. If it is missing, return
`blocked` and flag to `software-lead` — review is against that file, not
against personal taste.
2. Fetch the PR diff via `github:read_pr`; read the touched files in context
with `github:read_repo` and recent history with `git:log`.
3. 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.
4. Check the diff against the `RULES.md` checklist, 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 `indigo` or `blue` palette unless explicitly requested
in `RULES.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.
5. 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.
6. 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.md` does not codify →
goes in `notes`, never in the verdict.
7. Produce the `review_verdict` per `schemas/deliverable.json`:
- `approved` — meets `RULES.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.md` in the repo root.
- The originating AOS task id and its `definition_of_done`.
## Outputs
An `AgentDeliverable` (`schemas/deliverable.json`) with:
- `status`: `done` | `blocked`
- `deliverables[]`: 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 task
- `verdict`: `approved` | `changes_requested` | `rejected`
- `notes`: blocking findings first, then non-blocking suggestions
- `cost`: tokens only.
## Guard rails / compliance
- **Never merge the PR.** `github:merge_to_main` is forbidden in this spec.
- **Never block on style nitpicks** that `RULES.md` does 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-lead` immediately for rotation.
- WCAG 2.1 AA regressions on client-facing UI are blocking (BFSG).
## References
- `schemas/deliverable.json` — `review_verdict` shape
- `policies/compliance.md` — GoBD, DSGVO, UWG, BFSG, secrets
- `agents/software/code-reviewer.md` — operating rules
- Project `RULES.md` in the reviewed repo