Install
openclaw skills install @antreasantoniou/agent-collaboration-controlGovern and actively monitor collaborative agent work
openclaw skills install @antreasantoniou/agent-collaboration-controlGovern 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.
$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.
When no contract exists:
assets/COLLABORATION_FRAMEWORK.template.md into the project.assets/collaboration-policy.example.json beside the append-only
transition journal.Do not copy a project-specific threshold or identity into the generic contract. The project's canonical mission and gate documents own those values.
| 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:
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.
Evaluate work in this order:
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.
Before an authorized mutation:
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.
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.
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.
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.
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.
Leave healthy work running when the controller is unreachable. Permit restorative succession only when the approved contract specifies:
The restorative lease must enumerate permitted actions. It never silently grants new work, configuration changes, destructive actions, queue changes, or reboots.
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:
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.