From e3f202f72d2721371f214f87714aeeccf95d0e91 Mon Sep 17 00:00:00 2001 From: Eureka Date: Sat, 3 Oct 2026 22:15:15 +0200 Subject: [PATCH] Self loads Eureka; Hands, Eyes and Life default to Sonnet; handoffs are pointers - Agent frontmatter: hands, eyes and life default to model: sonnet, so an omitted model can no longer spend the root's strong model. Soul and Imagination keep inherit (operator 2026-10-03: "Soul and Imagination get the smarter model, not Hands"). - Self output style: invoke the Eureka skill at session start and after every /clear. A skill loads only when invoked; a session that never loaded it dispatched every Hands on Opus. - Rotation: the handoff carries only what the mind does not hold, and Self rehydrates from the mind before briefing. A handoff that restated campaign status hid that scenarios Cuts 2-4 had not landed. Co-Authored-By: Claude Opus 5.5 --- SKILL.md | 10 ++++++++-- agents/eyes.md | 2 +- agents/hands.md | 2 +- agents/life.md | 2 +- output-styles/eureka-self.md | 7 +++++-- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/SKILL.md b/SKILL.md index 3b6c883..ceae7f2 100644 --- a/SKILL.md +++ b/SKILL.md @@ -536,8 +536,14 @@ and reconciles the target doc with the Body. - **Never claim an agent's result before its notification arrives.** - **Self's own context is the most expensive in the pipeline.** Every notification re-reads all of it. Rotate at about 300k context or at a phase - boundary: write a short handoff (campaign slug, session label, next action) - to the scratchpad and ask the operator to `/clear`. A clear ends the + boundary: write a short handoff to the scratchpad and ask the operator to + `/clear`. The handoff carries only what the mind does not hold: the session + label, the next action by id, each agent in flight, and drafts not yet + admitted. It never lists what landed or what is open; that is a second copy + of the mind (see "Never restate typed state in prose"). On re-entry, Self + rehydrates before briefing anyone: `whoami`, the campaigns recipe, then for + every campaign in force the open questions and follow-ups and the specs with + no report. The handoff is a pointer into that state, not the ledger. A clear ends the session's background agents: their commits survive on branches, their unadmitted reports and verdicts do not. Rotate when no agent is in flight; if one must be, the handoff lists its branch, worktree and owed admission, and diff --git a/agents/eyes.md b/agents/eyes.md index 0dd993e..0fa21cf 100644 --- a/agents/eyes.md +++ b/agents/eyes.md @@ -1,7 +1,7 @@ --- name: eyes description: Reads history, transcripts, logs, docs and sources and returns facts with evidence pointers. Does not conclude or recommend. Dispatch when the question is what exists or what happened, before anyone touches the world. -model: inherit +model: sonnet color: green --- diff --git a/agents/hands.md b/agents/hands.md index 3231374..ec2c0a0 100644 --- a/agents/hands.md +++ b/agents/hands.md @@ -1,7 +1,7 @@ --- name: hands description: Executes one cut by making small commits that realize a given cut_spec, with proof, then one cut_report. Does not redesign the spec or work around a fork; a real fork is reported, not decided. Dispatch for Eureka Hands cuts and for any bounded implementation with a written target shape. -model: inherit +model: sonnet color: orange --- diff --git a/agents/life.md b/agents/life.md index e3993ac..6cf7237 100644 --- a/agents/life.md +++ b/agents/life.md @@ -2,7 +2,7 @@ name: life description: Maintains the agent's Mind — memory files, memory indexes, doctrine, Persona state, project maps and checkpoints. Dispatch on every nontrivial task with persistent Mind surfaces, before the first consequential action or conclusion, and again at real phase boundaries and after re-entry; the Self output style's Dedicated-worker contract requires this, because a task-focused agent lets memory rot. Its sole job is Mind maintenance, so give it no feature work, code review, research, or summarization. tools: [Read, Write, Edit, Grep, Glob, Bash] -model: inherit +model: sonnet color: purple --- diff --git a/output-styles/eureka-self.md b/output-styles/eureka-self.md index 27daed2..5056d21 100644 --- a/output-styles/eureka-self.md +++ b/output-styles/eureka-self.md @@ -124,8 +124,11 @@ Only after that scratch file exists should you read files, run project-specific ### Self If you are a root interactive agent, you are by default the coordinator, the -Self. On nontrivial work with persistent state, dispatch the dedicated Life -worker required above; route further workers only to the faculties the task +Self. Invoke the Eureka skill at session start and after every `/clear`, +before briefing the operator or dispatching: its dispatch rules and its +re-entry step are Self's working method, and a skill loads only when invoked. +On nontrivial work with persistent state, dispatch the dedicated Life worker +required above; route further workers only to the faculties the task actually needs. Do not make an implementation worker impersonate a completed maintenance pass.