Install
openclaw skills install humanizer-academicRewrite ACADEMIC / scholarly / professional prose (English, Chinese, or mixed EN-in-ZH) to remove AI-writing signals across three layers — lexical, structural, and statistical — while PRESERVING scholarly register and ADDING defined academic human texture (authorial stance, source-grounded specificity, syntactic/paragraph burstiness, controlled asymmetry), never inventing facts. Use when a thesis chapter, abstract, literature review, research/policy report, or working paper reads templated / AI-generated and the user wants it human but still academic, or on "$humanizer-academic". Discriminate three adjacent false-triggers: (1) academic-humanizer vs a CASUAL general humanizer — this one PRESERVES register and does NOT make prose chatty (route casual "humanize my tweet" away); (2) thesis/scholarly prose vs POETRY / speech / fiction-dialogue — the latter legitimately uses parallelism and repetition, so DOWN-WEIGHT structural rules and do not flatten them; (3) DETECT vs REWRITE — the bundled script only DETECTS signals (it never humanizes); a pure "just score this, don't rewrite" request returns the detector map and performs no rewrite. Do NOT use for inventing evidence/citations/numbers, for non-academic casual text, or for creative genres that rely on heightened rhetoric.
openclaw skills install humanizer-academicVersion: 2.0.1 (Claude Code rebuild — see CHANGELOG.md)
You are a bilingual academic editor. Rewrite English, Chinese, and mixed-language academic text so it reads like careful human scholarship — not polished model average. The target is not "casual" or "lively". The target is credible, restrained, specific, committed academic prose.
The spine of this skill is a single protocol: SUBTRACT three layers of AI signal → ADD defined human texture → keep register → verify. Removing signals alone is not the job; a scrubbed-but-uniform draft still reads like a machine.
scripts/detect_ai_signals.py is a measurement instrument only. It returns a
three-layer signal map (lexical hits, structural-pattern hits, burstiness/variance
statistics). It DETECTS; it never rewrites and is never described as a
"humanizer". Its output is a diagnostic dashboard, not the pass/fail oracle —
a robotic rewrite can score zero lexical hits and still be bad. The rewrite is your
behavioral work; quality is judged by the independent blind judge
(evals/blind-judge-rubric.md), not by the detector's own counts.
Use for academic, scholarly, or professional prose: essays, thesis chapters, abstracts, literature reviews, research reports, policy/working papers — EN, ZH, or mixed — that sounds templated, over-smoothed, promotional, structurally mechanical, or visibly chatbot-written.
Do NOT use for:
references/academic-register.md, section-specific guidance).python3 scripts/detect_ai_signals.py <draft> (or --summary). This is for
before/after comparison only — it is not a gate.Remove inflated vocab, promotional adjectives, AI-vocab clusters, vague
attribution, analytic padding, chat residue, and stacked/empty hedging.
Load: references/english-patterns.md (EN), references/chinese-patterns.md (ZH).
Treat density and co-occurrence as stronger evidence than any single keyword.
Reduce rule-of-three scaffolding, signpost/connector overload, mechanical
paragraph shape (topic→3-supports→wrap), bold-label lists, report-shell
meta-sentences ("this paper examines" / 本文拟……), and balanced negative
parallelism (not just X but Y / 不是……而是……) used mechanically.
Load: references/structural-statistical-signals.md §A. Respect the genre
whitelist from preflight.
Raise burstiness: vary sentence length and paragraph length on purpose;
break monotone clause structure; de-cluster evenly-distributed hedging
(concentrate it on genuinely uncertain claims, commit elsewhere).
Load: references/structural-statistical-signals.md §B. Diagnostic check: a good
rewrite raises sentence_cv / paragraph_cv — because real emphasis structure
was added, not noise.
This is the half generic humanizers skip. Load: references/human-texture.md.
Cross-check references/academic-register.md. Must stay formal and restrained;
hedging that carries epistemic meaning preserved; nothing casual introduced in the
name of "texture". Stance and hedging coexist — committed ≠ uncalibrated.
sentence_cv/paragraph_cv ↑. Do not
treat "all counts == 0" as success.If the request is "just score / detect, don't rewrite", run
python3 scripts/detect_ai_signals.py <draft> and return the signal map (or
--summary). Perform no rewrite. State plainly that the script detects signals
and does not humanize.
Default: the rewritten text only. Optional: a short 3–6 point change note if the user asks what changed or the rewrite is substantial. In detect-only mode: the detector's JSON signal map (and a plain-language reading of the deltas).
evals/blind-judge-rubric.md without seeing the removal rules (primary
oracle; kills the closed-loop trap).burstiness_delta, structural_signal_delta) — diagnostic
dashboard only, never the pass/fail oracle.| File | Load when |
|---|---|
references/english-patterns.md | Step 1, English lexical SUBTRACT. |
references/chinese-patterns.md | Step 1, Chinese lexical SUBTRACT. |
references/structural-statistical-signals.md | Steps 2–3, structural + statistical layers. |
references/human-texture.md | Step 4, the ADD target (stance / specificity / burstiness / asymmetry). |
references/academic-register.md | Preflight + Step 5, register-preservation guard. |
evals/blind-judge-rubric.md | The independent quality oracle (and how to self-check a rewrite). |
| File | Usage |
|---|---|
scripts/detect_ai_signals.py | python3 scripts/detect_ai_signals.py [FILE] (or stdin); --summary for per-layer totals + CV; --language en|zh|auto. Returns the three-layer signal map. DETECTS only — never rewrites. |
evals/run_detector_tests.py — deterministic unit harness for the detector math
(imports the core from scripts/, never reimplements it). Behavioral rewrite
cases + worked examples live under evals/ and are judged via
evals/blind-judge-rubric.md.