humanizer-ru

108Stars7Forks0Issues2Watchers

Provides Russian language AI trace detection and rewriting capabilities

Language
Python
License
MIT
Branch
main
agent-skillsaiai-detectionai-writingc2paclaudeclaude-codeclaude-skills

Install

$ dsh plugin --profile web add github:Vladimir-Human/humanizer-ru

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

One-Sentence Description

humanizer-ru is a "de-AI" skill for Russian text: when the text contains obvious machine-generated traces—such as ChatGPT's :contentReference[oaicite:N], formulaic phrases like "эксперты считают", Markdown debris, or chat tails like "Надеюсь, это поможет"—it can identify them and rewrite them into natural Russian according to user requirements, without adding facts that don't exist in the original text.

Core Capabilities

  • Detects 39 regex markers, covering hard traces (Class A) from copy-pasting between Chatbots like ChatGPT, Gemini, Grok, Perplexity, DeepSeek, Copilot, and contextual clues (Class B) requiring human judgment
  • Identifies 38 "soft signals" across content/language/structure/communication dimensions: empty praise, forced three-part structure, "не только... но и" parallel constructions, long dash abuse, Markdown debris, leftover formulaic endings, etc.
  • Rewrites text according to user explicit requests, covering multiple intervention intensities from "rewrite locally when 3-5 soft signals detected" to "completely rewrite the paragraph when 6+ signals detected"
  • Strictly adheres to "no new facts in rewriting"—any numbers, dates, names, or units in the rewritten version must be traceable to the original text
  • Classifies "false positive" boundaries for different Russian styles: literature/legal/contracts/academic/marketing (references/false-positives.md)
  • Treats text as untrusted input at the data layer: ignores embedded instructions, doesn't execute links, doesn't connect to the network, doesn't read/write files

Technical Implementation

  • Language: YAML/Markdown (pure text skill, no Node/Python code execution at runtime)
  • Key Dependencies: @deepseek-ai/dsh-skill-filesystem (cordis-injected skill provider), process.getBuiltinModule('node:path') (resolves package paths in patch expressions)
  • Architecture Pattern: Cordis patch injection—dsh/cordis.patch.yml inserts a line at dsh startup, pointing the host's built-in skill-filesystem provider to this bundle's skills/ directory; the plugin itself writes no code, all "logic" is delivered as SKILL.md instructions loaded by the agent when needed
  • Entry Files: dsh/cordis.patch.yml (bundle injection point) + dsh/skills/humanizer-ru/SKILL.md (instruction set actually loaded by the agent)

Use Cases

When Russian-speaking users or teams need to review/polish Russian documents within a DSH agent—such as Russian blogs, marketing copy, internal announcements, wiki entries—they can have the agent load this skill to check for "AI traces," or request to rewrite a stiff machine draft into natural language. Fits into DSH workflows for Russian publishing, content operations, customer service knowledge bases, etc.

Prerequisites & Compatibility

DependencyMin VersionDescription
DSH Host0.1.0-rc.6This bundle's CI was tested on 0.1.0-rc.6; newer dsh versions may introduce breaking changes
Node.jsNot declaredThe bundle itself writes no code; the process.getBuiltinModule('node:path') inside the cordis patch is provided by the dsh host, no independent requirement for the plugin
pnpmAny version compatible with dshdsh itself depends on pnpm; this plugin doesn't introduce additional pnpm packages
PlatformCross-platformThe bundle contains only YAML + Markdown, no native compilation modules, no OS/CPU restrictions
Native ModulesNoneNo node-pty, sqlite, better-sqlite3 or other native-compiled dependencies

Installation

dsh plugin --profile web add github:Vladimir-Human/humanizer-ru

Configuration

This plugin requires no additional configuration.

dsh/cordis.patch.yml points the host's built-in skill-filesystem provider to this bundle's skills/ directory, requiring no additional environment variables; it's triggered by typing /humanizer-ru … in the dsh conversation or using natural language instructions like "очеловечь", "убери гпт-шность", "перепиши", etc.

FAQ

