feat(mcp): unified ReviewLog sinks + IDEA_REVIEW_PLAN codex-routing + get_review #57

Merged
janpeter merged 8 commits from claude/mcp-unified-reviewlog into main 2026-06-16 19:24:56 +02:00
Owner

Fase 3 van MCP-getriggerde reviews + geünificeerde ReviewLog (spec/plan in scrum4me-workers docs/superpowers/{specs,plans}/2026-06-15-mcp-review-dispatch-unified-reviewlog*). Vereist eerst scrum4me-shared#20 (gemerged → d373021; submodule hier gebumpt) + de bijbehorende Scrum4Me web-migratie (aparte PR, vóór deploy).

Wat (8 commits, TDD):

  • chore(vendor): bump scrum4me-shared → d373021 (ReviewLog idea_id/pr_commit_id + Idea.review_logs inverse).
  • src/lib/upsert-review-log.ts: gedeelde idempotente ReviewLog-sink (upsert op review_job_id, fail-closed).
  • submit_review: gerefactord op de helper — gedragsbehoud (bestaande tests groen).
  • post_pr_review: schrijft nu óók een ReviewLog (APPROVED→APPROVED, REQUEST_CHANGES→CHANGES_REQUESTED; COMMENT → geen rij), pr_commit_id uit commit_id.
  • update_idea_plan_reviewed: verplicht job_id + job-binding-validatie (same user + kind=IDEA_REVIEW_PLAN + matching idea_id) + ReviewLog-write; idea review-plan-prompts geven job_id mee.
  • dispatchIdeaJob: routeert IDEA_REVIEW_PLAN naar de codex-fleet (runtime CODEX / capability review / model codex-default via gedeelde REVIEW_JOB_FIELDS) zonder IDEA_GRILL/IDEA_MAKE_PLAN te raken; active-worker-guard gescoped op verse CODEX+review-workers voor deze kind.
  • get_review: nieuwe read-only tool (states reviewed/pending/no_verdict, product-gescoopte 404 als get_job_status), geregistreerd.

Verify: npm test = 849 tests groen (118 files), tsc --noEmit clean. Spec (2 codex-rondes + 4-lens) + plan (2 codex-rondes) ge-APPROVEd; per-taak TDD + holistische eindreview (opus) APPROVE.

Scope-noot: de web-UI-route Scrum4Me startReviewPlanJobAction blijft bewust ongewijzigd (non-goal). Deploy + canary (154/max2) volgen ná merge.

🤖 Generated with Claude Code

Fase 3 van **MCP-getriggerde reviews + geünificeerde ReviewLog** (spec/plan in scrum4me-workers `docs/superpowers/{specs,plans}/2026-06-15-mcp-review-dispatch-unified-reviewlog*`). Vereist eerst scrum4me-shared#20 (gemerged → d373021; submodule hier gebumpt) + de bijbehorende Scrum4Me web-migratie (aparte PR, vóór deploy). **Wat (8 commits, TDD):** - `chore(vendor)`: bump scrum4me-shared → d373021 (ReviewLog idea_id/pr_commit_id + Idea.review_logs inverse). - `src/lib/upsert-review-log.ts`: gedeelde idempotente ReviewLog-sink (upsert op review_job_id, fail-closed). - `submit_review`: gerefactord op de helper — **gedragsbehoud** (bestaande tests groen). - `post_pr_review`: schrijft nu óók een ReviewLog (APPROVED→APPROVED, REQUEST_CHANGES→CHANGES_REQUESTED; **COMMENT → geen rij**), `pr_commit_id` uit commit_id. - `update_idea_plan_reviewed`: verplicht `job_id` + job-binding-validatie (same user + kind=IDEA_REVIEW_PLAN + matching idea_id) + ReviewLog-write; idea review-plan-prompts geven `job_id` mee. - `dispatchIdeaJob`: routeert **IDEA_REVIEW_PLAN** naar de codex-fleet (runtime CODEX / capability review / model codex-default via gedeelde REVIEW_JOB_FIELDS) zonder IDEA_GRILL/IDEA_MAKE_PLAN te raken; active-worker-guard gescoped op verse CODEX+review-workers voor deze kind. - `get_review`: nieuwe read-only tool (states `reviewed`/`pending`/`no_verdict`, product-gescoopte 404 als get_job_status), geregistreerd. **Verify:** `npm test` = 849 tests groen (118 files), `tsc --noEmit` clean. Spec (2 codex-rondes + 4-lens) + plan (2 codex-rondes) ge-APPROVEd; per-taak TDD + holistische eindreview (opus) APPROVE. Scope-noot: de web-UI-route `Scrum4Me startReviewPlanJobAction` blijft bewust ongewijzigd (non-goal). Deploy + canary (154/max2) volgen ná merge. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/scrum4me-mcp!57
No description provided.