agentleFS
Nisus74Nisus74/humanise/CLAUDE.md

humanise

CLAUDE.md1 starsChanged 5 months agoMITView on GitHub

Guidance for Claude (and contributors) working on humanise: an open-source skill that strips AI tells from writing and drafts in a specific person's voice. Cross-platform (Claude Code, Codex, Gemini, Cursor and more), shipped as a skill plus an npm CLI. If a change only helps one person's writing, it's a profile change (their fork). If it helps everyone, it's an engine change (a PR). Every engine change clears the gate in skill/evals/self-harness-loop.md: Keep edits minimal: change only the surface the…

The file

We split this CLAUDE.md into the rules it gives an agent

7 rules. About 0 are common, 3 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If a change only helps one person's writing, it's a profile change (their fork).

    line 10
  2. Very specific:

    Every engine change clears the gate in skill/evals/self-harness-loop.md:

    line 25
  3. Very specific:

    Auditable: add a skill/CHANGELOG.md entry (target, surface, evidence, eval result).

    line 29
  4. Distinctive:

    Keep edits minimal: change only the surface the failure needs, preserve what already passes, no broad rewrites.

    line 31
  5. Distinctive:

    No new dependencies without a strong reason (CLI = Node built-ins.

    line 47
  6. Very specific:

    Don't apply the prose sweep to code, config, or quoted material (see SKILL.md, "When to apply").

    line 48
  7. Very specific:

    Add a provider: a row in cli/providers.mjs (PROVIDERS and DETECT), then rebuild.

    line 50

≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

CLAUDE.md

Guidance for Claude (and contributors) working on humanise: an open-source skill that strips AI tells from writing and drafts in a specific person's voice. Cross-platform (Claude Code, Codex, Gemini, Cursor and more), shipped as a skill plus an npm CLI.

The one rule: body vs soul

  • Body (engine): skill/SKILL.md, skill/references/, skill/evals/, skill/agents/, skill/commands/, skill/scripts/. Universal and shared. Improve this.
  • Soul (profile): skill/profile/ holds a user's own soul, plus the voice corpus (flat sample-*.md files) and fingerprint. Personal. Never commit a profile/. Never put one person's voice into the engine. The repo ships skill/profile.template/ and skill/profile.example/ only.

If a change only helps one person's writing, it's a profile change (their fork). If it helps everyone, it's an engine change (a PR).

Repo map

  • skill/: the source skill. This is what ships and installs.
  • cli/: the zero-dependency Node CLI (bin/cli.js) and the provider map (providers.mjs).
  • scripts/build.mjs: compiles skill/ into dist/<provider>/. dist/ is generated; never hand-edit it. Edit skill/ and rebuild.
  • docs/: getting-started.md, claude-desktop.md, SETUP.md, body-and-soul.md, platforms.md, DEVELOP.md.
  • The detector is Python (skill/evals/assertions/writing_checks.py), standard library only. The CLI shells to it; it is not ported to JS.
  • Tests and evals live in skill/evals/assertions/: selftest.py is the held-in battery (npm test); run_all.py runs the full evals.json suite into benchmark.json. (Top-level tests/ is a placeholder.)
  • skill/config.example.yml: the per-user engine config to copy to skill/config.yml (gitignored). Sets dialect, register, channels and a custom slop overlay.
  • .claude-plugin/plugin.json: the plugin manifest. Release-critical; verify it and the per-harness skill paths before publishing.

The acceptance gate (read before changing the engine)

Every engine change clears the gate in skill/evals/self-harness-loop.md:

  1. Held-in green: npm test (the Python selftest) passes. Add a fixture if you add a detector.
  2. Held-out not regressed: the pairwise voice test (skill/evals/indistinguishability.md) and the reserved fixtures in skill/evals/holdout-evals.json do not get worse. Never tune a change against the holdout file; it exists to catch tuning-to-the-battery.
  3. Auditable: add a skill/CHANGELOG.md entry (target, surface, evidence, eval result).

Keep edits minimal: change only the surface the failure needs, preserve what already passes, no broad rewrites.

The gate is runnable end to end via /humanise improve (benchmark, blind voice test, mining, gated proposals); /humanise learn captures the user's real edits into skill/profile/learning/ledger.jsonl. Everything under skill/profile/learning/ is soul: the user's verbatim text, gitignored, never shipped.

Commands

npm run build                                  compile skill/ -> dist/<provider>/
npm test                                       held-in selftest (Python)
node cli/bin/cli.js detect <file> [dialect] [medium]    run the checker on a draft

Conventions

  • Three agent-guidance files, one rule set. CLAUDE.md (here), AGENTS.md (Codex and others), and GEMINI.md (Gemini, Antigravity) each restate the body/soul rule, the "don't sweep code/config" rule, and how to run the checker. They drift: change a shared rule in one, change all three. Canonical checker entry point is node cli/bin/cli.js detect (it shells to writing_checks.py); python3 skill/evals/assertions/writing_checks.py <file> <dialect> [medium] is the same checker without the CLI.
  • Dogfood the prose. Write the repo's own docs (README, docs/, this file) to humanise's standard: no em dashes or slop, and specifics over fluff. Run the checker on substantial docs before committing (node cli/bin/cli.js detect <file>). A writing tool whose own README reads like AI undercuts itself.
  • No new dependencies without a strong reason (CLI = Node built-ins; checker = Python stdlib).
  • Don't apply the prose sweep to code, config, or quoted material (see SKILL.md, "When to apply").
  • Rules live in references/ and detectors in writing_checks.py; subagents in agents/.
  • Add a provider: a row in cli/providers.mjs (PROVIDERS and DETECT), then rebuild.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.