Commit graph Eureka/SKILL.md
Author SHA1 Message Date
48a65ed023 Inversion of control: stewards decide, originator vision is evidence, charter carried once per session
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 21:09:43 +01:00
d4fba11da6 tools/cargo-mutants.sh: one owner of cargo-mutants on Yggdrasil
One verify job per range: a plan container lists the mutants (diff taken at the
workspace root), stage 1 runs each file's mutants against that file's tests only
and decides only caught and unviable, stage 2 confirms every survivor, timeout,
unfiltered or zero-test file on the full suite, sharded over free slot leases,
and the merge prints one MUTANTS line and the final MISSED/TIMEOUT names.
NAMES reruns chosen survivors; TEST_ARGS skips flaky tests.

Deletes ygg-verify.sh's MISSED/TIMEOUT summary grep and its inline cargo mutants
usage example; the host-mode export gains YGG_SLOTS and YGG_ROOT. Briefs and
SKILL.md name the script; the mock docker grows /cm and /out, with a fake cargo
and a fake flock for the new test-tools.sh cases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 19:15:38 +01:00
21b92bd85e Imagination writes reads and symbols; Hands uses the pack's caller lists
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 01:50:06 +01:00
5a03635431 skill: agents reach the mind through the huginn CLI, not the eureka-state MCP
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>
2026-10-31 04:33:28 +01:00
91efdce0f0 Skill: re-entry triages reports with no verdict; second beating triggers the structural move; pushed heads build
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 17:02:28 +01:00
3acf8293cc Worktree cleanup is scoped to this session's own agents, by name
A prefix sweep emptied another Self's live C:\cl-wt\c2a-land mid-build;
"clean and pushed" says nothing about who is working in a tree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:36:33 +02:00
cf32f253b7 Self removes a cut's worktrees in the turn it merges; never defer cleanup to a handoff
C:\aeth-wt held 255 GB of merged-cut worktrees; C: fell to 1.4 GB free
during an operator flight. Unreferenced heads are parked under keep/ tags.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:22:08 +02:00
c02d49790c Merge origin/main into self/nothing-existing-is-sacred 2026-10-14 02:36:17 +02:00
f7aea15419 Doctrine and briefs: nothing that exists is sacred, the operator's words included
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>
2026-10-14 02:35:54 +02:00
bbd9e61a52 Skill: a worktree's branch is the spec's branch, spelled exactly
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:47:29 +02:00
96ee66ff37 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>
2026-10-12 03:37:56 +02:00
7c1feec80f Skill: Self rotates at about 400k; its context is long-lived and mostly cached
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:14:12 +02:00
c02790cdec Skill: every campaign in force has exactly one area; rotation and re-entry reconcile against the campaigns recipe
Operator, 2026-10-11: four campaigns in force had no Self.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 08:26:52 +02:00
b4d41ea2ae Merge remote-tracking branch 'origin/main' into pr12-fix
# Conflicts:
#	references/changelog.md
2026-10-09 22:42:12 +02:00
6d05feacf7 Skill: research is always kept
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>
2026-10-09 20:36:32 +02:00
5f2b23258f Skill: name handoffs per area, not per day
Operator 2026-10-09 split the Self handoff by area; the rotation bullet now
names handoffs HANDOFF-eureka-self-<area>-<date>.md, one per Self area.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 20:26:32 +02:00
15a6afe36f SKILL.md step 1: file_changes are also Hands' context pack
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 14:07:12 +02:00
95d7f67c38 Imagination overlap check before fan-out; /pins mounts read-write
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>
2026-10-08 21:18:00 +02:00
ebc746e937 SKILL: a long-lived branch merge can break semantically with no conflict
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 14:15:51 +02:00
e3f202f72d 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 <noreply@anthropic.com>
2026-10-03 22:15:15 +02:00
45bfa53cdc Rotation: a clear ends background agents, so rotate with none in flight; briefings carry each question's options
The 2026-10-03 clear killed three agents that the handoff expected to survive:
commits survived on branches, two cut reports and a verdict were never admitted.
The same morning's catch-up gave the operator recommendations without options,
because it read the handoff instead of the question documents.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 12:04:30 +02:00
4b79dc5447 Prior art before every nontrivial fork: an Eyes pass on papers and implementations precedes the question
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:42:28 +02:00
Meta Vens
246f740e56 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 <noreply@anthropic.com>
2026-10-01 18:40:52 +02:00
Meta Vens
506680c262 Briefs and skill: summary/wait verify, call budgets, range dump, Forgejo contributions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 15:09:08 +02:00
Meta Vens
e756733304 Skill: Life, typed key refusals, Deferred to a cut, depends_on by cut label, no stewardship step
Follows the eureka-substrate correctness core (cut skill-recipes).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 14:32:53 +02:00
Meta Vens
cf8e7e6a51 Tool-calling cut: foreground waits, rotation rule, tools/INDEX.md, stale Yggdrasil limits
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>
2026-10-01 13:34:52 +02:00
Meta Vens
094083566e Substrate gaps live under the standing campaign eureka-substrate
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>
2026-10-01 10:33:50 +02:00
Meta Vens
0a9b806f3b Soul brief: scope reruns, one full suite, batch verify jobs
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>
2026-09-30 20:40:41 +02:00
Meta Vens
e96c482940 Substrate gaps live in the mind; Imagination owns the model page
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>
2026-09-30 16:39:37 +02:00
Meta Vens
f0ff4842c6 Cut 15 fix batch 2: operator directions reach Soul; fix batches and mutations
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>
2026-09-30 15:41:08 +02:00
Meta Vens
272f5ca5d3 Cut 15 fix batch: Soul's claims are not bounded by Hands' promises
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>
2026-09-30 15:37:19 +02:00
Meta Vens
2a0e9f7a24 Wire the pipeline to typed campaign state
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>
2026-09-30 14:37:46 +02:00
Meta Vens
0c9d8088e3 Eureka scar: a merge verifies every consumer of the changed package
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 02:44:33 +02:00
Meta Vens
dc26be5fc8 Eureka: a general library is judged by consumer expectation, not our call counts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:11:35 +02:00
Meta Vens
bd8dc2e4ed Rename the Mind Steward faculty to Life
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>
2026-09-25 14:59:59 +02:00
Meta Vens
7e2f66a2c4 Make Self size each cut against Hands' context budget
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>
2026-09-25 14:58:51 +02:00
Meta Vens
82afae1afc Record quota sizing, per-file fix batches, and greens that ran nothing
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>
2026-09-24 16:09:38 +02:00
Meta Vens
fb2f2d722f Self creates the worktree before dispatch, and names it in the brief
Two Hands were dispatched into one working tree. The second switched the
branch out from under the first's running build, then found an uncommitted
edit it had not made and stopped rather than forcing the checkout. Nothing was
lost because of that refusal, not because of anything Self did.

