36 lines
2.3 KiB
Markdown
36 lines
2.3 KiB
Markdown
---
|
|
description: Branch names and commit messages must lead with the Jira issue key
|
|
alwaysApply: true
|
|
---
|
|
|
|
# Jira keys in branches and commits (Neon Sprawl)
|
|
|
|
Project key in Jira is **`NEON`** unless a different key is used for the issue (match the issue you are implementing).
|
|
|
|
## Issue hierarchy
|
|
|
|
Tracked work is **Epic → Story** (or Task/Bug). **Do not** create Jira **Feature** issues: module- or slice-level grouping below an epic is **labels on the story** only (prefer decomposition module ids such as **E1.M1** when they fit). Canonical wording: [decomposition README — Jira alignment](../../docs/decomposition/README.md#jira-alignment).
|
|
|
|
## Branch names
|
|
|
|
- Put the **Jira key first**, then a short **kebab-case** slug (and optional type). The key must be the **first path segment** of the branch name.
|
|
- **Good:** `NEON-2-click-to-move`, `NEON-13-fix-health-desync`, `NEON-2/feature/terrain-spike` (key still first segment if using slashes).
|
|
- **Avoid:** `feature/click-to-move` with no key, or `fix/neon-2-foo` with the key not at the start.
|
|
|
|
When suggesting or creating a branch for story **NEON-2**, use something like **`NEON-2-<slug>`**, not `feature/neon-2-…` with the key buried after a prefix.
|
|
|
|
## Commit messages
|
|
|
|
- For **any commit done as part of a Jira story, bug, or task** (work tracked under an issue), the **first token** of the subject line must be the **Jira key and number**, then **`:`** and the summary.
|
|
- **Good:** `NEON-2: add direct click-to-move steering`, `NEON-13: fix duplicate spawn on reconnect`
|
|
- **Avoid:** `fix(client): …` or `feat: …` **without** the Jira key at the front. If you use Conventional Commits, place them **after** the key: `NEON-2: feat(client): click-to-move prototype`
|
|
|
|
**Multi-issue commits:** Prefer one issue per commit; if unavoidable, list keys: `NEON-2, NEON-6: shared nav refactor`.
|
|
|
|
**No Jira issue (rare):** Maintenance or repo-only changes with no ticket — use **`chore:`** as the prefix (e.g. `chore: update .gitignore`). Do not invent fake keys.
|
|
|
|
## Agent behavior
|
|
|
|
- When creating a **branch** or **commit** for tracked work, **infer the key** from the current story (e.g. user says NEON-2), the branch already in use, or the Jira issue fetched via MCP.
|
|
- Follow [git workflow](git-workflow.md) (branch vs `main`) and [commit-and-review](commit-and-review.md) (commits at discretion on story work; **never** `git push`).
|