2.4 KiB
| description | alwaysApply |
|---|---|
| Branch names and commit messages must lead with the Linear issue id (team NEO) | true |
Linear issue ids in branches and commits (Neon Sprawl)
The Neon Sprawl team in Linear uses issue ids NEO-* (see the Neon Sprawl team). Match the issue you are implementing—do not invent ids.
Issue hierarchy
Tracked work is Project → Issue in Linear (epic/module projects, stories / tasks / bugs as issues). Do not recreate a Jira-style Feature middle tier: module- or slice-level grouping is labels on the issue only (prefer decomposition module ids such as E1.M1 when they fit). Canonical wording: decomposition README — Linear alignment.
Branch names
- Put the Linear issue id first (
NEO-123), then a short kebab-case slug (and optional type). The id must be the first path segment of the branch name. - Good:
NEO-5-click-to-move,NEO-13-fix-health-desync,NEO-5/feature/terrain-spike(id still first segment if using slashes). - Avoid:
feature/click-to-movewith no id, orfix/neo-5-foowith the id not at the start.
When suggesting or creating a branch for NEO-5, use something like NEO-5-<slug>, not feature/neo-5-… with the id buried after a prefix.
Commit messages
- For any commit done as part of a Linear issue (work tracked under an issue), the first token of the subject line must be the issue id (
NEO-…), then:and the summary. - Good:
NEO-5: add direct click-to-move steering,NEO-13: fix duplicate spawn on reconnect - Avoid:
fix(client): …orfeat: …without the issue id at the front. If you use Conventional Commits, place them after the id:NEO-5: feat(client): click-to-move prototype
Multi-issue commits: Prefer one issue per commit; if unavoidable, list ids: NEO-5, NEO-9: shared nav refactor.
No Linear issue (rare): Maintenance or repo-only changes with no ticket — use chore: as the prefix (e.g. chore: update .gitignore). Do not invent fake ids.
Agent behavior
- When creating a branch or commit for tracked work, infer the id from the current story (e.g. user says NEO-5), the branch already in use, or the Linear issue fetched via MCP (
plugin-linear-linear, e.g.get_issue/list_issues).