No result does not mean no effectDurable dispatch without an outcome requires unknown-outcome semantics and external-state verification.
Classify before synthesis.
Use not-started only before durable dispatch; otherwise preserve unknown outcome.
Never fabricate an assistant tool name, arguments, or intent to satisfy the provider.
Use three repair boundaries.
producer
→admit validAgent loop
→close onceadapter
→contain oldprovider
valid wireDo not collapse adjacent defects.
Correlation is impossible. Reject before matching or durable append.
A presentation parser may fail without changing call/result cardinality.
Name the producer and injected message before assigning root cause.
Six proof gates.
- 01Every authentic call ID is non-empty and unique.
- 02Every call closes exactly once in declaration order.
- 03Started calls retain unknown-outcome semantics.
- 04Orphan results never invent assistant actions.
- 05Wire containment emits an observable repair classification.
- 06DeepSeek and pi-ai adapters pass the same poisoned fixtures.
Primary evidence.
Keep durable truth and provider validity.
The canonical guide defines five malformed shapes, transactional recovery, three repair layers, sanitizer review, a linear validator, and sixteen regression gates.
Read the complete guide