DSH Plugins Marketplace

DSH Plugins

Skills

/

Agent skills

/

humanizer-ru

h

humanizer-ru

Manifest valid★ 114

AI agent skill: finds and removes traces of machine-generated content from Russian text. 38 patterns, 39 regex-markers with an evidence registry, blind paired runs, file layer for stripping C2PA/EXIF/XMP

humanizer-ru

Verifiable hygiene for chat insertions into Russian text

40 regex markers of chat-interface insertion artifacts, of which 38 have a complete record of evidence. Zero class A false positives across 12,314 non-carrier texts, class B — 8, i.e. 0.00065 (Wilson 95% CI 0.0003 to 0.0013; measured 04.09.2026 against a frozen preregistration). Every figure with its date and reproduction command — in the “Project numbers” section.

Insertion-artifact cleaning and fact reconciliation are also available for English text: add --language en to humanizer-clean, humanizer-polish, humanizer-facts or humanizer-report (or --language auto). This does not enable the Russian stylistic heuristics and does not deliver authorship verdicts; the profile preserves code, URLs, Markdown and verifiable facts. The Russian profile remains the default for compatibility.

The humanizer-markers terminal highlights traces of machine text and explains the reason for each flag

License: MIT PyPI CI

Who this is for

  • Editors and instructors: check text before publishing: humanizer-markers --scan файл.md.
  • Developers and CI: a gate for chat-interface insertions: action and contract.
  • AI-assistant users: the same check inside an agent environment: MCP in a single config or demo.

Try it in 30 seconds

  • Browser demo: nothing to install, text does not leave the browser.
  • Report an issue or share your experience: issue in the repository; user text is not transmitted automatically by either the demo or the feedback collector.
  • Check a specific insertion:

The shortest path “found → removed → verified”:

pip install humanizer-ru
humanizer-markers --scan input.txt       # найти следы (rc=1 = находка)
humanizer-clean --in-place input.txt     # снять поддержанные артефакты
humanizer-markers --scan input.txt       # убедиться, что остатка нет (rc=0)

For English input add --language en; for mixed input — --language auto. Cleaning does not rewrite style or meaning: verify the result manually and use humanizer-facts diff до.txt после.txt --no-additions after editorial changes.

python -c "open('primer.txt','w',encoding='utf-8').write('Согласно отчёту :contentReference[oaicite:3]{index=3}, рост заявок.\n')"
humanizer-markers --scan primer.txt; echo "rc=$?"
  primer.txt:1 [contentReference] Согласно отчёту :contentReference[oaicite:3]{index=3}, рост заявок.
  Найдено маркеров: 1.
  rc=1

rc=1 means “markers found” — this is the expected result of a check against a sample with an insertion trace, not an error; rc=0 — no traces, rc=2 — input cannot be read (with --json the error envelope is printed to stdout).

Full scenario: find, clean safely, verify, report

  1. Find an insertion artifact. humanizer-markers --scan файл.md prints findings with coordinates and class: A — hard copy-paste artifacts from chat interfaces, B — contextual indicators such as invisible characters and hidden layout; rc=1 means findings. The demo page does the same in the browser without installation and highlights the original ranges. humanizer-scan counts soft signs of machine writing: they calibrate the scope of the edit and do not deliver a verdict.

  2. Clean safely. humanizer-clean --in-place файл.md runs, in a single command, the before check, removal of supported artifacts, the after check and fact reconciliation; the original is kept in a .bak copy. It removes invisible layer-A markers and visible class-A artifacts outside protected regions (code, frontmatter, URLs, HTML attributes, ZWJ emoji clusters). Style and meaning are not rewritten; unsupported findings such as class B, wiki markup and placeholders remain as explicit residue with exit code 1, and full cleanliness is not claimed. If the invariants of protected regions are violated, the result is not written. Invisible characters are also removed pointwise, by the risk classes from the invisible_classes field of markers.v1.json: humanizer-markers --remove файл.md removes safe automatically, ambiguous — only with the explicit flag --include-ambiguous, dangerous shows and does not remove. humanizer-polish normalizes typography without changing meaning; on markup use the modes --preserve-markup and --typographic.

  3. Check the diff. humanizer-clean --diff файл.md prints a unified diff before and after without writing; the --json envelope carries the fact reconciliation and a list of residue. After manual editing, verify facts separately: humanizer-facts diff до.txt после.txt --no-additions compares numbers, dates, URLs, names, quotes, negations and modalities; the lost and changed fields must be empty, otherwise restore the facts to the text.

  4. Report the result. humanizer-report до.txt после.txt prepares a report on the edit with fact reconciliation. To pass a finding to a colleague use humanizer-markers --scan --json файл.md: forward the file, line, marker, class and fragment fields, not the whole document. A class-A finding establishes the fact of insertion, not the author: mark the source that the artifact pointed to as “needs verification”. There are no authorship verdicts, neither in the tools nor in the skill — that is the Principal Rule of SKILL.md.

