FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

freeunitdev/ai-SimpleEn-RU: Agent skill: make LLMs write docs in ASD-STE100 Simplified Technical English — no AI slop · GitHub

 
 

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🇷🇺 Русский — УТР, ГОСТ Р 58049-2017  ·  🇬🇧 English — ASD-STE100


🇷🇺 Русская версия — упрощённый технический русский

✈️ ваш ИИ пишет как пост в соцсети. заставьте его писать как руководство по эксплуатации «Суперджета».

Навык для агента, который заставляет языковые модели писать документацию на
упрощённом техническом русском языке (УТР) по разделу 8.2 ГОСТ Р 58049-2017:
контролируемом языке для эксплуатационной документации авиационной техники,
созданном так, чтобы усталый техник у «Сухого Суперджета» не мог понять инструкцию неправильно.
Вода из текста уходит как побочный эффект. 💀

Посмотреть · Установка · Правила · Отличия от STE · Проверка текста · Вопросы

Работает в любой среде, которая поддерживает стандарт Agent Skills: Claude Code, Cursor, VS Code Copilot, OpenAI Codex, Gemini CLI, Goose, OpenCode и ещё примерно 25. Одна папка, без зависимостей, лицензия MIT.

🔥 Было / стало

Слева — типичный текст языковой модели. Справа — тот же смысл по правилам УТР.

🤖 Без навыка ✈️ С навыком

sqlpipe является мощным и надёжным инструментом, который позволяет осуществлять копирование таблиц PostgreSQL в S3, что делает его отличным выбором для команд, нуждающихся в легковесном способе выгрузки данных без развёртывания полноценной ETL-платформы.

sqlpipe — это утилита командной строки. Она копирует таблицы PostgreSQL в Amazon S3 в формате Parquet. Она переносит данные в озеро данных без ETL-платформы.

Упс! Что-то пошло не так при попытке загрузки файла в хранилище. Пожалуйста, убедитесь, что ваши учётные данные были корректно настроены, и повторите попытку.

Загрузка в S3 отклонена: код AccessDenied.
У ключа IAM нет права s3:PutObject для бакета analytics-exports.
Добавьте это право в политику ключа, затем запустите команду снова.

Мы выявили проблему, которая могла повлиять на возможность части наших пользователей получить доступ к сервису. Приносим извинения за возможные неудобства.

С 14:02 до 14:31 UTC 12 % запросов к API завершились с кодом HTTP 502. Развёртывание в 14:00 убрало шаг прогрева кеша. Мы откатили его в 14:27.

Больше примеров с номерами пунктов ГОСТа: examples/before-after-ru.md.

📦 Установка

npx skills add GregoryPletnev/SimpleEn-RU

Утилита skills находит ваши агенты (Claude Code, Cursor, Codex, Copilot, Gemini CLI и другие) и ставит навык в выбранные. Попробовать без установки:

npx skills use GregoryPletnev/SimpleEn-RU@simple-russian

Среда не поддерживает SKILL.md? Вставьте блок из prompts/system-prompt-ru.md в системный промпт, AGENTS.md или .cursorrules. Там же есть версия примерно на 70 токенов.

Затем просите любой технический текст или пишите: «перепиши это по УТР».

🖱️ Без терминала (claude.ai, ChatGPT, Gemini)

Claude.ai (платные тарифы) поддерживает навыки:

  1. Откройте SKILL.md и сохраните файл (Ctrl+S).
  2. В claude.ai откройте Settings → Capabilities и включите выполнение кода.
  3. Откройте Settings → Customize → Skills → Upload и загрузите сохранённый SKILL.md.
  4. Включите навык. Готово.

ChatGPT: навыки не поддерживаются. Скопируйте блок из prompts/system-prompt-ru.md в Настройки → Персонализация → Пользовательские инструкции или в инструкции проекта.

Gemini: создайте Gem и вставьте тот же блок в его инструкции.

📏 Правила

Раздел 8.2 ГОСТ Р 58049-2017. Пункты, которые работают больше всех:

