Reconcile skill-review-ticket review note format with template-review hook headings #241
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#241
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?
Type
Bug
Lineage
Discovered twice during 2026-04-10 ticket review pipeline (review-944-2026-04-10 and review-945-2026-04-10). Both review agents independently reported the same drift. Re-review of this ticket itself (review-970-2026-04-11) caught a location error in the original body — the drift is in the pal-e-docs note
skill-review-ticket, not in~/claude-custom/skills/review-ticket/SKILL.md. Body updated to point at the correct surface.Repo
forgejo_admin/claude-custom(tracking only — the actual fix is a content update in pal-e-docs viamcp__pal-e-docs__update_block. Filed in claude-custom because it lives in the agent enforcement domain.)What Broke
The pal-e-docs note
skill-review-ticket(the canonical skill content read by review agents) prescribes a review-note section heading calledDecomposition, buttemplate-review(and the correspondingcheck-note-template.shenforcement at lines 65–73) requiresDecomposition Assessment. When a review agent follows the skill's prescribed format literally, the firstcreate_noteattempt is denied by the PreToolUse hook because the heading does not match.Repro Steps
<h3>Decomposition</h3>(notDecomposition Assessment).grep -i "Decompos" ~/claude-custom/skills/review-ticket/SKILL.mdreturns zero matches.subagent_type=general-purposeand a prompt that loads theskill-review-ticketskill (viamcp__pal-e-docs__get_note(slug="skill-review-ticket")).### Decompositionas a heading.mcp__pal-e-docs__create_notewithnote_type=reviewand content containing### Decomposition.check-note-template.shdenies withmissing required sections: Decomposition Assessment.Confirmed in both
review-944-2026-04-10andreview-945-2026-04-10runs (and indirectly inreview-970-2026-04-11which used the canonical wording to bypass the drift).Expected Behavior
The pal-e-docs note
skill-review-ticketprescribed format should match the hook's enforced headings exactly. A review agent following the skill literally should create the review note successfully on the first attempt with no hook denial.Environment
skill-review-ticket, block anchorcode-8000— accessed viamcp__pal-e-docs__get_note(slug="skill-review-ticket")ormcp__pal-e-docs__get_section(slug="skill-review-ticket", anchor_id="code-8000")~/claude-custom/skills/review-ticket/SKILL.md(117 lines, contains routing/loop logic only)~/claude-custom/hooks/check-note-template.sh, lines 65–73 (canonical, do not modify)template-reviewin pal-e-docs (canonical, do not modify in this ticket)/review-ticketHook's required headings (canonical)
Resolution
Update the
code-8000block in pal-e-docs noteskill-review-ticketto useDecomposition Assessmentinstead ofDecomposition. Verify all 9 headings agree acrossskill-review-ticket↔template-review↔hook.Exact MCP call (the dev path is content-only, no code PR):
Use
mcp__pal-e-docs__get_section(slug="skill-review-ticket", anchor_id="code-8000")first to read the current content, then apply the correction.Acceptance Criteria
skill-review-ticketexactly match the hook'sREQUIRED_HEADINGSfornote_type=reviewtemplate-reviewin pal-e-docs has any drift from the hook, file a follow-up ticket (do NOT update the template here — content changes go through their own flow)mcp__pal-e-docs__search_notes(query="Decomposition")returns no orphaned references to the old wording in any other skill or convention noteTest Expectations
mcp__pal-e-docs__get_section(slug="skill-review-ticket", anchor_id="code-8000")and verify the corrected wording is presentmcp__pal-e-docs__search_notes(query="Decomposition")and verify no skill or convention note still references the old wordingConstraints
template-reviewcontent in this ticket~/claude-custom/skills/review-ticket/SKILL.md— verified to contain no drifted contentChecklist
mcp__pal-e-docs__update_blocksearch_notesverification step runRelated
template-review— canonical template note (read-only this ticket)hooks/check-note-template.sh— enforcement surface (canonical)skill-review-ticket— the pal-e-docs note containing the drifted block (the surface to fix)review-944-2026-04-10andreview-945-2026-04-10— reviews that surfaced the driftreview-970-2026-04-11— review of this ticket itself, which caught the location errorScope Review: READY
Review note:
review-970-2026-04-11Dogfooding bug confirmed. Scope is tight, single-file change, all traceability verified (story:agent-write, arch:claude-custom). Drift confirmed in pal-e-docs note
skill-review-ticket(review-note-format block, anchorcode-8000) — contains<h3>Decomposition</h3>where hook requiresDecomposition Assessment.One scope clarification (non-blocking, [BODY] refinements):
The Environment section points to
~/claude-custom/skills/review-ticket/SKILL.mdas the skill source. That file exists (117 lines) but contains only routing/loop logic — grep for "Decompos" returns zero matches. The actual drifted content lives in the pal-e-docs noteskill-review-ticket, review-note-format section.Fix procedure for dev agent:
mcp__pal-e-docs__update_block(slug="skill-review-ticket", anchor_id="code-8000", ...)— not file Edit on claude-custom.<h3>Decomposition</h3>with<h3>Decomposition Assessment</h3>in the code block content. No other changes.search_notes(query="Decomposition")to catch any other drifted review-note prescriptions.template-reviewagainst hook; file follow-up ticket if drift found (do NOT edit template in this ticket).Verdict: READY. Recommend lightly refining the issue body to point the dev agent at the pal-e-docs note (not the claude-custom file), then advance todo → next_up.
This review note itself was created on first attempt using
Decomposition Assessment— hook accepted cleanly, proving the canonical wording is enforceable and the fix will eliminate the drift.