From 246f740e568cf68b9e4f3063ea49ce0483814b85 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 1 Oct 2026 18:40:52 +0200 Subject: [PATCH 1/2] Dispatch faculties by subagent_type; cut brief text the charters own Every brief now names subagent_type (a general-purpose dispatch loads no charter). Cut the You-are lead-ins, the Soul identity sentence and its no-edit/restore bullets, and Eyes' read-only line, all owned by ~/.claude/agents/*.md. SKILL.md's dead litany pointer now names soul.md and imagination.md. Co-Authored-By: Claude Sonnet 5.5 --- SKILL.md | 15 +++++++++------ references/briefs.md | 38 ++++++++++++++++++++++++++------------ 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/SKILL.md b/SKILL.md index 20f79bf..5fa3b2e 100644 --- a/SKILL.md +++ b/SKILL.md @@ -36,7 +36,10 @@ editor. See `references/postmortem-cultcache.md` for the evidence. Faculties are postures, not personalities. The root agent is **Self**. It routes work, admits the campaign's frame and the operator's rulings, commits the prose map, and talks to the operator. Delegate every other faculty to a subagent with -its own brief. A faculty that grades its own work has lost the point. +its own brief. Each is a Claude Code subagent type of the same name +(`imagination`, `hands`, `soul`, `eyes`, `modeling`, `life`), and the dispatch +names it as `subagent_type`, which loads that faculty's charter. A faculty that +grades its own work has lost the point. | Faculty | Runs against | Admits | Must not | |---|---|---|---| @@ -50,9 +53,9 @@ its own brief. A faculty that grades its own work has lost the point. Admitting is a write to the Mind, not to the Body. Soul stays read-only on repos and still admits its verdict. -The operator's doctrine defines the faculties. Read the Soul and Imagination -lines of the operational litany in `~/.claude/CLAUDE.md`. In short, a pass is -named by what it produces, so a pass over a plan is Imagination, and a plan is +The operator's doctrine defines the faculties, and each charter owns its +faculty's identity, method and boundaries. Read `~/.claude/agents/soul.md` and +`~/.claude/agents/imagination.md`. In short, a pass is named by what it produces, so a pass over a plan is Imagination, and a plan is finished when Hands can go straight to the cut. ## The loop @@ -474,8 +477,8 @@ and reconciles the target doc with the Body. menu, send it back. Split authority is the defect Soul most often finds. - **Relay findings plainly.** The operator reads Self's summaries, not the agent reports. Say what broke, how it would fail, and what is being done. -- **Choose models by how critical the pass is, and name the model on every - dispatch.** Put the scarce strong model on Imagination and on Soul passes +- **Choose models by how critical the pass is, and name the model and the + `subagent_type` on every dispatch.** Put the scarce strong model on Imagination and on Soul passes over cuts that put the foundation at risk. Hands, search, probes and Life take the cheaper tier, named explicitly: "default" inherits the root session's model, so a root running on the strong model silently diff --git a/references/briefs.md b/references/briefs.md index e18b3d2..17c496c 100644 --- a/references/briefs.md +++ b/references/briefs.md @@ -12,9 +12,14 @@ Every brief that reads or admits campaign state carries: - the Rehydrate block below, as the agent's first step, with `` set to the recipes that brief names. -Every dispatch names its model: Sonnet for Hands, probes, search and Life; Opus -for Imagination and for Soul over a cut that puts the foundation at risk. -Never leave it as "default", which inherits the root's model. +Every dispatch names its `subagent_type` and its model. The type is the +faculty's lowercase name (`imagination`, `hands`, `soul`, `eyes`, `modeling`, +`life`) and loads that faculty's charter from `~/.claude/agents/`; a +`general-purpose` dispatch loads no charter, so the brief would carry the whole +faculty alone. The charter owns identity, method and boundaries; the brief owns +the task. Model: Sonnet for Hands, probes, search and Life; Opus for +Imagination and for Soul over a cut that puts the foundation at risk. Never +leave it as "default", which inherits the root's model. Every agent is capped at about 300k context or 150 calls. At the cap it commits what is verified, admits its report with what is undone, and stops; @@ -89,11 +94,13 @@ hand_off is parked (Huginn Cut 12): one mind, no transfer. ## Imagination: settle identity, lifecycle and authority +Dispatch: `subagent_type: imagination`, model Opus. + Run this once, before any cut is mapped. It answers the questions that cause re-cuts, and it needs almost no source. ``` -You are Imagination for . Produce the model page in . Produce the model page in . Do not map cuts, do not write code, do not commit; the root agent commits. @@ -119,8 +126,10 @@ question ids you admitted. ## Imagination: map or refresh a cut +Dispatch: `subagent_type: imagination`, model Opus. + ``` -You are Imagination for . Admit a cut_spec for so +Migration: . Admit a cut_spec for so Hands can go straight to the cut with little reading. Admit only cut_specs, their superseding resolutions, and questions. In the @@ -170,8 +179,10 @@ Report: the ids you admitted and the HEAD you pinned to. ## Hands: execute a cut +Dispatch: `subagent_type: hands`, model Sonnet. + ``` -You are Hands for . The spec is . Rehydrate (no recipes: +Cut: . The spec is . Rehydrate (no recipes: view the spec and each ruling it cites, operator directions included). Follow the spec; do not redesign it. If the Body contradicts it, fix the smallest thing that keeps its intent true and record the discrepancy in the report's @@ -358,12 +369,11 @@ narrative of the pass, no restating the brief or the report. ## Soul: falsify executed work +Dispatch: `subagent_type: soul`, model Opus when the cut puts the foundation at risk, else Sonnet. + ``` -You are Soul for . Soul preserves invariants by falsifying the promises -Hands made about executed work: shortcuts, split authority, trivial tests. -Admit one verdict and its findings, and nothing else. -- Do not edit or commit in any repo. -- Restore after every mutation and leave the tree clean. +Cut: . Falsify the promises of the executed commits in the scope +below. Admit one verdict and its findings, and nothing else. - Use a temporary detached worktree for other checkouts, and remove it afterwards. - Do not run unless told. @@ -465,6 +475,8 @@ cut unless an invariant moved. ## Life: phase boundary +Dispatch: `subagent_type: life`, model Sonnet. + ``` Phase boundary: . The authoritative record is the campaign's mind and the prose map and target doc; don't edit those, and @@ -496,8 +508,10 @@ what was missing and what it would have prevented. ## Eyes: gather evidence +Dispatch: `subagent_type: eyes`, model Sonnet. + ``` -You are Eyes. Read only. Write findings to /.md and return a +Write findings to /.md and return a short summary. Budget at most 40 calls: transcripts by script, never whole reads, and fetches batched in parallel. You read the campaign's mind with query and view only, through the Rehydrate block (recipes: ); you never admit. -- 2.47.3 From 11b1f6b8f9f3968f2d7e968901c8a765e252c681 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 1 Oct 2026 18:40:52 +0200 Subject: [PATCH 2/2] Changelog: dispatches load the faculty charters Co-Authored-By: Claude Sonnet 5.5 --- references/changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/references/changelog.md b/references/changelog.md index d2faa37..87cabf7 100644 --- a/references/changelog.md +++ b/references/changelog.md @@ -2,6 +2,14 @@ Record each change to the skill together with the evidence that motivated it. +## 2026-10-01: dispatches load the faculty charters + +Campaign `eureka-substrate`, prose-map step 5 (map `references/faculty-philosophy-cut.md`, sections 5 and 8). Operator go: "go with 2 and 3; we're spending tokens to save tokens." + +Evidence: the faculty charters now live as Claude Code agent types (`~/.claude/agents/{soul,hands,imagination,eyes,modeling,life}.md`) and own each faculty's identity, method and boundaries, but no brief named a `subagent_type`, so every dispatch was `general-purpose` and loaded no charter. A Soul pass also found that SKILL.md pointed at "the Soul and Imagination lines of the operational litany in `~/.claude/CLAUDE.md`"; those lines moved into the charters and the pointer was dead. + +What changed. `references/briefs.md` requires `subagent_type` with the model on every dispatch, and each brief carries a `Dispatch:` line. Text a charter now owns is cut from the briefs: the `You are ` lead-ins, the Soul identity sentence and its "do not edit or commit" and "restore after every mutation" bullets (`soul.md` Boundaries), and the Eyes "Read only" (`eyes.md`). The task-scoped parts stay. SKILL.md says each non-Self faculty is a subagent type of the same name and points at `soul.md` and `imagination.md`. + ## 2026-10-01: verify summaries, a wait mode and a kill table Campaign `eureka-substrate`, cut `tool-calling-s5` (map `references/tool-calling-cut.md`, sections 3 and 5). Operator go: "go with 2 and 3; we're spending tokens to save tokens." -- 2.47.3