Skip to content
charly-vibesPublic

About

Epistemic discipline tool for LLM workflows — makes assertions machine-checkable

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

427 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

"Don't speak I know just what you're sayin' So please stop explainin' Don't tell me 'cause it hurts Don't speak I know what you're thinkin' I don't need your reasons Don't tell me 'cause it hurts" — No Doubt

dont

Why: autonomous LLM agents assert claims they never grounded — hallucinated facts compound silently across a session. dont forces epistemic discipline: claims must be flagged, grounded, and concluded before the agent may act on them, enforced as a hard gate in its own and other tools' CI. Status: beta · check/define/flag/conclude shipped · Motivation & design · charly-vibes Tool Ecosystem dont is a Rust CLI for forcing epistemic discipline in autonomous LLM workflows.

It gives agents an explicit state machine for claims and terms so ungrounded assertions do not quietly become accepted project truth.

What it does

  • records claims with dont conclude
  • records project vocabulary with dont define
  • registers doubt with dont trust
  • verifies with evidence via dont flag
  • supports lifecycle and inspection commands like ground, show, list, why, trace, lock, and prime

Why it exists

Prompting a model to “be more careful” is weaker than forcing it through an external workflow. dont makes that workflow explicit: claims, evidence, status transitions, refusals, and remediation all become machine-checkable.

Project status

This repository contains both:

  • a working Rust implementation
  • OpenSpec source-of-truth specs in openspec/
  • user-facing docs in docs/src/
  • workflow context in .wai/

Installation

Binary (curl)

V=$(basename "$(curl -fsSLI -o /dev/null -w '%{url_effective}' \
  https://github.com/charly-vibes/dont/releases/latest)" | sed 's/^v//')
TGT="$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/^x86_64$/amd64/; s/^aarch64$/arm64/')"
curl -fsSL "https://github.com/charly-vibes/dont/releases/download/v${V}/dont_${V}_${TGT}.tar.gz" | tar xz
chmod +x dont && sudo mv dont /usr/local/bin/

Cargo (crates.io)

cargo install dont-cli

Installs the dont and dt binaries.

Homebrew (macOS & Linux)

brew tap charly-vibes/charly
brew install dont

Scoop (Windows)

scoop bucket add charly https://github.com/charly-vibes/scoop-charly.git
scoop install dont

From source

git clone https://github.com/charly-vibes/dont.git
cd dont
cargo build --release

Quick start

dont prime

Common local commands:

just test
just lint
just ci

Learn more

  • Book intro: docs/src/introduction.md
  • Tutorial: docs/src/tutorial.md
  • Purpose: docs/src/purpose.md
  • Grounding workflow: docs/src/grounding-workflow.md
  • OpenSpec project context: openspec/project.md
  • Contributing guide: CONTRIBUTING.md

Gate Integration

dont survives in a project only when wired into a failing gate. Without one, usage decays to zero — nothing breaks when claims go ungrounded, so the habit dies.

Pre-push hook (lefthook)

pre-push:
  parallel: true
  commands:
    check-claims:
      run: dont check
      skip: merge

CI step

- name: Check grounded claims
  run: dont check

No jq or python required — dont check exits 1 when any claim is unverified or doubted, 0 otherwise.


A note on authorship

All the code in this repository was generated by a large language model. This is not a confession, nor an apology. It's a fact, like the one that says water boils at a hundred degrees at sea level: neutral, technical, and with consequences one discovers later.

What the human did is what tends to happen before and after things come into existence: thinking. Reviewing requirements, arguing about edge cases, understanding what needs to be built and why, deciding how the system should behave when reality —which is capricious and does not read documentation— confronts it with situations nobody anticipated. The hours of planning, of design, of reading specifications until exhaustion dissolves the boundary between understanding and hallucination.

The LLM writes. The human knows what it should say.

There is a distinction, even if looking at the commit history makes it hard to find. The distinction is that a machine can produce correct code without understanding anything, the same way a calculator can solve an integral without knowing what time is. Understanding what that integral is for, whether it actually solves the problem, whether the problem was the right problem to begin with — that remains human territory. For now.

Leer en español

Documentation provenance

Rendered docs are generated artifacts; the repository sources are authoritative — edit the repo sources, not the rendered output.

About

Epistemic discipline tool for LLM workflows — makes assertions machine-checkable

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages