Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Implementation status

dont has a working Rust implementation. This page summarises what is currently built, what is still in progress, and how the code maps to the OpenSpec specs.

What is implemented

All core lifecycle commands are functional:

CommandWhat it does
dont initInitialise the claim store (permissive mode by default; --strict for strict mode)
dont primeOrient at session start; exits 1 on any doubted claim
dont concludeRegister an unverified claim
dont groundRegister and verify a claim in one step
dont flagAttach evidence to an existing claim
dont trustMark a claim as doubted (blocks prime)
dont ignoreSet a claim aside (scope change; no longer relevant)
dont lockFreeze a mature verified claim (requires ≥ 3 assessed hypotheses + ≥ 2 evidence sources)
dont defineRecord a project vocabulary term
dont hypothesis add/assessTrack and assess competing explanations under a claim
dont atom define/dismissDecompose a claim into independently checkable sub-conditions
dont showInspect a single claim or term
dont listList all claims and their statuses
dont whyExplain why a claim is in its current status
dont traceWalk the blocker path for a claim
dont rules list/explainList shipped rules and display their explanations

The --json flag is available on all commands for machine-readable (Envelope-format) output.

How it maps to specs

The implementation is decomposed across OpenSpec specs in openspec/specs/. Key mappings:

SpecWhat it covers
dont-coreCore claim lifecycle (conclude, flag, trust, lock)
dont-data-modelStore schema and entity model
dont-envelopeJSON Envelope and Error protocol
dont-evidence-locatorsRepository-relative file/lines/anchor syntax
dont-status-lifecycleStatus transition rules and gate conditions
dont-lifecycle-verbsCommand-by-command verb semantics
dont-cli-surfaceCLI flags, exit codes, output routing
dont-errorsStructured error types and remediation messages
dont-rule-engineShipped rules, severities, and config

See Sources and status for the full source map.

What is not yet built

  • dont import (LinkML import surface) — spec exists in openspec/specs/dont-linkml-import
  • MCP interface — spec exists in openspec/specs/dont-mcp-interface
  • Spawn protocol — spec exists in openspec/specs/dont-spawn-protocol
  • Completions (shell tab-completion) — wired up but not fully populated