Agent Collaboration Control
Govern a project as a single-writer control system with independent evidence
review. Use Agent Orchestra to choose the graph; use this skill to control who
may act, what evidence authorizes transitions, and how results earn promotion.
Orient before acting
- Read the repository's agent instructions and current mission.
- Locate the canonical collaboration contract, numerical or product gates,
transition journal, resource budget, and evidence records.
- Read the latest journal event, but treat it as historical evidence.
- Re-measure actual processes, artifacts, revisions, outputs, and ownership
before mutation.
- Gate substantial autonomous, multi-agent, or resource-heavy work with the
project's budget authority, such as
$butler.
Never infer authority from a terminal pane, generated plan, old queue, or this
skill. If the project has no explicit role binding, remain read-only until the
human authority binds it.
Bootstrap the project contract
When no contract exists:
- Copy
assets/COLLABORATION_FRAMEWORK.template.md into the project.
- Copy
assets/collaboration-policy.example.json beside the append-only
transition journal.
- Replace every bracketed placeholder and bind real identities to:
- human authority — mission, budget policy, public, irreversible, and
destructive decisions;
- controller — sole writer for live operations and queue order;
- executor — performs explicit controller directives and returns
receipts;
- auditor — independently checks validity, evidence, and provenance;
- integrator — adjudicates supported positions and preserves dissent.
- Map every mutable surface to exactly one current writer.
- Define mission gates, claim states, journal path, evidence modes, succession
conditions, escalation triggers, and canonical artifacts.
- Obtain human approval before the contract authorizes live mutations.
Do not copy a project-specific threshold or identity into the generic contract.
The project's canonical mission and gate documents own those values.
Scale topology to decision risk
| Decision |
Minimum topology |
| Deterministic read or lookup |
One agent |
| Routine reversible operation |
Controller → executor → measured verification |
| Correctness-critical bounded step |
Two isolated witnesses → arbiter |
| New design or experiment |
Independent drafts → cross-examination → discriminating test or arbiter |
| Data, substrate, or instrument gate |
Producer → isolated validity and instrument-intent auditor |
| Result interpretation or promotion |
Result card → independent audit → refutation as risk rises |
| Champion, release, public, or irreversible decision |
Evidence pyramid → provenance audit → human authority |
Apply these invariants:
- isolate independent first passes;
- give every consequential artifact an adversary;
- keep drafting, adversarial review, and integration distinct;
- adjudicate disagreement instead of averaging it;
- preserve unresolved dissent and provide an escalation path;
- use schemas for machine-processed outputs;
- give concurrent writers disjoint surfaces or serialize them;
- scale redundancy and cost to uncertainty and bits at risk.
Read $agent-orchestra when implementing a multi-agent graph. Use disposable
copies for code-producing waves and never expose a live tree to competing
writers.
Gate execution
Evaluate work in this order:
- Admissibility: authority, lineage, substrate, instruments, configuration,
safety, and budget.
- Primary objective: the project's exact success and kill criteria.
- Scorecard: quality, cost, latency, risk, maintainability, and other
declared trade-offs.
- Readiness: frozen artifacts, provenance, independent review, named
owners, reproducibility, and external validation where needed.
Predeclare the claim or intended transition, config diff, revisions, cost,
checkpoints, admissible evidence, stop rule, owner, and verifier. Activity is
not progress unless it moves a declared predicate. Keep ready resources
productive, but never invent filler work.
Control live transitions
Before an authorized mutation:
- Confirm the current writer and budget gate.
- Create and validate an intent event.
- Confirm exact process, arguments, revision, manifest, checkpoint, output,
log destination, and named execution surface.
- Execute one explicit stage. Do not use implicit stage chains.
- Verify actual state with the evidence appropriate to the transition.
- Append a receipt with measured evidence, limitations, owner, verifier,
holds, cost, and one next transition.
For running jobs, require monotonic progress evidence such as a fresh cursor,
log, artifact size, completed work unit, or output-byte delta over a meaningful
interval. A live process, allocated memory, or one utilization sample proves
neither health nor death. Monitors report discrepancies; they do not compete
with the controller or silently auto-heal.
Never edit an appended event. Supersede it with a conformant event that names
the old ID. Timestamps and journals do not replace re-measurement.
Maintain an active support watch
When the user requests ongoing monitoring or support, create or maintain an
actual recurring process. A framework, promise, or one-time handoff does not
constitute active support.
- Inspect existing watches first and update or consolidate them instead of
creating overlapping pollers.
- Gate the autonomous cost, bind the watch to its read-only auditor identity,
and name the controller and human escalation authority.
- Make every cold invocation self-contained with four blocks:
TAG + CONTEXT, CHECK, REPORT, and STOP. Include absolute
paths, host and pane identities, exact commands or APIs, expected states,
report destination, and side-effect limits.
- Choose a cadence that matches meaningful state change, offset it from round
times, and state any platform expiry or renewal requirement.
- Persist observations and alert fingerprints in a single state file so
reports are delta-based, idempotent, and deduplicated.
- Verify the watch is active, its next run is scheduled, and the state file is
usable before claiming ongoing support.
Measure health with workload-specific independent signals. For a suspected
hang, combine absence of logical progress, absence of artifact or output
growth, and repeated resource-state samples over an appropriate interval.
Never generalize one signal into a universal death test.
Speak up proactively when measurements conflict with the journal or plan, a
gate is missing, a claim exceeds its evidence, work is unsafe or stuck, or a
genuine ambiguity blocks the next safe transition. Send the controller one
concise, deduplicated advisory containing timestamped evidence, the hold, and a
precise question or cheapest discriminating check. Use an empty prompt or a
safe message channel; never clear or overwrite another agent's active input.
If the controller cannot receive it safely, report to the human authority.
The watch may observe, recommend, question, and hold. It must not mutate live
work, compete with the controller, silently auto-heal, or broaden authority.
Stop only on the user's request or a defined terminal condition. Renew an
expiring watch when the monitored campaign remains active and the request for
ongoing support still applies.
Validate event packets
Customize the policy asset once, then validate each candidate:
python3 scripts/validate_transition_event.py \
--policy /project/path/collaboration-policy.json \
/project/path/candidate-event.json
Append only after PASS. The validator fails closed on policy drift, missing or
unknown fields, enum violations, malformed IDs or UTC timestamps, and empty
evidence. Extend the policy and validator deliberately before introducing new
event fields.
Promote evidence conservatively
Define a monotonic project-specific ladder. A useful default is:
observed → provisional → replicated → validated → claim-ready
For every gate, state what it establishes and what it does not establish. Match
evidence to the question: use census evidence for population claims,
independent repeats for stability, frozen evaluation for final comparison, and
provenance plus adversarial review for public claims.
Completed work is not automatically a validated result. Negative, null, and
demoted results are first-class outputs. An adversarial hold persists until
evidence resolves it; silence is not assent.
Handle controller loss narrowly
Leave healthy work running when the controller is unreachable. Permit
restorative succession only when the approved contract specifies:
- recorded lease expiry and a continuous unreachable interval;
- proof of death from process and progress evidence;
- an exact frozen restart manifest;
- an open safety and budget gate;
- an intent before restart and receipt afterward;
- a cooldown after recorded kill or completion.
The restorative lease must enumerate permitted actions. It never silently
grants new work, configuration changes, destructive actions, queue changes, or
reboots.
Resolve disagreement and hand off
Resolve disagreement through the cheapest discriminating empirical check, then
the canonical document, then conservative claim retention. Let the active
controller decide reversible operational ties. Escalate mission, public,
irreversible, destructive, low-confidence, or still-underdetermined high-risk
choices to the human authority.
Finish with:
- decision class and current single writer;
- measured state and timestamp;
- exact artifact, config, revision, or process identity;
- evidence mode and claim state;
- unresolved holds, dissent, and uncertainty;
- resource or budget reference;
- one explicit next transition.
If ongoing support was requested, also report the watch identity, cadence,
state path, next scheduled run, expiry or renewal condition, and any alert that
still needs acknowledgement.
Update the smallest canonical artifacts. Preserve durable decisions and
evidence using the workspace's archival protocol, such as $argus.
1---2name: agent-collaboration-control3description: Establish, actively monitor, and operate project-agnostic collaboration control for multi-agent programmes, research campaigns, live experiments, long-running automation, consequential artifact production, incident recovery, evidence promotion, and cross-agent handoffs. Use when work needs ongoing agent support, a recurring independent watch, proactive anomaly or ambiguity reporting, explicit human authority, one writer per mutable surface, risk-scaled Agent Orchestra topology, transition journals, liveness proof, adversarial review, provenance, succession rules, or calibrated claim states across any project.4---56# Agent Collaboration Control78Govern a project as a single-writer control system with independent evidence9review. Use Agent Orchestra to choose the graph; use this skill to control who10may act, what evidence authorizes transitions, and how results earn promotion.1112## Orient before acting13141. Read the repository's agent instructions and current mission.152. Locate the canonical collaboration contract, numerical or product gates,16 transition journal, resource budget, and evidence records.173. Read the latest journal event, but treat it as historical evidence.184. Re-measure actual processes, artifacts, revisions, outputs, and ownership19 before mutation.205. Gate substantial autonomous, multi-agent, or resource-heavy work with the21 project's budget authority, such as `$butler`.2223Never infer authority from a terminal pane, generated plan, old queue, or this24skill. If the project has no explicit role binding, remain read-only until the25human authority binds it.2627## Bootstrap the project contract2829When no contract exists:30311. Copy `assets/COLLABORATION_FRAMEWORK.template.md` into the project.322. Copy `assets/collaboration-policy.example.json` beside the append-only33 transition journal.343. Replace every bracketed placeholder and bind real identities to:35 - **human authority** — mission, budget policy, public, irreversible, and36 destructive decisions;37 - **controller** — sole writer for live operations and queue order;38 - **executor** — performs explicit controller directives and returns39 receipts;40 - **auditor** — independently checks validity, evidence, and provenance;41 - **integrator** — adjudicates supported positions and preserves dissent.424. Map every mutable surface to exactly one current writer.435. Define mission gates, claim states, journal path, evidence modes, succession44 conditions, escalation triggers, and canonical artifacts.456. Obtain human approval before the contract authorizes live mutations.4647Do not copy a project-specific threshold or identity into the generic contract.48The project's canonical mission and gate documents own those values.4950## Scale topology to decision risk5152| Decision | Minimum topology |53|---|---|54| Deterministic read or lookup | One agent |55| Routine reversible operation | Controller → executor → measured verification |56| Correctness-critical bounded step | Two isolated witnesses → arbiter |57| New design or experiment | Independent drafts → cross-examination → discriminating test or arbiter |58| Data, substrate, or instrument gate | Producer → isolated validity and instrument-intent auditor |59| Result interpretation or promotion | Result card → independent audit → refutation as risk rises |60| Champion, release, public, or irreversible decision | Evidence pyramid → provenance audit → human authority |6162Apply these invariants:6364- isolate independent first passes;65- give every consequential artifact an adversary;66- keep drafting, adversarial review, and integration distinct;67- adjudicate disagreement instead of averaging it;68- preserve unresolved dissent and provide an escalation path;69- use schemas for machine-processed outputs;70- give concurrent writers disjoint surfaces or serialize them;71- scale redundancy and cost to uncertainty and bits at risk.7273Read `$agent-orchestra` when implementing a multi-agent graph. Use disposable74copies for code-producing waves and never expose a live tree to competing75writers.7677## Gate execution7879Evaluate work in this order:80811. **Admissibility:** authority, lineage, substrate, instruments, configuration,82 safety, and budget.832. **Primary objective:** the project's exact success and kill criteria.843. **Scorecard:** quality, cost, latency, risk, maintainability, and other85 declared trade-offs.864. **Readiness:** frozen artifacts, provenance, independent review, named87 owners, reproducibility, and external validation where needed.8889Predeclare the claim or intended transition, config diff, revisions, cost,90checkpoints, admissible evidence, stop rule, owner, and verifier. Activity is91not progress unless it moves a declared predicate. Keep ready resources92productive, but never invent filler work.9394## Control live transitions9596Before an authorized mutation:97981. Confirm the current writer and budget gate.992. Create and validate an intent event.1003. Confirm exact process, arguments, revision, manifest, checkpoint, output,101 log destination, and named execution surface.1024. Execute one explicit stage. Do not use implicit stage chains.1035. Verify actual state with the evidence appropriate to the transition.1046. Append a receipt with measured evidence, limitations, owner, verifier,105 holds, cost, and one next transition.106107For running jobs, require monotonic progress evidence such as a fresh cursor,108log, artifact size, completed work unit, or output-byte delta over a meaningful109interval. A live process, allocated memory, or one utilization sample proves110neither health nor death. Monitors report discrepancies; they do not compete111with the controller or silently auto-heal.112113Never edit an appended event. Supersede it with a conformant event that names114the old ID. Timestamps and journals do not replace re-measurement.115116## Maintain an active support watch117118When the user requests ongoing monitoring or support, create or maintain an119actual recurring process. A framework, promise, or one-time handoff does not120constitute active support.1211221. Inspect existing watches first and update or consolidate them instead of123 creating overlapping pollers.1242. Gate the autonomous cost, bind the watch to its read-only auditor identity,125 and name the controller and human escalation authority.1263. Make every cold invocation self-contained with four blocks:127 **TAG + CONTEXT**, **CHECK**, **REPORT**, and **STOP**. Include absolute128 paths, host and pane identities, exact commands or APIs, expected states,129 report destination, and side-effect limits.1304. Choose a cadence that matches meaningful state change, offset it from round131 times, and state any platform expiry or renewal requirement.1325. Persist observations and alert fingerprints in a single state file so133 reports are delta-based, idempotent, and deduplicated.1346. Verify the watch is active, its next run is scheduled, and the state file is135 usable before claiming ongoing support.136137Measure health with workload-specific independent signals. For a suspected138hang, combine absence of logical progress, absence of artifact or output139growth, and repeated resource-state samples over an appropriate interval.140Never generalize one signal into a universal death test.141142Speak up proactively when measurements conflict with the journal or plan, a143gate is missing, a claim exceeds its evidence, work is unsafe or stuck, or a144genuine ambiguity blocks the next safe transition. Send the controller one145concise, deduplicated advisory containing timestamped evidence, the hold, and a146precise question or cheapest discriminating check. Use an empty prompt or a147safe message channel; never clear or overwrite another agent's active input.148If the controller cannot receive it safely, report to the human authority.149150The watch may observe, recommend, question, and hold. It must not mutate live151work, compete with the controller, silently auto-heal, or broaden authority.152Stop only on the user's request or a defined terminal condition. Renew an153expiring watch when the monitored campaign remains active and the request for154ongoing support still applies.155156## Validate event packets157158Customize the policy asset once, then validate each candidate:159160```bash161python3 scripts/validate_transition_event.py \162 --policy /project/path/collaboration-policy.json \163 /project/path/candidate-event.json164```165166Append only after `PASS`. The validator fails closed on policy drift, missing or167unknown fields, enum violations, malformed IDs or UTC timestamps, and empty168evidence. Extend the policy and validator deliberately before introducing new169event fields.170171## Promote evidence conservatively172173Define a monotonic project-specific ladder. A useful default is:174175`observed → provisional → replicated → validated → claim-ready`176177For every gate, state what it establishes and what it does not establish. Match178evidence to the question: use census evidence for population claims,179independent repeats for stability, frozen evaluation for final comparison, and180provenance plus adversarial review for public claims.181182Completed work is not automatically a validated result. Negative, null, and183demoted results are first-class outputs. An adversarial hold persists until184evidence resolves it; silence is not assent.185186## Handle controller loss narrowly187188Leave healthy work running when the controller is unreachable. Permit189restorative succession only when the approved contract specifies:190191- recorded lease expiry and a continuous unreachable interval;192- proof of death from process and progress evidence;193- an exact frozen restart manifest;194- an open safety and budget gate;195- an intent before restart and receipt afterward;196- a cooldown after recorded kill or completion.197198The restorative lease must enumerate permitted actions. It never silently199grants new work, configuration changes, destructive actions, queue changes, or200reboots.201202## Resolve disagreement and hand off203204Resolve disagreement through the cheapest discriminating empirical check, then205the canonical document, then conservative claim retention. Let the active206controller decide reversible operational ties. Escalate mission, public,207irreversible, destructive, low-confidence, or still-underdetermined high-risk208choices to the human authority.209210Finish with:211212- decision class and current single writer;213- measured state and timestamp;214- exact artifact, config, revision, or process identity;215- evidence mode and claim state;216- unresolved holds, dissent, and uncertainty;217- resource or budget reference;218- one explicit next transition.219220If ongoing support was requested, also report the watch identity, cadence,221state path, next scheduled run, expiry or renewal condition, and any alert that222still needs acknowledgement.223224Update the smallest canonical artifacts. Preserve durable decisions and225evidence using the workspace's archival protocol, such as `$argus`.