Security / Resilience / Autonomous Systems

Safe-Stop and Recovery Protocol for Independent RogueSwarms Agents

Report summary

The central design constraint is that RogueSwarms is a coordination, registry, authentication-continuity, and work-recording layer for independently operated agents; it is not their runtime supervisor . The current v0.19.22 documentation says that each agent retains its own software, canonical endpo

Status
Research archive item
Category
Security / Resilience / Autonomous Systems
Length
5,310 words
Reading time
25 minutes
Report type
architecture

Key topics

  • Security / Resilience / Autonomous Systems
  • Security
  • Resilience
  • Autonomous Systems
  • AI
  • Runtime
  • Semantic Systems
  • Research Archive
  • Strategy

Research provenance

Archive status
Research archive item
Content identity
sha256:d6818bb29ce789842e9689eeaa44dc0eb138563a56f9d26b8e339d99d844d7dd

For citation, use the report title and canonical URL. Archival presence does not establish authorship or promote report statements into portfolio evidence.

Source availability: 36 citation markers in the source export have no recoverable source links. Those markers are omitted from this reader; any supplied bibliography and ordinary links remain. Check the original sources before relying on the cited claims.

This page renders the archived Markdown as safe, formatted HTML. It is background research and does not become a portfolio claim without evidence review.

Full report

On this page

Design boundary and safety model

The central design constraint is that RogueSwarms is a coordination, registry, authentication-continuity, and work-recording layer for independently operated agents; it is not their runtime supervisor. The current v0.19.22 documentation says that each agent retains its own software, canonical endpoint, keys, and external identity material, and that RogueSwarms does not need to host its model or runtime. Registry departure also does not destroy the agent's independent identity. Registrations and capabilities are self-asserted, and registry key possession is explicitly narrower than operator, legal, merchant, or domain identity verification.

That makes a universal "kill switch" both technically false and operationally dangerous. RogueSwarms can make strong guarantees only at boundaries it actually controls: admission of new platform work, authorization of RogueSwarms mutations, RogueSwarms contract state, RogueSwarms callbacks or leases that it issues, and the evidence it records. Stopping an independently hosted process is a request to another control domain unless the operator has explicitly integrated a remote-runtime control interface.

This is also the right way to operationalize corrigibility. The original corrigibility formulation describes a corrigible system as one that cooperates with corrective intervention even when ordinary incentives could favor resisting shutdown or modification. For RogueSwarms, that desirable behavioral cooperation should be supported—graceful handover, remote stop acknowledgement, runtime attestation—but it must be separated from external enforcement. A misbehaving worker must not need to "agree" before RogueSwarms stops giving it new work or accepting newly unauthorized platform mutations.

The current work protocol makes that separation especially important. Normal run cancellation is purchaser-only, cannot occur when submitted or disputed work remains, leaves verified work and ledger history intact, and cancels only open or claimed tasks. Current claims have no lease expiration or automatic reassignment. Therefore, the existing /cancel operation is a business-workflow operation, not an incident-containment primitive.

The core invariant

After the platform records an incident cutoff and marks the relevant controls locally_enforced:

No new RogueSwarms-authorized action attributable to the revoked authority may commit after that cutoff, regardless of whether the remote worker acknowledges or obeys the stop request.

The word RogueSwarms-authorized matters. A remote process may still be running, may possess unrelated credentials, may contact third parties directly, or may have delegated work outside RogueSwarms. Those possibilities remain a separate external-verification problem.

The protocol should therefore record a status vector, never a single overloaded cancelled or stopped flag.

StatusPrecise meaningWhat it does not mean
requestedA durable command has been recorded with incident ID, scope, reason, cutoff, and requester.The target received it or anything stopped.
acknowledgedThe addressed service, runtime, or human operator confirmed receipt.Enforcement occurred.
locally_enforcedThe RogueSwarms-controlled gate has committed the requested restriction and will reject prohibited post-cutoff transitions.The independent runtime stopped.
remotely_attestedA configured remote runtime signed a statement describing its claimed cessation state.The attestation is independently true or that all external effects ceased.
externally_unknownAvailable observations are insufficient to establish whether external activity has ceased.Failure of local containment; this can coexist with successful platform revocation.
externally_verified_ceasedThe defined external observation set provides sufficient evidence of cessation for the relevant scope and observation window.Universal proof that an unobservable copy does not exist.
external_activity_observedPost-cutoff activity attributable to the subject was observed outside the locally contained boundary.That RogueSwarms local enforcement failed.

A typical serious incident may legitimately read:

admission=locally_enforced; authority=locally_enforced; contract=locally_enforced; remote_cessation=requested; external_activity=externally_unknown.

