Review: Expand check-note-template.sh for new types (r2)

review-483-2026-03-27-r2 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

Template Completeness

Checked against template-issue-feature (Type = Feature):
  • [x] Type
  • [x] Lineage
  • [x] Repo
  • [x] User Story
  • [x] Context
  • [x] File Targets
  • [x] Acceptance Criteria
  • [x] Test Expectations
  • [x] Constraints
  • [x] Checklist
  • [x] Related
All required sections present. Bonus sections (Required Headings Per Type, Routing Mechanism, Heading Format, Review History) add helpful implementation detail.

Traceability

  • [x] story:pm-scope label -- present on board item #483
  • [x] arch:hooks label -- present on board item #483
  • [x] Forgejo issue -- forgejo_admin/claude-custom#183, open
All three legs of the traceability triangle are satisfied.

File Targets

  • [x] hooks/check-note-template.sh -- verified exists at /home/ldraney/claude-custom/hooks/check-note-template.sh (128 lines, currently routes on tags only for project-page and issue types)
  • [x] hooks/check-issue-template.sh -- correctly excluded (validates Forgejo issues, not notes)
  • [x] hooks/check-board-item.sh -- correctly excluded (board items are separate)
File targets are accurate and specific.

Repo Placement

OK. Issue filed on forgejo_admin/claude-custom, all work is in that repo. Single-repo scope.

Dependencies

  • [x] Board item #478 (Spike: Note type system audit, issue #180) -- in_progress. This is the parent spike. Ticket can proceed once spike completes.
  • [x] Board item #486 (Create template notes for new types, issue #185) -- done. All 6 templates confirmed to exist in pal-e-docs: template-review, template-architecture, template-user-story, template-sop, template-convention, template-validation.
Dependencies are satisfied (templates exist) or documented (parent spike in progress).

Acceptance Criteria

8 AC total, all testable via manual hook invocation. Each maps to a concrete create_note call with missing headings that should be blocked. AC 7 (doc passthrough) and AC 8 (project-page regression) are negative/regression tests.
Count exceeds the 5-AC threshold but all 8 are structurally identical (add case branch, verify block). An agent can verify each in seconds.

Blast Radius

Low. Single file modification in a single repo. No downstream consumers are affected. The sibling hook check-issue-template.sh validates Forgejo issues (not notes) and uses a completely different routing mechanism. No shared library code between the two hooks.

Decomposition Assessment

1 file target, 1 repo, 8 AC (structurally repetitive). Estimated agent time: 3-5 minutes. The work is a single case/esac expansion with 6 near-identical branches. No decomposition needed.

Recommendation

  • [BODY] Fix validation type heading list: add "Discovered Issues" as 5th required heading. The actual template-validation code block has headings: Ticket, Environment, Checks, Verdict, Discovered Issues. The issue only lists the first 4.
  • [BODY] Fix Constraints section: issue states "Hook runs as PreToolUse on create_note and update_note" but settings.json only wires mcp__pal-e-docs__create_note. Either (a) add a note that wiring update_note is out of scope for this ticket, or (b) add update_note to the scope and add a 9th AC for it. Current claim is inaccurate.