You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is no code-level adapter contract: src/main.rs is a single 27,586-line file with zero trait declarations; each analyzer is a bespoke run_<tool>_kernel / run_<tool>_case function family plus hand-wired enum variants (Commands::*, partition constants). The conceptual contract at the head of docs/adapters.md is clear (five normalized outcomes, "no adapter may synthesize a tool result", never downgrade failure to not-reached), and schemas/result.schema.json fixes the output shape — but:
There is no "How to add an adapter" walkthrough anywhere; CONTRIBUTING.md gives it one sentence. The real onboarding path is imitating the (excellent) 1,000-line adapter READMEs, and nothing says so.
The schemas are nearly description-free: result.schema.json and freeze.schema.json have zero property descriptions; case.schema.json describes 3 of 21 top-level properties. Field semantics (negative_mechanism, witness_checkpoints, expected_analysis_capability) live scattered in docs prose.
docs/ has no index separating normative contracts from historical amendment logs, and no glossary for insider terms (freeze-bound, recorded-only, wave, stratum, amendment). The published website renders only a handful of pages, so the contract docs are repo-only.
Fix (increments)
A step-ordered "Adding an adapter" guide: required inputs, outcome normalization rules, evidence/timing/environment artifacts, validation commands, and the exact src/main.rs touchpoints.
description fields across all three schemas (or a schemas/README.md).
docs/README.md index + glossary.
Longer-term: extract an Adapter trait (or at least a shared runner module) from src/main.rs so an integration is a bounded, reviewable unit.
Found during an adversarial review of the repo (2026-09-02).
Activity
Adapter integration walkthrough, schema descriptions, and docs index (#…
Drop the four templates() overrides that repeat the contract default
Stamp the run environment with the population's tool key
Merge origin/main (Amendment A31) into the adapter-contract refactor
Clarify the ToolIdentity doc comments
Merge origin/main (real-project slice, freeze-revision guard) into th…
Merge origin/main (v0.7.0 freeze-prep pin bumps) into the refactor
Extract the adapter contract and split src/main.rs into modules (#148)