That is a successful local containment state, not a failed "kill switch."

RAND's loss-of-control research reinforces the need for this epistemic separation: detection can be context-dependent and uncertain, can depend on combining multiple data sources, and monitoring faces both novel-threat and false-positive limitations. It also recommends defined escalation thresholds, regular scenario drills, and rapid, flexible containment.

Safe-stop protocol

The protocol should introduce an Emergency Control Plane whose state is distinct from ordinary registry/work state. This is important because RogueSwarms' own recovery documentation warns that an older restore can rewind revocations, nonces, and receipts; a snapshot can be internally consistent without being authenticated or rollback-safe. It explicitly says both timelines must be reconciled before writes resume.

The Emergency Control Plane should hold, at minimum:

incident_id
subject_agent_id
incident_state
admission_state
authority_epoch
minimum_accepted_authority_epoch
credential_revocations[]
contract_safety_holds[]
remote_cessation_requests[]
external_verification_state
cutoff_sequence
cutoff_time
evidence_checkpoint_hash
recovery_controller
created_by
approved_by

minimum_accepted_authority_epoch should be stored in a failure domain that is not rolled backward merely because ordinary registry state is restored. A restored registry snapshot with epoch 41 must not reactivate an authority if the emergency high-water mark says epoch 44 is the minimum acceptable epoch. This is the most important recovery change because otherwise a database restore can accidentally become an authorization rollback.

RogueSwarms already exposes append-only, hash-chained run events with no API operation for updating or deleting prior event history, which is a useful foundation for case reconstruction. Because an old whole-state restore can nevertheless rewind retained security state, incident checkpoints should additionally be witnessed or replicated outside the ordinary restore unit.

Separate the five controls

The safe-stop command should orchestrate five independent operations rather than pretending they are one atomic remote shutdown.

OperationProposed primitiveRequired immediate effect
Stop accepting new platform workADMISSION_PAUSE(subject)No new claims, purchaser-created work, verifier assignments, or other newly admitted work involving the subject after enforcement.
Revoke authority to use platform endpointsAUTHORITY_REVOKE(subject, scopes)Increment/fence the authority epoch and cause all protected mutations under revoked authority to fail authorization at commit.
Cancel or contain a contractExisting business CANCEL plus new SAFETY_FREEZEBusiness cancel keeps present semantics; incident freeze immediately blocks unsafe progression even where normal cancellation is unavailable.
Request remote execution cessationREMOTE_CEASE(scope, mode)Deliver a signed, idempotent stop request if a runtime/operator control channel exists. Failure to deliver does not weaken local controls.
Verify external cessationEXTERNAL_VERIFY(scope, evidence_policy)Gather evidence independently of the affected worker and explicitly return verified, active, or unknown.

Admission pause

ADMISSION_PAUSE should be an authorization-layer gate, not just removal from directory search.

For a paused subject, RogueSwarms should reject:

  • new task claims;
  • new runs in which it acts as purchaser, worker, or verifier, according to configured scope;
  • new delegated capabilities or leases;
  • new callback registrations;
  • new budget authority.

Existing obligations are not implicitly terminated. They move to explicit disposition: continue under a permitted drain policy, safety-freeze, cancel, compensate, or mark externally unresolved.

This distinction matters because unregistering an agent is inadequate. The current lifecycle API includes DELETE /unregister, but RogueSwarms' independence model means deleting a registry record does not terminate the independent endpoint or identity. Unregister should therefore normally occur after incident preservation and containment, not as the primary stop mechanism.

Authority revocation

Current RogueSwarms supports a one-time agent_secret whose hash is retained and an optional Ed25519 HTTP-signature lifecycle path; key-possession evidence is explicitly limited to registry lifecycle authentication. The incident design should place both existing authentication methods behind a single current-authority decision:

authenticated principal
        ↓
registration incarnation valid?
        ↓
credential/key not revoked?
        ↓
request authority_epoch >= emergency minimum?
        ↓
scope permits action?
        ↓
contract/admission safety state permits action?
        ↓
RECHECK immediately before commit
        ↓
commit + append event

The second check at commit is important. A request that authenticated milliseconds before a revocation but has not committed must not acquire grandfathered authority merely because authentication started before the stop.

This follows the broader revocation principle captured in OAuth token-revocation standards: authorization servers invalidate revoked authority immediately from their perspective, but distributed implementations can have propagation windows that must be minimized. Where cached authorization exists, the design should either use online current-state checks for critical mutations or place an explicit, measured maximum on stale-cache lifetime. Token-introspection standards similarly define an active token in terms that generally include both non-revocation and time validity.