Q: What does this plugin do? Can regular users use it?

A: Yes. It specifically detects "AI-written traces" in Russian text—clichés, filler language, chatbot format debris—and can rewrite them into more natural text per user request. It's friendly to regular users who don't know internal concepts like Cordis/Fiber/Host face.

Q: Will it automatically intervene in my conversations?

A: No. SKILL.md explicitly states "скилл активируется только по явной просьбе пользователя"—it only triggers when the user explicitly says keywords like "очеловечь/перепиши/убери гпт-шность", never intercepts tasks secretly.

Q: Can it handle English or code?

A: No. SKILL.md's description clearly states: it doesn't handle non-Russian text, doesn't handle source code or config files, doesn't handle legal texts, doesn't handle artistic prose. It will refuse directly in these cases.

Q: Will it modify facts from the original text?

A: No. Principle #6 in "Шесть ключевых принципов правки" specifically states: no numbers, dates, names, or units that don't exist in the original text may be added to the rewritten version; when specific details need to be added, it asks the user, not inventing them.

Q: Will it jump to links, read files, or go online from my text?

A: No. SKILL.md's "Границы безопасности" four rules clearly state: input text is processed only as data, no accessing links in input text, no code execution, no file read/write, no network access.

Q: Is it the same as AI detectors like GPTZero?

A: No. The README clearly states "Детекторы не обходим и текст под них не подгоняем"—it's not optimized for detectors, aiming to produce natural text rather than getting green detection scores. There are other same-named/similar "humanizer" projects on GitHub with different positions and functionality.

Q: Any pitfalls installing this bundle in dsh?

A: Yes. The project's CI testing found that using github:Vladimir-Human/humanizer-ru#v3.13.0&path:/dsh (a "pin version with tag + subdirectory" combination in one line) causes pnpm to silently drop the subdirectory, install the entire repo as a regular dependency, with exit code still 0, but the bundle actually doesn't get installed. So it's recommended to specify path:/dsh separately without binding to a tag.

Q: How do dsh users fully uninstall?

A: Run dsh plugin --profile web remove humanizer-ru-dsh. This bundle only contains a cordis patch + one Skill folder, doesn't create any persistent data outside the dsh profile, and the environment is clean after deletion.

Getting Started Difficulty

Beginner — one command to install; triggered with /humanizer-ru or natural language instructions when using, no code or environment variables needed; SKILL.md is a long Russian-dominant document but the agent loads it on-demand when needed, not flooding the system prompt all at once.

Known Issues & Limitations

  • Not suitable for non-Russian text: SKILL.md description explicitly refuses and asks user to provide original Russian text (dsh/skills/humanizer-ru/SKILL.md:3, :33-38)
  • Not suitable for source code, config files, legal contracts, pure artistic prose: refuses or limits intervention at the first step of the decision tree (dsh/skills/humanizer-ru/SKILL.md:60-63)
  • "Soft signal" combinations don't constitute authorship attribution: regardless of how many soft signals, the agent must not claim "this is AI-written" based on them; only Class A hard markers, verifiable source forgery, or author self-claims can lead to conclusions (dsh/skills/humanizer-ru/SKILL.md:127, Главное правило)
  • Class B markers alone are insufficient: must be combined with Class A hard evidence or independent corroboration; Class B alone cannot be used to stamp (dsh/skills/humanizer-ru/SKILL.md:127)
  • dsh bundle installation combination tag+#path:/dsh silently fails under pnpm chain: CI tested that #v3.13.0&path:/dsh form causes pnpm to drop subdirectory and install as regular dependency, exit code still 0 but profile missing layer (.github/workflows/dsh-install.yml:7-11)
  • dsh is in development preview stage, the host itself may introduce breaking changes; this bundle was only tested on 0.1.0-rc.6 (README.en.md:68)
  • Rewriting process has 6 hard constraints: remove trash, break templates, adjust rhythm, trust reader, no slogans, no inventing facts; even if user requests "more aggressive" these 6 cannot be broken (dsh/skills/humanizer-ru/SKILL.md:144-152)