dream — Overnight Batch Execution
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.md and select only wishes whose Status field is exactly APPROVED. 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 → print No 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) or all.
DREAM.md
- Read the wish-level
**depends-on:** value from each selected WISH.md's ## Dependencies section (none means no edge).
- Topologically sort into
merge_order layers 1..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.md in 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 the work skill's Dispatch section — follow it there.
- Execute the wish per
work (its dispatch, review-gate, and task-state rules govern): dispatched engineers claim via genie task checkout; the worker leaves task state in_progress and reports evidence. Only the dream PM/orchestrator runs genie task done after clean review and passing validation.
- Run
review per 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/N
blocked — <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
review against 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
fix for 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
dev in merge_order; never merge to main or master.
- 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
sleep in retry loops.
1---2name: dream3description: Batch-execute SHIP-ready wishes overnight — pick wishes, orchestrate workers, review PRs, wake up to results.4---56# dream — Overnight Batch Execution78**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.910Pick 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.1112This 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.1314## When to Use15- Human wants to queue multiple wishes for autonomous overnight execution16- Multiple WISH.md files have persisted status `APPROVED`1718## Flow191. **Pick wishes** (Picker below); human confirms the selection.202. **Generate `.genie/DREAM.md`** — dependency-ordered plan; human may edit before the run.213. **Phase 1 — Execute:** dispatch workers layer by layer, collect outcomes.224. **Phase 2 — Review + PR:** review every PR, fix valid gaps, CI green.235. **Phase 3 — Merge + QA:** merge to dev in order, QA loop until criteria proven.246. **Phase 4 — Report:** write `.genie/DREAM-REPORT.md`, the wake-up artifact.2526## Picker271. Read `.genie/wishes/*/WISH.md` and select only wishes whose Status field is exactly `APPROVED`. 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 → print `No APPROVED wishes found under .genie/wishes/` and stop.282. List matches numbered by slug: `1. <slug> — <one-line description>`.293. Human picks by number (`1 3 5`) or `all`.3031## DREAM.md321. Read the wish-level `**depends-on:**` value from each selected WISH.md's `## Dependencies` section (`none` means no edge).332. Topologically sort into `merge_order` layers `1..N` — layer 1 has no selected dependencies; same-layer wishes are parallel.343. 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.354. Write `.genie/DREAM.md` in the shared worktree; present for human confirmation before executing.3637## Phase 1: Execute3839For each `merge_order` layer, in order:40- 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).41- Every brief carries the Worker Contract below plus curated wish context (goal, groups, acceptance criteria, validation commands — see `work` § Context Curation).42- Follow-ups to a running worker go through **native follow-up messaging**; completion is push (the final-message notification), never a sleep-poll.43- 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.44- The layer is done when every worker has reported; then dispatch the next layer.4546### Worker Contract4748Each worker, independently:491. 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 the `work` skill's Dispatch section — follow it there.502. Execute the wish per `work` (its dispatch, review-gate, and task-state rules govern): dispatched engineers claim via `genie task checkout`; the worker leaves task state `in_progress` and reports evidence. Only the dream PM/orchestrator runs `genie task done` after clean review and passing validation.513. Run `review` per group against acceptance criteria.524. Run CI; on failure fix and retry (max 3 attempts; poll CI status, never sleep-loop). After 3 failures → blocked.535. Only after CI green and authorized PR creation: create a PR targeting `dev`, preferring the GitHub connector.546. Final message is the completion signal, every claim audited against tool output:55 - `done — PR <url>, CI green, groups N/N`56 - `blocked — <reason>, groups N/N`5758## Phase 2: Review + PR5960**Trigger:** all workers in the layer reported done or blocked.61621. Dispatch one reviewer subagent per PR via the native delegation surface (reviewer ≠ worker) to run `review` against the wish's acceptance criteria.632. Read bot comments critically — never blindly accept automated findings.643. On FIX-FIRST: diagnose first; return an overdesigned plan to wish/design review, otherwise dispatch `fix` for valid gaps (max 2 loops per PR). On another architectural issue: escalate in the report, no fix attempt.654. CI must be green before proceeding — poll status, do not sleep.665. On SHIP: mark the PR review-complete.6768## Phase 3: Merge + QA6970**Trigger:** all PRs marked SHIP.71721. After explicit merge authorization, merge PRs to `dev` in `merge_order`; never merge to `main` or `master`.732. Dispatch a qa subagent on dev to test against each wish's QA criteria.743. Each failure: `report` → `trace` → `fix` → retest. Every fix is a new PR through review and merge.754. Continue until all criteria are proven or blocked.7677## Phase 4: Report7879Write `.genie/DREAM-REPORT.md` — always, even if every wish blocked:8081```markdown82# Dream Report — <date>8384## Per-Wish Status85| merge_order | slug | PR | CI | Review | Merged | QA |86|-------------|------|----|----|--------|--------|----|8788## Blocked Wishes89- `<slug>`: <blocking reason>9091## QA Findings92- `<slug>`: <criterion failed — root cause, fix PR>9394## Follow-ups95- <items requiring human intervention>96```9798## Grounded Progress99100The 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.101102## Rules103- Never early-stop: a blocked wish is recorded and the remaining wishes continue.104- Never skip Phase 2 or Phase 3 — every PR is reviewed, every merge is QA-tested against wish criteria.105- The orchestrator never executes wish work — always dispatch worker subagents.106- No scope beyond what each WISH.md defines.107- Poll CI status — never `sleep` in retry loops.