Репозиторий продуктовой, функциональной, UI, API и технической документации команды разработки.
Документация создаётся и поддерживается преимущественно AI-агентами и при этом остаётся полностью читаемой людьми.
Пошаговый workflow сотрудника — от постановки задачи до коммита, с примерами промптов — WORKFLOW.md.
Это не хранилище Markdown-файлов, а формализованная система ведения требований:
Product Context → Product Documentation → Requirements → UI/API → Technical Specification → Review
Система обеспечивает:
- предсказуемую структуру документов;
- traceability между требованиями (FR/BR/NFR/UI/API/ADR);
- минимизацию дублирования через cross-reference;
- защиту от «придуманных» AI требований (FACT / ASSUMPTION / TBD);
- масштабирование на большую команду и много сервисов.
docs/
├── product/ # Глобальный продуктовый контекст: overview, vision, glossary,
│ # personas, roles, business-rules, non-functional-requirements
├── features/ # Документация по фичам: одна директория = одна feature
│ # (внутри api/ и model/ — файл на метод и на сущность)
├── changes/ # Change proposals: изменения утверждённых документов
│ # (+ archive/ применённых и отклонённых)
├── architecture/ # Архитектура системы, доменная модель данных (data-model/) и ADR
├── api/ # Глобальные API-соглашения и документация сервисов (services/)
└── ai/ # Справочные материалы для AI: рекомендуемые external skills
templates/ # Шаблоны документов (source of truth для структуры);
rules/ # Глобальные правила для AI и людей (стиль, ID, ссылки, guardrails)
schemas/ # Стандарт метаданных, ID и простые YAML-схемы
scripts/ # Локальные автоматические проверки документации
.gigacode/skills/ # Agent Skills для работы с документацией (GigaCode CLI)
.gigacode/commands/ # Команды /feature-* и /change-*: сборка feature и change proposal
.gigacode/rules/ # Базовые правила поведения агента GigaCode
GIGACODE.md # Entry point GigaCode CLI: импорты .gigacode/rules/
services/ # Локально подключённые репозитории сервисов (не коммитятся)
Ключевое правило: глобальный контекст не копируется в feature — feature ссылается на docs/product/, docs/architecture/, docs/api/.
| Тип | Файл | Отвечает на | Содержит |
|---|---|---|---|
| Product | product.md |
WHAT + WHY | Проблема, цель, пользователи, сценарии, scope |
| Requirements | requirements.md |
Ожидаемое поведение | FR-XXX, BR-XXX, NFR-XXX, acceptance criteria |
| Model | model/ |
Какие данные | Индекс и файл на сущность: поля, связи, дельта существующих |
| UI | ui.md |
Поведение интерфейса | UI-XXX, экраны, состояния, валидация |
| API | api/ |
Контракт взаимодействия | Индекс и файл на метод: API-XXX, request/response, errors |
| Technical | technical.md |
HOW | Решение, компоненты, data flow, миграции |
| ADR | decisions/adr-XXX-*.md |
WHY (техническое решение) | Контекст, решение, альтернативы, последствия |
Уровни не смешиваются: product не содержит деталей реализации, technical не переопределяет требования.
Каждый документ имеет статус в YAML frontmatter:
draft → review → approved → deprecated
draft— создан, не проверен;review— на проверке (в т.ч. skilldocumentation-review);approved— утверждён, является source of truth;deprecated— устарел, хранится для истории; его требования не действуют.
Содержательное изменение approved-документа (добавление/изменение/удаление требований) вносится через change proposal в docs/changes/<change-name>/: proposal с дельтами требований утверждает человек, затем изменения применяются к целевым документам, а proposal архивируется. MINOR-правки и правки draft/review-документов идут обычным процессом. Правило порога — CONTRIBUTING.md, структура и жизненный цикл — docs/changes/README.md, процесс — skill change-management, команды — /change-propose и /change-apply.
Локальная валидация без внешних зависимостей (нужен только Node.js >= 18):
node scripts/validate-docs.mjsСкрипт проверяет:
- битые относительные ссылки, включая якоря и регистр путей;
- дубликаты requirement ID в пределах scope (feature / global);
- некорректный формат ID (
FR-01,FR-001a,FR-XXX,fr-001); - ссылки на несуществующие FR/BR/NFR/UI/API/ADR ID;
- отсутствующий или невалидный YAML frontmatter (правила — из
schemas/); titleи H1 не на русском языке;- неизвестные типы документов;
- базовую структуру Markdown (
rules/markdown.md) и состав feature-директорий.
Формат ошибок: файл:строка [КОД] сообщение. Exit code 0 — проверки пройдены, 1 — найдены ошибки. Запускается перед коммитом и пригоден для CI.
Приоритет источников информации определён в AGENTS.md (раздел «Source of truth») — единственном месте, где живёт этот список.
- Requirements описывают требуемое поведение.
- Исходный код в
services/описывает текущую реализацию. - Расхождение между ними — сигнал для явной пометки, а не для автоматического «исправления» требований под код.
- Создать директорию
docs/features/<feature-name>/(kebab-case). - Скопировать нужные шаблоны из
templates/(не все файлы обязательны — см.docs/features/README.md). - Заполнить
product.md(WHAT + WHY), затемrequirements.md, затемmodel/(если feature вводит или меняет сущности), затемui.md/api/, затемtechnical.md. Вmodel/иapi/— по одному файлу на сущность и на метод. - Присвоить требованиям ID по стандарту
schemas/README.md. - Связать документы cross-reference (
UI-004 → FR-012). - Прогнать review (skill
documentation-review).
Для комплексной работы использовать skill documentation-orchestrator (см. AGENTS.md).
Обязательный порядок для AI-агента:
- Прочитать
AGENTS.md— entry point и routing по skills. - Прочитать
rules/— особенноrules/ai-guardrails.md. - Перед изменением документа — прочитать связанные документы (product, requirements, ui, api, technical той же feature).
- Неизвестную информацию помечать
TBD, предположения —ASSUMPTION. Придумывать факты запрещено. - Сохранять существующие requirement ID, не переиспользовать удалённые.
- После изменений обновлять cross-reference и запускать review.
GigaCode CLI: entry point GIGACODE.md подключает базовые правила .gigacode/rules/, skills читаются из .gigacode/skills/.
Помимо собственных skills (.gigacode/skills/), существуют внешние Agent Skills из реестра skills.sh, которые можно использовать как концептуальные ориентиры:
prd-development— разработка PRD;user-story— формулирование user stories;documentation— общие практики ведения документации;api-documentation-generator— генерация API-документации;architecture-decision-records— ведение ADR.
Ключевое правило: source of truth — локальные .gigacode/skills/*/SKILL.md; внешние skills носят справочный характер, репозиторий не имеет runtime dependency от skills.sh. Соответствие ориентиров локальным skills и команды установки — в docs/ai/external-skills.md.
services/ предназначена для локального подключения (clone/symlink) репозиториев сервисов, чей исходный код AI может анализировать при написании технической документации.
- Содержимое
services/не попадает в этот Git-репозиторий (см..gitignore). - Коммитится только
services/README.md. - Код в
services/— source of truth только для текущей реализации, не для требований.