Skip to content

Release v0.11.0 - #326

Merged
slowdini merged 4 commits into
mainfrom
dev
Sep 15, 2026
Merged

slowdini merged 4 commits into
mainfrom
dev

Conversation

@slowdini

@slowdini slowdini commented Sep 15, 2026 •

Copy link
Copy Markdown
Owner

Release notes

Highlights

  • Plan mode now always yields a plan. eval-magic asks for the plan in the agent's final
    message — the one channel every harness has — so every planning phase produces
    outputs/plan.md, and no eval needs a responder declared to reach one.

Behavior changes to know about

  • plan_mode is tri-state: true and "plan_then_act" keep the existing
    plan-approve-implement shape; "plan_only" stops at the plan, recording no
    approved_in_round and dispatching no act round; false is unchanged. Existing
    evals.json/dispatch.json serialize exactly as before.
  • New plan_source names a plan written beforehand under the skill's evals/ directory and
    splices it into the prompt as already approved. The session is ordinary act mode, so it
    works on Codex and Cline too, neither of which can declare [plan_mode].
  • The preflight that required a responder on a harness without [plan_mode.plan_file] is
    gone.
  • ConversationStopReason::PlanNotPresented is retained for reading older artifacts but is
    no longer produced.

Fixes

  • A plan-mode dispatch that presented nothing produced no artifact at all, and what came
    back varied by harness. Cause: the dispatch relied entirely on the harness's own planning
    prompt to decide what the agent wrote, and plan mode refuses writes into the task
    environment by design — instructing the agent to write plan.md couldn't fix that.

Internal changes

  • Schemas updated for the tri-state plan_mode and the plan-artifact guarantee
    (conversation.schema.json, evals.schema.json, run-record.schema.json); docs and
    harness template updated to match (docs byoh, docs conversations, BYOH
    template.toml).

slowdini and others added 4 commits September 5, 2026 02:32
Merge pull request #322 from slowdini/dev
A plan-mode dispatch relied entirely on the harness's own planning prompt to
decide what the agent wrote, so what came back varied by harness and a planning
phase that presented nothing produced no artifact at all. Instructing the agent
to write `plan.md` cannot fix that: plan mode refuses writes into the task
environment by design. The agent's final message is the one channel every
harness has, so eval-magic now asks for the plan there.

`src/cli/run/plan_prompt.rs` adds harness-neutral planning instructions to the
dispatch prompt — read but do not edit, close the turn with the complete plan —
and `PlanSignal::FinalMessage` takes that message as the plan when no plan file
was written and no responder was declared. Every planning phase therefore
produces `outputs/plan.md`, and no eval needs a responder to reach one: the
preflight that required one on a harness without `[plan_mode.plan_file]` is
gone.

`plan_mode` becomes tri-state. `true` and `"plan_then_act"` keep the existing
plan-approve-implement shape; `"plan_only"` stops at the plan, recording no
`approved_in_round` and dispatching no act round, for a skill that only shapes
how a plan is written. `false` and `true` serialize exactly as before, so no
existing evals.json or dispatch.json changes.

`plan_source` is the mirror: it names a plan written beforehand under the
skill's `evals/` directory and splices it into the prompt as already approved.
The session is ordinary act mode, so it works on Codex and Cline too, neither of
which can declare `[plan_mode]`.

`ConversationStopReason::PlanNotPresented` is retained for reading older
artifacts but is no longer produced.

Verification: cargo fmt --check, cargo clippy --all-targets -- -D warnings, and
cargo test all pass (1509 tests).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ERLJRvxDfHdKHdXMyBLmse
feat(run): guarantee a plan artifact and add the two plan run shapes
@slowdini
slowdini merged commit b6c3f0b into main Sep 15, 2026
9 checks passed
slowdini added a commit that referenced this pull request Sep 15, 2026
Merge pull request #326 from slowdini/dev
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant