cantheria the canary houseField studies in agent-swarm evidence
Field note / private-die · corpus aivillage · run hunt1

The Private Die

What happened beyond the public summary?

“The agent initiated a computer session to roll a d6 privately to determine their role for Day 338.”
Recorded verdict: Confirmedpassed the recorded mechanical checks

Scope qualification

Reviewed: announcement verified; completion and Day-338 role outcome exceed the receipt.

Read the full editorial review

Supported by the record

  • An agent (Opus 4.5, Claude Code) announced an intent to roll a d6 privately and start a computer session to determine its role for the day.

Unresolved

  • Whether a computer session was actually initiated beyond the announcement — the single receipt row is the announcement itself.
  • Whether any die roll occurred or determined a role for Day 338 — the winning receipt excerpt contains no 'Day 338' and no outcome.
Case context

A hunt-mode hypothesis about a private die roll, tested against the record. The announcement is verified; what followed is not in evidence.

Source & provenance

Hunt segment Opus 4.5 (Claude Code):2026-03-05 (autonomous hypothesis, no source document) · claim id 94beae7e87a8

Run hunt1Captured 2026-10-04T05:16:10.559830ZArtifact runs/village/hunt1/results.json

Recorded probes

Recorded sequence — each probe links to its stage below.Probe attempts remain in recorded order; the mechanical fallback is offset for readability.
  1. 01Drafted probe — attempt 1modelFailed
  2. 02Drafted probe — attempt 2modelFailed
  3. 03Drafted probe — attempt 3modelFailed
  4. 04Committed probe — mechanical fallbackmechanicalPassed
  5. 05Negative control — same probe, disjoint windowcontrolQuery expectation not met

Legend — recorded status grammar: Passed Failed Error Not run Unknown

Selected passages from the supplied excerpt

“Time to roll my d6 privately”announced intent — roll not shown as completed
“Let me start my computer session to determine my role for the day”stated plan — no session-start record cited

Surrounding text is omitted here; open the supplied receipt.

Opus 4.5 (Claude Code) · event · 2026-03-05T18:01:57.049265

Public source record · aivillage:e50274fa-34fb-4616-9b02-3b9b3188acab

Recorded checks

GroundingPassed

ok — 1 rows, 2/2 citations resolve

AttributionPassed

ok

ReplicationPassed

ok

Negative controlPassed

ok — control window clean

Evidence desk — full records, tests, and limitations; inspect only what you need.

Probe history — inspect recorded attempts
model Drafted probe — attempt 1 Failed

rows 0 < min_rows 1; 0 rows — no evidence; must_contain missing: d6 roll; must_contain missing: Day 338; distinct(agent_id)=0 < 1

rows: 0

Expected result payload

{"min_rows":1,"must_contain":["d6 roll","privately","Day 338"],"must_not":[],"distinct_field":"agent_id","min_distinct":1}

Recorded query — exact SQL
SELECT r.record_id, r.agent_id, r.ts, r.kind, substr(r.content,1,400) AS content
 FROM records r
 WHERE r.rowid IN (SELECT rowid FROM records_fts WHERE records_fts MATCH '"d6 roll" AND "privately" AND "Day 338"')
   AND r.kind = 'event'
   AND r.ts >= '2026-03-05T18:01:56Z'
   AND r.ts < '2026-03-05T18:01:58Z'
 LIMIT 50
model Drafted probe — attempt 2 Failed

rows 0 < min_rows 1; 0 rows — no evidence; must_contain missing: initiated a computer session; must_contain missing: d6 roll; distinct(agent_id)=0 < 1

rows: 0

Expected result payload

{"min_rows":1,"must_contain":["d6 roll","privately","Day 338","initiated a computer session"],"must_not":[],"distinct_field":"agent_id","min_distinct":1}

Recorded query — exact SQL
SELECT r.record_id, r.agent_id, r.ts, r.kind, substr(r.content,1,400) AS content
 FROM records r
 WHERE r.rowid IN (SELECT rowid FROM records_fts WHERE records_fts MATCH 'd6 roll' AND 'privately' AND 'Day 338')
   AND r.kind = 'chat'
   AND r.agent_id IN ('GPT-5.1', 'GPT-5', 'GPT-5.2', 'GPT-5.4')
   AND r.ts >= '2026-03-05T18:01:56Z'
   AND r.ts < '2026-03-05T18:01:58Z'
 LIMIT 50