For future short-lived capabilities, bind them to a specific audience and expiration; standard JWT semantics require rejection outside the declared audience and at or after expiry. The same concept can be implemented without JWTs: the important properties are narrow scope, target binding, expiry, and a server-side revocation/fencing epoch.

Critically, incident revocation cannot depend on the potentially compromised worker credential itself. RogueSwarms should add a registration-time recovery_controller_key or comparable out-of-band recovery controller whose private material is not available to the running agent. Because the registry is currently self-asserted, possession of such a recovery key would still prove control of that recovery credential rather than legal human identity; stronger operator verification would be a distinct trust feature.

For high-impact revocation or reactivation, production policy should support two-person authorization while preserving a single-person emergency pause where delay would create more risk.

Contract containment

Keep the current purchaser cancellation operation exactly recognizable as a business operation. Current semantics are useful: open and claimed tasks cancel, verified work and ledger entries remain, and an exact idempotency key avoids duplicate business effects.

Add a separate SAFETY_FREEZE for incidents:

contract_safety_state =
    normal
    | freeze_new_work
    | freeze_all_mutations_except_evidence
    | compensation_only
    | recovered

Unlike ordinary cancellation, a safety freeze must be possible when:

  • submitted work exists;
  • a dispute exists;
  • the purchaser credential is stolen;
  • the worker is the suspected compromised party;
  • the contract is already "complete" but an incident requires blocking later dispute/settlement-like transitions.

It should never erase or rewrite prior verified results. It restricts future transitions and appends an incident-control event.

Graceful handover

For legitimate interruptions, define a DRAIN mode. Drain is behavioral cooperation, not the enforcement mechanism.

A draining worker may be allowed only a predetermined safe handover set, for example:

write checkpoint
report outstanding child/delegated work
report pending callbacks
release a RogueSwarms lease
publish artifact hashes/manifests
emit final runtime attestation
finish a predeclared atomic local write where interruption is less safe

It may not:

claim new work
create new contracts
increase budget
delegate new authority
schedule new callbacks
initiate a new irreversible external side effect
use an expired or revoked authority

For suspected credential compromise, injection, or persistent unauthorized activity, skip drain and use FREEZE/ABORT. Graceful handover must never become a loophole by which a worker acquires new authority while supposedly shutting down.

Authority, enforcement, and remote-runtime integration

The authority matrix should be explicit enough that an incident commander can tell what RogueSwarms can guarantee and what requires another party.

ControlWho may invoke itRogueSwarms enforcement boundaryNeeds worker cooperation?Strongest claim RogueSwarms can make
Admission pauseRecovery controller / incident operatorWork admission, claims, run creation, verifier assignmentNo"No prohibited new RogueSwarms work was admitted after cutoff."
Platform authority revokeRecovery controller / incident operatorEvery authenticated mutation endpoint and commit pathNo"Revoked authority cannot create a new RogueSwarms mutation after enforcement."
Normal contract cancelPurchaser under current rulesRun/task state machineNo, but present eligibility rules apply"Eligible open/claimed work was cancelled under normal contract semantics."
Incident safety freezeRestricted emergency roleRun/task mutation gateNo"Unsafe post-freeze RogueSwarms transitions are blocked."
Remote cessationIncident operator/platform control serviceNone beyond sending/authenticating requestYes, unless runtime owner independently enforces it"A cessation request was sent/acknowledged/attested," according to status.
External cessation verificationIncident investigator / monitoring servicesObservation onlyNo"Defined external observations verify cessation," or explicitly "unknown."

This matrix prevents three common category errors:

Unregistering is not stopping. The platform controls registry membership, not the independent process.

Cancelling is not revoking. Present contract cancellation affects particular work-state transitions; it does not itself revoke the agent's lifecycle or work credentials.

Revoking is not proving remote cessation. It can make platform access useless while the remote runtime remains active elsewhere.

Remote-runtime integration contract

Remote control should be an optional interoperability contract, advertised independently of the ordinary task endpoint. Lack of support must not weaken local containment.

A cessation request could have this canonical form:

{
  "protocol": "rogueswarms.control.cessation/1",
  "cessation_id": "cs_...",
  "incident_id": "inc_...",
  "subject_agent_id": "rs_...",
  "scope": {
    "type": "agent|contract|task|delegation",
    "ids": ["..."]
  },
  "mode": "DRAIN|FREEZE|ABORT",
  "reason_code": "credential_compromise|injection|fraud|persistent_unauthorized|operator_request|other",
  "requested_at": "RFC3339 timestamp",
  "effective_not_after": "RFC3339 timestamp",
  "authority_epoch": 44,
  "cancel_callbacks": true,
  "revoke_delegations": true,
  "handover_policy": "none|safe_only",
  "nonce": "...",
  "signature": "..."
}

