Problem
The claim→test→confirm/refute cycle is designed prospectively (hypothesis first, experiment next, verdict last), but a real agent writes to memory retrospectively — after the check has already happened in-session (Bash, web, subagents) and the verdict is known. The stages collapse into a single call: a claim is born with the verdict baked into its text, and stays open forever.
Numbers (audit of 13,105 sessions + live graph)
test — 0 calls in the entire history, including 76k dev calls. The only session that honestly lived the cycle (10 claims → 5 refute + 2 confirm) skipped test: evidence was ordinary episodes ("measured, not assumed" experiment write-ups) passed via by.
- 15 of 21 hypothesis nodes are forever open; at least 7 carry the verdict in their body/name (all-caps "REFUTED" / "VERDICT: PARTIAL" style). The graph contains an open node whose own body says it's refuted.
- 13 of 23 organic claims were made by one-shot subagents that die right after writing and structurally cannot come back with a verdict.
- HypothesisStatus::Inconclusive exists in core (kaeru-core/src/graph/node.rs:169-174) but is not exposed by any MCP tool — agents write "PARTIAL" as text.
- test's own semantics disagree: description "Run an experiment…" (future) vs the method param doc "How the experiment was conducted" (past); the name collides with the "run the tests" mental model (cargo test/pytest).
Proposal
- Support the retrospective pattern:
claim --verdict supported|refuted|inconclusive --by <evidence> — a single-call closed hypothesis for subagents and post-hoc capture.
- Expose Inconclusive (a verdict param on confirm/refute, or separately).
- test: either remove it (0 calls) or rename (evidence/experiment) and allow post-hoc registration of an existing result node.
- Close the loop on re-entry — open claims in awake (see the read-back sections issue).
Problem
The claim→test→confirm/refute cycle is designed prospectively (hypothesis first, experiment next, verdict last), but a real agent writes to memory retrospectively — after the check has already happened in-session (Bash, web, subagents) and the verdict is known. The stages collapse into a single call: a claim is born with the verdict baked into its text, and stays open forever.
Numbers (audit of 13,105 sessions + live graph)
test— 0 calls in the entire history, including 76k dev calls. The only session that honestly lived the cycle (10 claims → 5 refute + 2 confirm) skipped test: evidence was ordinary episodes ("measured, not assumed" experiment write-ups) passed viaby.Proposal
claim --verdict supported|refuted|inconclusive --by <evidence>— a single-call closed hypothesis for subagents and post-hoc capture.