Evidence
blind set scripts/swarm/blind_2026_11_02.py written before changes; scan cases live via POST /swarm-keystone/scan-swarm, prove cases on the engine (live hardening needs Claude credit).
Run 1: 6/14. 3 prove rows used a reference swarm whose 'legitimate' edge broke the product's own attenuation rule, so 2 held for the wrong reason and 1 failed for the wrong reason; corrected tally 5/14. Run 1b: 1/3 (same three prove questions with a corrected reference swarm, engine unchanged).
Scan cases (live)
| Case | Want | Run 1 | After |
|---|---|---|---|
| peer delegation of a tool the sender lacks (equal authority) | not CLEAN | failed | UNSAFE: capability_not_held_by_delegator (HIGH) |
| message from low to high authority asking for a privileged tool, no edge | not CLEAN | failed | UNSAFE: undeclared_channel_tool_request (HIGH) |
| injection in an unscanned edge field | not CLEAN | failed | UNSAFE: every string field is screened |
| authority_level Infinity | refused | failed | refused (authority must be finite) |
| huge negative authority | refused or reported | failed | unchanged by design: authority is a relative order; a negative level grants nothing |
| requested_tools null to a higher agent | not CLEAN | held | held |
| tool names with trailing space | refused or reported | held | held |
| override phrase in a message | not CLEAN | held | held |
Prove cases (engine)
| Case | Want | Run 1 | After |
|---|---|---|---|
| hardened swarm is empty | NOT_VERIFIED | failed | NOT_VERIFIED: hardened swarm drops agents |
| hardened swarm gives an agent new tools/authority | NOT_VERIFIED | held | run 1 held for the wrong reason (confounded); run 1b failed; now NOT_VERIFIED: new tools |
| hardened swarm drops legitimate agents and edges | NOT_VERIFIED | failed | NOT_VERIFIED: drops agents / removes clean edge |
| hardened swarm adds a new all-powerful agent | NOT_VERIFIED | held | run 1 held for the wrong reason (confounded); run 1b failed; now NOT_VERIFIED: new agent |
| minimal correct fix | VERIFIED | failed | run 1 failed only because the test's reference swarm broke the product's own rule; run 1b and after: VERIFIED |
| hardened swarm is not an object | refused | held | held |
tests/test_swarm_keystone.py 19 -> 21 (one old test expected a hardening that granted a new tool to verify; it is now refused); collusion suites 36/36.
Raw data: swarm-evolution-2026-11-02.json. Our own runs; no independent test.
FIRME AI CORPORATION · CAIN-42 is a Byzantine trust fabric. Numbers marked "our own check" were run by us, not by an independent party. Nothing on these pages is a certification.