-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Closed
Labels
needs-triageNew issue awaiting maintainer reviewNew issue awaiting maintainer review
Description
Problem
When multiple teammates use GSD on the same repo, sequential phase numbering causes collisions. Phase numbers are auto-incremented from ROADMAP.md (maxPhase + 1), so if two people create phases concurrently, they get the same number.
In our case, 5 engineers share a GSD-managed monorepo. We constantly collide on the next phase number.
Proposed Solution
Allow non-numeric phase identifiers — specifically, arbitrary string IDs such as ticket/issue IDs (e.g., PROJ-42, AUTH-101, FEAT-7) as phase identifiers.
Why arbitrary string IDs work:
- Already unique — no coordination needed
- Maps to existing workflow (Jira, Linear, GitHub Issues, or any custom scheme)
- Phase ordering already comes from
depends_onin plan frontmatter, not from numbering
Example:
.planning/phases/
PROJ-42-user-authentication/
AUTH-101-session-management/
FEAT-7-dashboard-redesign/
ROADMAP.md:
### Phase PROJ-42: User Authentication
**Depends on:** FEAT-7What would need to change
The sequential integer assumption is hardcoded in several places:
core.cjs:normalizePhaseName()only matches^\d+,comparePhaseNum()only compares integers,searchPhaseInDir()regex assumes numeric prefixphase.cjs:cmdPhaseAdd()doesmaxPhase + 1,cmdPhaseInsert()assumes numeric baseroadmap.cjs: Phase header regex only matchesPhase \d+:verify.cjs: Health check warns on "gap in phase numbering" and expectsNN-nameformatcommands.cjs:dir.split('-')[0]assumes single-segment numeric prefix
Possible config option
A phase_naming setting in config.json:
{
"phase_naming": "sequential" // default, current behavior
// or
"phase_naming": "custom" // accept any arbitrary string ID via --id flag
}With "custom" mode:
gsd-tools phase add --id PROJ-42 "User Authentication"- Skip auto-increment logic
- Relax health check warnings about sequential numbering gaps
Environment
- 5-person team sharing one GSD repo
- Each person works on separate feature branches but phases land on main
🤖 Generated with Claude Code
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
needs-triageNew issue awaiting maintainer reviewNew issue awaiting maintainer review