Skip to content

Releases: codemistake/human-writing

v1.3.1

Choose a tag to compare

@codemistake codemistake released this 10 Sep 03:31

Разбор реального провала: Opus со скиллом написал пост в телеграм колонкой из тире-маркеров, с заголовком-эмодзи и жирными подзаголовками — 8,49 длинного тире на 100 слов при норме «одно на абзац». Три правки, прогон на 60 входах на Sonnet 5.

  • SKILL.md: норма тире распространена на пункт списка, а сам маркер пункта тире быть не может — для этого есть дефис и цифра. Прежняя формулировка считала пункт списка абзацем с одним допустимым тире, а маркер не считала вовсе, поэтому вдоль левого края выстраивалась колонна знаков при формально соблюдённой норме.
  • SKILL.md: «объявление» убрано из перечня жанров, которым положены шаги и пункты. Анонс фичи попадал под это слово и получал форму release notes.
  • SKILL.md: в разделе «Маркетинг / соцсети» сказано, что пост в канал — речь автора, а не release notes, и список в нём остаётся вставкой внутри связного текста, а не каркасом.
  • GLOBAL_RULES.md: правило тире продлено на пункты списка.

Результаты на Sonnet 5, 60 входов: 30 / 26 / 4 против 26 / 26 / 8 у v1.3.0. Вся прибавка в audience (8 / 2 против 5 / 5) и generate (3 / 4 / 1 против 1 / 5 / 2) — там, где адресат назван, а текст пишется с нуля.

Ограничение прогона: тире в роли маркера списка Sonnet не поставил ни разу ни с правилами, ни без них, поэтому главная правка на этом бенчмарке не измеряется — дефект воспроизводится на Opus в живом чате. Счётчики фактов между прогонами несопоставимы: состав судей другой, baseline на тех же текстах сместился с 23 потерь до 31.

v1.3.0

Choose a tag to compare

@codemistake codemistake released this 07 Sep 04:00

Три изменения в правилах и разбор проигранных пар. Проверено прогоном на 60 входах на Sonnet 5 и Opus 5.

  • SKILL.md: длинное тире. Знак не запрещается: в русском он законный, а подмена дефисом — типографская ошибка. Ограничивается частота: не больше одного тире на абзац, остальные конструкции перестраиваются через двоеточие, точку, запятые или скобки. В договоре и научном тексте частота тире вообще не признак машины.
  • SKILL.md: форму задаёт читатель, а не длина текста. Шаги тому, кто будет действовать по тексту или искать глазами свой пункт; сплошной текст тому, кому список читался бы холодно, и там, где довод опирается на предыдущее звено. Названный пользователем адресат важнее умолчаний, форму готового текста при редактуре не переделывать без нужды.
  • SKILL.md: четыре правки по разбору проигранных пар. Запрет добавлять обращение и подпись теперь действует только при редактуре: письмо с нуля без них выходит выжимкой фактов. Действующее лицо не прячется в пассив, иначе вместе с ним пропадают кванторы и ответственность. Концовку жанра нельзя обрывать: у процедуры есть последний шаг, у письма завершение. В сканируемых текстах ломающее изменение выносится отдельно.
  • GLOBAL_RULES.md: те же правила о тире и о выборе формы.
  • bench/: набор расширен до 60 входов, добавлен тип audience — в запросе прямо назван адресат и то, как он читает. Прогон на Opus 5. Две новые метрики: частота длинного тире и дефиса вместо него.

Результаты. На Opus 5 разрыв по фактам самый большой за все прогоны: базовая модель выдумала 38 утверждений на 60 текстов, со скиллом 2, потери 30 против 11. Правило о тире Opus выполняет буквально, 0,63 знака на 100 слов при 0,75 в исходных текстах. На Sonnet 5 счёт 26 / 26 / 8 при 12 потерянных фактах против 23 и 9 выдуманных против 26.

Отдельный вывод: на этом наборе разница между близкими версиями скилла (две-три пары) меньше разброса между прогонами, поэтому выбирать версию по счёту побед больше нельзя. Шесть промежуточных вариантов и их прогоны сохранены в bench/results-v1.3.0-* и bench/judge-v1.3.0-*.

v1.2.0

Choose a tag to compare

@codemistake codemistake released this 07 Sep 00:18

По результатам бенчмарка на 50 входах (см. bench/): слабые места v1.1.0 — длинные документы (2:5), голос автора (1:3) и выдумки на слабой модели (Haiku, rewrite 5:12).

  • SKILL.md: раздел «0. Ядро» — восемь главных правил в начале файла, чтобы слабая модель держала их в фокусе.
  • SKILL.md: в режиме редактуры — обратная трассировка: каждое утверждение результата должно указывать на место в исходнике.
  • SKILL.md: раздел 7 — обязательная сверка результата с образцом по пунктуации, времени глаголов и связкам; голос не даёт права на конкретику; причина из данных переносится целиком.
  • SKILL.md: раздел 10 — подраздел «Длинный текст (от ~300 слов)»: дубли, висящие ссылки, лицо автора, ориентирующие разделы, концовка; уточнение для нормативных текстов: канцелярит внутри пункта убирать можно, синтаксис пункта — нет.
  • SKILL.md: финальная проверка — пункты 11–13 (трассировка, длинный текст, образец).

Проверено перепрогоном всех 50 входов на Sonnet и Haiku (baseline не менялся, судьи — Claude Opus, вердикты v1.1.0 сохранены в bench/judge-v1.1.0-n50/):

  • Sonnet: 26 / 16 / 8 против 26 / 15 / 9 у v1.1.0. Целевые типы выправились: long 3:3 вместо 2:5, voice 2:2 вместо 1:3. Выдумки почти исчезли: 1 против 17 у baseline. Плата — осторожная редактура канцелярита: rewrite 7:7 вместо 10:4.
  • Haiku: 26 / 19 / 5 против паритета 23 / 22 / 5. Выросли subtle (7:1) и voice (4:0). На rewrite слабая модель со скиллом по-прежнему проигрывает 6:11 и выдумывает.

v1.1.0

Choose a tag to compare

@codemistake codemistake released this 06 Sep 20:15

1.1.0 — 2026-09-06

По результатам бенчмарка (см. bench/): v1.0.0 проигрывала базовой модели 6:10, потому что резала содержание вместе с водой и схлопывала инструкции в абзац.

  • SKILL.md: правило «режь воду, а не содержание» с перечнем того, что считается содержанием (призыв к действию, просьба об обратной связи, благодарность, кванторы, условия, обращение и подпись).
  • SKILL.md: инструкции, чеклисты и задачи оформляются шагами, команды и пути — в код, даже если исходник был абзацем.
  • bench/: бенчмарк — 20 русских входов, метрики (score.py), слепая парная оценка (judge.py), результаты обеих версий. После правок: 8:6 в пользу скилла, 0 потерянных фактов против 3 у baseline.

v1.0.0

Choose a tag to compare

@codemistake codemistake released this 06 Sep 05:21

Changelog

1.0.0 — 2026-09-06

Первый публичный релиз.

  • SKILL.md: правила для русского текста как основной ветки, английский — второй язык.
  • GLOBAL_RULES.md: короткий блок для глобального AGENTS.md / CLAUDE.md.
  • install.sh / install.ps1: установка в OpenCode, Claude Code, Codex, Cursor.
  • Синтез идей из Anbeeld/WRITING.md, ilyautov/humanizer-ru и blader/humanizer без цели обхода AI-детекторов.