DECOMPOSED: Right-side validation pipeline — /validate-ticket skill, flow diagrams, merge hook fix #209
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/claude-custom#209
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Status: DECOMPOSED
Type
Feature
Lineage
Companion to
forgejo_admin/claude-custom#161(left-side scope review pipeline). That issue covers backlog→next_up enforcement. This issue covers needs_approval→done enforcement — the right-side mirror.Discovered during session 2026-03-28 when Betty Sue repeatedly moved items directly to
donewithout validation, and the flow diagram insop-board-workflowwas found to be inconsistent with its own column semantics table.Repo
forgejo_admin/claude-customUser Story
As the platform operator
I want the validation pipeline (needs_approval→validation→done) to have the same rigor as the scope review pipeline (todo→next_up)
So that no ticket is marked done without production validation evidence, and DORA Lead Time measurements include validation latency
Context
The
validationcolumn was added tosop-board-workflow's Column Semantics table (2026-03-27) along withtemplate-validation. However, four gaps remain:Flow diagrams are stale. The ASCII flow diagram in
sop-board-workflow(anchor:how-items-flow-through-columns, blockcode-11) showsneeds_approval → donewith novalidationcolumn. The Column Semantics table in the same SOP correctly includesvalidation. Same SOP, contradictory content. Additionally,agent-workflow(anchor:the-flow-2, blockcode-13) showsQA → donewith noneeds_approvalorvalidation.board-item-on-merge.shbypasses validation. Lines 54, 89, 134 reference"done"in column target and log/fallback messages. The primary move at line 135 moves items to"done"directly after merge. It should move to"validation"instead. This is the hook that fires onmcp__forgejo__merge_approved_pr. Moving todonewithout validation makes thevalidationcolumn dead on arrival.No
/validate-ticketskill exists. The Column Semantics table references/validate-ticketfor thevalidationcolumn, andtemplate-validationdocuments the note format, but there is no skill to execute validation. The/review-ticketskill (which handles the left-sidetodo→next_upgate) is the pattern to mirror.No hook enforcing validation→done gate. There is no equivalent of what #161's
check-board-advance.shwould do for the right side. Items can be moved fromvalidationtodonewithout a validation note existing. OUT OF SCOPE — tracked separately as #210.Betty Sue column-skipping. Without enforcement, Betty Sue put items directly in
todo(skippingbacklog) and moved items todone(skippingvalidation) during 2026-03-28 session. The SOP says "don't skip columns" but there's no mechanism preventing it.File Targets
Files to create:
~/.claude/skills/validate-ticket/SKILL.md— skill that executes production validation for a board item in thevalidationcolumn, creates a validation note pertemplate-validation, and reports PASS/PARTIAL/FAIL verdictFiles to verify/update (already exists):
skill-validate-ticket(id: 841, active) — agent workflow note the skill reads (mirrorsskill-review-ticket). Already exists; verify current and update if needed.Files to modify:
~/.claude/hooks/board-item-on-merge.sh— change target column from"done"to"validation"(line 135), plus update log/fallback messages at lines 54, 89, 134sop-board-workflow— update flow diagram (blockcode-11) to includevalidationbetweenneeds_approvalanddoneagent-workflow— update flow diagram (blockcode-13) to includeneeds_approvalandvalidationagent-workflow— update "The Flow" 12-step list (anchorthe-flow) to add validation step between Deploy and UpdateFiles NOT to touch:
~/.claude/skills/review-ticket/SKILL.md— left-side skill, covered by #161~/.claude/hooks/check-board-advance.sh— left-side gate hook, covered by #161template-validation— already complete and well-documented~/.claude/settings.jsonor~/.claude/settings.local.json— validation→done gate hook is OUT OF SCOPE (#210)Acceptance Criteria
sop-board-workflowflow diagram (blockcode-11) includesvalidationbetweenneeds_approvalanddoneagent-workflowboard-driven flow (blockcode-13) includesneeds_approvalandvalidationin the pipelineagent-workflow"The Flow" 12-step list includes a Validation step (between Deploy and Update)board-item-on-merge.shmoves items tovalidationcolumn instead ofdone, and log/fallback messages at lines 54, 89, 134 updated accordingly/validate-ticketskill exists and followsreview-ticketpattern: parse board item, resolve scope, execute validation checks pertemplate-validation, create validation note, report verdictskill-validate-ticketnote verified current in pal-e-docs (pre-satisfied — note id 841 already exists)validation→ run/validate-ticket→ PASS → item moves todoneTest Expectations
validation(notdone)/validate-ticket board-slug#item-idon an item invalidation→ validation note created, verdict reportedConstraints
template-validationalready defines the validation note format — the skill must follow it exactly/validate-ticketmust mirror/review-ticketstructure: routing skill (SKILL.md) dispatches agent with skill note referenceboard-item-on-merge.shchange includes line 135 (column target) plus lines 54, 89, 134 (log/fallback messages)validationcolumn must already exist in the board schema (depends on alembic migration adding the column). If the column doesn't exist yet, the merge hook change will fail silently (fail-open pattern). Verify column exists before deploying hook change.update_blocknot full note rewritesDecomposition
DECOMPOSED into 3 sub-tickets (2026-03-28):
AC 6 is pre-satisfied (
skill-validate-ticketnote already exists, id 841).Tickets 1 and 2 are independent (parallel dispatch OK). Ticket 3 depends on ticket 1.
Checklist
Related
forgejo_admin/claude-custom#161— left-side scope review pipeline (companion issue)forgejo_admin/claude-custom#210— validation→done gate hook (gap 4, out of scope)forgejo_admin/claude-custom#226— sub-ticket 1: doc fixesforgejo_admin/claude-custom#227— sub-ticket 2: merge hook fixforgejo_admin/claude-custom#228— sub-ticket 3: validate-ticket skillsop-board-workflow— the SOP with stale flow diagram + correct column semantics tableagent-workflow— the agent workflow note with stale flow diagramstemplate-validation— validation note template (already complete)board-item-on-merge.sh— hook that currently bypasses validation columnreview-ticketskill — the left-side skill this mirrorsreview-518-2026-03-28— scope review noteScope Review: NEEDS_REFINEMENT
Review note:
review-518-2026-03-28Ticket is well-scoped but has 4 body fixes needed and requires decomposition before execution.
skill-validate-ticketnote already exists (id: 841) — AC 6 is pre-satisfied, file target says "create" but should say "verify/update"board-item-on-merge.shalso reference "done" in log/fallback messages — not listed in file targetsFeature: Right-side validation pipeline — /validate-ticket skill, flow diagrams, merge hook fixto DECOMPOSED: Right-side validation pipeline — /validate-ticket skill, flow diagrams, merge hook fixDecomposition Complete
Review:
review-518-2026-03-28(verdict: NEEDS_REFINEMENT, action: DECOMPOSE)Body Fixes Applied (4)
skill-validate-ticketnote already exists (id 841) — changed "create" to "verify/update" in File Targets, rephrased AC 6 as pre-satisfiedsettings.jsonfrom file targets (gate hook is #210 scope, not this issue)3-Ticket Split
skill-validate-ticketnote id 841 already exists)backlogonboard-pal-e-agencywithstory:pm-scope+parent:#209Executed by: Dottie (doc librarian agent)
Scope Review: NEEDS_REFINEMENT
Review note:
review-518-2026-03-29Execution is incomplete -- 3 of 7 ACs pass, 3 fail, 1 blocked. Sub-tickets were decomposed correctly but deliverables are missing.
sop-board-workflowcode-11 was fixed, butagent-workflowcode-13 flow diagram and list-21 (12-step list) were NOT updated. Board item shows done but work is incomplete.~/.claude/skills/validate-ticket/SKILL.mddoes not exist on filesystem despite sub-ticket being closed. Possible lost worktree artifact.board-item-on-merge.shcorrectly targetsvalidationcolumn.Recommend: re-dispatch #226 for remaining doc targets, investigate #228 for missing SKILL.md file.