The scenario in a single block:

humanizer-markers --scan вставка.md              # 1: найти; rc=1 = находки есть
humanizer-clean --diff вставка.md                # 2: показать, что будет снято
humanizer-clean --in-place вставка.md            # 2: очистить; оригинал в .bak
humanizer-facts diff вставка.md.bak вставка.md --no-additions  # 3: сверить факты
humanizer-report вставка.md.bak вставка.md       # 4: отчёт о правке

Details of commands and modes — in docs/USAGE.md.

MCP in a single config

{
  "mcpServers": {
    "humanizer-ru": {
      "command": "uvx",
      "args": ["--from", "humanizer-ru==3.36.4", "humanizer-mcp"]
    }
  }
}

The uvx form installs the pinned PyPI release and starts the stdio server. With a local install, pip install humanizer-ru and running humanizer-mcp are equivalent.

Matrix of verified capabilities and boundaries

No leadership claims: as of the recording date there is no comparable external research in the niche (see LEADERBOARD.md). Rows — what is actually verified by gates and tests of the cycle; boundaries — what the surface does not do.

SurfaceKnown artifact checkSafe cleaningFact reconciliationMachine envelopeBoundary
CLI (humanizer-markers, -polish, -facts, -report)yes, with coordinates and A/B classesstrip / --preserve-markup / --typographic modes with preservation invariantshumanizer-facts (fact categories)--json, exit codes per contractdoes not check semantics; no authorship verdicts
MCP (humanizer-mcp, tool set from contract.v1.json)same commands via stdiosame modes via humanizer_polishhumanizer_factsJSON-RPC envelopes, isError per contracttext does not leave the process
Pages demoyes, highlights original ranges in the browseryes, preview + explicit Apply + Undo for supported artifactsnocopying the report from a single resultoffline in the browser, no installation
GitHub Actioninsertion gate + auto-fix of the text path (class A)action_fix outside fenced/code regionsnogate rcfix does not touch protected regions
Text skill (SKILL.md)agent procedures per referencesstylistic edits only on explicit requestnono (skill prose)no guarantees of naturalness or meaning preservation

What this does NOT do

  • Rewritten text: the theoretical detection ceiling under paraphrase [bib:sadasivan2023]; paraphrase zeroes out detectors [bib:dipper2023].

  • Natively smooth machine text without artifacts: the documented boundary is the same [bib:sadasivan2023]; population-level detection is possible only on large samples [bib:chakraborty2023], and per-document verdicts are not claimed.

  • Short text: fewer signals than words, watermarks and statistics require length [bib:anthropic2026wm], [bib:synthid2024].

  • Watermarks without a key: a distortion-free watermark is invisible to a third-party observer by construction [bib:kuditipudi2023]; cryptographic indistinguishability without the key [bib:cgz2023]; the SynthID-Text detector requires a developer key [bib:synthid2024]; Anthropic confirms: without the key the watermark cannot be verified, the detector API is in closed preview [bib:anthropic2026wm].

  • [bib:…] keys are listed in research/BIBLIOGRAPHY.md.

  • Do not run polish on Markdown or markup: it strips ##, **, «ёлочки» quotes, em dashes; for markup use the --preserve-markup mode.

Why you can trust it

Installing the skill in browser clients

  • The demo works without installation: https://vladimir-human.github.io/humanizer-ru/ — text does not leave the browser.
  • Claude.ai and Claude Code: add the skill from the dsh/skills/humanizer-ru directory following the installation instructions in docs/USAGE.md.
  • Agent clients with agentskills.io support (opencode, DeepSeek Harness): unpack the text bundle from the release archive.
  • Browser extension rejected: a new surface outline (permissions, store review) does not pay for itself; the idea backlog — research/BACKLOG.md.

Directories: Glama MCP · skills.sh.

Same-named projects

On GitHub there are skills with the same name but different content. Snapshot 2026-09-11 (verification: gh repo view <владелец>/humanizer-ru --json stargazerCount):

  • ilyautov/humanizer-ru — 333 stars: positions as “removes neural-network signs,” no public registry of numbers; invited to a joint public benchmark (issue 220).
  • smixs/humanizer-ru — 154 stars: a deterministic linter; the only same-named project included in LEADERBOARD.md as a candidate (paired run 2026-09-03).
  • This project — verifiable chat-interface insertion hygiene: every figure from deterministic snapshots and the fact registry, boundaries — in THREAT-MODEL, false positives — in the benchmark.

