dream — Overnight Batch Execution
SkillDev toolsBatch-execute SHIP-ready wishes overnight — pick wishes, orchestrate workers, review PRs, wake up to results.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the dream — Overnight Batch Execution skill
What this skill tells your AI
The instructions your AI receives, as published by automagik-dev/genie in skills/dream/SKILL.md and read by ahel’s review.
Runtime syntax: invoke the plugin copy through the active runtime's owner-qualified skill selector; use a bare selector only when intentionally selecting a user-tier copy (a separately installed personal copy; Genie no longer seeds this tier). Cross-skill prose below uses bare names as portable semantic routes; the orchestrator resolves the selector for the active runtime.
Pick SHIP-ready wishes, build a dependency-ordered plan, dispatch one worker subagent per wish, review PRs, merge to dev, run the QA loop, and write a wake-up report. The dream orchestrator dispatches — it never executes wish work directly.
This is a high-impact, explicit-only workflow. The user must approve the selected wishes, the generated plan, PR creation, and merge-to-dev authority. Never merge to main or master, deploy, send external messages, or expand scope without separate authority.
When to Use
- Human wants to queue multiple wishes for autonomous overnight execution
- Multiple WISH.md files have persisted status
APPROVED
Flow
- Pick wishes (Picker below); human confirms the selection.
- Generate
.genie/DREAM.md— dependency-ordered plan; human may edit before the run. - Phase 1 — Execute: dispatch workers layer by layer, collect outcomes.
- Phase 2 — Review + PR: review every PR, fix valid gaps, CI green.
- Phase 3 — Merge + QA: merge to dev in order, QA loop until criteria proven.
- Phase 4 — Report: write
.genie/DREAM-REPORT.md, the wake-up artifact.
Picker
- Read
.genie/wishes/*/WISH.mdand select only wishes whose Status field is exactlyAPPROVED. The brainstorm jar is historical/discovery context, never readiness authority. A Poured entry without an existing approved WISH.md is skipped and reported as drift. No matches → printNo APPROVED wishes found under .genie/wishes/and stop. - List matches numbered by slug:
1. <slug> — <one-line description>. - Human picks by number (
1 3 5) orall.
DREAM.md
- Read the wish-level
**depends-on:**value from each selected WISH.md's## Dependenciessection (nonemeans no edge). - Topologically sort into
merge_orderlayers1..N— layer 1 has no selected dependencies; same-layer wishes are parallel. - Per-wish entry:
slug,branch: feat/<slug>,wish-path: .genie/wishes/<slug>/WISH.md,depends-on,merge-order. Keep the canonical hyphenated keys so the plan can be checked directly against each wish. - Write
.genie/DREAM.mdin the shared worktree; present for human confirmation before executing.
Phase 1: Execute
For each merge_order layer, in order:
- Spawn one worker subagent per wish via the native delegation surface — all of the layer's spawns in ONE message so they run in parallel (background; each notifies you with its final message).
- Every brief carries the Worker Contract below plus curated wish context (goal, groups, acceptance criteria, validation commands — see
work§ Context Curation). - Follow-ups to a running worker go through native follow-up messaging; completion is push (the final-message notification), never a sleep-poll.
- Inspect state on demand:
genie board --wish <slug>/genie task list --wish <slug>. If a wish has no task rows, drive it off WISH.md directly — task tracking is an enhancement, never a blocker. - The layer is done when every worker has reported; then dispatch the next layer.
Worker Contract
Each worker, independently:
- Work in a dedicated branch and worktree for
feat/<slug>, using runtime-managed or ordinary Git worktrees according to the active environment. The contract governing parallel writers and repo-level git state is stated once in AGENTS.md and theworkskill's Dispatch section — follow it there. - Execute the wish per
work(its dispatch, review-gate, and task-state rules govern): dispatched engineers claim viagenie task checkout; the worker leaves task statein_progressand reports evidence. Only the dream PM/orchestrator runsgenie task doneafter clean review and passing validation. - Run
reviewper group against acceptance criteria. - Run CI; on failure fix and retry (max 3 attempts; poll CI status, never sleep-loop). After 3 failures → blocked.
- Only after CI green and authorized PR creation: create a PR targeting
dev, preferring the GitHub connector. - Final message is the completion signal, every claim audited against tool output:
done — PR <url>, CI green, groups N/Nblocked — <reason>, groups N/N
Phase 2: Review + PR
Trigger: all workers in the layer reported done or blocked.
- Dispatch one reviewer subagent per PR via the native delegation surface (reviewer ≠ worker) to run
reviewagainst the wish's acceptance criteria. - Read bot comments critically — never blindly accept automated findings.
- On FIX-FIRST: diagnose first; return an overdesigned plan to wish/design review, otherwise dispatch
fixfor valid gaps (max 2 loops per PR). On another architectural issue: escalate in the report, no fix attempt. - CI must be green before proceeding — poll status, do not sleep.
- On SHIP: mark the PR review-complete.
Phase 3: Merge + QA
Trigger: all PRs marked SHIP.
- After explicit merge authorization, merge PRs to
devinmerge_order; never merge tomainormaster. - Dispatch a qa subagent on dev to test against each wish's QA criteria.
- Each failure:
report→trace→fix→ retest. Every fix is a new PR through review and merge. - Continue until all criteria are proven or blocked.
Phase 4: Report
Write .genie/DREAM-REPORT.md — always, even if every wish blocked:
# Dream Report — <date>
## Per-Wish Status
| merge_order | slug | PR | CI | Review | Merged | QA |
|-------------|------|----|----|--------|--------|----|
## Blocked Wishes
- `<slug>`: <blocking reason>
## QA Findings
- `<slug>`: <criterion failed — root cause, fix PR>
## Follow-ups
- <items requiring human intervention>
Grounded Progress
The report is an audit, not a recollection. Every cell traces to tool output from the run: PR URLs, CI results, review verdicts, genie task list --wish <slug> state, worker final messages. State per wish exactly what is verified, what failed, and what was skipped. Never report a wish shipped until its merge and QA evidence is in hand — dispatched is not done.
Rules
- Never early-stop: a blocked wish is recorded and the remaining wishes continue.
- Never skip Phase 2 or Phase 3 — every PR is reviewed, every merge is QA-tested against wish criteria.
- The orchestrator never executes wish work — always dispatch worker subagents.
- No scope beyond what each WISH.md defines.
- Poll CI status — never
sleepin retry loops.
Signals
- GitHub stars
- 335
- Forks
- 50
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
dream- Source
- github.com/automagik-dev/genie