clearfelt-writing · v0.8.0 · runs offline

A score computed in code, not a model's opinion of itself.

Most anti-slop tools hand the model a big prompt and ask you to trust the rewrite. This one parses Markdown rule files and computes a 0 to 100 Human Score in code, so the number is reproducible by anyone who runs the script, on any file, at any time.

Zero dependencies. Node standard library only. No network calls, ever.

andrei-ionut-nita / clearfelt-writingView on GitHub ↗

Scores and rewrites AI-sounding writing against a sourced rule dictionary. 197 tests, zero dependencies, runs offline.

JavaScriptMIT licencedocs in README
$npx skills add andrei-ionut-nita/clearfelt-writing

Real snippets, real scores, computed by detect.mjs

Before22

In today's fast-paced digital world, it is important to note that AI is transforming every industry. It's not a tool. It's a revolution. Experts agree that companies must delve into this technology to unlock seamless growth. The future isn't coming. It's already here.

After100

AI is already changing how most industries work, and that's not really in dispute anymore. What's less obvious is how fast companies actually need to move on it. We've seen teams get real traction just by picking one workflow and testing it for a month. That's usually enough to know if it's worth the bigger commitment.

$ node scripts/detect.mjs --mode report yourfile.md

{
  "target": "yourfile.md",
  "score": 22,
  "leadDriver": "Rule-hit deduction (capped from 67) (-65 of the score)",
  ...
}

Real output, from a fresh file in an empty directory, nothing configured first. No setup, no voice profile, no config file.

Five commands

/clearfelt-writing setup

Builds a voice profile and a domain profile through a short interview. Optional, recommended first, re-runnable any time.

/clearfelt-writing audit

Scores a file or directory, reports every hit with line numbers plus a separate readability report. Never edits anything.

/clearfelt-writing rewrite

Loops scrub, re-score and preservation-check until it clears the threshold, then shows a before/after and asks. Two approvals, not one.

/clearfelt-writing write

Turns a seed into a full first draft at a chosen length, through the same scoring and preservation pass. Never overwrites the seed.

/clearfelt-writing explain

Prints every resolved config setting and which layer set it, plus voice, domain and hook state, in one place.

Guarantees checked by code, not promised by a prompt

Every rule cites a source.

Each rule carries a source field pointing at real research or named prior art. Claims that could not be traced to a real paper are labelled unresolved and stay off by default rather than counting against your score.

Preservation is diffed.

A locked span that changed, or a missed constraint, always blocks the write. A dropped number, date, proper noun or quote surfaces as a disclosed warning.

Hard limits, actually checked.

--max-chars, --max-words, --must-contain and --must-not-contain are verified against the text it produced, not prompt-instructed and hoped for.

Readability kept separate.

Flesch-Kincaid, Gunning Fog and processing-fluency signals are reported apart from AI-tell scoring, so audience fit and slop detection never blur into one number.

Calibrated to you.

Hand it a sample of your past writing and it measures your own sentence variance, paragraph variance and vocabulary diversity, so scoring compares you to your rhythm, not a generic baseline.

Tested, not just trusted.

197 tests across every script, an eval against a labelled corpus that reports its pass rate honestly including where it falls short, and a lint pass for repo drift.

What it is not for

It helps your own writing sound like you, consistently, across drafts. It is not built or intended to disguise AI-generated text as human-written anywhere an authorship claim carries real weight: an academic submission, a byline, a filing.