一键导入
create-ticket
Create detailed implementation ticket(s) from a feature description
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create detailed implementation ticket(s) from a feature description
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | create-ticket |
| description | Create detailed implementation ticket(s) from a feature description |
| argument-hint | <feature description> |
Create one or more implementation tickets from the user's feature description. Tickets must be detailed enough that /implement-ticket can implement without ambiguity. Workflow:
Thorough codebase research is critical — tickets referencing wrong patterns or missing existing infrastructure cause implementation friction.
docs/tickets/complete/.docs/ reference files for areas involved.Before asking, sort each open question into one of three buckets. Only the first goes to the user.
Ask the user — design-level or architecture-level decisions the implementer can't unilaterally make.
Defer to the implementer — leave un-decided, don't ask the user. Implementer is another instance of you running /implement-ticket with full research access; trust them with local taste:
For defer-class questions, either omit or surface under "Open Decisions" (see template) — never pre-decide for the implementer, never bother the user.
Don't ask — research first. Anything answerable by reading code. If unsure, read before asking.
Keep questions focused, concrete, bucketed. Don't pad user's queue with implementer-class questions.
Determine how many tickets are needed. User may describe one or several related features. Consider:
Present proposed split to user; confirm before writing.
Write each ticket to docs/tickets/<ticket-name>.md. No date prefix (added on completion) or numeric index (e.g., 03-vn-system.md) — Prerequisites carries ordering, more flexible than linear sequence. Descriptive names only.
Ticket shape varies by task type. Match format to work, not the other way around:
## Implementation with numbered steps in execution order. No grouping subsections (Model / Service / UI) — if ticket needs them, split it or re-sequence steps.## Implementation with numbered steps across the whole stack.Sections ordered for top-down reading by LLM implementer: gate checks (Prerequisites), boundary + orientation (Scope, Relevant Docs, Constraints), decisions before steps (Open Decisions, Acceptance Criteria), then work (Implementation, Test Plan).
# Ticket Title
## Context
**Current behavior**: What exists today.
**New behavior**: What exists after implementation. Lead with user-visible / system-level change in one sentence, add nuance after. Serves as ticket summary — no separate Summary section.
## Prerequisites
- Tickets, features, or artifacts that must exist before implementation
- Omit entirely if none
## Scope
### In scope
Brief summary of goals + areas touched (e.g., "new data model + service layer, extends notification system, adds settings UI"). Blast-radius overview, not file manifest — Implementation lists files.
### Out of scope
Explicit non-goals: things a reader might assume are included but aren't, plus deferred follow-ups. Omit only if nothing to call out.
## Relevant Docs & Anchors
Pointers to read before coding:
- **Design docs**: e.g., `docs/heroes.md §Ansa`, `docs/relics.md §Boss modifiers`.
- **Analogue tickets**: completed tickets whose patterns this mirrors (e.g., `docs/tickets/complete/2026-04-19 meliono-hero.md`).
- **Code anchors**: key symbols/methods to read first (`HeroTypeInfo.Info`, `Encounter.SpawnNextPiece`, the stack-render loop in `Playing.Draw`).
Omit if Implementation steps already name everything needed.
## Constraints & Gotchas
Optional. Cross-cutting hazards affecting multiple steps, easy to miss if buried inline:
- Project reference rules (e.g., `Astromino.Data` cannot import `Astromino.UI`).
- Expected compiler warnings (e.g., CS8509 on hero switches).
- Save-format / serialization compatibility constraints.
- Framework quirks documented in earlier ticket Learnings.
Omit if none apply.
## Open Decisions
Optional. Defer-to-implementer decisions worth surfacing — local-taste questions the implementer should call during coding (optionally raising with user) rather than pre-deciding here. Omit if none. Each point: one line, question + default if known.
Example entries:
1. **Easing curve** — linear vs. smoothstep for the per-tile tween. Default: linear; eyeball during manual testing.
2. **Inline list vs. dedicated VFX class** — inline simpler; dedicated right if reuse is imminent. Default: inline.
## Acceptance Criteria
Inspectable assertions defining "done" — state, signatures, file existence, enum values, behavioral facts. Each unambiguously pass/fail by code inspection or unit test. **Distinct from Test Plan**: *what must be true*, not *how to verify*. Don't restate Test Plan steps.
- [ ] Example: "`HeroTypeInfo.Info[HeroType.Ansa]` populated with starting bag, starting Coin, portrait, and flavor fields matching `docs/heroes.md §Ansa`."
- [ ] Example: "`Encounter.ApplyBossModifier` switch over `BossModifierType` is exhaustive: every enum value handled, no `default` fallthrough."
## Implementation
Flat numbered list. **No grouping subsections** — if ticket needs Model / Service / UI sub-headers, split it or re-sequence into one linear flow.
### 1. Step Title
Why (intent) → where (anchor by symbol/pattern, never line number) → what (prose, not transcribed code).
### 2. Next Step Title
...
## Test Plan
Manual + integration verification of acceptance criteria: build/test commands, in-game steps, regression spot-checks. Action-oriented ("Open settings, change theme, reload — confirm theme persists"). **Distinct from Acceptance Criteria**: *how to verify*, not *what must be true*.
- [ ] Example: "`dotnet build -o /tmp/build-check` and `dotnet test` pass."
- [ ] Example: "Start an Ansa run; first piece drawn is a pentomino; Coin readout shows 4."
File.cs:388-395. Line numbers rot on first edit above the region. Anchor by method name, pattern, or grep-able landmark (e.g., "the stack-render loop in Playing.Draw", "the new Encounter(...) call site in Playing").Encounter.SpawnNextPiece, BossModifierType enum, CoinCollectEffect class) — durable across moves/renames, grep-able. Add a path only when the symbol is ambiguous or the implementer would have to hunt. Inline paths in the step that needs them, not in a separate sidebar.After writing, quick self-check on things Writing Guidelines don't catch:
/implement-ticket have enough orientation (Relevant Docs & Anchors, named analogues) to start without a guess-and-grep pass?Present completed tickets with brief summary of each.