feat(review): step 9 — ai-review rule, bounded tool loop, findings ui
4 months ago
Authored
grim- contracts: review.ts (AiReviewOutput muzzle schema §8 verbatim, config)
- core: ai-review@1 (injected generate via RuleContext, prompt files
versioned with the rule, schema-violation ⇒ skipped, trace in evidence)
- worker: createGenerate — AI SDK bounded loop (submit_review tool carries the
output schema, read_file/get_commits/get_contributor_context wrap adapter
reads, hard step cap, diff up front), env-gated wiring
- web: AiFindings on the run page (summary + confidence + ≤5 findings)
- tests: mocked generate — pass/block/needs_review mapping, muzzle
enforcement (essay + >5 findings rejected), skip paths
- NOTE: eve demo absent; prompts authored from §8 (morning review target)
Parent205930c
27 files changed
- DECISIONS.md+31−0
- VERIFICATION-QUEUE.md+14−0
- all-summaries.md+38−0
- apps/web/src/components/runs/ai-findings.tsx+44−0
- apps/web/src/components/runs/step-card.tsx+29−3
- apps/worker/package.json+4−1
- apps/worker/src/ai/generate.ts+94−0
- apps/worker/src/context.ts+3−1
apps/worker/src/default-workflow.ts+8−0apps/worker/src/index.ts+19−0apps/worker/src/jobs/process-event.ts+5−1apps/worker/src/jobs/run-workflows.ts+10−1apps/worker/src/process-event.integration.test.ts+8−0apps/worker/tsconfig.json+1−1bun.lock+21−0packages/contracts/src/index.ts+1−0packages/contracts/src/review.ts+35−0packages/contracts/src/rules.ts+10−0packages/core/src/context.ts+24−0packages/core/src/index.ts+3−0packages/core/src/md.d.ts+4−0packages/core/src/rules/ai-review/instructions.md+39−0packages/core/src/rules/ai-review/rule.test.ts+129−0packages/core/src/rules/ai-review/rule.ts+88−0packages/core/src/rules/ai-review/template.md+11−0packages/core/src/rules/registry.test.ts+2−1packages/core/src/rules/registry.ts+2−0