Review: Scope review pipeline: jidoka for the left side of the board (re-review)
Verdict: READY
Re-review of board item #364 after refinement. All 7 recommendations from
review-364-2026-03-27 have been addressed. Architectural decision resolved. Decomposition plan documented in body.Template Completeness
- [x] Type -- Feature
- [x] Lineage -- standalone, discovered scope
- [x] Repo -- forgejo_admin/claude-custom
- [x] User Story -- well-formed As/I want/So that
- [x] Context -- excellent TPS analogy, three failure modes, jidoka framing
- [x] File Targets -- create list, modify list, NOT-touch list all present
- [x] Acceptance Criteria -- 9 items (expanded from 7 to cover bulk_move and sync_board)
- [x] Test Expectations -- 3 manual tests + run command note
- [x] Constraints -- 6 constraints including resolved architectural decision
- [x] Decomposition Recommendation -- 3-ticket split documented with AC mapping
- [x] Checklist -- standard PR checklist
- [x] Related -- 6 related items linked
All sections present and complete.
Traceability
- [x] story:scope-review label -- user story in issue body
- [x] arch:hooks label -- primary architecture component
- [x] arch:board-api label -- secondary architecture component
- [x] Forgejo issue -- forgejo_admin/claude-custom#161, open
All three legs of the traceability triangle are satisfied.
File Targets
- [x]
~/.claude/hooks/check-board-advance.sh-- create target. Does not exist. Parent dir has 38 hooks. Naming follows convention. VERIFIED. - [x]
sop-ticket-scope-reviewpal-e-docs note -- create target. Confirmed 404 via get_note. VERIFIED. - [x]
~/.claude/skills/review-ticket/SKILL.md-- modify target. Exists at correct path with correct casing. Contains router logic, 78 lines. VERIFIED. - [x]
~/.claude/settings.jsonorsettings.local.json-- modify target. Symlinked from ~/claude-custom/settings.json. No existing update_board_item or bulk_move matcher in PreToolUse. VERIFIED. - [x]
template-ticketpal-e-docs note -- modify target. Exists with 9 sections, no Review Gate section yet. VERIFIED. - [x]
sop-board-workflowpal-e-docs note -- modify target. Exists with column-semantics, item-lifecycle sections. VERIFIED. - [x]
skill-review-ticketpal-e-docs note -- modify target (agent workflow note). Exists, last updated 2026-03-27. VERIFIED.
Repo Placement
OK. Issue filed on forgejo_admin/claude-custom. All filesystem targets are in claude-custom (hooks, skills, settings). pal-e-docs note modifications are MCP API writes -- no separate repo PR needed.
Dependencies
- [x]
mcp__forgejo__update_issue-- now exists in Forgejo MCP. Confirmed via ToolSearch. AC5 consolidated spec convention is unblocked. - [x] Architectural decision resolved -- curl-to-API approach documented in Constraints. Ground truth from database over tool_input inspection.
- [x] Review note naming convention
review-{item_id}-{date}already defined inskill-review-ticket. No conflict. - No blocking board dependencies found. Two items in
in_progress(spike #478 note-type audit, phase #98 context-intelligence) are unrelated.
Acceptance Criteria
9 ACs total. All are verifiable:
- AC1: Hook blocks update_board_item todo-to-next_up without review -- testable via manual column advance
- AC2: Hook covers bulk_move_board_items -- testable (NEW, addresses prior blast radius gap)
- AC3: Hook excludes sync_board operations -- testable (NEW, addresses prior sync safety concern)
- AC4: Skill handles fix-and-re-review loop -- testable via manual /review-ticket invocation
- AC5: Convention documented (body updates vs comments) -- verifiable in SOP note
- AC6: SOP note sop-ticket-scope-review exists -- verifiable via get_note
- AC7: template-ticket documents review gate -- verifiable via get_note
- AC8: E2E happy path (create-review-fix-approve-advance) -- manual multi-step test
- AC9: E2E block path (advance without review blocked) -- manual test
9 ACs exceeds the 5-AC threshold. Decomposition into 3 child tickets is documented in the issue body with clear AC-to-ticket mapping.
Blast Radius
- [x]
bulk_move_board_itemsbypass -- now addressed in AC2 - [x]
sync_boardsafety -- now addressed in AC3. session-start-board-sync.sh uses POST /boards/{slug}/sync (not update_board_item), so hook matchers on update_board_item and bulk_move won't fire during sync anyway. AC3 is belt-and-suspenders. - [x] First API-calling hook -- acknowledged as novel pattern in Constraints. Must fail-open if pal-e-docs is down.
- [x] Execution pipeline unaffected -- hook only gates todo-to-next_up
- [x] Skill backward compatibility -- existing READY verdicts still valid. Loop logic is additive.
Decomposition
Decomposition plan is documented in the issue body. 3 child tickets with clear AC mapping:
- Hook + settings -- check-board-advance.sh, settings.json, bulk_move coverage, sync_board exclusion (AC 1-3, 8-9)
- Skill rewrite + SOP -- SKILL.md loop logic, sop-ticket-scope-review, consolidated spec convention (AC 4-6)
- Doc updates -- template-ticket review gate, sop-board-workflow cross-ref, skill-review-ticket note update (AC 7)
Each child ticket is estimated under 5 minutes. Parent ticket stays in todo as coordination anchor until children are created and dispatched.
Prior Review Fixes Verified
- [x]
[BODY]File path case: SKILL.md -- fixed - [x]
[BODY]False constraint about check-board-item.sh pattern -- fixed, novel pattern acknowledged - [x]
[BODY]bulk_move_board_items in scope -- fixed, now AC2 - [x]
[BODY]sync_board safety -- fixed, now AC3 - [x]
[BODY]update_issue dependency -- fixed, tool confirmed available - [x]
[SCOPE]curl-to-API vs tool_input -- resolved, documented in Constraints - [x]
[DECOMPOSE]3-ticket split -- documented in body with AC mapping
Recommendation
No action needed. Scope is solid. All prior refinement items addressed. Next step: create the 3 child tickets from the Decomposition Recommendation section, then advance parent to next_up as coordination anchor (or track children independently and close parent when all complete).