Naming conventions and phase protocol for GitHub ticket lifecycle. Baton workflow in manager-ticket-lifecycle.
NO_CHANGE with missing artifacts.<Imperative verb phrase describing the desired outcome> [≤ 72 chars]
type(scope): prefix — type/scope expressed via labels[BUG], no parallel IDs TICKET-NNNGood: Fix header nav contrast on dark hero backgrounds
Bad: fix(nav): fix header nav contrastTICKET-008: Fix header
<type>(<scope>): <imperative description> [≤ 72 chars]
Types: feat fix chore content perf refactor docs style test
<type>/<issue-number>-<short-slug> — e.g. fix/5-nav-contrast, feat/11-footer-redesign
Every repo must have .github/ISSUE_TEMPLATE/ with at minimum: bug, task, epic forms.
Config: blank_issues_enabled: false. Plus PULL_REQUEST_TEMPLATE.md with issue linkage.
| Phase | Key actions |
|---|---|
| intake | Validate issue, apply labels/priority/milestone |
| planning | Split to sub-issues, add dependencies, set project fields |
| execution | One branch per ticket, link in Development panel, atomic commits |
| pre-pr | PR links issue with closing keywords, test evidence attached |
| review | Resolve feedback, re-run checks after changes |
| merge | Required reviews/checks satisfied, merge per repo policy |
| closeout | Issue state transition, branch deletion, post-merge cleanup |
See manager-ticket-lifecycle for full label taxonomy:
type:*, status:*, priority:*, area:*, role:*
TICKET_LIFECYCLE_REPORT