Skill: map only what is about to run; later cuts are lines in the prose map's cut sequence

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Eureka 2026-10-12 03:37:56 +02:00
commit 96ee66ff37
4 changed files with 35 additions and 6 deletions

View file

@ -116,8 +116,8 @@ different is not waste; discovering it after the code lands is.
### 1. Imagination maps the cut
Brief an Imagination agent to admit the cuts: one `cut_spec` per cut against
the current Body, ordered by `depends_on`, which names cut labels. The fields are the spec standard:
Brief an Imagination agent to admit the `cut_spec` for the next cut against
the current Body; `depends_on` names the cut labels it waits on. The fields are the spec standard:
repo, branch and base; `deletes` first, with exact paths and line counts;
`keeps_moves`; `adds`; `file_changes` at `file:line` **for code that exists**;
an `authority_map` for anything that changes ownership; `verification` (builds,
@ -126,6 +126,22 @@ for the ledger; and the `rulings` and `questions` it rests on. A changed spec is
a new revision, admitted with the resolution that supersedes the old one, never
an edit.
**Map only what is about to run.** A `cut_spec` is admitted for a cut Self
dispatches as soon as the spec is in: its dependencies have landed or are in
their Soul pass, and Self has the head and the machine for it. That is the next
cut of a campaign, plus a sibling that can run beside it in its own worktree.
Every later cut is one line in the prose map's cut sequence (a title and what
it waits on), never a spec. A cut split for budget admits its first part; the
rest stay lines. A spec waits on the Body and goes stale: the variants specs of
2026-10-02 sat ten days behind a moving CultLib and needed a fresh Imagination
pass before Hands could use them. Operator, 2026-10-12: "Originally a spec
would get dispatched as soon as it's written, but we've been drifting way ahead
of the work". So the specs-with-no-report recipe is the dispatch queue, and a
spec on it that Self is not dispatching this session is a defect. A spec
already in force from before this rule is refreshed (revision N+1) or
withdrawn when its campaign's frontier reaches it, never dispatched on a base
`tools/context-pack.py` reports as moved.
**Spend the detail where the map can be wrong, not where Hands will rewrite it
anyway.** Anchors against existing code earn their length: they say what to
delete and what not to touch. They are also Hands' context pack, pinned at base

View file

@ -133,8 +133,10 @@ question ids you admitted.
Dispatch: `subagent_type: imagination`, model Opus.
```
Migration: <migration>. Admit a cut_spec for <cut or cuts> so
Hands can go straight to the cut with little reading.
Migration: <migration>. Admit a cut_spec for <the next cut, and at most a
sibling Self will run beside it> so Hands can go straight to the cut with
little reading. Map nothing further ahead (SKILL.md step 1, "Map only what is
about to run"): later cuts are one line each in the prose map's cut sequence.
Admit only cut_specs, their superseding resolutions, and questions. In the
prose map at <path>, edit body facts and rationale. Also edit the model page
@ -177,8 +179,8 @@ The cut_spec's fields are the spec standard. Beyond filling them:
revision N by it, in one batch; never a second spec for the same cut
If a cut would not fit one Hands pass under <Self's context budget, SKILL.md
step 3>, split it into specs ordered by depends_on (cut labels), each with its own
verification.
step 3>, admit its first part as the spec, with its own verification, and add the
rest to the prose map's cut sequence.
Where only the operator can decide, admit a question with a recommended
option, raised in the spec it blocks.

View file

@ -326,6 +326,9 @@ reads its gaps with this query:
happens to it over time, and who decides (SKILL.md step 0b).
- **Rationale:** why the cut order is what it is, why a design was rejected,
and anything longer than a `Para`.
- **The cut sequence:** one line per cut not yet mapped (a title and what it
waits on). A cut leaves the list when its `cut_spec` is admitted, which is
only when Self is about to dispatch it (SKILL.md step 1).
It has no progress section, no per-cut sections, no rulings and no ledger table:
those are documents, and the recipes above read them. `docs/<campaign>-target.md`

View file

@ -2,6 +2,14 @@
Record each change to the skill together with the evidence that motivated it.
## 2026-10-12: map only what is about to run
Self, session `self-2026-10-12-eureka`.
Evidence. 26 cut specs in force across nine Eureka-area campaigns had no report, and almost none was blocked: their dependencies had landed. Imagination had mapped each campaign's whole cut chain at once (step 1 said "admit the cuts ... ordered by depends_on"), while each cut took up to seven Soul rounds through one Self. The variants parity specs of 2026-10-02 went ten days stale behind CultLib and need a fresh Imagination pass. Operator, 2026-10-12: "Absolutely it should be a rule. Originally a spec would get dispatched as soon as it's written, but we've been drifting way ahead of the work for some reason."
What changed. `SKILL.md` step 1 admits a spec only for the cut Self is about to dispatch (plus a parallel sibling); later cuts are lines in the prose map's new cut sequence (`references/campaign-state.md`). The Imagination brief in `references/briefs.md` maps the next cut only, and a budget split admits its first part. Specs already in force are refreshed or withdrawn when their campaign's frontier reaches them.
## 2026-10-12: the tool-calling map is dated; two admission notes
Self, session `self-2026-10-12-eureka`.