Review: Branch naming convention — {ticket}-{purpose}
Verdict: NEEDS_REFINEMENT
Template Completeness
- [ ]
### Type— MISSING. Should be "Task" (convention documentation work, no code features). - [x]
### Lineage— Present. - [x]
### Repo— Present. - [x]
### User Story— Present. - [x]
### Context— Present and thorough. - [x]
### File Targets— Present. (Note: for Task type, template says to use "### Scope" instead of File Targets. However, since the targets are doc notes, not code files, this is acceptable.) - [x]
### Acceptance Criteria— Present. - [x]
### Test Expectations— Present. - [x]
### Constraints— Present. - [x]
### Checklist— Present. - [x]
### Related— Present.
Traceability
- [x] story:dev-execute label — Present on board item #198.
- [ ] arch:X label — MISSING. Recommend
arch:conventionsorarch:hooks. This is process infrastructure work; it should map to an architecture component. - [x] Forgejo issue —
forgejo_admin/claude-custom#129, open.
File Targets
- [x]
~/claude-custom/hooks/— verified: directory exists,label-on-branch.shexists. Issue correctly identifies this as location for a possible future validation hook. Currently hooks already parse{issue-num}-{desc}branch names (forgejo-helper.sh:219, board-item-on-merge.sh:8, check-issue.sh:133-145, label-on-pr.sh:45). - [x]
skill-create-issuein pal-e-docs — verified: exists. Currently has NO mention of branch naming. Valid update target. - [x]
agent-spawn-conventionsin pal-e-docs — verified: exists. Currently has NO explicit branch naming instruction in the minimal prompt pattern or pre-spawn checklist. Valid update target. - [x]
convention-agent-designin pal-e-docs — verified: exists. No branch naming mentioned. Valid but low-priority target — this note is about agent specialization philosophy, not operational conventions.
Repo Placement
OK. Issue is filed on
forgejo_admin/claude-custom which owns the hooks directory. Doc updates go to pal-e-docs via MCP tools, which is the correct pattern for Dottie-executed convention work.Dependencies
None. No items on the board block or are blocked by this ticket. The convention is already silently enforced by existing hooks — this ticket formalizes the documentation.
Acceptance Criteria
All three criteria are testable and specific:
- "Convention documented in pal-e-docs" — verifiable by checking for a convention note.
- "Agent dispatch prompts include branch name instruction" — verifiable by reading agent-spawn-conventions.
- "Branch name traceable to board item or Forgejo issue number" — already true in practice; this formalizes it.
Observation: The acceptance criteria could be more precise. "Convention documented" could specify whether this is a new convention note (e.g.,
convention-branch-naming) or an update to an existing note. The issue's File Targets suggest updates to existing notes, but the checklist says "Convention note created or updated" — the agent should know which.Blast Radius
LOW. This is documentation-only work per the "document first, enforce later" constraint. No hook code changes required.
Important finding: The convention already exists in practice across 6+ locations in code and docs:
forgejo-helper.shline 219:# Convention: branch names are "{issue-num}-{description}"board-item-on-merge.shline 8:# Parses the issue number from the branch name (convention: {issue-num}-{slug})check-issue.shlines 133-145: extracts issue numbers from branch nameslabel-on-pr.shline 6: extracts issue number from PR head branchskill-implement-phasestep 5:Branch name: {issue-number}-{short-description}skill-review-pr+ QA agent: check "Branch named after issue"
The agent executing this ticket should reference these existing usages rather than inventing a new convention from scratch. The work is consolidation and formalization, not invention.
Recommendation
Two items to fix before READY:
- Add
### Typeheader to the Forgejo issue — Should be "Task" per template-issue. - Add
arch:label to board item #198 — Recommendarch:conventionsto complete the traceability triangle.
Optional improvement: Clarify in the issue body whether the deliverable is a new standalone convention note (
convention-branch-naming) or updates to existing notes only. The current wording is ambiguous.