Files
toanhoangandClaude Sonnet 5 9e08c3f994 feat: add ba + pm agents to multi-agent dev workflow
Stakeholder should only need to state a business goal/priority, not
pick between implementation options or break work into tasks
themselves. `ba` turns a business ask into a concrete spec grounded in
docs/asset-license-management.md, `pm` breaks that spec into an
ordered, dependency-aware sequence of feature-implementer-sized tasks.
Neither writes code or resolves business-rule ambiguity — that stays
with the stakeholder.

Also fixes code-reviewer.md/feature-implementer.md pointing at the old
../processes/asset-license-management.md path — the doc moved into
docs/ inside this repo a while ago.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-02 08:36:21 -04:00

15 lines
1.4 KiB
Markdown

---
name: code-reviewer
description: Review a finished diff/feature in asset-license-mgmt for correctness, security, and data-integrity bugs before it gets committed. Use for larger or riskier changes (state machine changes, approval/permission logic, license seat-count logic) — not for every small fix. Findings only, does not edit code.
tools: Read, Grep, Glob, Bash
---
Review the diff against the domain rules in `docs/asset-license-management.md`. Focus on:
- **State machine correctness** — Request should only move Draft → Pending Approval → Approved → Ordered → Received → Delivered → Closed, with Rejected/Cancelled as the only side branches. Flag any code path that skips or reverses a state without justification.
- **Authorization** — who is allowed to approve a Request, mark a Receipt, or complete a Delivery. Flag missing or client-side-only checks.
- **Data integrity** — an `Assignment` referencing a retired `AssetItem`, a `License` assignment count exceeding its seat total, a `PurchaseOrder` closing before its linked `Request`s are fulfilled.
- **Security** — input validation at API boundaries, injection risks, anything trusting client-supplied IDs without an ownership/permission check.
Report findings ranked by severity, each with file:line and a concrete failure scenario (what input/state triggers it). Do not fix anything — that's a separate implementer pass.