Ruling eureka-body:ruling:cli-over-mcp-agent-surface. Exact command forms in
campaign-state.md; MCP kept as the fallback for shell-less clients. persona_get
and persona_put have no CLI verb: recorded as a known gap. tools/mind.py and
tools/recall.py (MCP-bound scripts) are unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Shares mind.call, line_of, inert, render and the hard stop with prompt mode;
render takes the header. Digest of tool_input plus agent_id in the session
scratchpad; fails open with a note naming only the failure kind.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Deference now covers content, canon, data and her own words; rulings say
whether her words decide, illustrate or sketch; creative passes develop and
challenge their inputs. Ruling aetheria-fauna:ruling:fauna-bestiary-open.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cut-bls-input-field.s3: LF offsets on CultMath's eol=crlf sources missed the
code under test. Changelog entry records the evidence.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A prior-art or literature pass is committed to docs/research before the
fork goes to the operator (operator 2026-10-09: "Research should always
be kept"). SKILL.md step 2, the Eyes brief template, and the changelog.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The by-path copy left LFS pointers in place and cost three failed runs in
each of two jobs on 2026-10-08.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With only the catalog copied, 204 tests failed on an LFS pointer during the
pirates-record merge (2026-10-08).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Two parallel Imagination passes made two owners of one decision twice on
2026-10-08. NuGet restore fails under a read-only /pins mount.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
F1/F2: Hands block says prefer log+WAIT_PID, pid form means gone not succeeded,
fresh log per job or WAIT_FROM at launch. F3: exact Aetheria DOCKER_ARGS mounts.
F8: Soul points at the Hands block instead of rewording it; Imagination and
Eyes templates name wait-on.sh, <scratchpad>/<agent>/ and py -3; all examples
use <scratchpad>/<agent>/.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hands and Soul long jobs name tools/wait-on.sh for every non-Yggdrasil wait and
forbid bare true/echo/sleep polling (974 idle calls, 324 sleeps). py -3 is the
Python that works from Git Bash and PowerShell (65 Store-stub hits). Lessons:
own scratchpad subdirectory, wait protocol pasted verbatim, Stryker character
offsets from LF content, Aetheria DOCKER_ARGS mounts, rulings quote only the
operator.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On 2026-10-03 Self's briefs told Hands to admit Fixed resolutions, and the
template's admission line was silent, so nothing contradicted them. Verdict
variants:verdict:cut-c2a-declared-apply.s1 found one such closure only partly
fixed. The rule already stands in SKILL.md section 5 and campaign-state.md; this
puts it where briefs are written.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 <noreply@anthropic.com>
The pollution note listed nothing when the workdir was below the repo root
(ls-files ran from the root); the mock now runs from a subdirectory so that
regresses visibly. Every brief/INDEX line showing ygg-verify wait now says to
pass a Bash timeout of at least 280000 ms.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Applies references/tool-calling-cut.md section 5 under the section 8 rulings
(Q1 A, Q3 C, Q4 B). Briefs: agents wait in the foreground in calls of at most
270 s and never end a turn before the report; commits from Git Bash; every
dispatch names its model; agents cap at about 300k context or 150 calls.
SKILL.md: Self rotation rule, notify-before-report defect, Shared tools
section, sizing by calls, Yggdrasil limits corrected to the script's 5 slots
and 6 GiB. tools/INDEX.md lists ygg-verify.sh. Changelog quotes the rulings.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Operator ruling eureka-substrate:ruling:gap-home. The 19 gap-* follow-ups
moved from idunn-watchdog by superseding resolutions; the recipe and two
cited ids now name the new root.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Slot queueing, not compilation, dominates a Soul pass. Soul now reruns
the tests the cut touches while probing, runs the full suite once at the
end with its mutation run, batches probes, and mutates in parallel.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The gap table in campaign-state.md duplicated eight typed follow-ups; it now
gives the query instead. The first campaign no longer admits the list; every
campaign runs the query. Imagination edits the model page when a probe
changes a row. Stewardship is universal (operator, 2026-09-30).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Self's triage of Soul pass 2 on 272f5ca:
- Soul's rehydrate runs rulings in force, so standing operator directions
(including ones admitted after the spec) reach it, and it claims against
them. A verdict claim has no ruling reference, so Soul starts the claim
text with the ruling id; recorded as a substrate gap (epiphany-pipeline).
- Gaps table: a cold semantic embed exceeds the client's 15 s deadline
(Huginn, with the embedder).
- Self does not TaskStop an agent halted on Unavailable; it holds the
unadmitted record and is resumed when the organ answers.
- A fix batch's cut_report is the next attempt on the finding's in-force
cut_spec, on that spec's branch; landing elsewhere needs a revised spec
first (SKILL step 5, Hands brief).
- mutations holds survivors plus the kills Soul should rerun (at most 64);
totals go in verification evidence.
- InvalidInput and TooLarge are caller-fixable and retried after fixing
the call; only Unavailable after a retry and other errors stop.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Self's triage of Soul's first pass on hands/cut15-typed-state:
- Soul views every ruling the cut_spec cites and makes one claim per
ruling, beside the promises; Hands' self-report never bounds the pass.
- Only Self closes a finding Fixed, after a Soul pass on the fix holds.
Finding and verdict reads filter faculty Soul; faculty being
attribution-only joins a new substrate-gaps table in campaign-state.md.
- A fork before Hands' first commit ends the pass with the question
alone; the blocked-spec check reads questions raised in a spec.
- One rule for an organ that does not answer: missing tools stop, one
retry on Unavailable (admit replays are safe), then a resumable stop
that never sends the record as prose.
- Survivor triage goes in deviations, one entry per survivor, because
MutationRecord has no reason field (a recorded gap).
- The target document is written and committed before the campaign and
target cite it; Self's checklist names working_branch and target_doc.
- Operator directions are rulings with no answers and the words verbatim.
- One Rehydrate definition with a no-campaign / unknown-slug branch;
per-brief recipes; Eyes reads the mind read-only; the postmortem
template sources from the mind.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SKILL.md, briefs.md and README now route every faculty through the
instance's mind: Self calls whoami first and stops when the organ is
unreachable, admits stewardships, campaign, target and rulings;
Imagination admits questions and cut specs; Hands views its cut_spec and
admits a cut_report; Soul admits a verdict and its findings, staying
read-only on repos. Triage outcomes are resolutions and follow-ups, and
progress is a set of recipes instead of a status header. Briefs give ids
and recipe names and start with a Rehydrate block; they no longer paste
specs or rulings. "Record the substrate you needed and did not have" stays,
and its record is a follow_up. The errors-never-echo rule is unchanged.
Huginn Cut 15 (Epiphany notes/huginn-organ-cut.md at 74804d83), under Q-H6 A.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A Hands pass on Aetheria Cut 12.3 edited and built the main checkout by
using absolute Read/Edit paths, while its shell sat in the worktree.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Operator ruling, 2026-09-25: Epiphany and Aquarium call this organ Life
(role id `reorientation`), and it is "a much better fit as the actual
load-bearing organ". The eureka-site landing page already says Life.
SKILL.md (frontmatter description, faculty table, dispatch lines, step 6,
model allocation), README.md and briefs.md now say Life. The role itself is
unchanged. SKILL.md defers to global doctrine for the agent type, which the
operator owns and which still says mind-steward. Dated records keep the old
name: changelog entries as written, a note on the 2026-09-15 Epiphany
comparison, and "then called Mind Stewards" in the CultCache postmortem.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Operator direction, 2026-09-25: moderate inference spend mainly by making
cuts smaller, so each Hands agent carries less context. Sonnet degrades at
about 0.5M tokens.
SKILL.md step 3 now owns cut sizing: Self estimates the brief, the source
Hands must read, one verification and one fix round, and the item count,
treats 0.5M as the danger line, splits when the estimate passes about half
of it, and checks the reported token total afterwards. The Self-owned
clauses ("Self sizes a cut", one fix batch per file) moved out of the Hands
brief template into step 3; the Imagination template's split clause names
the budget. Section 5 no longer frames the 2026-09-23 spend as misplaced:
the operator counts it as legitimate work, the regret being the model.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the StreamPixels transport campaign, 2026-09-23 to 2026-09-24:
- SKILL.md section 5: quota is spent through scope. One Soul gate per cut,
fix batches only for critical-path findings, and narrow passes for
small deltas.
- briefs.md: one fix batch per file (800k and 550k runs); require a
non-zero test count for each named file; a failure called
"pre-existing" still needs a one-line cause.
- changelog: the evidence, with StreamPixels commit refs.
Staged by path. The unrelated uncommitted Ghostlight hunks in briefs.md
and changelog.md are left in the working tree.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Operator ruling 2026-09-22: better nothing than a harness that punishes
refactoring. Behavioural tests plus the ecosystem's mutation tools on a cut's
diff; Soul's hand mutants stay one-off probes. The stopgap image carries
cargo-mutants instead of pwsh and is tagged by its Dockerfile's hash.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Hands and Soul measure suites with Stryker.NET, cargo-mutants, StrykerJS or
mutmut scoped to the cut's diff, and triage every survivor by name. The
hand-written anchor harness is demoted to code no tool reaches. Evidence in
the changelog: Aetheria's 23 harnesses stranded on refactors and one anchor
silently re-targeted; a Stryker spike killed everything they defended and
found the splash-handedness bug they missed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A Ghostlight Hands agent amended and force-pushed a kernel commit while
Self pushed map commits to the same branch. The briefs and the scars
list now forbid it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Re-cutting came from questions answerable on day one and asked on day three,
not from maps that lacked detail. A model table now precedes every cut map,
one row per persistent kind, and no cut is mapped while a cell is empty. The
operator's forks are gathered once rather than discovered across five cuts.
In the other direction, the per-file anchors are required only where the code
exists and they say what not to touch. Transcribing the body of code nobody
has written yet is a map at full scale, and the only spec complete enough
there is the code. Cutting faster means less prose per cut, not more code.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Most later Soul passes found rules the suite could not see rather than
defects, because Hands proved each rule with a revert and Soul with a
loosening. Hands now does both. Reports carry findings, promises and
numbers and nothing else, and a second pass on a cut is scoped to the fix
batch. Operator-approved after a cost review of one day's campaigns.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>