Naming
Crates
Section titled “Crates”Public package names use hyphens:
dent8-coredent8-storedent8-store-postgresdent8(published CLI package; source lives undercrates/dent8-cli)dent8-policydent8-mcpdent8-debuggerdent8-export
Rust crate names use underscores:
dent8_coredent8_storedent8_store_postgres
Commands
Section titled “Commands”The binary is dent8.
Command groups:
dent8 schema postgresdent8 assert <subject> <predicate> <value> [--authority <level>] [--source <source>]dent8 reinforce <subject> <predicate> [--authority <level>] [--source <source>]dent8 contradict <subject> <predicate> <opposing-value> [--authority <level>] [--source <source>]dent8 supersede <subject> <predicate> <new-value> [--authority <level>] [--source <source>]dent8 expire <subject> <predicate> [--authority <level>] [--source <source>]dent8 retract <subject> <predicate> [--authority <level>] [--source <source>]dent8 replay <subject> <predicate>dent8 explain <subject> <predicate>dent8 conflictsdent8 completions <bash|elvish|fish|powershell|zsh>dent8 native scan --agent <profile>dent8 native reconcile --agent <profile>dent8 daemon statusdent8 daemon servedent8 mcp servedent8 mcp proxy
Subjects use <kind>:<key> (person:alice, repo:dent8) so the fact reads left-to-right:
subject, predicate, value. Authority and source are flags because they are provenance metadata.
Global CLI flags, such as --color auto|always|never, should control presentation only and
must not change firewall semantics.
Prefer verbs that name integrity actions rather than generic memory actions. For example, use
supersede, not memory update.
Event Types
Section titled “Event Types”Event type strings use dotted names:
fact.assertedfact.reinforcedfact.contradictedfact.supersededfact.expiredfact.retractedfact.retrievedfact.used_in_decisionfact.challenge_rejected
Use past-tense event names because events are immutable facts. Commands can be imperative; events should describe what happened.
Tables
Section titled “Tables”Postgres tables use the dent8_ prefix:
dent8_event_logdent8_claim_projectiondent8_claim_edgedent8_id_allocatordent8_replay_runs
Use explicit prefixes in text IDs during early development:
fact_...event_...evidence_...source_...actor_...replay_...
The exact ID generator can change later. The important invariant is that IDs remain stable in the event log.