Пункт Что он убивает 🪦
8.2.5.1, 8.2.6.1 — максимум 20 слов в предложении Период на 43 слова с четырьмя запятыми
8.2.3.11 — ограничить причастия и деепричастия «Сотрудник, отвечающий за…», «Запустив миграцию, …»
8.2.3.10 — глаголы вместо номинативных конструкций «осуществляют выполнение проверки параметров»
8.2.3.9, 8.2.5.3 — повелительное наклонение множественного числа, глагол первым Инфинитив в списке шагов: «установить пакет»
8.2.3.13 — без страдательного залога в инструкциях «Резервная копия должна быть создана»
8.2.3.7 — один термин на одно понятие Рулетка «проверить / убедиться / удостовериться»
8.2.3.4 — прямой порядок слов «Осмотр конфигурации производите при…»
8.2.5.2 — одна команда в предложении Шаги, которые нельзя выполнить в 2 часа ночи
8.2.7 — сначала команда или условие, потом риск Предупреждение, спрятанное после объяснения
8.2.3.5 — без метафор, сравнений и жаргона «Держим руку на пульсе», «из коробки»

Полный каталог с примерами из программной документации: SKILL.md. Да, этот README нарушает половину из них. Рекламные тексты прямо выведены за границы применения УТР. Навык об этом знает и остаётся в документации. 😌

🔀 Чем УТР отличается от ASD-STE100

ГОСТ прямо называет ASD-STE100 образцом (пункт 8.1.2), но это не перевод. Различия, которые меняют текст:

ASD-STE100 УТР (ГОСТ Р 58049-2017)
Длина предложения 20 слов в инструкции, 25 в описании 20 в обоих случаях (8.2.5.1, 8.2.6.1)
Текст в скобках считается одним словом (8.5) считается отдельным предложением, лимит 20 слов действует и на него
Повелительное наклонение просто императив только множественное число, глагол на первом месте (8.2.3.9)
Безличные конструкции пассив не приветствуется неопределённо-личные конструкции предписаны (8.2.3.3)
Словарь разрешённых слов около 900 слов, издаёт ASD нет — проект составляет свою терминологическую базу и глоссарий (8.1.3—8.1.8)
Главная структурная цель времена, модальные глаголы, обороты на «-ing» причастия, деепричастия, цепочки существительных, отглагольные существительные
Абзац максимум 6 предложений максимум 6 предложений, и абзац из одного предложения не чаще одного раза на 10 (8.2.6.2)

Английский навык живёт рядом: simple-english, описание — в английской части.

🧰 Не только документация

Навык содержит правила (use-cases.md) для:

  • 🚨 Сообщений об ошибках: что произошло → почему → что сделать, в этом порядке
  • 📟 Регламентов и рунбуков: родная территория УТР
  • 🧯 Отчётов об инцидентах: прошедшее время убивает «мы выявили проблему, которая могла повлиять»
  • 📣 Описаний релизов: несовместимые изменения по схеме предупреждения — сначала команда, потом риск
  • 🤖 Ваших AGENTS.md и промптов: системный промпт — это инструкция для читателя, который не может задать вопрос. Модели читают «следует» как «необязательно». УТР требует повелительного наклонения. Подумайте об этом.
  • 🌍 Подготовки к переводу: исходная задача УТР по пункту 8.2.1

Куда навык не идёт: реклама, блог, тексты бренда. Плоско по замыслу. ✋

📊 Проверка текста

В комплекте детерминированный линтер evals/utr_lint.py. Без зависимостей.

python3 evals/utr_lint.py --type procedural --refs ваш-файл.md
python3 evals/utr_lint.py --self-test

Он считает нарушения, которые ловит регулярное выражение: длину предложения, причастия и деепричастия, страдательный залог, номинативные конструкции, инфинитивы в шагах, повелительное наклонение единственного числа, условие после команды, жаргон, лишние заимствования, воду и ротацию синонимов. Флаг --refs печатает пункт ГОСТа за каждым счётчиком.

Честный потолок: это регулярные выражения, а не морфологический анализатор. Русскому языку нужен анализатор. Линтер работает по суффиксам и спискам слов, поэтому он и недосчитывает (порядок слов по 8.2.3.4 не проверяется), и иногда считает лишнее. Его числа сравнимы между двумя текстами на одной версии линтера. Это не вердикт о соответствии стандарту.

На 55,2 % меньше нарушений УТР на 100 слов с навыком. 6 моделей × 8 задач × 2 условия, 96 генераций, измерено.

Модель База, наруш./100 слов С навыком Снижение
claude-opus-4-8 2.12 0.42 80 %
claude-opus-4-7 1.81 0.98 46 %
claude-opus-4-6 1.29 0.68 47 %
claude-opus-4-5 1.61 0.75 53 %
claude-sonnet-5 2.21 0.58 74 %
claude-sonnet-4-6 1.23 0.85 31 %

Выиграли все шесть моделей. Средняя длина предложения: 9,0 → 7,2 слова. Разброс снижения велик — от 31 % до 80 %, а на ячейку приходится одна генерация, поэтому читайте таблицу как направление, а не как точную величину. Полный метод и список оговорок: evals/results/RESULTS-RU.md.

Повторить у себя:

python3 evals/run_bench.py --lang ru

Нужен только Claude Code CLI с выполненным входом. Английская матрица для сравнения: 71,0 % — evals/results/RESULTS.md.

❓ Вопросы

Текст будет соответствовать ГОСТу? Нет. Ни один инструмент этого не гарантирует. По умолчанию работает практический режим: структурные правила плюс терминология вашего проекта. Строгий режим ближе к стандарту, но полное соответствие требует терминологической базы и глоссария проекта (пункты 8.1.3—8.1.8), а готового словаря разрешённых слов у УТР нет.

Текст станет деревянным? Он станет похож на руководство по эксплуатации: плоским и однозначным. Для документации это и есть цель. Голос оставьте блогу. ✍️

Зачем стандарт для перевода авиационной документации в моём README? Затем, что это не вкусовщина. Это нумерованные, проверяемые правила, а русская техническая проза ломается ровно там, где их нарушает: причастные обороты, цепочки родительных падежей, «осуществляется» вместо глагола.

Почему просто не написать «пиши понятно»? «Понятно» — это мнение. «Не больше 20 слов в предложении» — это спецификация. Агенты выполняют спецификации. 📐

⚖️ Лицензия и статус

MIT на всё содержимое репозитория. Правила пересказаны для обучения, текст стандарта и содержимое словарей не воспроизводятся. Неофициальный проект. Не связан с Росстандартом, разработчиками ГОСТ Р 58049-2017, ASD и STEMG и не одобрен ими. ASD-STE100 — зарегистрированный товарный знак ASD.


🇬🇧 English — ASD-STE100 Simplified Technical English

✈️ your AI writes like a LinkedIn post. make it write like a Boeing manual.

An agent skill that forces LLMs to write docs in ASD-STE100 Simplified Technical English:
the controlled language aerospace has used since 1983 so a tired mechanic cannot misread an instruction.
AI slop dies as a side effect. 💀

This repository is a fork of AminBlg/SimpleEnglish.
It adds Russian support: the simple-russian skill for ГОСТ Р 58049-2017 (УТР), a Russian linter, and Russian benchmark scenarios.
The English skill, its rules, and its measured benchmark come from upstream.

See it · Install · The rules · Not just docs · Benchmarks · Receipts · FAQ

Works in every harness that speaks the Agent Skills standard: Claude Code, Cursor, VS Code Copilot, OpenAI Codex, Gemini CLI, Goose, OpenCode, and ~25 more. One folder, no dependencies, MIT.

🔥 Before / after

Left column is real unedited Claude output. Right column is the same model with the skill loaded.

🤖 Without skill ✈️ With skill

Leveraging sqlpipe's robust architecture, users can seamlessly synchronize their Postgres tables to S3 with minimal configuration overhead. Before getting started, you should ensure that your AWS credentials have been properly configured — this is crucial for avoiding frustrating permission issues down the line.

