feat: enforce backlog-first column on create_board_item hook #212
No reviewers
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!212
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "211-backlog-first-enforcement"
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?
Summary
Adds column validation to
check-board-item.shso new board items must land inbacklog. Only incidents (type:incidentlabel) may skip directly toin_progress. All other columns are blocked with a clear error message.Changes
hooks/check-board-item.sh— Extractcolumnfield from tool input, add case-based column validation (backlog allowed, in_progress requires type:incident, everything else blocked), update header commentTest Plan
All 4 acceptance criteria verified via piped JSON input:
column: backlog— succeeds (exit 0, no output)column: todo— blocked (deny JSON with clear message)column: in_progress+type:incident— succeeds (exit 0, no output)column: in_progresswithout incident label — blocked (deny JSON with clear message)next_upanddonealso blockedReview Checklist
Related Notes
Related
Closes #211
7f12b6ae48to68a3d18482QA Review
Scope Verification
PR changes only
hooks/check-board-item.sh(1 file, 21 additions). Correctly scoped to issue #211. Note: rebased to remove 2 unrelated commits from branch 194 that leaked in during clone.Acceptance Criteria
column: backlogsucceeds (exit 0, no output)column: todoblocked (deny JSON)column: in_progress+type:incidentsucceedscolumn: in_progresswithout incident label blockednext_up,donealso blockedCode Quality
// emptyEdge Case: empty labels + in_progress
When labels is empty and column is
in_progress,grep -q "type:incident"correctly fails on empty input, blocking the item. Correct behavior.VERDICT: APPROVE
forgejo_admin referenced this pull request2026-03-29 04:25:50 +00:00
forgejo_admin referenced this pull request2026-03-29 04:26:09 +00:00
forgejo_admin referenced this pull request2026-03-29 04:26:35 +00:00