Summary
Currently .claude/session/current-ticket is a single marker that tracks one active ticket. This doesn't scale when jumping between multiple managed projects.
Proposed Design
Centralize all active ticket markers in the ops repo, keyed by project name:
.claude/session/tickets/
├── sharppick ← active ticket for SharpPick
├── billing-api ← active ticket for billing-api
└── ...
All gitignored. The hook resolves which project the current edit belongs to by matching cwd against the registry's workspace paths in apexstack.projects.yaml, then looks up the corresponding marker.
Changes Required
require-active-ticket.sh — resolve project from cwd, look up per-project marker
/start-ticket skill — write to tickets/<project-name> instead of current-ticket
- Backward compat: fall back to
current-ticket if no per-project marker exists
Why
- No need to create
.claude/session/ inside each project repo
- One centralized place to manage all active tickets
- Scales to N projects naturally
- No risk of committing session state into project repos
Summary
Currently
.claude/session/current-ticketis a single marker that tracks one active ticket. This doesn't scale when jumping between multiple managed projects.Proposed Design
Centralize all active ticket markers in the ops repo, keyed by project name:
All gitignored. The hook resolves which project the current edit belongs to by matching
cwdagainst the registry'sworkspacepaths inapexstack.projects.yaml, then looks up the corresponding marker.Changes Required
require-active-ticket.sh— resolve project from cwd, look up per-project marker/start-ticketskill — write totickets/<project-name>instead ofcurrent-ticketcurrent-ticketif no per-project marker existsWhy
.claude/session/inside each project repo