sqlpipe copies your Postgres tables to S3. It needs one configuration file.

Before you start, make sure that your AWS credentials are correct. If they are not, S3 rejects the upload with a permission error.

Oops! Something went wrong while attempting to establish a connection. Please ensure your credentials have been properly configured and try again, or reach out to your administrator if the issue persists.

Connection to the database failed: the password for user app was not correct. Set DB_PASSWORD to the correct value, then connect again.

We have identified an issue that may have impacted some users' ability to access the service. We sincerely apologize for any inconvenience this may have caused.

Between 14:02 and 14:31 UTC, 12% of requests failed. A deploy at 14:00 removed the cache warmup step. We reverted it at 14:27.

┌── measured: 6 Claude models × 8 tasks × 2 conditions, 96 runs ──┐
│  STE violations per 100 words     ▼ 71.0%  (every model won)    │
│  output tokens                    ▼ on all 6 models             │
│  mean sentence length             10.5 → 9.3 words              │
│  "seamlessly" survived            0                             │
└─────────────────────────────────────────────────────────────────┘

More rewrites in examples/before-after.md: READMEs, error messages, incident reports, release notes.

📦 Install

npx skills add GregoryPletnev/SimpleEn-RU

That is it. The skills CLI detects your agents (Claude Code, Cursor, Codex, Copilot, Gemini CLI, and more) and installs for the ones you pick. This repository ships both skills, so you can select simple-english alone, or take simple-russian with it. For the English skill only, from upstream: npx skills add AminBlg/SimpleEnglish.

Try before installing:

npx skills use GregoryPletnev/SimpleEn-RU@simple-english

No SKILL.md support at all? Paste prompts/system-prompt-en.md into your system prompt, AGENTS.md, or .cursorrules. There is even a ~60-token version for tight budgets.

Then ask for any technical writing, or say: "rewrite this with simple-english".

🖱️ No terminal? (claude.ai, ChatGPT, Gemini)

Claude.ai (paid plans) supports skills natively:

  1. Download the skill file: open SKILL.md and save it (Ctrl+S / Cmd+S).
  2. In claude.ai, go to Settings → Capabilities and turn on code execution.
  3. Go to Settings → Customize → Skills → Upload and upload the saved SKILL.md.
  4. Toggle the skill on. Done. Claude applies it when you ask for technical writing.

ChatGPT: no skill support, so use the prompt version. Copy the block from prompts/system-prompt-en.md into Settings → Personalization → Custom Instructions, or into the instructions of a Project or Custom GPT.

Gemini: create a Gem and paste the same block into its instructions.

Any other chatbot: attach or paste prompts/system-prompt-en.md into the chat and say "apply this to everything you write for me".

📏 The rules

53 numbered rules, 9 sections, written in 1983 by people whose readers die when a sentence is ambiguous. The ones doing the heavy lifting:

Rule What it kills 🪦
Max 20 words per instruction, 25 per description The run-on sentence
One word = one meaning, whole document check/verify/confirm/validate roulette
Simple tenses only "has been updated" → "we updated"
No "-ing" verb forms ", making it easy to..." clauses
Active voice "it should be noted that"
No should/would/may/might Hedging. (can, will, must survive)
Condition BEFORE command Trailing "...if the flag is set" that readers execute too late
One instruction per sentence Steps nobody can follow at 2 a.m.
Keep articles, keep "that" Telegraph style. STE is short, not terse

Full paraphrased set with software examples: SKILL.md. Yes, this README breaks half of them. Marketing is explicitly out of STE scope. The skill knows that and stays in the docs. 😌

🧰 Not just docs

The skill ships adaptations (use-cases.md) for:

  • 🚨 Error messages: what happened → why → what to do, in that order
  • 📟 Runbooks: STE's home turf; a runbook IS a maintenance manual
  • 🧯 Incident reports: simple past murders "we have identified an issue that may have impacted"
  • 📣 Release notes: breaking changes as warnings: command first, risk second
  • 🤖 Your AGENTS.md / prompts: a system prompt is a procedure for a reader that cannot ask questions. Models read "should" as optional. STE bans "should". Think about it.
  • 🌍 Translation prep: STE's original job: readable for non-natives, cheap to localize