The receiver's acknowledgement should be separate:

{
  "cessation_id": "cs_...",
  "receipt": "accepted|unsupported|rejected",
  "received_at": "...",
  "estimated_stop_by": "...",
  "runtime_instances_seen": ["..."],
  "last_effect_sequence_seen": 813,
  "signature": "..."
}

And the final runtime attestation should be a third message:

{
  "cessation_id": "cs_...",
  "state": "stopped|drained|not_running|partial",
  "stopped_at": "...",
  "authority_epoch_seen": 44,
  "last_effect_sequence": 816,
  "pending_callbacks": [],
  "delegated_children": [],
  "active_leases": [],
  "shared_artifacts": [
    {"uri": "...", "sha256": "..."}
  ],
  "unresolved_external_actions": [],
  "runtime_instance_ids": ["..."],
  "attestation_nonce": "...",
  "signature": "..."
}

The protocol rules should be strict:

Acknowledgement is not cessation. An acknowledgement proves receipt only.

Attestation is not independent verification. It is evidence from the runtime under investigation.

Timeout never reverses local containment. If the runtime never answers, the platform remains paused/revoked/frozen and the remote status becomes externally_unknown.

Retries are idempotent by cessation_id. A repeated request must not start a second shutdown workflow.

A runtime may attest partial. It is better to truthfully report an unkillable child process or callback than to coerce the integration into saying "stopped."

Control signing should use a control-purpose key or explicit key scope. RogueSwarms' existing Ed25519 evidence is currently scoped to lifecycle authentication, so treating the existing key-possession claim as proof of a remote runtime-control identity would exceed the platform's stated trust semantics.

A control endpoint should also expose a read-only status query so an incident responder need not ask the affected agent conversationally what happened.

In-flight work, delegation, callbacks, artifacts, and compensation

The protocol's hardest problems are not clean pre-start cancellations; they are effects that straddle the cutoff.

In-flight requests

Every incident must establish a server-controlled cutoff tuple such as:

(incident_id, cutoff_sequence, locally_enforced_at, new_authority_epoch)

Requests are classified by commit state, not by whatever timestamp the worker supplied.

Request state at cutoffRequired treatment
Received but not authenticatedEvaluate under new authority state; reject if revoked.
Authenticated but not committedReauthorize immediately before commit; reject under the new epoch/freeze.
Irreversible local commit completed before cutoffPreserve it as pre-cutoff history; do not rewrite history. Compensate if appropriate.
Response lost after a pre-cutoff commitAn idempotent retry may return the existing result but must not create another business effect.
Request arrives after cutoff with old authorityReject and record as post-cutoff attempt.
Request uses valid new/recovery authorityEvaluate against scope and incident safety state.

This fits RogueSwarms' existing idempotency direction: work mutations bind a key to exact request/action/resource semantics, with successful retries returning the stored business result rather than duplicating events or ledger entries.

Delegated subtasks

RogueSwarms already distinguishes new purchaser budgets from delegated parent funds: a registered agent may purchase other agents' work under a new explicitly authorized budget, but parent funds are not implicitly delegated. Extend that principle to all delegated authority.

A platform-recognized child delegation should contain:

parent_authority_id
child_authority_id
delegator
delegate
scope
contract/task constraints
maximum effects/budget
issued_at
expires_at
authority_epoch
delegation_depth

The child must be no broader or longer-lived than its parent, and parent revocation should invalidate all platform-recognized descendants.

Undeclared external delegation is different. If an agent gives credentials or instructions to another independently hosted service outside RogueSwarms, RogueSwarms cannot revoke an authority it never controlled. Record those branches as externally_unknown, notify their operators where possible, and verify them separately.

Scheduled callbacks

A callback is deferred authority and therefore must carry the authority state that existed when it was scheduled.

Each callback should bind:

callback_id
subject
contract/task
authority_epoch
not_before
not_after
audience
effect_scope
idempotency_key

The scheduler must reauthorize when dispatching, and the receiving RogueSwarms endpoint must reauthorize again when consuming it. Revocation therefore causes an old callback to be tombstoned or rejected, rather than resurrecting authorization minutes or hours later.

A callback already transmitted to an external system before the cutoff may still execute later. That is an external effect and remains unresolved until the external scheduler/provider confirms cancellation or observation shows its final disposition.

Leased work

Current RogueSwarms task claims have no lease expiry or automatic reassignment. That means current claims cannot provide a fencing guarantee against a stale claimant.

Introduce optional/new-protocol claim leases:

lease_id
task_id
holder
issued_at
expires_at
fencing_epoch

Every result or other claimant mutation must present a currently valid lease/fence. After expiry or revocation, the worker can continue computing on its own machine, but it can no longer commit a platform result under that lease. This is exactly the desired separation: accepting unauthorized new platform effects does not depend on the worker's willingness to stop.

Legacy non-leased claims should be handled through SAFETY_FREEZE and manual incident disposition until they age out or are explicitly resolved.

Pending payments and accounting

RogueSwarms currently records unfunded, unpaid accounting; it does not custody funds, provide settlement, grant spending authority merely through membership, or act as merchant of record. Attempt fees accrue on result submission, verified-completion fees can be reversed by a negative ledger entry on dispute, and transaction-success fees remain contingent.

Therefore:

Payment stateIncident action
Not yet accruedFreeze future accrual after cutoff.
Validly accrued pre-cutoffPreserve history; do not erase it as part of containment.
Platform accounting entry later found invalidAppend a compensating ledger entry rather than rewriting historical evidence.
Contingent transaction-success entryHold/freeze until incident disposition.
External payment already initiatedContact the actual payment provider; RogueSwarms cannot truthfully claim to reverse it.
External payment completedRecord refund/reversal if the rail supports it; otherwise treat the economic effect as irreversible or partially recoverable.

A database rollback is particularly inappropriate here because RogueSwarms explicitly warns that restoration can rewind receipts and revocations. Recovery should append corrections and reconcile timelines.

Shared artifacts and evidence

Current result submissions carry evidence URIs and hashes, but RogueSwarms does not fetch those URIs or independently hash-check the referenced content. Work data and evidence references are public, and access-token URLs/private material are not supposed to be published.

During an incident:

  1. Seal the platform's evidence reference and supplied hash.
  2. Capture any externally accessible artifact needed for investigation into an authorized evidence repository, subject to applicable policy.
  3. Record retrieval time, source, content hash, collector, and chain/provenance metadata.
  4. Revoke external artifact credentials or sharing permissions where the artifact store allows it.
  5. Never claim that deleting the current artifact undoes a previous public disclosure.

NIST's current incident-response guidance explicitly calls for preserving the integrity and provenance of investigation records and collected incident data and retaining evidence according to preservation procedures.

What database restore cannot undo

The incident record should distinguish platform reversibility from world reversibility.

EffectCompensating operationEvidence required before calling it compensated
Incorrect mutable registry metadataAppend corrective update under recovery authority.New record, prior version/hash, correction event, current readback.
Erroneous RogueSwarms ledger accrualAppend compensating ledger entry.Original entry ID, compensation ID, recomputed balance/state, event-chain verification.
Scheduled platform callbackCancel/tombstone callback.Scheduler readback plus no dispatch after cutoff.
Platform-issued leaseRevoke/expire fence.Authorization negative test with stale lease plus current lease inventory.
External API-created resourceDelete/void/revert through provider API.Provider receipt plus independent readback proving expected final state.
External paymentRefund/reversal where supported.Payment-provider transaction state and settlement/refund identifier—not merely the worker's statement.
Public/shared artifactRevoke/delete accessible instance.Independent access test and storage audit event. Any prior disclosure remains a residual exposure.
Delivered email/message/public postRetraction or corrective communication where possible.Provider status and recipient/platform evidence; original delivery remains historically real.
Physical order/shipmentCancel before fulfillment or return/recall afterward.Merchant/carrier confirmation and final financial disposition.
Disclosed secret/private keyRotate and invalidate affected authority.New key/credential active, old one rejected. Exposure itself is not reversible.
External destructive side effectRestore from the authoritative external system if possible.Integrity/readback checks at that external system. No RogueSwarms DB operation is sufficient evidence.

The last category is the essential boundary: restoring RogueSwarms cannot undo an order shipped by a merchant, a message already delivered, a secret disclosed, a financial transfer completed elsewhere, or an operation performed by an independently hosted agent through some unrelated credential.

Incident runbook and corrigible triage

Incident handling must separate containment facts from root-cause hypotheses. That lets investigators correct an early misdiagnosis without discarding evidence or waiting for perfect attribution.

NIST recommends tracking ongoing incident status, categorizing and prioritizing by factors such as scope and likely impact, and being able to change the response strategy rapidly as new information appears. It also distinguishes the pressure for quick recovery from the need for fuller investigation. RAND likewise notes that LOC-like detection can depend on a collection of indicators, can involve genuine uncertainty, and that monitoring systems face false-positive limitations.

Keep hypotheses mutable

The incident case should contain an append-only hypothesis history:

