Skip to content Aller au contenu

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

Introduction

Built for readers whose attention is stretched — ADHD, dyslexia, fatigue, a second language, or an accessibility-sensitive context.

lucid-lint reads your Markdown or plain text and flags the moments that make prose hard to process. It does not rewrite your voice. It hands you a short list and gets out of the way.

Before

The caching subsystem, which was introduced in an earlier milestone, turned out to interact poorly with the new request pipeline under sustained load, and the investigation that followed required multiple rounds of profiling.

After

The caching subsystem was introduced earlier. It interacts poorly with the new request pipeline under sustained load. The investigation required several rounds of profiling.

Three ideas, colour-matched left to right — the rewrite shortens the sentences without losing any of them. lucid-lint flagged sentence-too-long (43 words) and consecutive-long-sentences. It did not propose the rewrite — that's yours.

What makes it different

Most prose tools measure style (write-good), grammar (Antidote), or a surface readability score (Flesch). lucid-lint measures cognitive load — the mental effort a reader spends to understand a sentence. It flags the patterns that the research behind Sweller, Gibson, Graesser, and Coh-Metrix single out.

  • Bilingual EN/FR from day one, with equal quality.
  • Deterministic by default. Identical input produces identical output. LLM-based rules live in optional plugins.
  • CI-native. Plain-text and JSON outputs; exit codes that pre-commit and GitHub Actions understand without a wrapper.
  • Profile-based. Pick dev-doc, public, or falc (Easy-to-Read), then override per rule if you want.

Project status

lucid-lint is at v0.2 (released 2026-04-22). All 25 rules listed in RULES.md are shipped (17 from v0.1, 8 added during the v0.2 cycle), alongside the hybrid scoring model — a global X / max score plus five per-category sub-scores, computed on top of the diagnostics. Pre-1.0: breaking changes remain possible between minor versions. See the roadmap for what comes next.

Quick taste

A clean file earns the full 100/100 and a wordmark banner — the peak-end moment of a passing lint run:

Terminal capture: a clean lucid-lint run showing the three-part wordmark banner, the message “No issues found.”, and a score block reading 100/100 with every category bar full

~~~~~ ⟨ • ⟩ ─────  lucid-lint  v0.2.0
                   cognitive accessibility linter · prose · EN / FR
                   ────────────────────────────────────────────────

No issues found.

────────────────────────────────────────────────────────────
score: 100/100
       structure    █████  20/20
       rhythm       █████  20/20
       lexicon      █████  20/20
       syntax       █████  20/20
       readability  █████  20/20
cargo install lucid-lint

# Lint a file
lucid-lint check README.md

# Strictest profile (Easy-to-Read / FALC)
lucid-lint check --profile=falc docs/

# Stdin
echo "This is a test sentence." | lucid-lint check -

# JSON for CI
lucid-lint check --format=json docs/

# Fail the build if the aggregate score drops below 85/100
lucid-lint check --min-score=85 docs/

Where to next

Reading preferences

The whole site is built as a reading companion. Pick the font that reads best for you — it will stick across pages.

Atkinson Hyperlegible Next

A dense paragraph can ask a lot of a stretched mind. Every comma, every clause, every bracketed aside adds a little cost. Good prose keeps that cost low.

Line spacing and text size are on the way as sliders. Until then, pick a font and your browser's zoom is honoured.

License

Dual-licensed under MIT or Apache-2.0, at your option.