Created
Jul 06, 20:55
Started
Jul 06, 20:57
Completed
Jul 06, 23:26
DevOps handoff
Type
Feature
Shape
backend
Worktree Slug
harden-review-lane-roles
Repositories
mcritchie-studio
Release Slug
—
Branch
feat/harden-review-lane-roles
Local URL
—
QA URL
—
Production URL
—
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Follow-up to shipped #426. The live pr-review TEST (blocked-card-crew-layout) showed execution drift despite correct SOPs: Avi spawned only the primary, the primary (Shannon) then spawned the light (Carl), and the light drove the deep review + verdict (role/depth inversion). ROOT: the interactive Agent-tool path is prose-driven and drifts. FIX = make it enforced + legible: (1) Avi (supervisor) deterministically spawns BOTH primary and light in parallel as his own children; the primary must NOT spawn the light. Emit TWO intent-labeled delegate actions: 'summon primary review: <soul>' and 'summon light review: <soul>' (the Agent-tool description becomes the action label). (2) Sharpen the responsibility split in pr-review-primary.md and pr-review-light.md: PRIMARY = review owner = deep review + owns the gates (dor/cert/CI/acceptance) + DRIVES the verdict to reviewed or block. LIGHT = focused second read through its domain lens + reports to the primary; does NOT run gates, does NOT drive the verdict. (3) Add a per-domain REVIEW CHECKLIST per reviewer soul (in each soul role.md) from our hard-won gotchas: Shannon UI (Alpine x-show/single-root/x-data, Tailwind rgba space-separated vars, ERB comment rules, live-partial dual render paths, CSS-grid mb, reduced-motion), Carl backend (N+1, transactions, ErrorLog on rescue, migrations, slug FKs), Jasper web3 (IDL pin, decoder expected_len, signer order, Squads), Steffon infra, Alex docs. Domain = soul + checklist; role = primary/light responsibility. Files: bin/pr-review, docs/agents/agents/avi/sops/pr-review.md + pr-review-primary.md + pr-review-light.md, the primitive pr-review-sop.md, each soul role.md. Test the spawn structure + labels + primary-drives-verdict.
Stage Timeline
Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. — means the agent didn't report that metric.
Conversation
QA review feedback, agent handoffs, and follow-up notes for this task.
Submitted for pr-review. PR #433 (base release) leads with the task URL. Follow-up to #426: bin/pr-review now announces each spawn with an intent-labeled delegate action (summon primary/light review: <soul>) and its prompts carry the primary-owns-gates/drives-verdict vs light-does-neither split; pr-review.md + pr-review-sop.md specify the two Agent-tool delegate labels for the interactive path; primary/light role SOPs sharpened; per-domain Review Checklist added to Carl/Shannon/Jasper/Steffon/Alex role.md. Cert: full suite 2999/0-fail + system 8/0 + rubocop clean; dor-check met (unit+integration). Untouched: bin/release.rb, result-distillation.md, index.md.
Reviewed: bin/pr-review change (delegate_action_label + role_responsibility) properly full-suite certified [full-suite@13c748f3 incl test:system] + unit(12)/integration(10)/rubocop, CI green, cert binds at head. NIT (non-blocking, future hygiene): the [full-suite-bypass] checks_run line is a redundant leftover — its 'no runtime surface' justification is false since bin/pr-review is Ruby; safe to drop it, real full-suite cert dominates. Approving.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
MEDIUM
Dev
MEDIUM
Actual
XL
We emailed a one-tap sign-in link to . It expires shortly and can only be used once.
No email? Check spam, or close this and try again.