Came by the name — choose by verification method, not by stars.

Project numbers

  • 58 machine-writing patterns and 40 regex markers (classes A and B).
  • Evidence records: 38 out of 40 markers (registry research/fixtures/marker-sources.json).
  • Gates: 156 gates in full check_all (145 in --quick); fixtures in tests/fixtures/, documentation is checked by check_docs.py, persona is described in PERSONA.md.

Why it is named this way: the name was inherited from the first function, which stripped the copy-paste layer after a chatbot and returned text to its human look. The second function of the product: diagnostics, highlighting machine traces and explaining the reason for each flag, with no authorship verdicts. Both functions work offline; text does not leave your machine.

Class breakdown of FP, exploratory, outside preregistration F16: class A: 0 cases on 12314 non-carrier texts; class B: 8 cases on 12314, i.e. 0.00065, Wilson 95% CI from 0.0003 to 0.0013; control set of 40 texts: 0 flags; heavy domain S4 legal and official, n=381, volume deficit recorded in the preregistration: 18 cases on 381, i.e. 0.0472, Wilson 95% CI from 0.0301 to 0.0734; denominators: 12354 full F16 corpus, 12314 validation stratum.

More details

Regex markers: classes A and B

Class A — hard copy-paste artifacts: service links and citation markers from chat interfaces. Class B — contextual indicators: invisible characters, hidden layout, placeholder fields; a single B match is not enough. Marker class — copypaste_artifacts; marker retirement is possible only on failure within its own class; statuses and dates — in markers.v1.json.

Changelog

Changelog — in CHANGELOG.md and on GitHub Releases.

License

MIT

Project status

Version Skills.sh Dogfooding

Dogfooding — the project checks its own texts with its own rules: the style-marker threshold in delivery files is verified by the gate scripts/check_own_style.py (the current maximum is printed on its run).

Comments

Loading…

Similar plugins

qa-skills

by fishzjp

让 AI 像资深测试工程师一样工作:面向 AI Agent 的测试工程 Skill 框架——11 Skills + 共享知识库 + 类型决策矩阵(Claude Code / dsh 等 Agent 可用)

Infra & DevOpsManifest valid

★ 9

↓ 204/wk

MIT

Python

Aug 25, 2026

dsh plugin --profile web add dsh-qa-skills

by Azzygoatcoder

模块化 AI 科研/工程技能 monorepo(DeepSeek Harness / Claude Code 通用)— plugins/ + skills/ + bin 脚本 + LaTeX 模板,验证环驱动

Knowledge & docsManifest valid

★ 9

MIT

Python

Sep 24, 2026

dsh plugin --profile web add agent-useful-skills

by shuguang1994

Make any project AI-agent-ready in one command. Adaptive tech stack detection (7 languages × 14 frameworks × 61 components), auto-generates AGENTS.md, docs skeleton, CI/CD, and testing infrastructure.

Development & InfrastructureManifest valid

★ 23

↓ 19/wk

MIT

JavaScript

Oct 14, 2026

dsh plugin --profile web add project-blueprint

by jaccen

图形学与3DGS、空间智能持续更新论文;AI Agent Skills for 3D Gaussian Splatting, NeRF & Computer Graphics Research. 800+ methods, 25categories, 12skills. OpenClaw / Claude Code compatible.

Manifest valid

★ 174

Apache-2.0

HTML

Oct 29, 2026

dsh plugin --profile web add awesome-gaussian-skills

by luxueliu

AI 不缺聪明,缺纪律!交付前自检(没从磁盘回读不算完成)/跑偏纠偏(一句「你偏了」就停)/系统化调试(同一个修复猜三次不收敛时用)/多 agent 接力(防旧状态盖掉新写入)——4 个单文件技能零依赖,每条都来自真实翻车事故,DeepSeek Harness / Claude Code / Codex 通用

Development & InfrastructureManifest valid

★ 0

MIT

JavaScript

Aug 27, 2026

dsh plugin --profile web add luxueliu-agent-discipline-skills

by agent-plaza

Zero-signup public commons for AI agents — HTTP API + Agent Skill (Codex, Cursor, Hermes)

Manifest valid

★ 3

MIT

TypeScript

Aug 14, 2026

dsh plugin --profile web add agent-plaza