humanizer-ru 3.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.en.md +207 -0
- package/README.md +340 -0
- package/cordis.patch.yml +14 -0
- package/package.json +16 -0
- package/skills/humanizer-ru/SKILL.md +320 -0
- package/skills/humanizer-ru/agents/openai.yaml +5 -0
- package/skills/humanizer-ru/edit-log.md +40 -0
- package/skills/humanizer-ru/references/catalog.md +354 -0
- package/skills/humanizer-ru/scripts/humanizer_metrics/__init__.py +80 -0
- package/skills/humanizer-ru/scripts/humanizer_metrics/burstiness.py +92 -0
- package/skills/humanizer-ru/scripts/humanizer_metrics/markers.py +439 -0
- package/skills/humanizer-ru/scripts/humanizer_metrics/morphology.py +78 -0
- package/skills/humanizer-ru/scripts/humanizer_metrics/score.py +182 -0
- package/skills/humanizer-ru/scripts/humanizer_metrics/structure.py +154 -0
- package/skills/humanizer-ru/scripts/scan.py +177 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ilya Utov
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.en.md
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# humanizer-ru
|
|
2
|
+
|
|
3
|
+
> [Русская версия: основная](README.md)
|
|
4
|
+
|
|
5
|
+
Claude Code / Cowork plugin. Kills AI smell in Russian text. The English [humanizer](https://github.com/blader/humanizer) won't help here. Russian AI markers are their own beast: bureaucratic noun-chains (канцелярит), English-syntax calques, missing particles like "же" and "ведь" that make Russian sound alive.
|
|
6
|
+
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://github.com/ilyautov/humanizer-ru/blob/main/CHANGELOG.md)
|
|
9
|
+
[](https://github.com/ilyautov/humanizer-ru/stargazers)
|
|
10
|
+
[](https://skills.sh/ilyautov/humanizer-ru/humanizer-ru)
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://humanizer-ru.aifrontier.tech/">
|
|
14
|
+
<img src="assets/social-preview.png" alt="humanizer-ru: removes AI tells from Russian text. 64 patterns, 21 hard bans, scanner included" width="720">
|
|
15
|
+
</a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
📖 **Docs & write-ups (RU):** [humanizer-ru.aifrontier.tech](https://humanizer-ru.aifrontier.tech/): do AI detectors work on Russian, the 64 markers, plagiarism vs AI detection.
|
|
19
|
+
|
|
20
|
+
## What you get
|
|
21
|
+
|
|
22
|
+
64 patterns across 14 categories: канцелярит, English calques, emotional sterility, persuasion tricks, information rhythm, hedging specifics, plus the 2025-2026 stylistic fingerprints (jagged-meditation single-word sentences, pseudo-Socratic Q-A chains, decorative emoji per list item, pseudo-therapeutic register) and the 2026 formulas (inanimate subject, Title Case headings, mid-sentence truncation, negation triad), plus a discourse layer (explicit final moral, portrait-style character introduction, emotion conveyed only through the body, seamless causal chains, strictly linear chronology, no direct reader address: narrative signals that survive stylistic rewriting, per StoryScope / COLM 2026). 21 hard-banned constructions that scream "GPT wrote this", including em-dashes (detectors count their frequency). A research-backed section on how detectors actually work (perplexity, burstiness, morphology) with verified numbers from DivEye, PIFE, AINL-Eval 2025 (every citation checked, see SOURCES.md). Five article formulas. Voice calibration. Quad-pass audit with a "Skeleton" pass that reads only the first lines of list items to catch templated openings.
|
|
23
|
+
|
|
24
|
+
## Install
|
|
25
|
+
|
|
26
|
+
Three deployment channels: upload to Claude.ai web UI, roll out across an organization, or install into local agents (Claude Code, Cowork, API).
|
|
27
|
+
|
|
28
|
+
### 1. Claude.ai (Web UI)
|
|
29
|
+
|
|
30
|
+
1. Download the packaged skill:
|
|
31
|
+
[humanizer-ru.zip](https://github.com/ilyautov/humanizer-ru/releases/latest/download/humanizer-ru.zip)
|
|
32
|
+
2. Open Claude.ai → **Settings** → **Capabilities** → **Skills**.
|
|
33
|
+
3. Click **Upload skill** and select the ZIP.
|
|
34
|
+
|
|
35
|
+
Do not use `archive/refs/heads/main.zip`: the uploader expects the skill folder at the top level of the archive, and in the repo archive it sits inside `humanizer-ru-main/skills/humanizer-ru/`. To build the archive yourself, zip the skill folder itself:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
git clone https://github.com/ilyautov/humanizer-ru.git
|
|
39
|
+
cd humanizer-ru/skills
|
|
40
|
+
zip -r ../../humanizer-ru.zip humanizer-ru -x '*/__pycache__/*'
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 2. Organizations (Enterprise & Team)
|
|
44
|
+
|
|
45
|
+
Workspace admins can roll the skill out to the whole team via **Admin Console → Workspace Skills → Add skill**. Upload the same ZIP, no per-user installation needed.
|
|
46
|
+
|
|
47
|
+
### 3. Claude Code, Cowork, API (local agents)
|
|
48
|
+
|
|
49
|
+
**Plugin marketplace** (recommended):
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
/plugin marketplace add ilyautov/humanizer-ru
|
|
53
|
+
/plugin install humanizer-ru@ilyautov-plugins
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**skills.sh CLI** (universal across Claude agents):
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npx skills add https://github.com/ilyautov/humanizer-ru/tree/main/skills/humanizer-ru
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The CLI drops `SKILL.md` into `~/.claude/skills/humanizer-ru/` and registers the skill on [skills.sh](https://skills.sh/ilyautov/humanizer-ru/humanizer-ru). Point at the full skill-folder path: the short `ilyautov/humanizer-ru` form resolves to the repo root, which has no `SKILL.md` (removed in v3.14.2), so the install either fails or pulls in the whole repository.
|
|
63
|
+
|
|
64
|
+
**API (`/v1/messages` and equivalents):** pass the skill via the `container.skills` parameter. See your client's docs.
|
|
65
|
+
|
|
66
|
+
**Manual:**
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
git clone --depth 1 https://github.com/ilyautov/humanizer-ru /tmp/humanizer-ru
|
|
70
|
+
mkdir -p ~/.claude/skills
|
|
71
|
+
cp -r /tmp/humanizer-ru/skills/humanizer-ru ~/.claude/skills/
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Copy the whole folder, not just SKILL.md: the skill ships with a deterministic
|
|
75
|
+
scanner, `scripts/scan.py` (the machine half of Audit mode; needs
|
|
76
|
+
`pip install razdel pymorphy3`, and the skill gracefully falls back to a manual
|
|
77
|
+
audit without them).
|
|
78
|
+
|
|
79
|
+
### Package install smoke
|
|
80
|
+
|
|
81
|
+
Before a release, build the ZIP with the same script used by CI, then run the
|
|
82
|
+
install smoke against that archive. The smoke check copies `skills/humanizer-ru`
|
|
83
|
+
into a clean temporary skills directory, runs the scanner from the installed
|
|
84
|
+
copy, and checks that the ZIP has no `.DS_Store`, `__pycache__`, or `*.pyc`
|
|
85
|
+
files:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
python3 scripts/build_release_zip.py --output dist/humanizer-ru.zip .
|
|
89
|
+
python3 scripts/install_smoke.py . --zip dist/humanizer-ru.zip
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Expected result:
|
|
93
|
+
|
|
94
|
+
```text
|
|
95
|
+
RESULT: PASS build-release-zip
|
|
96
|
+
RESULT: PASS install-smoke
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 4. Codex CLI (OpenAI)
|
|
100
|
+
|
|
101
|
+
Codex uses the same Agent Skills format, so no separate build is needed:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
git clone --depth 1 https://github.com/ilyautov/humanizer-ru
|
|
105
|
+
mkdir -p ~/.codex/skills
|
|
106
|
+
cp -r humanizer-ru/skills/humanizer-ru ~/.codex/skills/
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Or from inside Codex via `skill-installer` with the path
|
|
110
|
+
`ilyautov/humanizer-ru/skills/humanizer-ru`. Restart Codex after installing;
|
|
111
|
+
invoke with `$humanizer-ru` or let it auto-trigger. For a per-project install,
|
|
112
|
+
put the same folder under `.codex/skills/` in your repository.
|
|
113
|
+
|
|
114
|
+
### 5. Other agents (shared SKILL.md standard)
|
|
115
|
+
|
|
116
|
+
The Agent Skills format is now cross-platform, so humanizer-ru runs beyond the packaged stacks. Officially packaged and verified: Claude Code, Codex CLI, Cursor, Gemini CLI, DeepSeek Harness. Other agents read the same `SKILL.md`, no separate build needed.
|
|
117
|
+
|
|
118
|
+
| How it connects | Agents | What to do |
|
|
119
|
+
|---|---|---|
|
|
120
|
+
| Read `SKILL.md` natively | GitHub Copilot, Cline, Roo Code, Kilo Code, Goose, OpenCode, OpenWork, Kimi Code CLI, OpenClaw, OpenHuman, Hermes | Copy the `skills/humanizer-ru` folder into the agent's skills dir (e.g. `~/.hermes/skills/`, `~/.kimi/skills/`, `.agents/skills/`) |
|
|
121
|
+
| Installer conversion | Windsurf, Trae, Junie | Install via their skill installer, pointing at `ilyautov/humanizer-ru` |
|
|
122
|
+
| Manual paste | Zed, Aider, Continue.dev | Paste the `SKILL.md` body into the agent's rules or instructions file |
|
|
123
|
+
|
|
124
|
+
Generic path for native readers: drop the skill folder into the directory the agent scans (usually `<project root>/.agents/skills/` or `~/.config/agents/skills/`) and restart it. Same activation triggers.
|
|
125
|
+
|
|
126
|
+
> Several of these agents (OpenClaw, Kimi, Hermes) have public skill registries (ClawHub and similar). Listing there adds reach with no extra code: the format is shared.
|
|
127
|
+
|
|
128
|
+
### 6. DeepSeek Harness (dsh)
|
|
129
|
+
|
|
130
|
+
DeepSeek Harness reads the same Agent Skills format. Two ways to install.
|
|
131
|
+
|
|
132
|
+
As a bundle, one command into the profile you use (`web`, `tui` or `headless`):
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
dsh plugin --profile web add github:ilyautov/humanizer-ru
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
The bundle is text only: `package.json` with a `dsh.bundle` field and `cordis.patch.yml`, which mounts the stock `dsh-skill-filesystem` provider on the package's `skills/` folder. No executable code, no build step. Verify without running a model: `dsh --profile web --dump-config` shows a `# == humanizer-ru` layer. Remove with `dsh plugin --profile web remove humanizer-ru`.
|
|
139
|
+
|
|
140
|
+
As a copy into the user skill root:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
cp -r humanizer-ru/skills/humanizer-ru ~/.agents/skills/
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
dsh scans `~/.agents/skills` and `~/.dsh/skills` on its own, no restart needed. It ignores the `allowed-tools` frontmatter key and resolves `references/` relative to the skill folder, so the catalog and the edit log open the same way as in Claude Code.
|
|
147
|
+
|
|
148
|
+
## Modes
|
|
149
|
+
|
|
150
|
+
- **Full rewrite** (default): all 64 patterns, voice calibration, quad-pass audit.
|
|
151
|
+
- **Audit**: diagnosis only, returns detected patterns with priority A-D.
|
|
152
|
+
- **Targeted fix**: works on a specific category only.
|
|
153
|
+
|
|
154
|
+
## Usage
|
|
155
|
+
|
|
156
|
+
Ask Claude in Russian:
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
Очеловечь этот текст: [paste text]
|
|
160
|
+
Перепиши, звучит как робот: [paste text]
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Triggers: "очеловечь", "убери следы нейросети", "сделай живым", "звучит искусственно", "перепиши как человек".
|
|
164
|
+
|
|
165
|
+
## Before / After
|
|
166
|
+
|
|
167
|
+
Before:
|
|
168
|
+
> В современном мире искусственный интеллект играет всё более важную роль в различных сферах деятельности. Стоит отметить, что данная технология является мощным инструментом для оптимизации рабочих процессов.
|
|
169
|
+
|
|
170
|
+
After:
|
|
171
|
+
> За последний год я внедрил AI-инструменты в три проекта. Два ускорились вдвое. Третий развалился, потому что команда перестала проверять то, что выдаёт модель. AI работает, когда понимаешь его ограничения.
|
|
172
|
+
|
|
173
|
+
Five hard bans triggered in two sentences. Typical.
|
|
174
|
+
|
|
175
|
+
## Do AI detectors work on Russian?
|
|
176
|
+
|
|
177
|
+
Short answer: poorly, and it matters.
|
|
178
|
+
|
|
179
|
+
GPTZero, Originality.ai, ZeroGPT and most popular AI-text detectors are trained mostly on English. On Russian they are unreliable and fail both ways:
|
|
180
|
+
|
|
181
|
+
- **False positives:** text written by a real human routinely gets flagged as "AI-generated". English perplexity thresholds aren't calibrated for Russian, and Russian's rich morphology inflates "unpredictability" on its own.
|
|
182
|
+
- **False negatives:** careful AI text passes as human.
|
|
183
|
+
|
|
184
|
+
Even the best Russian-specific detector (RuRoBERTa on the AINL-Eval 2025 benchmark) lands around 86% accuracy, and one verdict in seven is wrong. And detectors don't generalize across domains (verified, see [SOURCES.md](SOURCES.md)).
|
|
185
|
+
|
|
186
|
+
**What this means for humanizing.** Chasing "detector bypass" on Russian means tuning text to an unreliable, moving target. So humanizer-ru optimizes genuine text quality (removing bureaucratic noun-chains, calques and clichés, restoring author voice and live rhythm) rather than gaming a classifier. Those are measurable language properties (see [`eval/`](eval/)) independent of how bad any given detector is. Perplexity and burstiness rise as a side effect, which is what detectors try (and often fail) to measure. We run detectors against real human Russian texts in the harness and publish the false-positive rate: [eval/RESULTS.md](eval/RESULTS.md).
|
|
187
|
+
|
|
188
|
+
## Sources
|
|
189
|
+
|
|
190
|
+
Patterns drawn from 15+ Russian-language sources (Habr, vc.ru, Gramota.ru, HSE stylometry research, Dialog Conference RuATD, TechInsider, Kokoc.com), verified academic papers (DivEye, PIFE, MASH, Antislop, AINL-Eval, RuATD, NeurIPS 2025), and the Wikipedia AI Cleanup Project. Every citation and figure is checked against primary sources; unverified ones were removed. Full provenance: [SOURCES.md](SOURCES.md).
|
|
191
|
+
|
|
192
|
+
Changelog: [CHANGELOG.md](CHANGELOG.md). Metrics and eval harness: [`scripts/`](scripts/) and [`eval/`](eval/). Full Russian documentation: [README.md](README.md).
|
|
193
|
+
|
|
194
|
+
## Author
|
|
195
|
+
|
|
196
|
+
Ilya Utov. I write about AI and working with text on Telegram: [Under the Hood](https://t.me/gorilla_under_hood).
|
|
197
|
+
|
|
198
|
+
## Contributors
|
|
199
|
+
|
|
200
|
+
- **Filipp Zarubin** ([@zarubinphil](https://github.com/zarubinphil)): category N "Discourse layer", patterns 59-64 from StoryScope (COLM 2026). Signals that survive a style rewrite. Plus Russian numeral agreement in the release gate.
|
|
201
|
+
- **iKonushok** ([@ikonushok](https://github.com/ikonushok)): install smoke for the installed surface and release ZIP packaging. It checks what actually reaches the user, not the folder in the repo.
|
|
202
|
+
|
|
203
|
+
Full list, including bug reports that changed the code: [CONTRIBUTORS.md](CONTRIBUTORS.md). How to get on it: [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
204
|
+
|
|
205
|
+
## License
|
|
206
|
+
|
|
207
|
+
MIT
|
package/README.md
ADDED
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
# humanizer-ru: очеловечить русский AI-текст для Claude Code, Cursor, Codex и других AI-агентов
|
|
2
|
+
|
|
3
|
+
> Скилл для Claude. Убирает 64 признака нейросети в русском тексте: канцелярит, кальки, фингерпринты ChatGPT и Claude. Метит в то, что меряют GPTZero, DivEye, RuBERT: поднимает perplexity и burstiness. 21 жёстких банов, quad-pass аудит, калибровка под голос автора, eval-харнес с метриками до/после.
|
|
4
|
+
|
|
5
|
+
> [English version](README.en.md)
|
|
6
|
+
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://github.com/ilyautov/humanizer-ru/blob/main/CHANGELOG.md)
|
|
9
|
+
[](https://github.com/ilyautov/humanizer-ru/stargazers)
|
|
10
|
+
[](https://skills.sh/ilyautov/humanizer-ru/humanizer-ru)
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://humanizer-ru.aifrontier.tech/">
|
|
14
|
+
<img src="assets/social-preview.png" alt="humanizer-ru: убирает следы нейросети из русского текста. 64 признака, 21 запрет, сканер в комплекте" width="720">
|
|
15
|
+
</a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
> **Было:** «В современном мире данная технология является не просто инструментом, а стратегическим активом».
|
|
19
|
+
> **Стало (факты автора):** «Инструмент экономит команде сорок минут в день. Попробуйте теперь его у людей забрать».
|
|
20
|
+
>
|
|
21
|
+
> Три жёстких бана в одном предложении. [Полный разбор с режимом аудита ниже](#до-и-после).
|
|
22
|
+
|
|
23
|
+
📖 **Документация и разборы:** [humanizer-ru.aifrontier.tech](https://humanizer-ru.aifrontier.tech/): [работают ли AI-детекторы на русском](https://humanizer-ru.aifrontier.tech/ai-detektory-na-russkom.html), [64 признака AI-текста](https://humanizer-ru.aifrontier.tech/52-priznaka-ai-teksta.html), [антиплагиат и нейросеть](https://humanizer-ru.aifrontier.tech/antiplagiat-i-neyroset.html).
|
|
24
|
+
|
|
25
|
+
## Зачем это нужно
|
|
26
|
+
|
|
27
|
+
Английский [humanizer](https://github.com/blader/humanizer) для русского текста не работает. У русских AI-маркеров своя физика: канцелярит («осуществление внедрения»), кальки с английского синтаксиса («стоит отметить, что»), отсутствующие частицы («же», «ведь», «вот»), которыми живой русский дышит. С английскими паттернами это не пересекается вообще.
|
|
28
|
+
|
|
29
|
+
Кроме того, в 2025-2026 Claude и GPT-4/5 научились имитировать «глубокомысленность»: короткими рублёными предложениями («Точно. Отдельно. Рефлексивно.»), псевдо-сократическими вопросами («Зачем? Потому что.») и псевдо-терапевтическим регистром («ты не ошибаешься, что так чувствуешь»). Это новый слой маркеров, которого нет ни в одном другом humanizer.
|
|
30
|
+
|
|
31
|
+
## Что внутри
|
|
32
|
+
|
|
33
|
+
**64 паттерна AI-генерации в 14 категориях:**
|
|
34
|
+
|
|
35
|
+
- A. Контентные: пустые открытия, размытые авторитеты, формульные выводы
|
|
36
|
+
- B. Языковые: канцелярит, кальки, «является», нагромождение причастий
|
|
37
|
+
- C. Стилистические: длинные тире, навязчивые списки, болд
|
|
38
|
+
- D. Коммуникативные: артефакты чатбота, заискивание, водянистость
|
|
39
|
+
- E. Морфологические: падежные ошибки, деепричастия не к подлежащему
|
|
40
|
+
- F. Тональные: эмоциональная стерильность (4 подтипа), нет иронии, нет метафор
|
|
41
|
+
- G. Структурные: разорванные абзацы, narrative drift, галлюцинации
|
|
42
|
+
- H. Человеческие мелочи: идеальная грамотность, вылизанная типографика
|
|
43
|
+
- I. Паттерны убеждения: негативные параллелизмы, авторитетные трюизмы
|
|
44
|
+
- J. Информационный ритм: равномерная плотность, гладкие переходы, macro-burstiness
|
|
45
|
+
- K. Хеджирование и специфика: модальная неопределённость, translationese, нет идиом
|
|
46
|
+
- L. Стилистические фингерпринты 2025-2026: рваная медитативность, контр-вопросы, эмодзи-декор, псевдо-терапия, пустой образ, самомаркировка честности
|
|
47
|
+
- M. Формулы и артефакты 2026: неодушевлённый субъект, Title Case в заголовках, обрыв на полуслове, триада-отрицание
|
|
48
|
+
- N. Дискурсный слой: явная мораль в финале, портретный ввод героя, эмоция только через тело, бесшовная причинность, линейная хронология, нет обращения к читателю. Признаки, которые переживают стилевую правку (StoryScope, COLM 2026)
|
|
49
|
+
|
|
50
|
+
**21 жёстких банов**: конструкции с абсолютным запретом. От «В современном мире...» и «Стоит отметить, что...» до маркетинговых клише «Раскрыть потенциал», «Комплексный подход», «Открывает новые горизонты».
|
|
51
|
+
|
|
52
|
+
**Quad-pass аудит**: четыре независимых прохода: Детектор (поиск маркеров), Человек с улицы (взгляд читателя), Кардиограмма (вариативность информационной плотности), Скелет (анализ первых строк пунктов списка на шаблонность).
|
|
53
|
+
|
|
54
|
+
**Калибровка под голос автора.** Если дать образцы своего письма, скилл анализирует ритм, лексику, любимые обороты, пунктуацию, тон и применяет ваш стиль вместо средне-нейтрального.
|
|
55
|
+
|
|
56
|
+
**Три режима работы:**
|
|
57
|
+
- Полное редактирование (по умолчанию): все 64 паттерна
|
|
58
|
+
- Аудит: только диагностика, текст не трогает
|
|
59
|
+
- Точечная правка: работа с одной категорией
|
|
60
|
+
|
|
61
|
+
**Что ловят детекторы:** секция с числами из исследований 2025-2026. DivEye: вторые производные surprisal дают 39.4% вклада в детекцию. Perplexity gap 29.5 vs 15.2 (человек vs LLM). AINL-Eval 2025: лучший результат на тесте около 86% (52K русских текстов, 12 доменов). Все ссылки и цифры верифицированы по первоисточникам, см. [SOURCES.md](SOURCES.md).
|
|
62
|
+
|
|
63
|
+
## Установка
|
|
64
|
+
|
|
65
|
+
Скилл разворачивается тремя путями: загрузкой в веб-интерфейс Claude.ai, централизованной раскаткой на команду или установкой в локальные агенты (Claude Code, Cowork, API).
|
|
66
|
+
|
|
67
|
+
### 1. Claude.ai (веб-интерфейс)
|
|
68
|
+
|
|
69
|
+
1. Скачайте готовый архив скилла:
|
|
70
|
+
[humanizer-ru.zip](https://github.com/ilyautov/humanizer-ru/releases/latest/download/humanizer-ru.zip)
|
|
71
|
+
2. Откройте Claude.ai → **Settings** → **Capabilities** → **Skills**.
|
|
72
|
+
3. Нажмите **Upload skill** и выберите скачанный архив.
|
|
73
|
+
|
|
74
|
+
> Не берите `archive/refs/heads/main.zip`: загрузчик ожидает папку скилла в корне архива, а в архиве репозитория она лежит внутри `humanizer-ru-main/skills/humanizer-ru/`. Если нужно собрать архив самому, архивируйте именно папку скилла:
|
|
75
|
+
>
|
|
76
|
+
> ```bash
|
|
77
|
+
> git clone https://github.com/ilyautov/humanizer-ru.git
|
|
78
|
+
> cd humanizer-ru/skills
|
|
79
|
+
> zip -r ../../humanizer-ru.zip humanizer-ru -x '*/__pycache__/*'
|
|
80
|
+
> ```
|
|
81
|
+
|
|
82
|
+
### 2. Организации (Enterprise и Team)
|
|
83
|
+
|
|
84
|
+
Администраторы Claude for Work раскатывают скилл централизованно через workspace skill library, и он становится доступен всей команде без индивидуальной загрузки. Загрузите ZIP в **Admin Console → Workspace Skills → Add skill**.
|
|
85
|
+
|
|
86
|
+
### 3. Claude Code, Cowork и API (локальные агенты)
|
|
87
|
+
|
|
88
|
+
**Через плагин-маркетплейс** (рекомендуется):
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
/plugin marketplace add ilyautov/humanizer-ru
|
|
92
|
+
/plugin install humanizer-ru@ilyautov-plugins
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
После установки плагин подгружает скилл автоматически при триггерах вроде «очеловечь», «убери канцелярит», «перепиши как человек».
|
|
96
|
+
|
|
97
|
+
**Через skills.sh CLI** (универсальный путь для любого Claude-агента):
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx skills add https://github.com/ilyautov/humanizer-ru/tree/main/skills/humanizer-ru
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
CLI кладёт `SKILL.md` в `~/.claude/skills/humanizer-ru/` и регистрирует скилл в индексе [skills.sh](https://skills.sh/ilyautov/humanizer-ru/humanizer-ru). Указывайте полный путь к папке скилла: короткая форма `ilyautov/humanizer-ru` смотрит в корень репозитория, где `SKILL.md` нет (убран в v3.14.2), и установка либо падает, либо тащит весь репозиторий.
|
|
104
|
+
|
|
105
|
+
**Через API (`/v1/messages` и аналоги):** передайте скилл параметром `container.skills`. Детали в документации вашего клиента.
|
|
106
|
+
|
|
107
|
+
**Вручную** (если ничего из выше не подошло):
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
git clone --depth 1 https://github.com/ilyautov/humanizer-ru /tmp/humanizer-ru
|
|
111
|
+
mkdir -p ~/.claude/skills
|
|
112
|
+
cp -r /tmp/humanizer-ru/skills/humanizer-ru ~/.claude/skills/
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Копируйте папку целиком, а не один SKILL.md: вместе со скиллом едет
|
|
116
|
+
детерминированный сканер `scripts/scan.py` (машинная половина режима «Аудит»;
|
|
117
|
+
работает при наличии `pip install razdel pymorphy3`, без них скилл просто
|
|
118
|
+
проводит аудит вручную).
|
|
119
|
+
|
|
120
|
+
### 4. Codex CLI (OpenAI)
|
|
121
|
+
|
|
122
|
+
Codex использует тот же формат Agent Skills, отдельная версия не нужна:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
git clone --depth 1 https://github.com/ilyautov/humanizer-ru
|
|
126
|
+
mkdir -p ~/.codex/skills
|
|
127
|
+
cp -r humanizer-ru/skills/humanizer-ru ~/.codex/skills/
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Либо изнутри Codex через `skill-installer`: укажите путь
|
|
131
|
+
`ilyautov/humanizer-ru/skills/humanizer-ru`. После установки перезапустите Codex;
|
|
132
|
+
вызов: `$humanizer-ru` или автоматически по триггер-фразам («очеловечь»,
|
|
133
|
+
«убери канцелярит»). Проектная установка: та же папка в `.codex/skills/` внутри репозитория.
|
|
134
|
+
|
|
135
|
+
Или клонированием:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
git clone https://github.com/ilyautov/humanizer-ru.git ~/.claude/skills/humanizer-ru
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Проверка установочного пакета
|
|
142
|
+
|
|
143
|
+
Перед релизом соберите ZIP тем же скриптом, который использует CI, затем
|
|
144
|
+
прогоните install-smoke по готовому архиву. Проверка копирует
|
|
145
|
+
`skills/humanizer-ru` в чистую временную папку скиллов, запускает сканер из
|
|
146
|
+
установленной копии и проверяет, что в ZIP нет `.DS_Store`, `__pycache__` и
|
|
147
|
+
`*.pyc`:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
python3 scripts/build_release_zip.py --output dist/humanizer-ru.zip .
|
|
151
|
+
python3 scripts/install_smoke.py . --zip dist/humanizer-ru.zip
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Ожидаемый результат:
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
RESULT: PASS build-release-zip
|
|
158
|
+
RESULT: PASS install-smoke
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 5. Другие агенты (общий стандарт SKILL.md)
|
|
162
|
+
|
|
163
|
+
Формат Agent Skills стал кросс-платформенным, поэтому humanizer-ru работает и за пределами упакованных стеков. Официально упакованы и проверены: Claude Code, Codex CLI, Cursor, Gemini CLI, DeepSeek Harness. Остальные агенты читают тот же `SKILL.md`, отдельная версия не нужна.
|
|
164
|
+
|
|
165
|
+
| Как подключается | Агенты | Что делать |
|
|
166
|
+
|---|---|---|
|
|
167
|
+
| Читают `SKILL.md` нативно | GitHub Copilot, Cline, Roo Code, Kilo Code, Goose, OpenCode, OpenWork, Kimi Code CLI, OpenClaw, OpenHuman, Hermes | Скопировать папку `skills/humanizer-ru` в каталог скиллов агента (например `~/.hermes/skills/`, `~/.kimi/skills/`, `.agents/skills/`) |
|
|
168
|
+
| Конвертация инсталлером | Windsurf, Trae, Junie | Поставить через их установщик скиллов, указав репозиторий `ilyautov/humanizer-ru` |
|
|
169
|
+
| Ручная вставка | Zed, Aider, Continue.dev | Вставить тело `SKILL.md` в файл правил или инструкций агента |
|
|
170
|
+
|
|
171
|
+
Универсальный путь для нативных: положите папку скилла в каталог, который агент сканирует (обычно `<корень проекта>/.agents/skills/` или `~/.config/agents/skills/`), и перезапустите агент. Триггеры активации те же, что в Claude.
|
|
172
|
+
|
|
173
|
+
> У части этих агентов (OpenClaw, Kimi, Hermes) есть публичные каналы дистрибуции скиллов (реестр ClawHub, tap-репозитории). Листинг там даёт охват без отдельного кода: формат общий.
|
|
174
|
+
|
|
175
|
+
### 6. DeepSeek Harness (dsh)
|
|
176
|
+
|
|
177
|
+
DeepSeek Harness читает тот же формат Agent Skills, и скилл ставится двумя способами.
|
|
178
|
+
|
|
179
|
+
Бандлом, одной командой в нужный профиль (`web`, `tui` или `headless`):
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
dsh plugin --profile web add github:ilyautov/humanizer-ru
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Бандл текстовый: `package.json` с полем `dsh.bundle` и `cordis.patch.yml`, который монтирует штатный провайдер `dsh-skill-filesystem` на папку `skills/` пакета. Исполняемого кода в бандле нет, сборка при установке не нужна. Проверить без запуска модели: `dsh --profile web --dump-config` покажет слой `# == humanizer-ru`. Удаление: `dsh plugin --profile web remove humanizer-ru`.
|
|
186
|
+
|
|
187
|
+
Копией в пользовательский корень скиллов:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
cp -r humanizer-ru/skills/humanizer-ru ~/.agents/skills/
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
dsh сканирует `~/.agents/skills` и `~/.dsh/skills` сам, перезапуск не нужен. Ключ `allowed-tools` из фронтматтера dsh не читает, а `references/` разрешает относительно папки скилла, так что каталог и журнал правок открываются как в Claude Code.
|
|
194
|
+
|
|
195
|
+
## Использование
|
|
196
|
+
|
|
197
|
+
Попросите Claude по-русски:
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
Очеловечь этот текст: [вставьте текст]
|
|
201
|
+
Перепиши, звучит как робот: [вставьте текст]
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Триггеры срабатывания: «очеловечь», «убери следы нейросети», «сделай живым», «звучит искусственно», «перепиши как человек», «убери канцелярит», «слишком формально».
|
|
205
|
+
|
|
206
|
+
Режим аудита (только диагностика, без переписывания):
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
Проверь этот текст на AI-маркеры: [вставьте текст]
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Точечная правка одной категории:
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
Убери канцелярит из текста: [вставьте текст]
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
При установке плагином в Claude Code доступны slash-команды:
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
/humanize <текст или путь к файлу> # полный рерайт
|
|
222
|
+
/audit <текст или путь к файлу> # аудит без правки (сканер + разбор)
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Сканер знает про жанр. По умолчанию он строгий, под маркетинг и блоги, а для
|
|
226
|
+
других регистров снимает маркеры, которые там законны:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
python skills/humanizer-ru/scripts/scan.py статья.txt --genre academic # ещё legal, fiction
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Зачем это нужно, показал прогон по внешнему размеченному корпусу AINL-Eval 2025
|
|
233
|
+
(35 158 русских научных аннотаций): в строгом режиме баны оставались в 35,9%
|
|
234
|
+
человеческих текстов против 26,1-35,8% машинных, то есть на научном тексте
|
|
235
|
+
каталог не различал автора вовсе. С жанровой поправкой ложные срабатывания на
|
|
236
|
+
людях падают до 4,2%. Цифры и метод: [eval/AINL-CALIBRATION.md](eval/AINL-CALIBRATION.md).
|
|
237
|
+
|
|
238
|
+
## До и после
|
|
239
|
+
|
|
240
|
+
**Полное редактирование:**
|
|
241
|
+
|
|
242
|
+
До:
|
|
243
|
+
> В современном мире искусственный интеллект играет всё более важную роль в различных сферах деятельности. Стоит отметить, что данная технология является мощным инструментом для оптимизации рабочих процессов.
|
|
244
|
+
|
|
245
|
+
После:
|
|
246
|
+
> За последний год я внедрил AI-инструменты в три проекта. Два ускорились вдвое. Третий развалился, потому что команда перестала проверять то, что выдаёт модель. AI работает, когда понимаешь его ограничения.
|
|
247
|
+
|
|
248
|
+
Пять жёстких банов сработали в двух предложениях. Типичная картина.
|
|
249
|
+
|
|
250
|
+
**Режим аудита на том же тексте выдаст:**
|
|
251
|
+
|
|
252
|
+
```
|
|
253
|
+
[A] Пустое открытие: "В современном мире..."
|
|
254
|
+
[A] HARD BAN: "является мощным инструментом"
|
|
255
|
+
[A] HARD BAN: "играет важную роль"
|
|
256
|
+
[A] HARD BAN: "Стоит отметить, что..."
|
|
257
|
+
[B] Канцелярит: "оптимизации рабочих процессов"
|
|
258
|
+
[B] Раздувание: "всё более важную роль в различных сферах"
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## Работают ли AI-детекторы на русском языке?
|
|
262
|
+
|
|
263
|
+
Коротко: плохо, и это придётся учитывать.
|
|
264
|
+
|
|
265
|
+
GPTZero, Originality.ai, ZeroGPT и другие популярные детекторы AI-текста обучены в основном на английском. На русском они ненадёжны и ошибаются в обе стороны:
|
|
266
|
+
|
|
267
|
+
- **Ложные срабатывания (false positives):** текст, написанный живым человеком, регулярно помечается как «сгенерировано нейросетью». Английские пороги perplexity для русского не откалиброваны, а богатая русская морфология сама задирает «непредсказуемость».
|
|
268
|
+
- **Пропуски (false negatives):** аккуратный AI-текст проходит как человеческий.
|
|
269
|
+
|
|
270
|
+
Даже лучший специализированный русский детектор (RuRoBERTa на бенчмарке AINL-Eval 2025) даёт около 86% точности: каждый седьмой вердикт мимо. И детекторы не обобщаются между доменами: обученный на научных текстах ошибается на блогах (verified, см. [SOURCES.md](SOURCES.md)).
|
|
271
|
+
|
|
272
|
+
**Что это значит для очеловечивания текста.** Гнаться за «обходом детектора» на русском значит подгонять текст под ненадёжный и постоянно меняющийся индикатор. Поэтому humanizer-ru оптимизирует не обман детектора, а **реальное качество текста**: убирает канцелярит, кальки и штампы, возвращает авторский голос и живой ритм. Это измеримые свойства языка (метрики в [`eval/`](eval/)), которые не зависят от того, насколько плох конкретный детектор. Заодно растут perplexity и burstiness: то, что детекторы (как умеют) и пытаются мерить.
|
|
273
|
+
|
|
274
|
+
Мы прогоняем детекторы прямо в eval-харнесе по контролю «заведомо человек» (дословные отрывки статей Википедии, написанные людьми задолго до ChatGPT). В последнем прогоне локальный LLM-детектор пометил как ИИ **3 из 3** человеческих текстов (false positive rate 100%), поставив им ту же вероятность «это AI», что и настоящим AI-текстам. Различающая способность близка к нулю. Методика, корпус и сырые прогоны: [eval/RESULTS.md](eval/RESULTS.md), секция «FP-аудит детекторов».
|
|
275
|
+
|
|
276
|
+
## Часто ищут
|
|
277
|
+
|
|
278
|
+
**Как обойти GPTZero на русском?** GPTZero измеряет perplexity и burstiness. Скилл поднимает оба показателя: контрастное вычитание (замена самого предсказуемого слова в каждом предложении) повышает perplexity, рваный ритм с короткими и длинными предложениями повышает burstiness. Адверсарный парафраз снижает true positive rate детекторов на 87.88% по NeurIPS 2025.
|
|
279
|
+
|
|
280
|
+
**Как убрать признаки ChatGPT из текста?** Главные сигналы: «не просто X, а Y» (80%+ AI-текстов), «стоит отметить», «является», длинное тире, отсутствие частиц «же/ведь/вот», равномерная информационная плотность. Скилл ловит и заменяет все 64 паттерна.
|
|
281
|
+
|
|
282
|
+
**Как сделать текст ChatGPT человеческим на русском?** Три шага: убрать 21 жёстких банов, пройти контрастным вычитанием (одна замена на предложение), добавить речевые привычки (частицы, иронию, личное мнение, метафоры). Калибровка под голос автора усиливает эффект.
|
|
283
|
+
|
|
284
|
+
**Что такое канцелярит и как его убрать?** Канцелярит: превращение глаголов в отглагольные существительные («осуществление внедрения» вместо «внедрили»). Главный маркер русских AI-текстов. Соотношение существительных к глаголам у AI 3:1, у людей 2:1. Скилл разворачивает номинализации обратно в глаголы.
|
|
285
|
+
|
|
286
|
+
**Работает ли GPTZero на русском языке?** Ненадёжно. GPTZero обучен на английском и на русском даёт много ложных срабатываний: помечает живые человеческие тексты как ИИ, а аккуратный AI-текст пропускает. Подробнее в разделе «Работают ли AI-детекторы на русском».
|
|
287
|
+
|
|
288
|
+
**Почему мой текст помечают как ИИ, хотя я писал его сам?** Частая беда на русском: детекторы, обученные на английском, принимают за «машинность» нормальные свойства русского текста (морфология, длинные слова, формальный регистр). Если текст реально ваш, это ложное срабатывание детектора, а не приговор. Скилл помогает убрать конкретные машинные маркеры (канцелярит, кальки, штампы), от которых текст звучит «нейросетево».
|
|
289
|
+
|
|
290
|
+
**Какой AI-детектор лучший для русского?** Идеального нет. Из специализированных лучше показывают себя fine-tuned модели на базе RuRoBERTa (бенчмарк AINL-Eval 2025, ~86%), но и они проседают между доменами. Универсальные англоязычные (GPTZero, Originality, ZeroGPT) на русском особенно ненадёжны. Практический вывод: ориентируйтесь на реальное качество текста, а не на вердикт одного детектора.
|
|
291
|
+
|
|
292
|
+
**Работает ли это с Claude Sonnet / Opus 4?** Да. Это инструкция-каталог для любой модели Claude. Чем больше контекст модели, тем глубже она применяет правила. На Opus результат заметно сильнее на длинных текстах.
|
|
293
|
+
|
|
294
|
+
**Можно ли использовать без плагина?** Да. Скачайте SKILL.md и используйте как чек-лист для ручной правки или вставляйте в системный промпт любой LLM (ChatGPT, Gemini, YandexGPT, GigaChat).
|
|
295
|
+
|
|
296
|
+
**А если мне нужно длинное тире (я редактор / формальная типографика)?** По умолчанию скилл вычищает все длинные тире «—»: это главный типографический маркер AI, и живой неформальный русский его почти не ставит (с телефона печатают дефис). Но если вам нужна правильная издательская типографика, прямо скажите об этом: «я профессиональный редактор, длинное тире оставляй». Скилл снимет запрет. Сам он это исключение не включает. Решаете вы.
|
|
297
|
+
|
|
298
|
+
## Чем отличается от английского humanizer
|
|
299
|
+
|
|
300
|
+
| | humanizer-ru | blader/humanizer |
|
|
301
|
+
|---|---|---|
|
|
302
|
+
| Язык | Русский | Английский |
|
|
303
|
+
| Паттернов | 64 | 32 |
|
|
304
|
+
| Жёстких банов | 20 | - |
|
|
305
|
+
| Аудит | Quad-pass | Single-pass |
|
|
306
|
+
| Voice calibration | Да | Да |
|
|
307
|
+
| Стилистические фингерпринты 2025-2026 | Да | Нет |
|
|
308
|
+
| Морфология RuBERT-детекторов | Да | - |
|
|
309
|
+
| Macro-burstiness структурных блоков | Да | Нет |
|
|
310
|
+
|
|
311
|
+
Английский humanizer ловит универсальные AI-маркеры. Русские требуют отдельной модели: канцелярит, кальки с английского синтаксиса, частицы «же/ведь/вот», падежные согласования RuBERT-детекторов, морфологические ошибки длинных цепочек, плюс свежие фингерпринты Claude и GPT 2025-2026 («рваная медитативность», эмодзи-декор, псевдо-терапия), которые в англоязычных каталогах ещё не оформлены.
|
|
312
|
+
|
|
313
|
+
## Источники
|
|
314
|
+
|
|
315
|
+
Скилл собран из четырёх независимых источников развития:
|
|
316
|
+
|
|
317
|
+
- **Wikipedia: WikiProject AI Cleanup**: базовый каталог признаков AI-текста на русском
|
|
318
|
+
- **15+ русскоязычных публикаций**: Habr, vc.ru, Gramota.ru, стилометрические исследования ВШЭ, Dialog Conference (RuATD-2022 и AINL-Eval 2025), TechInsider, Kokoc.com
|
|
319
|
+
- **Верифицированные публикации (2024-2026)**: DivEye, PIFE, MASH, Antislop, AINL-Eval, RuATD, NeurIPS 2025 и др. Каждая ссылка и цифра проверена по arxiv и первоисточникам; неподтверждённые удалены. Полная таблица провенанса: [SOURCES.md](SOURCES.md).
|
|
320
|
+
|
|
321
|
+
Changelog: [CHANGELOG.md](CHANGELOG.md). Метрики и eval-харнес: каталоги [`scripts/`](scripts/) и [`eval/`](eval/).
|
|
322
|
+
|
|
323
|
+
## Автор
|
|
324
|
+
|
|
325
|
+
Илья Утов. Пишу про AI и работу с текстом в Telegram: [Under the Hood](https://t.me/gorilla_under_hood).
|
|
326
|
+
|
|
327
|
+
## Контрибьюторы
|
|
328
|
+
|
|
329
|
+
- **Филипп Зарубин** ([@zarubinphil](https://github.com/zarubinphil)): категория N «Дискурсный слой», паттерны 59-64 по StoryScope (COLM 2026). Признаки, которые переживают стилевую правку. Плюс согласование падежа при счётчике в релизном гейте.
|
|
330
|
+
- **iKonushok** ([@ikonushok](https://github.com/ikonushok)): install-smoke установочной поверхности и сборка релизного ZIP. Проверяется не папка в репозитории, а то, что реально доезжает до пользователя.
|
|
331
|
+
|
|
332
|
+
Полный список, включая баг-репорты, которые изменили код: [CONTRIBUTORS.md](CONTRIBUTORS.md). Как попасть в него: [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
333
|
+
|
|
334
|
+
## Лицензия
|
|
335
|
+
|
|
336
|
+
MIT: используйте свободно, форкайте, дорабатывайте. Pull request с новыми паттернами приветствуются.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
**humanizer-ru** помогает очеловечить русский AI-текст: убрать следы нейросети, канцелярит и штампы, вернуть живой голос и сделать текст человечным. Это бесплатный open-source скилл для Claude (Claude Code, Cowork, API), а не онлайн-сервис «в один клик». Почему детекторы AI и проверка текста на нейросеть на русском ненадёжны (и при чём тут антиплагиат): в разделах выше, с реальными данными из нашего eval-харнеса, а не из обещаний.
|
package/cordis.patch.yml
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Бандл для DeepSeek Harness. Ни строчки исполняемого кода: штатный провайдер
|
|
2
|
+
# dsh-skill-filesystem монтируется отдельным экземпляром на папку skills/ этого
|
|
3
|
+
# пакета, и скилл появляется в каталоге сессии. Путь вычисляется от места
|
|
4
|
+
# установки пакета (pnpm положит его в профиль), поэтому бандл одинаково
|
|
5
|
+
# работает из npm, из GitHub и из локального checkout.
|
|
6
|
+
- insert:
|
|
7
|
+
- id: humanizer-ru-skills
|
|
8
|
+
name: '@deepseek-ai/dsh-skill-filesystem'
|
|
9
|
+
config:
|
|
10
|
+
providerName: humanizer-ru
|
|
11
|
+
includeDefaultRoots: false
|
|
12
|
+
watch: false
|
|
13
|
+
customSkillDirs:
|
|
14
|
+
- !!js "process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:module').createRequire(baseUrl).resolve('humanizer-ru/package.json'), '..', 'skills')"
|
package/package.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "humanizer-ru",
|
|
3
|
+
"version": "3.19.0",
|
|
4
|
+
"description": "Agent skill for DeepSeek Harness: rewrites Russian text to remove 64 markers of AI generation (bureaucratese, calques, ChatGPT fingerprints), with a corpus-calibrated scanner, audit mode and author-voice calibration.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Ilya Utov",
|
|
7
|
+
"homepage": "https://humanizer-ru.aifrontier.tech/",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/ilyautov/humanizer-ru.git"
|
|
11
|
+
},
|
|
12
|
+
"keywords": ["dsh-bundle", "dsh-plugin", "agent-skill", "russian", "humanizer", "ai-text"],
|
|
13
|
+
"type": "module",
|
|
14
|
+
"files": ["cordis.patch.yml", "skills", "!skills/**/__pycache__"],
|
|
15
|
+
"dsh": { "bundle": { "patch": "./cordis.patch.yml" } }
|
|
16
|
+
}
|