Install
$ agentstack add skill-bahayonghang-my-ai-cli-toolkit-humanizer-paper ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Humanizer (Academic): register-aware AI-tell removal
Polish an academic draft so it reads like a careful human author and conforms to its register's norms. Two modes: English journal articles (en-journal) and Chinese doctoral dissertations (zh-dissertation).
The analysis kernel is the "Signs of AI writing" taxonomy from Wikipedia (WikiProject AI Cleanup), re-gated for academic register: several general-prose defaults are backwards in a journal or dissertation, so each tell is kept, calibrated, or disabled rather than applied blindly. The heavy content lives in references/; this file is the router and the behavioral rules.
> In the python command below, `` is this skill's base directory, > announced when the skill loads. Substitute that literal path; it is not an > environment variable. The bundled script self-locates, so only the path needs > to resolve.
诚信边界 (behavioral hard rule)
This skill polishes the author's own draft for clarity and for compliance with academic norms. It is not a detector-evasion tool.
- The legitimate, transferable techniques here — varying cadence, calibrating
hedging, tightening argumentation, enforcing terminology consistency, protecting citations — apply only to text the author actually wrote or substantively authored.
- If the request is framed as "rewrite this generated text so it passes Turnitin
/ 知网 AIGC / an AI detector", refuse that framing. Redirect to the legitimate goal: improving real originality (add real data and citations, deepen analysis, fix norms). High AIGC rate is treated by many institutions as academic misconduct; do not position this skill as a way around that.
When to use
- Polish an English journal/conference manuscript or section to remove AI tells
while keeping formal register, hedging, and section-appropriate passive.
- Polish a Chinese 学位论文 (摘要/引言/方法/结果/讨论/结论/致谢) for AI tells and
GB punctuation, terminology unification, and AIGC quantitative self-check.
- Norm-check a draft (
--check-only) and report mechanical tells without rewriting.
When NOT to use
- Generic / non-academic prose (blog posts, essays, marketing). This skill's
defaults are tuned for academic register; for general "make it sound human" use an upstream generic humanizer, not this one.
- Paper intake, reading, synthesis, or literature review (skim, deep-read,
card, compare, gap map, review outline, normalize a DOI/arXiv source). That is paper-workbench, not this skill. This skill edits language; paper-workbench analyzes content.
- Implementing a paper's method into code. Out of scope.
Routing
1. Target (which norm pack)
- If
--targetis given, use it. - Otherwise infer from the text's CJK ratio: a high count of CJK characters
(roughly > 2% of characters, like infer_language in paper-workbench/scripts/normalize_paper.py) means zh-dissertation; otherwise en-journal.
- If the language is genuinely ambiguous (mixed-language, very short), use
AskUserQuestion to pick en-journal vs zh-dissertation. Do not guess silently.
2. Section (which gates)
- Infer the section from headings or structure: abstract, introduction, methods,
results, discussion, conclusion. --section overrides.
- Section drives the calibrated tells (most importantly passive voice: keep in
Methods, may activate in Discussion). If undeterminable, treat as "general academic body".
Core loop
- Classify. Read the input. Resolve target and section (Routing above).
Identify each AI tell using references/ai-tells-academic.md, applying its keep / calibrate / disable gate — do not apply general-prose defaults blindly.
- Load the norm pack. Read
references/en-journal.mdor
references/zh-dissertation.md for the active target. It decides per-section behavior and adds register-specific norms.
- Register-aware draft. Rewrite to remove the tells while obeying the norm
pack. Cover everything the original covers (same number of paragraphs/claims). Calibrate hedging (do not delete it), keep section-appropriate passive, unify terminology, fix ghost citations by supplying real (author, year) / [n] or lowering claim strength, replace hollow generalities with specific data/method/citation, and vary sentence cadence.
- Mechanical lint. Run the script (below) for the quantifiable tells the model
tends to miss (dash/quote characters, sentence-length and burstiness stats, "首先/综上" comma-clauses, optional terminology variants). The script is a copilot: it gives coordinates; it does not rewrite.
- "Still-AI" audit. Ask: what still reads as AI-generated here? List the
remaining tells briefly (uniform cadence, residual ghost citations, templated paragraphs, over-stacked hedges).
- Final. Revise to address the audit and the lint hits. In
zh-dissertation,
conform punctuation to GB and keep full-text terminology consistent; in en-journal, keep tense and citation style consistent per the norm pack.
Mechanical check
Run the linter for quantifiable tells (planned entry; if the script is not yet present, do the mechanical scan by hand from the same checklist):
python "/scripts/polish_lint.py" \
--target "" \
--file "" \
--json
The linter reports surface tells (em/en dash, curly quotes, AI high-frequency words, Chinese "几字+逗号" short clauses), cadence stats (sentence count, mean length, burstiness, over-long ratio with the zh > 28 字 threshold), and optional terminology variants when a --glossary is supplied. It is a reporter (exit code always 0); the rewrite stays with the model, guided by references/.
Output contract
Deliver, in order:
- Draft rewrite — register-correct, all covered content preserved.
- "Still-AI" audit — brief bullets of remaining tells.
- Final rewrite — addresses the audit and the lint hits.
- Change summary — what was changed and why (and, optionally, the lint report).
For --check-only, skip the rewrite: return the lint report plus a short list of the tells found, by gate, with no edited text.
References
references/ai-tells-academic.md— the re-gated 33-pattern kernel (keep /
calibrate / disable) plus 5 new academic-specific tells, with academic before/after.
references/en-journal.md— English journal norm pack (register, hedging,
section-gated passive, IMRaD/CARS, tense, citation styles, dash/comma, spelling).
references/zh-dissertation.md— Chinese dissertation norm pack (语体, 术语统一,
GB/T 15834 标点, GB/T 15835 数字, 法定计量单位, 摘要/结论/标题/致谢, AIGC 量化特征).
Attribution
The pattern taxonomy is from Wikipedia: Signs of AI writing, maintained by WikiProject AI Cleanup. This skill (MIT) re-gates that taxonomy for academic register and adds two norm packs and a mechanical linter.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: bahayonghang
- Source: bahayonghang/my-ai-cli-toolkit
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.