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>
This commit is contained in:
parent
d810f63a8d
commit
e756733304
4 changed files with 29 additions and 19 deletions
|
|
@ -62,12 +62,7 @@ Self's own checklist; Self admits as `SelfFaculty`.
|
|||
```
|
||||
Open: check the eureka-state tools are present, then whoami (the mind's
|
||||
instance document, <instance>:instance:self, already exists). Write the target
|
||||
document and commit it on the working branch. For each repo in scope with no
|
||||
stewardship in force, admit a stewardship (sequence = latest + 1).
|
||||
Stewardship is universal today: one mind, one steward. The operator said on
|
||||
2026-09-30 that leasing it between agents is a deferred cut. The per-repo
|
||||
record exists only because admission requires it
|
||||
(eureka-substrate:follow_up:gap-stewardship-ceremony). Then admit the campaign
|
||||
document and commit it on the working branch. Then admit the campaign
|
||||
(slug, title, every repo a cut may touch, working_branch, target_doc = a
|
||||
DocRef to that commit) and target revision 1 (labelled invariants, not in
|
||||
scope, canonical implementations, doc = the same DocRef). Run the
|
||||
|
|
@ -159,7 +154,7 @@ 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, each with its own
|
||||
step 3>, split it into specs ordered by depends_on (cut labels), each with its own
|
||||
verification.
|
||||
|
||||
Where only the operator can decide, admit a question with a recommended
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ The instance and the daemon are the server's configuration
|
|||
| `query` | `{ selection, semantic? }` | `{ matched, as_of, next, items, edges }`. `items` is `Headers([...])` or `Documents([...])`. |
|
||||
|
||||
- `faculty` is one of `SelfFaculty`, `Imagination`, `Hands`, `Soul`,
|
||||
`MindSteward`, `Eyes`, `Operator`. It is attribution, not authority.
|
||||
`Life`, `Eyes`, `Operator`. It is attribution, not authority.
|
||||
- `agent` names the admitting agent. `session` is the campaign session label
|
||||
Self gives in every brief, so that sessions sharing one mind stay tellable
|
||||
apart.
|
||||
|
|
@ -36,9 +36,13 @@ The instance and the daemon are the server's configuration
|
|||
kind in snake case (`cut_spec`). A reference is `{ "kind": "<Kind>", "id":
|
||||
"<full id>" }`, with the kind in Pascal case (`CutSpec`).
|
||||
- **A refusal is an answer.** It names the rule, for example
|
||||
`RepoNotStewarded`, `CitesResolvedDocument`, `ResolutionOutOfSequence` or
|
||||
`CitesResolvedDocument`, `ResolutionOutOfSequence` or
|
||||
`PromiseWithoutVerdict`. Fix the batch and admit again. An exact replay
|
||||
answers `AlreadyAdmitted`, so retrying a batch is safe.
|
||||
answers `AlreadyAdmitted`, so retrying a batch is safe. A key, format or
|
||||
bound error arrives as `Refused(Document(..))` with the field and value:
|
||||
fix it and resend. `Refused(Unavailable)` means a store fault: retry once,
|
||||
as for `isError` `Unavailable`. The retired faculty name for `Life` is
|
||||
refused in query selections; stored receipts that carry it still decode.
|
||||
- **`isError: true` means no answer:** `Unavailable` (the daemon is down or
|
||||
unreachable), `Rejected` (it refused the envelope), `Misconfigured`,
|
||||
`TooLarge`, `Unencodable`, `InvalidInput` or `Internal`.
|
||||
|
|
@ -72,11 +76,11 @@ mismatch. The root is the campaign slug, or the instance for `instance`,
|
|||
|---|---|---|---|---|
|
||||
| `instance` | `self` | exists (`eureka:instance:self`) | instance, display name, host | |
|
||||
| `stewardship` | `<repo>.n<seq>` | Self | instance, repo, sequence, note | |
|
||||
| `campaign` | `self` | Self | title, repos (each stewarded), working branch, target doc | |
|
||||
| `campaign` | `self` | Self | title, repos, working branch, target doc | |
|
||||
| `target` | `r<rev>` | Self | invariants (`label`, `statement`), not in scope, canonical implementations, doc | |
|
||||
| `question` | `<label>` | Imagination; Hands or Soul for a fork | title, question, options (≥2), recommended, depends, raised in | `raised_in` |
|
||||
| `ruling` | `<label>` | Self | answers (none for an operator direction), choice, ruling, operator quote, date, authority | `answers` |
|
||||
| `cut_spec` | `cut-<cut>.r<rev>` | Imagination | repo, branch, base, depends on, first, deletes, keeps and moves, adds, file changes, authority map, verification, estimate | `rulings`, `questions` |
|
||||
| `cut_spec` | `cut-<cut>.r<rev>` | Imagination | repo, branch, base, depends on (cut labels, never revision ids; a spec may not depend on its own cut), first, deletes, keeps and moves, adds, file changes, authority map, verification, estimate | `rulings`, `questions` |
|
||||
| `cut_report` | `cut-<cut>.h<attempt>` (a fix batch is the next attempt) | Hands | commits, range, verification evidence (mutation totals included), mutations (survivors and the ones Soul should rerun), deviations, forks, structural delta, landed names, undone, promises | `cut_spec`, `forks` |
|
||||
| `verdict` | `cut-<cut>.s<pass>` | Soul | range, claims (each with an outcome, evidence, findings, promise, mutations) | `cut_report`, `findings` |
|
||||
| `finding` | `cut-<cut>.s<pass>.<label>` | Soul, in the verdict's batch | confidence, severity, claim, invariants, locations, failure scenario, evidence, origin | `verdict` |
|
||||
|
|
@ -87,12 +91,14 @@ mismatch. The root is the campaign slug, or the instance for `instance`,
|
|||
Bounds: `Title` and `Short` are at most 200 bytes, `Line` 1,000, and `Para`
|
||||
4,000. Narrative longer than that goes in the prose map, cited by a `DocRef`
|
||||
(path, start and end line, commit). A `Label` is `[A-Za-z0-9_-]{1,64}`, and a
|
||||
`Date` is `YYYY-MM-DD`.
|
||||
`Date` is `YYYY-MM-DD`. A subject's local key (the part after
|
||||
`<campaign>:<kind>:`) is at most 64 bytes. A resolution's local is derived from
|
||||
its subject's and is at most 111 bytes, so every admitted subject can be
|
||||
resolved and withdrawn.
|
||||
|
||||
Rules that shape a batch (the rest arrive as refusals):
|
||||
|
||||
- A campaign's repos must each have a stewardship in force. A cut spec's repo
|
||||
must be one of its campaign's repos.
|
||||
- A cut spec's repo must be one of its campaign's repos.
|
||||
- A ruling that `answers` a question derives that question's `Answered`
|
||||
resolution in the same commit. Its `choice` must be one of the question's
|
||||
option labels. `operator_quote` is allowed only with `authority: Operator`.
|
||||
|
|
@ -103,7 +109,10 @@ Rules that shape a batch (the rest arrive as refusals):
|
|||
- A revision above 1 (of a target or a cut spec) needs, in its own batch, a
|
||||
resolution that supersedes the previous revision by it.
|
||||
- A cut spec cites only rulings in force, and a report only a spec in force.
|
||||
The report's `range.head` is one of its commits.
|
||||
The report's `range.head` is one of its commits; it may be spelled short or
|
||||
full, and is matched by commit.
|
||||
- `depends_on` entries are cut labels naming another cut that has a `cut_spec`
|
||||
in the same campaign. A dependency on another campaign's cut goes in `first`.
|
||||
- A verdict measures each of its report's promises exactly once. A `Falsified`
|
||||
claim needs a `Confirmed` finding, and an `Unproven` claim may not have one.
|
||||
A finding needs evidence and a location, and its invariant labels come from
|
||||
|
|
@ -121,7 +130,7 @@ reversal.
|
|||
| question | `Answered { by: ruling }` (derived), `Withdrawn { reason }` |
|
||||
| ruling | `Superseded { by: [ruling] }` |
|
||||
| cut_spec | `Superseded { by: [cut_spec of the same cut] }`, `Withdrawn { reason }` |
|
||||
| finding | `Fixed { commit, by?: cut_report }`, `Deferred { to: follow_up }`, `Recorded { reason }`, `Withdrawn { reason }` |
|
||||
| finding | `Fixed { commit, by?: cut_report }`, `Deferred { to: follow_up or cut_spec }`, `Recorded { reason }`, `Withdrawn { reason }` |
|
||||
| follow_up | `Fixed { commit, by?: cut_report }`, `Superseded { by: [follow_up] }`, `Withdrawn { reason }` |
|
||||
| stewardship | `Superseded { by: [stewardship] }`, `Withdrawn { reason }` |
|
||||
| resolution | `Withdrawn { reason }`, which reopens its subject. It cannot itself be withdrawn: resolve the subject again. |
|
||||
|
|
|
|||
|
|
@ -2,6 +2,12 @@
|
|||
|
||||
Record each change to the skill together with the evidence that motivated it.
|
||||
|
||||
## 2026-10-01: the skill follows the mind's correctness core
|
||||
|
||||
Campaign `eureka-substrate`, cut `skill-recipes`, after the Huginn admission-rule and `eureka-state` client cuts (cut `ops-mind-upgrade`). Evidence: a census of the live mind found 6 findings that could not be closed and 39 resolutions that could not be withdrawn, from key locals over the bound.
|
||||
|
||||
What changed. Faculty `Life` replaces `MindSteward` (the old spelling is refused in queries; stored receipts still decode). Key, format and bound errors arrive as `Refused(Document(..))`; `Refused(Unavailable)` is a store fault. A subject's local key is at most 64 bytes and a resolution's at most 111. A finding may be `Deferred` to a follow_up or a cut_spec. `depends_on` holds cut labels, checked by admission, and a spec may not depend on its own cut. The per-repo stewardship check is gone (ruling `eureka-substrate:ruling:stewardship-rule`), so Self no longer admits stewardships when opening a campaign. A report's head may be spelled short or full.
|
||||
|
||||
## 2026-10-01: waiting costs no wakes, and a shared tools directory
|
||||
|
||||
Operator rulings on `references/tool-calling-cut.md`, verbatim: "Q1 A, Q2 yes, Q3 agreed, Q4 B, Q5 yes, but see Epiphany's approach where each subagent gets its own targeted philosophy centered on its role".
|
||||
|
|
|
|||
Loading…
Reference in a new issue