|
| 1 | +--- |
| 2 | +name: create-issue |
| 3 | +description: Guides filing a new GitHub issue: picks the right template, writes it in the right register, applies the matching label, reviews the draft, and files it. Use when opening a new issue for this repo. |
| 4 | +--- |
| 5 | + |
| 6 | +# Create Issue |
| 7 | + |
| 8 | +Walks from "I have something to file" to a filed issue that follows the repo's conventions. It picks |
| 9 | +the right template, helps write it in the right language for its audience, applies the matching |
| 10 | +label, runs a review pass, and files only after the draft is approved. |
| 11 | + |
| 12 | +## When to use |
| 13 | + |
| 14 | +Use whenever you are about to open an issue in this repo. It is especially helpful if you are not |
| 15 | +sure which template fits or how technical the wording should be. |
| 16 | + |
| 17 | +## Steps |
| 18 | + |
| 19 | +### 1. Choose the template |
| 20 | + |
| 21 | +Pick the template that matches the work. Templates live in `.github/ISSUE_TEMPLATE/`. |
| 22 | + |
| 23 | +| If the work is... | Use | |
| 24 | +|---|---| |
| 25 | +| A large initiative framed around an outcome, spanning several stories or tasks | `epic.md` | |
| 26 | +| A user-facing feature or improvement | `story.md` | |
| 27 | +| Something broken or behaving unexpectedly | `bug.md` | |
| 28 | +| An implementation handoff a developer or agent must pick up cold | `technical-task.md` | |
| 29 | +| A time-boxed investigation whose output is findings, not shipped code | `spike.md` | |
| 30 | +| Non-user-visible maintenance (dependency upgrades, CI, tooling) | `chore.md` | |
| 31 | + |
| 32 | +If two seem to fit, prefer the less technical one for anything a non-engineer might file (`story` |
| 33 | +over `technical-task`, `bug` over `technical-task`). |
| 34 | + |
| 35 | +### 2. Write in the right register |
| 36 | + |
| 37 | +- **Product templates** (`epic`, `story`): plain, outcome-oriented language. Describe user value and |
| 38 | + what success looks like, not the implementation. |
| 39 | +- **Defect and maintenance templates** (`bug`, `chore`): accessible language. For `bug`, include |
| 40 | + reproduction steps and expected versus actual behavior; mark technical fields optional where they are. |
| 41 | +- **Investigation template** (`spike`): accessible language; state the question and the time box. |
| 42 | +- **Handoff template** (`technical-task`): technical and specific. Fill in the "Starting point" and |
| 43 | + "Constraints and gotchas" thoroughly; these are what an agent or new developer needs to start cold. |
| 44 | + |
| 45 | +Fill in the template's sections. Do not leave a heading with an empty body unless the template says |
| 46 | +it is optional. |
| 47 | + |
| 48 | +Write the body one line per paragraph; do not hard-wrap it. See "Formatting issue and PR bodies" in |
| 49 | +`CONTRIBUTING.md` for why. |
| 50 | + |
| 51 | +### 3. Apply the matching label |
| 52 | + |
| 53 | +Each template declares its label (`epic`, `story`, `bug`, `technical-task`, `spike`, `chore`). Apply |
| 54 | +that label when filing. If the label does not exist yet, create it first. |
| 55 | + |
| 56 | +### 4. Review the draft |
| 57 | + |
| 58 | +Run the `review-draft` skill on the issue body before filing. It checks quality, template adherence, |
| 59 | +voice, punctuation (no em dashes), formatting (no hard-wrapped body), and house style. Apply the |
| 60 | +findings you agree with. |
| 61 | + |
| 62 | +### 5. File |
| 63 | + |
| 64 | +Present the final draft for approval, then file it. Pass the body via a file so multi-line markdown |
| 65 | +survives the shell: |
| 66 | + |
| 67 | +```bash |
| 68 | +gh issue create --repo navapbc/strata-documentation-engine \ |
| 69 | + --title "<title>" --label <label> --body-file <path-to-body.md> |
| 70 | +``` |
| 71 | + |
| 72 | +Issue titles are plain and imperative, with no bracket prefix (the label carries the type). |
0 commit comments