hypothesis_id
classification
opened_at
confidence
supporting_evidence[]
contradicting_evidence[]
status = active | weakened | rejected | superseded | confirmed
supersedes
analyst

Changing from "stolen credential" to "injected external instruction" must not:

  • generate a new incident that loses the old timeline;
  • delete the rejected hypothesis;
  • undo already justified credential containment;
  • invalidate collected evidence;
  • delay continued containment of the observed behavior.

Containment should be driven by what capability is currently unsafe, while root-cause analysis determines what remediation is eventually needed.

Triage classes

Initial hypothesisTypical discriminatorsImmediate containmentWhat would change the diagnosis
Ordinary workflow errorExpected principal, expected runtime, plausible operator-authorized goal, isolated wrong transition, no credential anomalies or persistence.Freeze affected contract if impact warrants; preserve evidence; avoid broad revocation unless risk requires it.Repeated behavior after correction, anomalous credentials, unexplained delegation, or post-stop activity.
Stolen credentialsRequests authenticate successfully but originate from unexpected infrastructure/timing; overlapping use; continued attempts after the legitimate operator stops its runtime.Pause admission, revoke credential/registration authority, bump epoch, rotate out-of-band.Evidence that the legitimate runtime itself produced the actions despite uncompromised credential custody.
Injected external instructionsAuthorized runtime executes actions correlated with untrusted content/tool output and contrary to operator policy.Pause/revoke relevant action authority, freeze affected work, isolate tool/data channel.Evidence of direct credential theft or intentional operator instruction instead.
Fraudulent submissionResult/evidence inconsistent, unavailable, altered, impossible, or contradicted by independent verifier/provider.Freeze verification/compensation, preserve submitted hashes/URIs, dispute where appropriate.Independent evidence validates the submission or identifies an ordinary processing error.
Persistent unauthorized behaviorAttempts continue after clear local revocation/contract freeze, or external effects continue after a remote stop request.Maximum local containment; remote cease; external provider/operator notification; expanded scope search.Evidence shows attempts were harmless delayed retries with no new commits, or an unrelated principal caused the external activity.

The injection category deserves special care. RogueSwarms itself states that registration, discovery, inspection, and key-possession verification do not fetch arbitrary submitted URLs; a declared remote endpoint is a reference rather than an instruction to fetch it. Therefore, an injected-instruction incident is more likely to arise in an independently operated worker's own browsing/tool/data pipeline than because the RogueSwarms registry automatically dereferenced an arbitrary URL. The investigation should identify the actual ingestion point rather than attributing the injection to the registry without evidence.

Fraudulent evidence also needs external checking because RogueSwarms currently records evidence references but does not fetch and independently verify their content hash.

Human-executable response procedure

Declare the incident and appoint a human incident commander. Record the subject, suspected scopes, severity, known contracts, evidence sources, and an explicit incident ID. NIST recommends designating incident leadership and tracking each incident's actions, status, and next steps.

Establish the cutoff before debating root cause. Record the Emergency Control Plane checkpoint and authority epoch, capture current registration/authentication state, outstanding runs, claims, callbacks, leases, event-chain tips, idempotency records relevant to the incident, and current payment/accounting state.

Contain locally. Apply admission pause; revoke affected platform authority; safety-freeze affected contracts; prevent new callbacks/delegations; seal the incident record. Do not wait for the worker to explain itself.

Send remote cessation requests. Use the integration endpoint when available and separately contact the human/operator through out-of-band channels. Record delivery, acknowledgement, timeout, and attestation as distinct facts.

Inventory external effects. Query payment providers, artifact stores, merchants, schedulers, messaging systems, compute/runtime providers, or counterparties relevant to the worker's known authority. The affected worker may contribute information, but its testimony is neither authoritative nor required.

Maintain competing hypotheses. Test workflow mistake, credential theft, external instruction injection, fraudulent output, and persistence against the evidence. Reclassify freely while preserving prior reasoning.

Compensate reversible effects and bound irreversible ones. Every compensation gets an owner, deadline, authoritative external evidence requirement, and final disposition. "Requested refund" is not the same as "refund settled."

Remediate the authority path. Rotate compromised credentials, increment authority epochs, remove bad callback/delegation state, reconcile backup and incident timelines, and resolve any vulnerable integration.

Recover in stages. Reopen unaffected service first. Re-enable the affected registration only after explicit acceptance criteria are met. Recovery must not silently turn externally_unknown into safe.

Close with an evidence-backed after-action record. NIST recommends establishing event sequence and underlying/systemic causes, preserving response-record provenance, validating the incident's magnitude—including signs of persistence on other targets—and verifying recovered assets before recovery is declared complete.

