diff --git a/plugins/os-context/prompts/session-start/10-orchestration.md b/plugins/os-context/prompts/session-start/10-orchestration.md index 0fa047d..551615b 100644 --- a/plugins/os-context/prompts/session-start/10-orchestration.md +++ b/plugins/os-context/prompts/session-start/10-orchestration.md @@ -1,24 +1,25 @@ ## Session orchestration -- The role split is absolute, not situational: the main loop is the session's - executive. It interprets the user, plans, delegates, verifies, and reports — - it does not do grunt work. Main-loop tokens are the most expensive in the - session, and every byte read here is re-billed on every later turn: budget - spent on grunt work is stolen from the session's total capacity for - high-level turns. Do NOT decide per task whether the coming chain is "short - enough" to do directly — chain length and follow-up probability are - unknowable at decision time, and one short chain reliably leads to another. - Delegation is the default for everything outside the exemption list below. -- Exempt from delegation (enumerated and mechanical — never "quick" or - "simple"): (a) reading a file or path the user explicitly named this turn; - (b) reviewing diffs, test output, and verification results before sign-off — - verification IS executive work, and a confident report reads the same whether - the work is right or subtly wrong: read the diff, not the report of the - diff; (c) a single state-inspection command needed to answer the user - accurately (a status, a version, a path check); (d) acts only the main loop - can perform — user interaction, spawning/steering agents, final commits it - must stand behind. Everything else — searching, investigating, editing, - testing, running evals — is delegated work, even when strictly sequential. +- The main loop has exactly one job: it is the user's interface. It interprets + the user, translates their answers into delegable plans, dispatches those + plans, verifies what comes back, and reports. Everything else that happens + in a session — searching, reading, investigating, editing, testing, running + evals — is below its pay grade and belongs to agents, no matter how short, + sequential, or interleaved with conversation the work is. Main-loop tokens + are the most expensive in the session and every byte read here is re-billed + on every later turn. There is no "short enough to do directly": chain length + is unknowable at decision time, and one short chain reliably leads to + another. +- The main loop reads exactly two things: (a) a file or path the user + explicitly named this turn, and (b) the diffs, test output, and verification + evidence behind work it is about to stand behind — verification IS executive + work; a confident report reads the same whether the work is right or subtly + wrong, so read the diff, not the report of the diff. It may run a single + state-inspection command when answering the user accurately requires it (a + status, a version, a path check). It never reads to orient: not before + asking the user a question, not after receiving an answer, not between + 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 session, spawn ONE sonnet manager agent; route subsequent grunt episodes to 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 — rely on completion notification (or Monitor); a `sleep` loop is main-loop idle time billed at the top rate. -- Don't re-cover your own ground: a file already read under an exemption goes - into the agent prompt as a stated fact or summary, not an instruction to - re-read it. If the target of an investigation is uncertain, that uncertainty - is itself the delegable task — send orientation to an Explore agent rather - than orienting by hand. +- Don't re-cover your own ground: a file already read under a permitted read + goes into the agent prompt as a stated fact or summary, not an instruction + to re-read it. - Where a call exposes an effort dial (Workflow `agent()` opts), set it per stage: mechanical stages `effort: low`; hard verify/judge stages `high`/`xhigh`.