skills/wish/SKILL.md
Convert an idea into a structured wish plan with scope, acceptance criteria, and execution groups for /work.
npx skillsauth add automagik-dev/genie wishInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Convert a validated idea into an executable wish document at .genie/wishes/<slug>/WISH.md.
/brainstorm output exists and needs to become actionable.This skill is collaborative and operates on the shared worktree:
.genie/wishes/ within the shared worktreeBefore writing the wish, verify the Design file exists:
test -f .genie/brainstorms/<slug>/DESIGN.md
| **Design** | [DESIGN.md](../../brainstorms/<slug>/DESIGN.md) | as normal.| **Design** | _No brainstorm — direct wish_ | (no link). This is valid for hotfixes, trivial changes, or cases where the plan is obvious enough that a brainstorm adds no value.The linter (scripts/wishes-lint.ts) treats the literal stub text as valid and skips it. Never emit a bracket-link to a non-existent brainstorm file.
/brainstorm first. If a brainstorm/design exists, proceed. Otherwise ask: "This needs more clarity. Running /brainstorm to refine the idea first."genie wish new <slug> to create .genie/wishes/<slug>/WISH.md from templates/wish-template.md. Never hand-write the file — the scaffold guarantees the structural skeleton the parser and linter expect.<TODO: …> marker with real content. Add verification to each group: acceptance criteria + a validation command.depends-on between execution groups and cross-wish dependencies.genie wish lint <slug> first. If the linter reports any error violations (fixable or not), surface them to the user and stop — do not hand off to /review with a structurally broken wish. Only after lint passes, auto-invoke /review (plan review) on the WISH.md. Do not suggest /work directly — the review gate must pass first.| Section | Required | Notes |
|---------|----------|-------|
| Status / Slug / Date | Yes | Status: DRAFT on creation |
| Summary | Yes | 2-3 sentences: what and why |
| Scope IN / OUT | Yes | OUT cannot be empty |
| Decisions | Yes | Key choices with rationale |
| Success Criteria | Yes | Checkboxes, each testable |
| Execution Strategy | Yes | Wave-based parallel/sequential execution plan |
| Execution Groups | Yes | Goal, deliverables, acceptance criteria, validation command |
| Dependencies | No | depends-on / blocks using slug or repo/slug |
| QA Criteria | No | What must be verified on dev after merge |
| Assumptions / Risks | No | Flag what could invalidate the plan |
The wish scaffold lives at templates/wish-template.md in the genie repo — a single source of truth shared by genie wish new and genie wish lint.
Run genie wish new <slug> to materialize .genie/wishes/<slug>/WISH.md. The command substitutes {{slug}} and {{date}} tokens and leaves every other field as a <TODO: …> placeholder for you to fill in.
Never write WISH.md by hand. The scaffold guarantees structural correctness by construction; handwritten wishes regularly fail genie wish lint.
After writing WISH.md, create corresponding PG tasks so the wish is visible in genie task list:
genie task create "<wish title>" --type software
genie task create "<group title>" --parent #<parent-seq>
genie task dep #<child-seq> --depends-on #<dep-seq>
| Event | Command |
|-------|---------|
| Wish crystallized | genie task create "<wish title>" --type software |
| Per execution group | genie task create "<group title>" --parent #<parent-seq> |
| Group has dependency | genie task dep #<child-seq> --depends-on #<dep-seq> |
Graceful degradation: If PG is unavailable or genie task commands fail, warn but do not block the wish flow. The WISH.md file is the source of truth — PG tasks are an optional tracking enhancement. The wish must still be usable by /work even if no PG tasks were created.
genie wish new <slug> then edit. The scaffold guarantees structural correctness by construction; handwritten wishes regularly fail genie wish lint.genie wish lint <slug> before handing off to /review. If lint reports errors, fix them (or run --fix for deterministic violations) before the handoff — never hand a structurally broken wish to /review._No brainstorm — direct wish_ stub text./wish — planning only.depends-on / blocks.testing
Wire a Genie agent to an Omni channel in one canonical flow — register the agent, bind to an instance, verify the round-trip. Replaces the 5+ command legacy chain.
data-ai
Dispatch trace subagent to investigate unknown issues — reproduces, traces, and reports root cause for /fix handoff.
data-ai
Investigate bugs comprehensively — cascade through /trace, capture browser evidence, extract observability data, and auto-create a GitHub issue with all findings.
data-ai
Full PM playbook — triage backlog, prioritize, assign, track, report, escalate. Copilot, autopilot, or pair modes.