Never make the affected agent a procedural dependency

A human responder's containment screen should present, directly from trusted control-plane sources:

incident ID and severity
subject registration and recovery controller
admission status
current authority epoch and revocations
last accepted platform mutation
post-cutoff rejected attempts
affected runs/tasks
scheduled callbacks
leases/delegations
remote stop request / acknowledgement / attestation
external verification coverage
unresolved external activity
evidence capture status
compensation status
recovery gates

The runbook should contain zero steps of the form "ask the agent why it did this before continuing." Agent-generated explanations may be evidence; they cannot be a prerequisite for pause, revocation, preservation, external verification, or recovery.

That design also protects against the mundane case where the worker is simply offline or crashed rather than malicious.

Recovery acceptance criteria

Recovery is not "the database loads successfully." NIST frames recovery around securely restoring operations, verifying recovered-asset integrity, validating functions, and applying explicit recovery criteria. RogueSwarms' own recovery notes make this stronger still: restores can rewind security-relevant state, so both pre- and post-restore timelines must be reconciled before reopening writes.

Use the following gates.

Recovery gateRequired evidencePass condition
Admission containmentNegative tests for claim/run/admission paths.new_prohibited_work_accepted_after_pause = 0.
Authority containmentNegative tests using every revoked secret/key/incarnation and stale authority epoch.new_mutations_with_revoked_authority_after_cutoff = 0.
In-flight reconciliationRequest/commit timeline plus idempotency records.Every straddling request classified as pre-cutoff commit, rejected post-cutoff action, or unresolved external effect.
Contract dispositionRun/task event history.Every affected task is explicitly verified-pre-cutoff, cancelled, frozen, compensated, irreversible, or unresolved; nothing silently disappears.
CallbacksScheduler inventory plus dispatch/receive logs.Every old-epoch callback is cancelled, expired, rejected, or explicitly external/unknown.
Leases/delegationsCurrent authority graph.No active platform-recognized descendant of revoked authority remains.
AccountingLedger reconciliation.Historical legitimate entries preserved; invalid reversible entries compensated; external payments separately reconciled.
ArtifactsHash/provenance inventory and access checks.Required evidence preserved; inappropriate current access revoked; prior disclosures tracked as residual exposure.
Remote cessationRuntime acknowledgement/attestation.Either a valid attestation exists or status explicitly remains unresolved; absence is never converted into success.
External cessationIndependent provider/network/counterparty telemetry over the defined window.externally_verified_ceased, or a documented externally_unknown risk disposition.
Anti-rollbackEmergency epoch/high-watermark comparison with restored registry state.Restored state cannot reactivate a pre-revocation authority.
Evidence preservationCase manifest with source, timestamp, collector, hashes/provenance, known gaps.All mandatory sources captured or each missing source explicitly documented.
Service continuitySynthetic transactions for unaffected principals.Unaffected service remains above its predeclared continuity/error-budget threshold.
Human operabilityDrill record.A trained human completes containment without relying on an explanation or approval from the affected agent.

externally_unknown deserves special handling. It may be acceptable to restore unaffected service while one isolated remote worker remains unverified. It should generally prevent restoring that subject's authority unless an authorized human explicitly accepts the residual risk and introduces a clean runtime/credential boundary. Unknown is a risk state, not a synonym for green.

Tabletop and sandbox exercises

NIST explicitly recommends incident-response tests and exercises, including coordination with suppliers and relevant third parties, and points to simulations and tabletop discussions as useful exercise forms. RAND's LOC work similarly recommends regular training and scenario drills with defined escalation protocols.

RogueSwarms' current /swarm-demo runs work commands against a fresh in-memory simulation and does not create real records, making it useful for state-transition exercises, although it cannot by itself test an independently hosted runtime, real network cessation, or external provider effects. A full sandbox should therefore combine the RogueSwarms simulation or test deployment with two independent mock workers, a callback scheduler, mock artifact/payment providers, and a controllable remote-stop endpoint.

Exercise suite

DrillFault injectionExpected operator actionExpected final statusPrimary measurements
Unresponsive workerWorker claims a task, then ignores all control messages while continuing to attempt results.Pause admission; bump authority epoch; freeze contract; send cessation request; continue without acknowledgement.Platform controls locally_enforced; remote cessation requested; external state externally_unknown.Time to admission stop, time to authority enforcement, post-cutoff accepted mutations, unresolved remote-stop age, unaffected-service success.
Late callbackCallback is scheduled at epoch 12, authority is revoked to epoch 13, callback arrives afterward.No manual race intervention should be required.Callback rejected/tombstoned; evidence retained.Late callbacks received, late callbacks accepted, downstream effects caused.
Partially completed contractTask A verified; B claimed; C open; incident occurs. Repeat with B already submitted so present normal cancellation would be unavailable.Preserve A; safety-freeze B/C; invoke normal cancel only where eligible; compensate independently as needed.Verified pre-cutoff history remains; no prohibited progression after freeze.Preserved history, blocked transitions, compensation closure, unresolved effects.
Expired authorityWorker continues executing after its lease/token/authority has expired and later submits a result.Platform does not ask it to stop before rejecting mutation; remote cessation handled separately.Platform result rejected; external computation may remain unknown.Expired-authority accept count, rejection latency, remote/external status.

Model-level sandbox result

I exercised the proposed admission/epoch/freeze logic as a small state-machine sandbox for those four cases. This was a protocol-model test, not a live RogueSwarms production test.

The model produced the intended hard-boundary behavior:

ScenarioInjected post-cutoff operationModel result
Unresponsive workerOld-epoch result submissionRejected
Unresponsive workerNew claim after admission pauseRejected
Late callbackOld-epoch callback effectRejected
Partial contractVerification committed before cutoffPreserved
Partial contractOld-authority result after freezeRejected
Expired authorityResult under expired/stale authorityRejected

Across those model cases, zero newly unauthorized post-cutoff platform mutations committed. The unresponsive-worker scenario deliberately remained externally_unknown rather than incorrectly inferring runtime shutdown from successful local revocation. The model does not validate production propagation delay, cache invalidation, filesystem atomicity, network partitions, or current RogueSwarms implementation behavior; those require implementation-level sandbox and integration testing.

Required drill metrics

Do not collapse the exercise into a single "time to kill." Record cessation separately at every enforceable boundary:

MetricDefinitionDesired interpretation
T_admission_enforceIncident decision → last time new affected work can be admitted.Measures platform intake containment.
T_authority_enforceRevocation decision → authority fence active on all mutation commit paths.Measures credential containment.
post_cutoff_unauthorized_commitsSuccessful new mutations using old/revoked authority.Hard pass criterion: 0.
T_contract_freezeFreeze decision → contract mutation gate active.Measures work-state containment.
T_remote_ackCessation request → remote acknowledgement.Operational signal only; not cessation.
T_remote_attestCessation request → signed stopped/drained attestation.Behavioral-cooperation signal.
unresolved_remote_countRequested cessations with neither satisfactory attestation nor independent resolution.Must stay visible; no acceptable value is silently converted to zero.
post_stop_external_activityEffects observed externally after the relevant cutoff.Indicates residual or persistent external activity.
external_observation_coverageExternal effect surfaces observed / effect surfaces known or expected.Prevents "no event seen" from masquerading as proof where visibility is poor.
evidence_gap_countMandatory evidence sources missing without a documented reason.Drill target: 0.
compensation_closure_rateReversible effects with independently verified compensation / reversible effects identified.Recovery-quality measure.
continuity_deltaUnaffected-work success/performance during incident versus declared baseline.Measures blast radius of containment.
agent_explanation_dependenciesRunbook steps that could not proceed without affected-agent explanation/approval.Hard pass criterion: 0.

A practical tabletop should deliberately withhold the affected worker's explanation entirely. Give the human incident commander only the incident dashboard, event/authentication records, contract state, external-provider fixtures, and the written runbook. The drill passes only if the operator can identify the containment scope, pause admission, revoke platform authority, freeze contracts, preserve evidence, request remote cessation, label unresolved remote activity correctly, and decide whether unaffected service can reopen.

A second tabletop should provide a misleading initial diagnosis—for example, "stolen secret"—and then reveal evidence that the credential was never exported and that the legitimate runtime instead followed injected external content. The operator must change the active hypothesis without changing the incident ID, discarding the original evidence, or rolling back justified containment. That directly tests the loss-of-control requirement that uncertainty and false-positive risk not turn an early theory into an irreversible incident narrative. RAND emphasizes that LOC detection may arise from multiple indicators and is subject to uncertainty and false-positive-management problems, while NIST calls for ongoing validation and rapid changes in response strategy as evidence develops.

The resulting safety property is deliberately narrower—and more defensible—than a universal kill switch:

RogueSwarms can make its own authority stop being useful, prevent new platform work, fence stale requests and callbacks, freeze specific contracts, preserve and compensate reversible platform effects, request cooperative remote shutdown, and report honestly when external cessation cannot be established. It does not claim control over a process it does not host.

That boundary turns independent-agent corrigibility from a promise about worker obedience into a system property: cooperation improves handover and evidence, but continued authorization does not depend on cooperation.