# Docs Generator

> README, ADR, docstrings (Google-стиль) и синхронизация CLAUDE.md/AGENTS.md: написать недостающее и найти протухшее. Документирует «почему», а не пересказывает код. Используй когда пользователь говорит «как улучшить документацию монолита», «посмотри статус документации проекта», просит написать или обновить README, оформить ADR, добавить docstrings, синхронизировать CLAUDE.md. Спека, план или записка для CEO — spec-writer; DoD и tooling-обвязка — harness-engineering; понять чужой код — codebase-recon.

- Skill: `goldenprofile/docs-generator` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add goldenprofile/docs-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/goldenprofile/docs-generator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: goldenprofile (https://skillmd.com/u/goldenprofile)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/goldenprofile/docs-generator

---


# Docs Generator — документация, которую читают

Генератор и аудитор документации для Python-проектов (Django / FastAPI / aiogram). Ключевая
идея: документация — это **страховка «будущего тебя»** и **топливо для агентов**, а не
бюрократия. Минимум воды, документируем «почему», помечаем устаревшее. Чем меньше команда,
тем важнее первое: через полгода единственный носитель контекста — текст в репозитории.

## Когда применять

Новый проект без README; пришёл к старому проекту и не помнишь, как он устроен; принял важное
архитектурное решение (нужен ADR); публичный/переиспользуемый код без docstrings; CLAUDE.md и
AGENTS.md разъехались. Работает в двух режимах — **генерация** (создать недостающее) и **аудит**
(найти отсутствующее/устаревшее). Незнакомый проект сперва разбери через `codebase-recon`.

## Принципы

- **Документируй «почему», а не «что».** Код уже говорит, *что* он делает. Док объясняет *почему*
  так, какие были альтернативы и ограничения — это не вытащить из кода.
- **Минимум воды.** Никакой маркетинговой прозы. Каждая строка либо экономит время будущего тебя,
  либо нужна агенту. Не дублируй очевидное (тип уже в hint — не повторяй его словами).
- **Устаревший док хуже отсутствующего.** Он врёт. Помечай (`> [!WARNING] устарело: …`) или удаляй.
- **Близко к коду.** Docstrings — в коде; README — в корне; ADR — в `docs/adr/`. Не плоди вики.
- **Для агентов.** CLAUDE.md/AGENTS.md — кратко и проверяемо; README даёт агенту быстрый старт.

## Процесс

1. **Разведка.** Что уже есть (README, `docs/`, `docs/adr/`, CLAUDE.md, AGENTS.md, docstrings),
   класс проекта (Django-веб / FastAPI-API / aiogram-бот / automation-скрипт), точки входа.
2. **Аудит.** Прогони по чеклисту (ниже): что отсутствует, что устарело (док противоречит коду),
   что лишнее. Классифицируй по приоритету.
3. **Генерация.** Создай/обнови по шаблонам из справочников. Спрашивай только то, чего нет в коде
   (мотивацию решений для ADR/README); техническое (env, команды запуска) вытаскивай из репозитория.
4. **Вывод.** Отчёт по [references/output-format.md](references/output-format.md); правки — по согласованию.

## Уровни приоритета (для аудита)

- **CRITICAL** — документация **врёт**: README/CLAUDE.md противоречит коду (неверная команда
  запуска, несуществующая env-переменная, удалённый модуль) → агент или будущий ты сломает прод.
- **HIGH** — нет того, без чего проект не запустить: README без quick start / списка env,
  CLAUDE.md и AGENTS.md рассинхронизированы, нет ADR для уже принятого нетривиального решения.
- **MEDIUM** — публичный API/сервис без docstrings, нет деплой-заметки (systemd/nginx),
  ADR без раздела «последствия», README без ссылки на архитектуру.
- **LOW** — стиль, формулировки, docstring дублирует type hint, мелкие неточности.

## Быстрый чеклист

- README: есть назначение, quick start, **полный** список env, команда запуска, деплой-заметка?
- Все команды/env в README и CLAUDE.md реально существуют в коде (не устарели)?
- CLAUDE.md и AGENTS.md синхронизированы (или AGENTS.md — символьная ссылка/копия)?
- Принятые нетривиальные решения (выбор БД, async vs sync, отказ от Celery) зафиксированы в ADR?
- Публичные функции/классы/сервисы имеют docstring, объясняющий «почему», а не тип аргументов?
- Нет устаревших доков, противоречащих текущему коду (помечены `устарело` или удалены)?

## Связь с библиотекой навыков

- **`harness-engineering`** — canonical docs (ARCHITECTURE.md, WORKFLOW.md), глубокая настройка
  CLAUDE.md/AGENTS.md (DoD, tooling). docs-generator пишет «человеческие» доки; harness — обвязку
  для агентов. См. [references/agent-docs.md](references/agent-docs.md).
- **`codebase-recon`** — запусти ПЕРЕД документированием незнакомого проекта (восстановить
  архитектуру, точки входа, бизнес-цель), иначе будешь документировать вслепую.
- **`python-project-audit`** — аудит качества кода; docs-generator — аудит и генерация доков к нему.

## Справочники

- [references/readme.md](references/readme.md) — структура README (назначение, quick
  start, env, запуск, деплой-заметка systemd/nginx), что включать и чего не писать.
- [references/adr.md](references/adr.md) — лёгкий ADR (MADR): когда писать, нумерация, `docs/adr/`,
  шаблон (контекст/решение/последствия), статусы и superseded.
- [references/docstrings.md](references/docstrings.md) — Google-style docstrings, что документировать
  (модуль/класс/функция), связь с type hints, что НЕ писать, примеры (Django/FastAPI/async).
- [references/agent-docs.md](references/agent-docs.md) — CLAUDE.md/AGENTS.md: что писать (кратко,
  проверяемо), синхронизация двух файлов, граница с harness-engineering.
- [references/output-format.md](references/output-format.md) — формат отчёта аудита/генерации.