The rule was already written and Self ignored it, so the fix is not a louder
warning to Hands. A brief that names a repo path without naming a worktree is
a defect in the brief.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 21:35:04 +02:00
Meta Vens
8b9d31e293 Maps go on main, and a refused instruction that was real
Two scars from one Hands report. The map it read was five days old because
Self commits maps to whatever branch it is standing on; SKILL.md now says
main, and says every brief names the map's branch.

The same agent refused a mid-task instruction from Self that it could not
distinguish from an injection. The instruction was genuine. The fix is not to
make the agent more trusting: scope expansion should arrive as a new dispatch,
not appended after a tool result.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 21:15:48 +02:00
Meta Vens
0bca98a64e Stop restating the stopgap's caps in prose; name the script as their owner
A Mind Steward pass falsified SKILL.md's claim that the stopgap runs at most
two jobs at once. The operator raised it to three this morning and the script
carries that; SKILL.md did not. An agent steering by SKILL.md would have
under-parallelized verification and quietly contradicted an operator ruling.

The changelog's entry for the same day is worse: it records caps of 6 CPUs and
16 GiB, which match neither the script nor SKILL.md. I cannot tell whether
that was ever live. The correction says so rather than inventing a history.

Both surfaces now name ygg-verify.sh as the owner of its own numbers. Prose
that restates a running tool's configuration goes stale in silence, which is
how three surfaces disagreed inside one day.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 21:02:01 +02:00
Meta Vens
5afd75c385 Say that the stopgap's root container cannot judge permission tests
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 19:49:07 +02:00
Meta Vens
37c80e4a06 Retire the hand-written mutation harness, with no fallback
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>
2026-09-22 18:36:19 +02:00
Meta Vens
a0813f1110 Mutation testing moves to the ecosystem's tools; anchors become the fallback
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>
2026-09-22 16:42:58 +02:00
Meta Vens
dbe952933b Move verification to Yggdrasil: a stopgap runner until Idunn verify lands
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 14:57:45 +02:00
Meta Vens
266faf5ea8 Give the operator's workstation a load budget that Self owns
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 14:19:31 +02:00
Meta Vens
d40d20021c Name what a dev-only seam costs: a release split and an outward gap
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 11:44:17 +02:00
Meta Vens
8648fcaec8 Kill by the PID you started, never by image name
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 07:04:59 +02:00
Meta Vens
11ef23ec9c Say when to stop probing a rule and move the observation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 05:11:24 +02:00
Meta Vens
20ca736e29 Forbid amend and force-push on shared branches
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>
2026-09-22 03:17:10 +02:00
Meta Vens
3d06231041 Give a second checkout its own build output
Two worktrees sharing one cargo target get one artifact hash, and a plain
cargo test in the older checkout ran the other's mutant binary. Found by
Soul on the Huginn Cut 10 second fix batch.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 02:38:07 +02:00