fix: drop points enforcement + plan- gate — lean kanban alignment #151
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!151
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "200-agent-spawn-drop-plan-gate"
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
Align hooks with lean kanban philosophy: points are optional metadata (lead time is the metric), and board-driven projects don't need plan references.
Changes
schemas/agent-spawn-requirements.json: Removeplan-required_patterns fromgeneral-purposeanddottieagent types. Board-driven projects referenceproject-instead.hooks/check-board-item.sh: Remove Fibonacci points enforcement. Points become optional metadata. Lead time (timestamps) is the real metric per lean kanban philosophy.Test Plan
project-reference — should succeedplan-reference — should still workReview Checklist
Related
Closes forgejo_admin/pal-e-docs#200
Closes forgejo_admin/pal-e-docs#202
PR #151 Review
DOMAIN REVIEW
Tech stack: Bash hooks + JSON schema (Claude Code hook framework). Two files changed:
hooks/check-board-item.sh(board item validation) andschemas/agent-spawn-requirements.json(agent spawn gate definitions).Shell scripting quality:
check-board-item.sh: ThePOINTSvariable is still extracted at line 23 (POINTS=$(echo "$INPUT" | jq -r '.tool_input.points // empty')) but is never referenced after the enforcement block was removed. This is dead code -- an unnecessaryjqinvocation on every board item creation. Non-blocking but worth cleaning up.Schema quality:
agent-spawn-requirements.json: Bothdottieandgeneral-purposenow haverequired_patterns: [], which means the hook atcheck-agent-spawn.shline 47 will exit 0 immediately for both types. This is correct behavior for the stated intent.dottie->general-purposeat line 32-34 ofcheck-agent-spawn.sh, which means thedottieentry in the schema is never actually looked up at runtime. The PR updated thedottiedescription anyway -- harmless since both entries are now identical in effect, but thedottieschema entry is technically dead code. Not introduced by this PR.Stale references in
session-start-context.sh(NOT in this PR's scope):get_note(slug="agent-spawn-conventions") -- the axiom: no plan, no agent-- this inline comment still references the "no plan, no agent" axiom which this PR relaxes. Agents reading this at session start will receive contradictory guidance.create_board_item with points and labels-- still mentions "points" as if required alongside labels. After this PR, points are optional.These are in a file NOT touched by this PR. They represent discovered scope that should be tracked as a follow-up issue.
BLOCKERS
None.
This PR modifies hook enforcement logic (removing a gate), which is a policy change, not new functionality requiring test coverage. The test plan in the PR body covers the expected behavioral matrix (with/without points, with project- vs plan- reference). The changes are deletion-oriented -- removing enforcement rather than adding code paths -- so the BLOCKER criteria for "new functionality with zero test coverage" does not apply.
No secrets, no unvalidated input (these hooks validate input, they don't accept user input from the network), no DRY violations.
NITS
Dead variable in
check-board-item.sh: Line 23 extractsPOINTSbut it is never used. Remove the extraction to avoid confusion and save ajqcall:Stale session context (discovered scope):
hooks/session-start-context.shlines 271 and 562 reference the old "no plan, no agent" axiom and "with points" language. These should be updated in a follow-up to avoid contradictory agent guidance. File a Forgejo issue for this.Dead
dottieschema entry (pre-existing): Sincecheck-agent-spawn.shnormalizesdottie->general-purposebefore schema lookup, thedottieentry in the JSON is never read at runtime. Consider removing it or removing the normalization in the hook. Pre-existing, not introduced here.SOP COMPLIANCE
200-agent-spawn-drop-plan-gatereferences issue #200Closes forgejo_admin/pal-e-docs#200andCloses forgejo_admin/pal-e-docs#202(issue references, not plan slug). Acceptable for board-driven work without a parent plan.fix: drop points enforcement + plan- gate -- lean kanban alignment)PROCESS OBSERVATIONS
plan-gate fordottie/general-purposeagents unblocks board-driven projects from needing artificial plan references in spawn prompts. This should reduce friction in agent dispatch.session-start-context.shstale references (nit #2) should be tracked as a follow-up issue to avoid confusing agents at session start with the old "no plan, no agent" axiom.VERDICT: APPROVED