docs(skills): never cut a running job or agent short, not as chair and not at its time cap

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Veen-BirkenbachandClaude Opus 5.5 committed 2026-10-31 17:19:05 +01:00
1 parent 9f7844ad6c
commit 44c88b4bf7
5 files changed
+32 -16

No files matched your search

+10 -4
View File
@@ -80,10 +80,12 @@ worktree or compose project name, a container label, an open handle, or
`unknown`. Then apply, first match wins:
1. Claimed by a peer: `keep`.
2. Attributable to a peer that has not answered: `keep (no answer from
2. A job running on it (deploy, gate, test, swarm run, build): `keep
(running)`.
3. Attributable to a peer that has not answered: `keep (no answer from
<peer>)`. Silence is not consent.
3. Archive duty: `archive first`.
4. Everything else is a candidate with a risk class:
4. Archive duty: `archive first`.
5. Everything else is a candidate with a risk class:
| Risk | Meaning | Typical items |
| ---- | ------- | ------------- |
@@ -145,7 +147,11 @@ ticked items. Revise repeats call 1; nothing is deleted before `Execute`.
rest, then put the refused item to the operator again as its own option: an
explicit renewed selection may pass; if it is refused again, hand over the
exact command with its list file for the operator to run.
- Running stacks go down through the project's teardown target, never by
- Never stop, take down or kill a running job, and never ask its owner to, to
free space: not for a priority slot, not at a disk stop. Free idle items,
ask the operator for an exception, or wait; an owner's own disk guard only
alerts the chair, and only the operator can order a running job down.
- Idle running stacks go down through the project's teardown target, never by
removing their containers or volumes underneath them.
- Archive-first items: copy out, verify the copy, then delete.
- A delete failing on permissions (files owned by a container UID): use the
+11 -4
View File
@@ -77,8 +77,14 @@ records the result.
for the grant, and reports the release. The chair keeps one queue, answers
every request with its position, enforces the limits the operator set,
checks every grant with `watch.py admit --need-gb <N>` (or `--kind <slot>`;
test kinds also need CPU and RAM below the configured limits),
and never cancels a running grant to free capacity.
test kinds also need CPU and RAM below the configured limits).
- A running job (deploy, gate, test, swarm run, build) is never cut short to
free capacity. The chair neither asks nor orders its owner to stop, take
down or kill it, not for an operator-prioritised slot and not for a
projected disk stop. It grants nothing new, frees idle items through the
`cleanup` flow, asks the operator for an exception, or waits. An owner's
own disk guard only alerts the chair and takes nothing down; only the
operator can order a running job down.
- Handover is explicit: the outgoing chair sends every peer the new holder,
the queue and the running grants, and keeps allocating until the incoming
chair confirms. Two allocators never run at once.
@@ -97,8 +103,9 @@ stays silent below the thresholds.
- **Stop**: new heavy jobs are blocked in every session (teardown commands
never), and the hook runs the configured low-risk cleanup by itself; it
skips every worktree where a gate or deploy process still runs.
- **Critical**: additionally a desktop alarm to the operator. A running stack
is torn down only with the operator's OK.
- **Critical**: additionally a desktop alarm to the operator. Running jobs
and their stacks still keep running; only the operator can make an
exception.
- A measured fall that would reach the critical threshold within the
projection window raises the stage by one at once.
- Caches together stay under their budget; the least recently used go first.
+6 -4
View File
@@ -21,8 +21,9 @@ in a sidetree until it does, or leaves as a proposal.
## The stages
1. **Brief.** One concern per agent. Name the goal, the exact base commit, the
scope that may change, the evidence expected back, a hard time cap (default
60 minutes) and what the agent must not do: no pushes, no gates or deploys
scope that may change, the evidence expected back, a time cap (default
60 minutes) at which it reports its interim state, and what the agent must
not do: no pushes, no gates or deploys
unless the resource chair of the `democracy` skill granted them, read-only
probes on shared live systems.
2. **Sidetree.** The agent works in its own worktree on its own branch,
@@ -93,8 +94,9 @@ below the bar never enters the main line on its own.
## Rules
- Stop an agent at its time cap and ask for its findings; an uncapped brief can
run for hours and deliver nothing.
- At its time cap, ask an agent for its interim findings and let it run on;
never stop a running agent. A brief without a cap can run for hours without
a word.
- Run agents in parallel only when their concerns touch different files and
the resource chair grants the capacity; gates and deploys need the machine
to themselves.
+2 -1
View File
@@ -55,7 +55,8 @@ jobs' logs, and a first clustering. The judgement in those steps stays yours.
5. **One funnel per cluster.** Hand every cluster you claimed in step 3 to the
`funnel` skill: one agent per cluster, working in its own worktree on its own
branch created from the exact current HEAD, with that cluster as its only
concern, the artifact paths of step 4 in its brief and a hard time cap.
concern, the artifact paths of step 4 in its brief and a time cap for its
interim report.
Steps 6 to 8 run inside that sidetree, so no cluster's edits land under
another cluster's work or under a running gate or deploy. Run clusters in
parallel only when their fixes touch different files and the machine has
+3 -3
View File
@@ -158,11 +158,11 @@ Python hot path with Rust:
## Delegating an optimization
Hand every optimization to an agent through the `funnel` skill: one sidetree
per candidate, branched from an exact commit, with a hard time cap and "measure
per candidate, branched from an exact commit, with a time cap and "measure
first, report the time split before implementing". The agent probes live
systems read-only and never starts gates or deploys. A broad brief without a
cap can run for hours and deliver nothing; stop an agent at its cap and collect
its findings.
cap can run for hours without a word; at its cap, collect the agent's interim
findings and let it run on.
Before merging, run independent skeptics through the `dialectic` skill. The
antithesis must try to show that the candidate removes coverage, hides a