Faculty charters, step 5: dispatch by subagent_type; briefs stop restating charters #2
3 changed files with 43 additions and 18 deletions
15
SKILL.md
15
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
|
||||
|
|
|
|||
|
|
@ -12,9 +12,14 @@ Every brief that reads or admits campaign state carries:
|
|||
- the Rehydrate block below, as the agent's first step, with `<recipes>` 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 <migration>. Produce the model page in <prose map
|
||||
Migration: <migration>. Produce the model page in <prose map
|
||||
path>. 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 <migration>. Admit a cut_spec for <cut or cuts> so
|
||||
Migration: <migration>. Admit a cut_spec for <cut or cuts> 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 <cut>. The spec is <cut_spec id>. Rehydrate (no recipes:
|
||||
Cut: <cut>. The spec is <cut_spec id>. 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 <cut>. 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: <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 <expensive runtime> unless told.
|
||||
|
|
@ -465,6 +475,8 @@ cut unless an invariant moved.
|
|||
|
||||
## Life: phase boundary
|
||||
|
||||
Dispatch: `subagent_type: life`, model Sonnet.
|
||||
|
||||
```
|
||||
Phase boundary: <what landed, as cut_report ids>. 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 <scratchpad>/<name>.md and return a
|
||||
Write findings to <scratchpad>/<name>.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: <as needed>); you never admit.
|
||||
|
|
|
|||
|
|
@ -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 <Faculty>` 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."
|
||||
|
|
|
|||
Loading…
Reference in a new issue