voyage/tests/fixtures/session-orders/plan.md
Kjell Tore Guttormsen 219e40cd91
feat(execute)!: hand waves over as session orders, never start Claude Code (green)
Operator decision 27.09.2026: Voyage works the PM way, so nothing in it
starts Claude Code. Work that needs another session becomes an order plus
a starter line the user gives a session they open themselves; Voyage
never starts the session.

/trekexecute's multi-session path (Phase 2.6) now prepares one wave at a
time: worktree per session, then lib/util/session-orders.mjs writes one
order per session (worktree, steps, done-condition, starter) plus
orders/wave.json, and the run stops. Running the same command again reads
each session's progress file (status mode), merges sequentially with
push-before-cleanup as before, and prepares the next wave. Phase 2.5 skips
the destructive pre-flight while a wave is in flight. Phase 7.6 recovery is
handed over the same way. Hard rule 21: never start Claude Code.

Removed with it, because they existed only for launched children: the
ANTHROPIC_API_KEY billing check (and its dry-run line and Hard rule 1
exception), the hooks-fire version precheck, the safety preamble, the
scoped-tool/turn/budget flags, templates/headless-launch-template.md, the
decomposer's launch.sh (now orders.md), /trekplan's "launch", the README
billing and MCP tuning sections, and scripts/q3-cache-prefix-experiment.mjs
(an experiment that spawned the binary; its results stay in docs/).
/trekresearch's deep-research pre-gate no longer runs the binary for its
version; the post-hoc check was already the authoritative guard.

Chose orders + starters over in-session subagents because the order's done
criterion asks for exactly that, and because /trekexecute disallows the
Agent tool on purpose (Hard rule 10); reopening that is a separate change.

Gate: 54 -> 0 hit lines outside EXEMPT. npm test 1250 (1245 pass, 0 fail,
5 skipped: 3 are the retired-reference scan without its local list).
verify.sh 7/0. The fixture run (tests/lib/session-orders.test.mjs) writes
two orders and wave.json for wave 1 and leaves a trap binary untouched.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 15:35:22 +02:00

50 lines
965 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
plan_version: "1.7"
slug: demo
---
# Plan: demo (fixture for session orders)
## Implementation Plan
### Step 1: Add the parser
### Step 2: Add the formatter
### Step 3: Add the CLI
### Step 4: Wire the plugin subdir
### Step 5: Integrate
## Execution Strategy
### Session 1: Parser
- **Steps:** 1, 2
- **Wave:** 1
- **Depends on:** none
- **Scope fence:**
- Touch: lib/parser.mjs, lib/format.mjs
- Never touch: lib/cli.mjs, plugins/demo/
### Session 2: Plugin subdir
- **Steps:** 3–4
- **Wave:** 1
- **Depends on:** none
- **cwd:** plugins/demo
- **Scope fence:**
- Touch: lib/cli.mjs, plugins/demo/
- Never touch: lib/parser.mjs, lib/format.mjs
### Session 3: Integration
- **Steps:** 5
- **Wave:** 2
- **Depends on:** Session 1, Session 2
- **Scope fence:**
- Touch: README.md
- Never touch: lib/
### Execution Order
- **Wave 1:** Session 1, Session 2 (parallel)
- **Wave 2:** Session 3 (after Wave 1)
## Verification
- `node --test`