Skip to content

docs(humanizer): reconcile with blader/humanizer upstream, v0.3 -> v0.4 - #28

Draft
yulonglin wants to merge 1 commit into
mainfrom
worktree-humanizer-v04
Draft

docs(humanizer): reconcile with blader/humanizer upstream, v0.3 -> v0.4#28
yulonglin wants to merge 1 commit into
mainfrom
worktree-humanizer-v04

Conversation

@yulonglin

Copy link
Copy Markdown
Owner

Reviewed upstream blader/humanizer (now 33 patterns, up from 24 at first analysis) and folded in the genuinely new ones.

25 -> 31 patterns, 7 -> 8 categories.

New patterns

Pattern Confidence Category
Knowledge-cutoff disclaimers 97% Chatbot Artifacts
Promotional language (puffery) 84% AI Vocabulary
Superficial -ing significance clauses 86% Structural Tropes
Decorative emoji in headings 88% Formatting Tells (new)
Excessive boldface 78% Formatting Tells (new)
Title Case headings 72% Formatting Tells (new)

Category 8 (Formatting Tells) covers presentation-layer habits rather than word choice. These survive paraphrasing, so they still fire on lightly-edited LLM prose.

Key decision: patterns yes, philosophy no

blader/humanizer is a rewriter that transforms text and mandates stripping every em-dash. This is a detector that flags and scores. Patterns port across that boundary; the em-dash policy does not.

Kept the frequency-based stance: 1-2 em-dashes per page is normal human writing, 3+ per page is the signal. Adopting zero-tolerance would tank precision against the >90% target.

Added a "Deliberately Rejected" table so the reasoning survives:

  • Zero-tolerance em-dash elimination - conflicts with frequency-based scoring
  • Diff-anchored writing - coding-agent artifact, out of scope for draft review
  • Copula avoidance - deferred, not rejected; no characterisation precise enough to hit the precision bar yet

Drift fix

The three artifacts had diverged:

Artifact Was Now
claude/docs/humanizer-patterns.md 25 patterns / 7 cats 31 / 8 (canonical)
ai-safety-plugins agent prompt claimed both 25 and 23 31
ai-safety-plugins patterns JSON stale at 15 / 5 31 / 8

This doc is now the canonical source and names its two derived consumers inline, so the fix is structural rather than a one-time sync.

This PR contains the dotfiles doc only. The two derived artifacts in ai-safety-plugins are regenerated and validated locally but uncommitted - that repo was never isolated into a worktree, so it needs a look before committing.

Verification

Counts checked programmatically across all three: per-category declared vs actual, category totals, and header claims all agree at 31 / 8. JSON parses.

https://claude.ai/code/session_01HZxdsbK7sYFNJCP8VyBSDj

Reviewed upstream blader/humanizer (33 patterns) and folded in the genuinely
new ones. 25 -> 31 patterns, 7 -> 8 categories.

New patterns:
- Knowledge-cutoff disclaimers (97%)
- Promotional language / puffery (84%)
- Superficial '-ing' significance clauses (86%)
- Decorative emoji (88%), excessive boldface (78%), Title Case headings (72%)

New category 8: Formatting Tells - presentation-layer signals that survive
paraphrasing, so they still fire on lightly-edited LLM prose.

Key decision: adopted upstream's patterns but NOT its philosophy. blader is a
rewriter that mandates stripping every em-dash; we stay a detector with
frequency-based em-dash scoring (1-2/page fine, 3+/page a signal). Recorded in
a new 'Deliberately Rejected' table alongside diff-anchored writing (out of
scope) and copula avoidance (deferred - no characterisation precise enough to
hit the >90% precision bar).

Also fixes a three-way drift: the patterns JSON had gone stale at 15 patterns
while the doc and agent carried 25, and the agent claimed both 25 and 23 in
different sections. This doc is now the canonical source and names its two
derived consumers inline.
@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6ab3397b-15b6-47fc-bc72-57c12eba4a07

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch worktree-humanizer-v04

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant