Skip to content

Add a propose kind: the model authors from what the registry read - #30

Merged
Shashankss1205 merged 1 commit into
mainfrom
feat/plan-docs-propose
Jul 30, 2026
Merged

Add a propose kind: the model authors from what the registry read#30
Shashankss1205 merged 1 commit into
mainfrom
feat/plan-docs-propose

Conversation

@Shashankss1205

Copy link
Copy Markdown
Collaborator

Closes the gap demonstrated live today: plan "read the docs, summarise them and then create a plan for merging them" reached goal_met with no merge plan anywhere — the mechanical goal check (≥3 notes) was satisfied by reading alone.

propose is the registry's one model-speaking kind: its body hands the notes the deterministic kinds collected to the run's model and appends the reply as proposal (model-authored): …. Wiring is the CLI's existing contract — build_registry(model) — so the same backend that plans also authors, with the two roles cleanly separable (the loop test drives a scripted planner while propose uses a real-model stand-in).

Edge honesty, all tested: None or the planner's own ScriptedChatModel (whose scripted replies a node body must not consume) yields a note saying authoring needs --model; a model call that raises becomes a model call failed note rather than an execution failure, keeping the deterministic reads. The scripted chain now includes propose so the free path shows the declining note; instance-name≠kind coverage extends to the new kind.

Four new/extended tests; full suite green; ruff clean; cookbook 07 updated.

🤖 Generated with Claude Code

plan_docs could read and summarise but a goal ending "and then create a
plan for merging them" was satisfied by the mechanical goal check
without the proposal ever existing. The fourth kind closes that: its
body hands the deterministic notes to the run's model and records the
recommendation as `proposal (model-authored):` — the one body in this
registry that speaks to a model, built per-run by build_registry(model)
via the CLI's existing factory contract.

Honesty at the edges: with no real model behind the run (None, or the
planner's own ScriptedChatModel, whose replies a body must not consume)
the note says authoring needs --model instead of pretending; a model
call that raises becomes a note too, because the deterministic reads
already in state are worth keeping when the proposal step cannot run.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Shashankss1205
Shashankss1205 merged commit a7fed81 into main Jul 30, 2026
6 checks passed
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