| Type |
All |
Grooming |
Select one type before writing other fields. Split work when more than one type applies. |
story |
| Outcome |
All |
story, bug: PO;
tech: Lead;
ops: DevOps |
State the result in one sentence. Avoid implementation details unless the result is technical. |
Users can download an invoice as a PDF. |
| Acceptance criteria |
All |
Grooming + outcome owner |
List 3–7 results that a test or direct observation can prove. |
A paid invoice downloads as a readable PDF. |
| Scope |
All |
Lead |
State what is in scope and out of scope. Name file globs, systems, merge hotspots, and required sequencing. |
In: src/invoices/**. Out: payment logic and email delivery. |
| Verification |
All |
Dev |
Give exact commands and observations. For ops, require proof outside the repository. |
Run npm test -- invoices, then download one invoice from the preview. |
| Context anchors |
story bug tech |
Dev |
Give 3–8 useful paths, symbols, links, operations, or examples to imitate. |
src/invoices/InvoicePage.tsx; InvoiceQuery; existing receipt download. |
| Preconditions |
story bug |
PO + Dev |
Name required accounts, permissions, data, environments, feature flags, and entry points. |
Use the staging billing account with one paid invoice. |
| Definition of done |
All |
Lead |
State the delivery gates and required evidence. |
Open a linked PR, pass all gates, verify the preview, and attach evidence. |
| Size fence |
All |
Lead |
State when the implementer must stop and split or ask for a decision. |
Stop if the change exceeds five files or needs a schema change. |
| Known traps |
story bug tech |
Dev |
List relevant repository rules, generated files, sensitive data, and unsafe shortcuts. |
Run code generation after GraphQL changes. Do not edit generated files. |
| Design and states |
story |
Design |
Link the source design. List empty, loading, error, success, and narrow-screen states when relevant. |
Figma node: <url>. Cover loading, empty, error, and 375 px widths. |
| i18n scope |
story |
Dev + PO |
Name the translation scope, required languages, and approved copy source. |
Add invoice.download in Thai and English. PO supplies final copy. |
| Data shape |
story |
Dev |
Name the API operation or model change. State whether generated output should change. |
Extend InvoiceQuery with pdfUrl; GraphQL code generation will change. |
| Reproduction |
bug |
Reporter |
Give the environment, route, account, data state, and numbered steps. |
On staging, open /invoices/42 and select Download twice. |
| Observed and expected |
bug |
Reporter + PO |
State the current result and the required result as separate facts. |
Observed: two files download. Expected: one file downloads. |
| Regression test |
bug |
Dev |
Name the lowest-level test that fails before the fix and passes after it. |
Add a component test that detects two download requests. |
| Blast radius |
bug |
Dev |
List affected callers, users, data, and adjacent behavior. |
The shared download hook is used by invoices and receipts. |
| Root cause |
bug |
Dev |
Give a code anchor when known. Otherwise require investigation before editing. |
useDownload.ts:48 registers the click handler twice. |
| Behavior-change budget |
tech |
Lead |
State every allowed behavior change. Use none when output must stay identical. |
None. Rendered output and API payloads must remain identical. |
| Safety net |
tech |
Dev |
Name existing tests or the characterization tests required before editing. |
Add formatter characterization tests before moving the logic. |
| Slice boundary |
tech |
Lead |
State the current slice and list later slices that are excluded. |
Slice 1 of 3. Do not change form validation or API mapping. |
| Debt metric |
tech |
Lead |
Name a measurable value that must improve. |
Reduce duplicate formatter implementations from four to one. |
| Runbook |
ops |
DevOps |
Give ordered, repeatable steps with exact commands or console paths. |
Add the new token, deploy staging, revoke the old token, then verify. |
| Split of duties |
ops |
DevOps + Lead |
Separate agent-safe steps from credentialed or production-only steps. |
The agent updates configuration. DevOps rotates the production token. |
| Access |
ops |
DevOps |
Name the service, organization, environment, and credential holder. Never include the credential. |
GitHub organization acme; production access holder: platform lead. |
| Blast radius and rollback |
ops |
DevOps |
State failure effects, rollback steps, rollback owner, and expected duration. |
A failed rotation blocks deploys. Restore the old token within five minutes. |
| Evidence and secret handling |
ops |
DevOps |
Name the required evidence. State how secrets and sensitive values must be handled. |
Attach the successful run URL. Do not paste token values into the task or PR. |