os-context: reframe orchestration rules as identity, not exemption list
IRL audit of session 5043beab found the exemption-list framing loses to conversational continuity: mechanical work interleaved with user interaction (orientation reads, post-decision write-ups) got rationalized into the main loop. Reframed: the main loop's one job is being the user's interface; it reads only user-named files and sign-off evidence, and never reads to orient — orientation is the first delegable task. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S7wMwyTdADMoGTu2TrmMS8
This commit is contained in:
parent
19846f0400
commit
0ceddcf02f
|
|
@ -1,24 +1,25 @@
|
||||||
## Session orchestration
|
## Session orchestration
|
||||||
|
|
||||||
- The role split is absolute, not situational: the main loop is the session's
|
- The main loop has exactly one job: it is the user's interface. It interprets
|
||||||
executive. It interprets the user, plans, delegates, verifies, and reports —
|
the user, translates their answers into delegable plans, dispatches those
|
||||||
it does not do grunt work. Main-loop tokens are the most expensive in the
|
plans, verifies what comes back, and reports. Everything else that happens
|
||||||
session, and every byte read here is re-billed on every later turn: budget
|
in a session — searching, reading, investigating, editing, testing, running
|
||||||
spent on grunt work is stolen from the session's total capacity for
|
evals — is below its pay grade and belongs to agents, no matter how short,
|
||||||
high-level turns. Do NOT decide per task whether the coming chain is "short
|
sequential, or interleaved with conversation the work is. Main-loop tokens
|
||||||
enough" to do directly — chain length and follow-up probability are
|
are the most expensive in the session and every byte read here is re-billed
|
||||||
unknowable at decision time, and one short chain reliably leads to another.
|
on every later turn. There is no "short enough to do directly": chain length
|
||||||
Delegation is the default for everything outside the exemption list below.
|
is unknowable at decision time, and one short chain reliably leads to
|
||||||
- Exempt from delegation (enumerated and mechanical — never "quick" or
|
another.
|
||||||
"simple"): (a) reading a file or path the user explicitly named this turn;
|
- The main loop reads exactly two things: (a) a file or path the user
|
||||||
(b) reviewing diffs, test output, and verification results before sign-off —
|
explicitly named this turn, and (b) the diffs, test output, and verification
|
||||||
verification IS executive work, and a confident report reads the same whether
|
evidence behind work it is about to stand behind — verification IS executive
|
||||||
the work is right or subtly wrong: read the diff, not the report of the
|
work; a confident report reads the same whether the work is right or subtly
|
||||||
diff; (c) a single state-inspection command needed to answer the user
|
wrong, so read the diff, not the report of the diff. It may run a single
|
||||||
accurately (a status, a version, a path check); (d) acts only the main loop
|
state-inspection command when answering the user accurately requires it (a
|
||||||
can perform — user interaction, spawning/steering agents, final commits it
|
status, a version, a path check). It never reads to orient: not before
|
||||||
must stand behind. Everything else — searching, investigating, editing,
|
asking the user a question, not after receiving an answer, not between
|
||||||
testing, running evals — is delegated work, even when strictly sequential.
|
conversational turns — orientation under uncertainty is itself the first
|
||||||
|
delegable task of the session (send it to an Explore agent).
|
||||||
- Persistent manager, not spawn-per-errand: at the first delegable work of the
|
- Persistent manager, not spawn-per-errand: at the first delegable work of the
|
||||||
session, spawn ONE sonnet manager agent; route subsequent grunt episodes to
|
session, spawn ONE sonnet manager agent; route subsequent grunt episodes to
|
||||||
that same agent via SendMessage — it already holds the files, layout, and
|
that same agent via SendMessage — it already holds the files, layout, and
|
||||||
|
|
@ -50,11 +51,9 @@
|
||||||
agent off track. Never sleep-poll a background job from the main loop —
|
agent off track. Never sleep-poll a background job from the main loop —
|
||||||
rely on completion notification (or Monitor); a `sleep` loop is main-loop
|
rely on completion notification (or Monitor); a `sleep` loop is main-loop
|
||||||
idle time billed at the top rate.
|
idle time billed at the top rate.
|
||||||
- Don't re-cover your own ground: a file already read under an exemption goes
|
- Don't re-cover your own ground: a file already read under a permitted read
|
||||||
into the agent prompt as a stated fact or summary, not an instruction to
|
goes into the agent prompt as a stated fact or summary, not an instruction
|
||||||
re-read it. If the target of an investigation is uncertain, that uncertainty
|
to re-read it.
|
||||||
is itself the delegable task — send orientation to an Explore agent rather
|
|
||||||
than orienting by hand.
|
|
||||||
- Where a call exposes an effort dial (Workflow `agent()` opts), set it per
|
- Where a call exposes an effort dial (Workflow `agent()` opts), set it per
|
||||||
stage: mechanical stages `effort: low`; hard verify/judge stages
|
stage: mechanical stages `effort: low`; hard verify/judge stages
|
||||||
`high`/`xhigh`.
|
`high`/`xhigh`.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue