Merge hook fix: board-item-on-merge.sh targets validation column #227

Closed
opened 2026-03-29 04:26:19 +00:00 by forgejo_admin · 1 comment
Contributor

Type

Story (sub-ticket of #209)

Lineage

Parent: #209 (right-side validation pipeline)
Sub-ticket 2 of 3. Independent — can be dispatched in parallel with #226.

Repo

forgejo_admin/claude-custom

User Story

As the platform operator
I want merged PRs to move board items to the validation column instead of done
So that every merge triggers the validation pipeline and no ticket bypasses production validation

Context

board-item-on-merge.sh is the hook that fires on mcp__forgejo__merge_approved_pr. Currently line 135 moves items to "done" directly, making the validation column dead on arrival. Lines 54, 89, and 134 also reference "done" in log and fallback messages.

File Targets

Files to modify:

  • ~/.claude/hooks/board-item-on-merge.sh
    • Line 135: change column target from "done" to "validation"
    • Line 54: update log message referencing "done" to "validation"
    • Line 89: update fallback message referencing "done" to "validation"
    • Line 134: update log message referencing "done" to "validation"

Files NOT to touch:

  • ~/.claude/settings.json — hook registration unchanged
  • ~/.claude/hooks/check-board-advance.sh — left-side gate, covered by #161
  • Any pal-e-docs notes — covered by #226
  • ~/.claude/skills/validate-ticket/ — covered by #228

Acceptance Criteria

  • board-item-on-merge.sh line 135 (or equivalent) moves items to "validation" column instead of "done"
  • Log messages at lines 54, 89, 134 updated to reference "validation" instead of "done"
  • No other behavioral changes to the hook

Test Expectations

  • Read the modified file and verify all 4 lines reference "validation" instead of "done"
  • Manual test: merge a PR → verify board item lands in validation (not done)
  • Run command: grep -n '"done"\|"validation"' ~/.claude/hooks/board-item-on-merge.sh

Constraints

  • validation column must already exist in the board schema. If the column doesn't exist, the hook will fail silently (fail-open pattern). Verify column exists before testing.
  • This is a code change — requires branch, PR, review cycle
  • Agent: Dev (Devy)

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • #209 — parent issue (DECOMPOSED)
  • #226 — sibling: doc fixes (parallel)
  • #228 — sibling: validate-ticket skill
  • #210 — validation→done gate hook (separate scope)
  • review-518-2026-03-28 — scope review that identified line targets
### Type Story (sub-ticket of #209) ### Lineage Parent: #209 (right-side validation pipeline) Sub-ticket 2 of 3. Independent — can be dispatched in parallel with #226. ### Repo `forgejo_admin/claude-custom` ### User Story As the platform operator I want merged PRs to move board items to the `validation` column instead of `done` So that every merge triggers the validation pipeline and no ticket bypasses production validation ### Context `board-item-on-merge.sh` is the hook that fires on `mcp__forgejo__merge_approved_pr`. Currently line 135 moves items to `"done"` directly, making the `validation` column dead on arrival. Lines 54, 89, and 134 also reference "done" in log and fallback messages. ### File Targets Files to modify: - `~/.claude/hooks/board-item-on-merge.sh` - Line 135: change column target from `"done"` to `"validation"` - Line 54: update log message referencing "done" to "validation" - Line 89: update fallback message referencing "done" to "validation" - Line 134: update log message referencing "done" to "validation" Files NOT to touch: - `~/.claude/settings.json` — hook registration unchanged - `~/.claude/hooks/check-board-advance.sh` — left-side gate, covered by #161 - Any pal-e-docs notes — covered by #226 - `~/.claude/skills/validate-ticket/` — covered by #228 ### Acceptance Criteria - [ ] `board-item-on-merge.sh` line 135 (or equivalent) moves items to `"validation"` column instead of `"done"` - [ ] Log messages at lines 54, 89, 134 updated to reference `"validation"` instead of `"done"` - [ ] No other behavioral changes to the hook ### Test Expectations - [ ] Read the modified file and verify all 4 lines reference "validation" instead of "done" - [ ] Manual test: merge a PR → verify board item lands in `validation` (not `done`) - Run command: `grep -n '"done"\|"validation"' ~/.claude/hooks/board-item-on-merge.sh` ### Constraints - `validation` column must already exist in the board schema. If the column doesn't exist, the hook will fail silently (fail-open pattern). Verify column exists before testing. - This is a code change — requires branch, PR, review cycle - Agent: Dev (Devy) ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - #209 — parent issue (DECOMPOSED) - #226 — sibling: doc fixes (parallel) - #228 — sibling: validate-ticket skill - #210 — validation→done gate hook (separate scope) - `review-518-2026-03-28` — scope review that identified line targets
Author
Contributor

Closing as redundant

PR #229 (from issue #210, validation-gate hook) already implements this exact change — board-item-on-merge.sh targets validation column instead of done. That PR is currently in QA review.

This ticket was created during #209 decomposition but #210 was already in flight covering the same scope.

## Closing as redundant PR #229 (from issue #210, validation-gate hook) already implements this exact change — `board-item-on-merge.sh` targets `validation` column instead of `done`. That PR is currently in QA review. This ticket was created during #209 decomposition but #210 was already in flight covering the same scope.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/claude-custom#227
No description provided.