genie --help is the source of truth, and the CLI reference has its output.genie-hacks skill lists, searches and shows these entries, and genie-hacks contribute helps you submit one.one-task-skips-the-plan
Category: planningWISH.md, a plan review and a dispatch before anyone touches the code.wish one decided task. It 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. Only work bigger than one task becomes a WISH.md.1/wish rename the --lane flag to --to across task move and its tests
lint-the-wish-first
Category: planninggenie wish lint over the repository's .genie/wishes. It checks the template sections, the metadata and every link into .genie/brainstorms/, writes nothing, and exits non-zero when it finds a problem, so it fits a pre-commit hook or a CI step. A --dir you type that does not resolve is refused instead of reported clean.12genie wish lint # this repository genie wish lint --dir ../other # any other checkout
shape-groups-for-waves
Category: paralleldepends-on deliberately and keep independent work independent. work runs each wave through your agent's own subagents, and groups that share no dependency run together.12genie board # the live kanban, derived by query genie task status <task-id> # dependencies, stage log, assignment
one-database-every-worktree
Category: parallel.genie/genie.db through the git common directory, so there is no sync step between worktrees. The board snapshot .genie/roadmap.json is the one piece of task state that lives in git, and genie task sync reconciles it with the database.12git worktree add ../feature-x -b feature-x (cd ../feature-x && genie task list) # the same cards, from the same database
team-coordination
Category: teamswork, in the order its depends-on edges give. Independent wishes can run in parallel through your agent's subagents; give parallel writers disjoint files or their own worktrees. The shared database shows all of them from any terminal.123genie board --wish auth-refactor genie board --wish api-v2 genie task list --status in_progress
provider-switching
Category: providerswish workflow already splits its stages into tiers: the worker stages (scout, gate, publisher) run on a faster model, and the reasoner stages (judge, executor, reviewer, repair) on a stronger one. Name a model in your request to change that. The wish skill takes model, which pins one model for every stage, and gateModel and publishModel, which pin only the gate (it runs your check and reads the exit code) and the publisher (it pushes and opens the pull request) and win over model. In other agents the skill runs the same stages by hand, and your agent's own settings choose the model.1/wish rename the --lane flag to --to across task move and its tests; use <model> for the gate and the publisher
custom-skills
Category: skillsSKILL.md with YAML frontmatter (a name and a description) and the instructions. Put it in your agent's skills home, ~/.claude/skills/<name>/ for Claude Code or ~/.agents/skills/<name>/ for Codex and the other agents that read it, and the agent runs it by name. When the procedure should run the same way every time in Claude Code, the workfly skill turns it into a saved workflow.123456789101112131415161718192021222324# Create your custom skill mkdir -p ~/.claude/skills/reset-dev cat > ~/.claude/skills/reset-dev/SKILL.md << 'EOF' --- name: reset-dev description: "Reset the dev environment: migrate, seed, restart" --- # Reset Dev Environment Run these steps in order: 1. **Stop services:** `docker compose down` 2. **Reset database:** `docker compose run --rm api rails db:reset` 3. **Run migrations:** `docker compose run --rm api rails db:migrate` 4. **Seed data:** `docker compose run --rm api rails db:seed` 5. **Start services:** `docker compose up -d` 6. **Verify:** `curl -s http://localhost:3000/health | jq .status` Report the health check result when done. EOF # Now use it anytime: # /reset-dev
microagent-taste
Category: skillsgenie mikro runs repository-local microagents: a prompt plus an answer schema, whose answer is validated JSON with every citation checked against the tree. Seed the default agents, build a fixture set from your own commits, score the agent mechanically, then run a coaching round that patches a copy of the prompt and benches it before and after. genie mikro init prints the prerequisites your host needs and the next steps.12345genie mikro init genie mikro fixtures --from-commits <range> --agent wish-context genie mikro bench wish-context genie mikro coach wish-context --null-control # the drift band; run it first genie mikro coach wish-context
read-doctors-json
Category: opsgenie doctor prints one summarized line per check, which is easy to read and hard to script.genie doctor --json carries every entry behind each summarized line. Doctor only observes the skills channel: even --fix leaves it alone, and genie update owns every change there.1genie doctor --json | jq '.checks[] | select(.status == "warn") | .name'
tighten-budgets-in-config
Category: ops~/.genie/config.json, and the skills read them through the CLI instead of restating a number. Configuration can only tighten a gate: every key has a ceiling in the schema, and a value past it makes the whole file fall back to the defaults, which genie config get --json reports as "source": "default".12genie config get budgets.maxEscalationsPerGroup genie config get budgets.maxEscalationsPerGroup --json
cost-optimization
Category: costsrc/middleware/auth.ts" instead of "refactor the codebase". Run the refine skill on a brief before you hand it to an agent, and put the mechanical stages of a wish run on a faster model (Pick the model per stage of a wish run). Then read what a run really cost from its own record: in Claude Code, genie wish report <runId> prints the tokens and time of each stage of a saved workflow run.1genie wish report <runId> # tokens and time per stage of one saved workflow run
work runs, or when a run costs more than the change was worth.integration-patterns
Category: integrationreport skill follows the same rule: it files a GitHub issue only when you ask.1234curl -X POST "$SLACK_WEBHOOK_URL" -H 'Content-Type: application/json' \ -d '{"text": "Genie: wish auth-refactor is ready for review"}' gh issue create --title "Bug: auth token expiry" --body-file report.md gh workflow run ci.yml --ref feat/my-feature
debugging-tips
Category: debuggingreport skill for a root-cause investigation; it files an issue only when you ask. genie doctor checks the install, and the task state shows where the work stopped. Before you re-claim a task that is still in_progress, confirm who holds the claim and that the worker is gone. genie task done is the orchestrator's call, after the work is reviewed.12345genie doctor # install health genie task list --status blocked # blocked cards genie task status <task-id> # dependencies and stage log genie board --wish my-wish-slug genie task export # the whole state as JSON, for a post-mortem
hook-automation
Category: other1export GENIE_AGENT_NAME=my-agent # the identity genie task checkout uses by default
genie-hacks skill: genie-hacks contribute asks for each field, shows you a preview and opens the pull request after you confirm it.12345678910111213141516### Your hack title **ID:** `your-hack-id` **Category:** <category> **Problem:** What situation does this solve? **Solution:** How does it work? \`\`\`bash # Concrete commands or code \`\`\` **Benefit:** What do you gain? **When to use:** In what situations should someone reach for this?
| Category | ID | Examples |
| Planning | planning | Task or wish, acceptance criteria, linting a plan |
| Parallel | parallel | Wave shape, worktrees, the shared per-repository database |
| Ops | ops | Doctor, budgets, install hygiene, release verification |
| Providers | providers | Model selection per stage or per role |
| Teams | teams | Coordinating several wishes |
| Skills | skills | Custom skills, microagents, automation |
| Cost | cost | Token use, model routing, budget control |
| Integration | integration | External tools, APIs, CI/CD, chat notifications |
| Debugging | debugging | Stuck runs, wrong output, post-mortems |
| Other | other | Anything else |
1234567891011# 1. Fork and clone the docs repository gh repo fork automagik-dev/docs --clone cd docs git checkout -b hack/<your-hack-id> # 2. Add your entry at the end of its category section in genie/hacks.mdx # 3. Commit and open the pull request git add genie/hacks.mdx git commit -m "hack: your hack title" gh pr create --title "hack: your hack title"