You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a propose kind: the model authors from what the registry read
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>
Copy file name to clipboardExpand all lines: docs/cookbook/07-slack.md
+10-7Lines changed: 10 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -121,17 +121,20 @@ The default planning registry is the incident-response demo: its node bodies
121
121
are stubs, so a goal like "summarise the docs here" gets an honest negative
122
122
(or, if phrased vaguely enough, a hollow success). The shipped alternative
123
123
has bodies that really read — `survey` / `read` / `summarise`, read-only,
124
-
confined to the bot's working directory:
124
+
confined to the bot's working directory — plus one kind, `propose`, whose
125
+
body hands what was read to the model and records the recommendation that
126
+
comes back, labelled `proposal (model-authored):`:
125
127
126
128
```
127
-
@grapharc plan "summarise the docs in this workspace" --registry grapharc.examples.plan_docs:build_registry --trace docs.jsonl --run-id docs-1
129
+
@grapharc plan "summarise the docs and propose how to merge them" --registry grapharc.examples.plan_docs:build_registry --model claude-cli/claude-sonnet-5 --trace docs.jsonl --run-id docs-1
128
130
```
129
131
130
-
Works with the scripted planner (free) and with `--model`; either way the
131
-
notes in the final state carry actual file names, titles and excerpts,
132
-
because the reading is operator code, not model output. `--registry` from
133
-
Slack accepts exactly these two shipped modules and nothing else — the flag's
134
-
general form imports arbitrary code, which stays refused.
132
+
The scripted planner (no `--model`) runs the same chain free: the reading
133
+
notes are identical — file names, titles, excerpts are operator code, not
134
+
model output — and the `propose` note says plainly that authoring needs a
135
+
real model rather than pretending. `--registry` from Slack accepts exactly
136
+
these two shipped modules and nothing else — the flag's general form imports
0 commit comments