원클릭으로
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
Verifiable assertions defining "done" — user-visible behavior, public API outcomes, test-observable invariants, and (when the ticket *is* about adding code shape) enum values, registry entries, or file existence. 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.
**Avoid in AC**: private field names, internal state transitions, statement ordering inside a method. Those lock the implementer into one shape when other shapes satisfy the same behavior — they belong in Constraints or Implementation.
- [ ] Example (registry-shape ticket — code shape *is* the deliverable): "`HeroTypeInfo.Info[HeroType.Ansa]` populated with starting bag, starting Coin, portrait, and flavor fields matching `docs/heroes.md §Ansa`."
- [ ] Example (behavioral ticket): "With `SoftDropDestroys` active, a soft-drop press destroys exactly one piece — the held key has no further effect until released and re-pressed."
## 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.
Research and pressure-test a feature idea before it becomes a ticket — feasibility, implementation options, gotchas, and the hidden assumptions/contradictions behind the request. Discuss with the user until you both agree on the shape, then offer to hand off to /create-ticket. Never writes code or tickets; never invokes /create-ticket itself.
Implement a ticket from docs/tickets/
Holistic review of code architecture, identifying tech debt and ergonomic improvements
Holistic review of documentation, skills, and process health