/wish checks that the task fits a single wish, makes the change in its own git worktree, runs your repository's checks, has a different agent review the commit and opens a pull request. Merging stays with you.origin is on GitHub, and the GitHub CLI signed in (gh auth status says so).origin for the pull request to target. /wish uses dev unless you name another branch, and it refuses main and master.check script, make check, just check or task check, else a test script or make test. A command the scout finds runs only in one of those exact forms. With a hook system, such as husky, lefthook, the pre-commit framework or core.hooksPath, the gate needs a live pre-push or pre-commit hook and runs the check once. With no hook system, or no check to find, it runs the validation command frozen for the task, and CI is the authority. A wish proves only what the gate's command proves./wish runs the repository's own install and check commands, so point it only at repositories you trust./wish as a saved workflow. In Codex, $wish runs the same stages by hand.genie doctor inside your repository. Its skills: lines and its workflows: catalog line should pass.12curl -fsSL https://raw.githubusercontent.com/automagik-dev/genie/main/install.sh | bash genie doctor
1genie init
genie init writes .genie/INDEX.md and the .gitignore rules that keep Genie's machine-local state out of git. Running it again changes nothing./wish one decided, bounded task. Name the files and the outcome you expect. This is the request from the run in the video below:1/wish Delete dead code: src/lib/defaults.ts has no production callers (only a type import of AgentDefaults in src/lib/workspace.ts) and src/__tests__/dir-ls.test.ts reimplements a removed handler and asserts on its own copy. Move the AgentDefaults type into workspace.ts, delete defaults.ts, defaults.test.ts and dir-ls.test.ts.
/workflows in Claude Code shows its progress.| State | Meaning |
merge-ready | The checks pass, the remote matches the local commit, the pull request holds exactly the declared files and the review says SHIP |
pr-open | The pull request exists but its checks had not finished; read them again with gh pr checks |
refused | Admission sent the task elsewhere and nothing was created |
blocked | Something stopped the run before or after publishing; the report names it |
missed | The repair budget ran out or a stage returned nothing; the branch, commit and worktree are kept |
genie wish report <runId> --append, which prints the run's tokens and time per stage.genie wish report it took 19.9 min and 387,079 tokens to reach merge-ready. That is one sample from one run: another task, repository or model gives other figures. The status line shows the session ran with Claude Code's permission prompts bypassed.12345678910wish wf_617946b4-8f2 (session b7cfff55-2b82-4b3e-8df0-351c35d8834c, variant unlabeled) total: 19.9 min, 387079 tokens, 38 tool calls, 6 agents, state merge-ready stage model tokens toolCalls seconds admit:scout claude-sonnet-5-5 77729 10 154 admit:judge claude-opus-5-5 58571 1 18 work:executor claude-opus-5-5 66285 11 82 gate:check claude-sonnet-5-5 59186 5 541 review:diff claude-opus-5-5 64032 4 84 publish:pr claude-sonnet-5-5 61276 7 317 appended to ~/.genie/metrics/wish-runs.jsonl
/wish refusesrefused with a route and nothing created. At v6.261003.1 the trust boundaries are .github/, .husky/, .claude/hooks/, .claude/settings*.json, the package.json scripts, the lint and commit-message config, release scripts, and auth, secret and permission surfaces:| Route | What to do |
plan | The task is too big for one pass or touches a trust boundary. Ask /wish for a plan and it writes a WISH.md for work |
brainstorm | A product decision is still open. Settle it with brainstorm first |
report | The cause is unknown. Find it with /report before asking for the fix |