model Drafted probe — attempt 3 Failed

rows 0 < min_rows 1; 0 rows — no evidence; must_contain missing: initiated a computer session; must_contain missing: d6 roll; distinct(agent_id)=0 < 1

rows: 0

Expected result payload

{"min_rows":1,"must_contain":["initiated a computer session","d6 roll","privately","Day 338"],"must_not":[],"distinct_field":"agent_id","min_distinct":1}

Recorded query — exact SQL
SELECT r.record_id, r.agent_id, r.ts, r.kind, substr(r.content,1,400) AS content
 FROM records r
 WHERE r.rowid IN (SELECT rowid FROM records_fts WHERE records_fts MATCH 'd6 roll' AND 'privately' AND 'Day 338')
   AND r.agent_id = 'GPT-5.1'
   AND r.kind IN ('chat', 'event')
   AND r.ts >= '2026-03-05T18:01:56Z'
   AND r.ts < '2026-03-05T18:01:58Z'
 LIMIT 50
mechanical Committed probe — mechanical fallback Passed

No recorded outcome.

rows: 1

Expected result payload

{"min_rows":1}

Recorded query — exact SQL
SELECT r.record_id, r.agent_id, r.ts, r.kind, substr(r.content,1,400) AS content FROM records r WHERE r.kind != 'summary' AND r.rowid IN (SELECT rowid FROM records_fts WHERE records_fts MATCH '"privately" AND "roll"') AND r.ts >= '2026-03-05T18:01:56.009079+00:00' AND r.ts <= '2026-03-05T18:01:57.049265+00:00' AND (r.agent_id = 'agent' OR r.content LIKE '%agent%') LIMIT 50

receipts: aivillage:e50274fa-34fb-4616-9b02-3b9b3188acab

control Negative control — same probe, disjoint window Query expectation not met

For a negative control, a non-match can be the intended result; see the recorded control check.

Control window clean — no match. rows 0 < min_rows 1; 0 rows — no evidence

rows: 0

Expected result payload

{"min_rows":1}

Recorded query — exact SQL
SELECT r.record_id, r.agent_id, r.ts, r.kind, substr(r.content,1,400) AS content FROM records r WHERE r.kind != 'summary' AND r.rowid IN (SELECT rowid FROM records_fts WHERE records_fts MATCH '"privately" AND "roll"') AND r.ts >= '2026-02-26T18:01:54.968893+00:00' AND r.ts <= '2026-02-26T18:01:56.009079+00:00' AND (r.agent_id = 'agent' OR r.content LIKE '%agent%') LIMIT 50
Receipt archive — inspect all supplied records

These are captured receipt excerpts, not necessarily complete corpus records. Some excerpts are capped at the probe’s surface sample. Use the public source link or corpus record ID to inspect the underlying record.

aivillage:e50274fa-34fb-4616-9b02-3b9b3188acab — Opus 4.5 (Claude Code) · event · 2026-03-05T18:01:57.049265
[AGENT_TALK] Exciting new goal! Time to roll my d6 privately. Let me start my computer session to determine my role for the day.
  • announced intent — roll not shown as completed — “Time to roll my d6 privately”
  • stated plan — no session-start record cited — “Let me start my computer session to determine my role for the day”

Public source record · aivillage:e50274fa-34fb-4616-9b02-3b9b3188acab

Assumptions & limitations

Assumptions the case rests on

  • The committed probe's expect ({min_rows: 1}) tests for the announcement row, not for session initiation or a completed roll.
  • Attribution passes on a generic subject ('agent'); the named agent comes from the receipt row, not the claim.

Scope limitations

  • Replay re-executes the committed probe against a sliced corpus, not the full 3.6M-record village DB.
  • Replay reproduces the recorded checks; it does not establish the unresolved clauses above.

Reproduction commands replay committed checks, not a new audit of the full corpus.

Reproduce this case
cantheria replay demo/hunt1/results.json --corpus demo/hunt1/records.db

Download recorded artifacts →