Where it refuses to go: marketing copy, blog voice, brand writing. Flat on purpose. ✋

📊 Benchmarks

71.0% fewer STE violations per 100 words with the skill on, averaged across 6 models × 8 writing tasks (96 generations, measured).

Model Baseline viol/100w Skill viol/100w Reduction
claude-opus-4-8 1.05 0.62 41%
claude-opus-4-7 1.97 0.42 79%
claude-opus-4-6 2.24 0.40 82%
claude-opus-4-5 2.29 0.57 75%
claude-sonnet-5 2.48 0.53 79%
claude-sonnet-4-6 1.77 0.52 71%

Output tokens went DOWN on all six models too (the skill writes shorter). Deterministic regex linter, same rules for both conditions, honest-caveat list and full method in evals/results/RESULTS.md. Reproduce with python3 evals/run_bench.py — needs only a logged-in Claude Code CLI.

🧾 Receipts

Built TDD-style against the primary Issue 9 text (2025), not blog summaries:

  • Baseline agents without the skill wrote 40-word sentences and invented rule numbers. One confidently cited "Rule 3.1: short sentences" (real Rule 3.1 is verb forms 💀)
  • Secondary sources online are wrong about the modals: can and will ARE approved. We checked the PDF.
  • The skill was written to close each recorded baseline failure, then re-tested until agents pass. Scenarios + recorded results: evals/pressure-tests.md

🇷🇺 Russian? Use УТР instead

Russia has its own controlled language, and it names STE as its model: ГОСТ Р 58049-2017, clause 8.2, упрощённый технический русский язык (УТР). Same idea, different grammar problems — Russian breaks on participial phrases, genitive noun chains, and nominalized verbs rather than on tenses and modals, so the limits and targets differ:

ASD-STE100 УТР (ГОСТ Р 58049-2017)
Sentence limit 20 procedural / 25 descriptive 20 for both (8.2.5.1, 8.2.6.1)
Text in parentheses counts as one word (8.5) counts as a separate sentence, also capped at 20
Imperative plain imperative plural imperative only, verb first (8.2.3.9)
Impersonal constructions passive discouraged неопределённо-личные constructions are prescribed (8.2.3.3)
Approved dictionary ~900 words, published by ASD none — the project builds its own terminology base and glossary (8.1.3–8.1.8)
One paragraph max 6 sentences max 6 sentences, and single-sentence paragraphs at most once per 10 (8.2.6.2)

Sibling skill, its own linter and its own measured matrix: 55.2% fewer УТР violations per 100 words, 6 models × 8 tasks × 2 conditions, 96 generations (evals/results/RESULTS-RU.md). All six models improved. Details: see the Russian part above.

npx skills use GregoryPletnev/SimpleEn-RU@simple-russian

❓ FAQ

Does this make output STE-certified? No. Nothing does, because ASD certifies no tool. Default mode is pragmatic: structural rules + your domain vocabulary. Strict mode gets close; word-level rulings live in the official standard, a free download.

Will my docs sound robotic? They will sound like Airbus manuals: flat and impossible to misread. For docs that is the whole point. Keep your voice for your blog. ✍️

Why not just prompt "write clearly"? "Clearly" is an opinion. "No sentence over 20 words" is a spec. Agents follow specs. 📐

Why a 40-year-old aerospace standard? Because it is not vibes. It is maintained (Issue 9, January 2025), numbered, and testable. And it happens to be a near-perfect negative of every AI writing tell.

⚖️ License and status

MIT for everything here. The repo paraphrases the rules for teaching and reproduces zero spec text or dictionary content. Unofficial project, not affiliated with or endorsed by ASD, STEMG, or the authors of ГОСТ Р 58049-2017. ASD-STE100 is a registered trademark of ASD.

About

Agent skill: make LLMs write docs in ASD-STE100 Simplified Technical English — no AI slop

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages


Back | FazBrowse Home | New Git URL