type: standard
aspect: platform
title: "Платформа — Документная Система"
status: active
version: 1.1.0
date: 2026-04-10
owner: architect
parent: concept/metamodel.md
Стандарт описывает как устроена система документов и файлов платформы: где они хранятся, что они из себя представляют, как связаны между собой, как оформляются и как живут во времени.
↑ Родитель: metamodel.md
Полный глоссарий терминов — в разделе ТЕРМИНЫ в конце документа.
Документ — информационная система, хранящая и передающая знания.
Любой документ описывается пятью обязательными вопросами:
ЧТО? → содержание — о чём документ
ЧЕМ? → формат — в каком виде записан (.md, .yaml, .csv)
КАК? → структура — как организован внутри
ГДЕ? → путь — где физически находится
СКОЛЬКО? → объём — размер, количество разделов
Дополнительно (опционально):
ЗАЧЕМ? → назначение — для чего создан
КТО? → аудитория — кто читает
КОГДА? → версия — когда создан / изменён
Все файлы платформы живут в одном из двух пространств:
| Пространство | Что хранит | Где физически |
|---|---|---|
| $WORKSPACE | Исходники: документация, код на языках, конфигурации | git-репозиторий |
| $DATASPACE | Результат обработки: скомпилированное, форматированное, данные, бинарные файлы | S3-хранилище |
$WORKSPACE = исходники (source)
$DATASPACE = результат обработки (output / binary / data)
✅ Код: .py .js .ts .tsx .jsx .php .go .sh
✅ Документация: .md .ai.md .fx.md .txt .rst
✅ Конфигурация: .yaml .json .toml .ini .xml
✅ Web-код: .html .css .scss .less
✅ Шаблоны: .twig .tpl .j2
✅ SQL: .sql
✅ Специальные: .gitignore .gitkeep Dockerfile Makefile LICENSE
❌ Графика: .svg .ico .jpg .jpeg .png .gif .webp
❌ Шрифты: .woff2 .ttf .otf .eot
❌ Медиа: .mp4 .avi .mov .mp3 .wav
❌ Документы: .pdf .docx .doc .rtf
❌ Данные: .xlsx .xls .ods .csv
❌ Базы: .db .sqlite
Каждый файл принадлежит одному из трёх классов:
| Класс | Для кого | Примеры |
|---|---|---|
| Служебный | Система (git, AI, ФС) | CLAUDE.md, AI.md, README.md, INDEX.md, .gitignore |
| Содержательный | Люди / AI-агенты | Концепции, стандарты, инструкции, ADR, тикеты, шаблоны |
| Технический | Инструменты (docker, python, node) | Код, конфиги, данные |
| Файл | Читает | Назначение |
|---|---|---|
CLAUDE.md |
Claude Code | Навигатор папки: что здесь, куда идти |
AI.md |
Любой AI-агент | Определение агента: роль, правила, протоколы |
README.md |
GitHub, люди | Публичное описание компонента |
INDEX.md |
AI + люди | Оглавление большой папки с аннотациями |
.gitignore |
git | Что не коммитить |
.env |
приложение | Переменные среды (НЕ в git) |
Файлы с секретами (пароли, токены, API keys):
.credentials.md — секреты (НЕ в git)
Правила безопасности:
chmod 600 .credentials.md # только владелец может читать
Обязательно добавить в .gitignore:
*.credentials.md
CLAUDE.md, AI.md, README.md, INDEX.md — каждый описывает остальные три и все папки/документы внутри папки.
В корне $WORKSPACE — все 4 обязательны:
| Файл | Читает | Назначение |
|---|---|---|
CLAUDE.md |
Claude Code | Навигатор: что здесь, куда идти |
AI.md |
Любой AI | Агентный контекст: роль, правила |
README.md |
GitHub, люди | Публичное описание платформы |
INDEX.md |
AI + люди | Полное оглавление |
В других папках — по правилам:
| Файл | Создавать |
|---|---|
CLAUDE.md |
✅ architect/, infra/, каждый проект |
AI.md |
✅ только @name.agent/, system/agents/ |
README.md |
✅ только публичные компоненты / GitHub |
INDEX.md |
✅ только большие папки с многими документами |
Показывает насколько документ абстрактен:
У0 ТЕОРИЯ Универсальные законы. Не зависят от платформы.
Меняется: НИКОГДА (LOCKED)
У0 КОНЦЕПЦИЯ Как МЫ видим нашу платформу.
Меняется: редко, только большие решения
У1 СТАНДАРТЫ Наши правила — как делать конкретные вещи.
Меняется: при эволюции платформы
У2 ПАТТЕРНЫ Рецепты — типовые решения типовых задач.
Меняется: по мере накопления опыта
У3 ШАБЛОНЫ Заготовки — готовые формы для заполнения.
Меняется: постоянно растёт
У4 РЕАЛИЗАЦИЯ Конкретный код / конфиг / данные.
Меняется: часто
Каскад знания (сверху вниз):
У0 ТЕОРИЯ → У0 КОНЦЕПЦИЯ → У1 СТАНДАРТЫ → У2 ПАТТЕРНЫ → У3 ШАБЛОНЫ → У4 РЕАЛИЗАЦИЯ
Обратный поток (снизу вверх): знания создаются из опыта (У4), авторитет сверху (У0–У1).
Показывает насколько широко применяется документ:
ПЛАТФОРМА
├── АРХ architect/ — методология, стандарты, теория
├── ПРО projects/ — проекты
│ └── ПРОЕКТ projects/org/{name}/
│ └── КОМПОНЕНТ @name.type/
│ └── ПОДКОМПОНЕНТ
├── SYS ⏸ system/ — агенты, планировщик, мониторинг
└── ИНФРА ⏸ infra/ — серверы, деплой
⏸ Роль SYS и ИНФРА в фрактале — открытый вопрос. Требует отдельного обсуждения (platform-architecture.md).
Документ существует на двух координатах одновременно:
АРХ ПРО ПРОЕКТ КОМПОНЕНТ
У0 ТЕОРИЯ ✅ — — —
У0 КОНЦЕПЦИЯ ✅ — — —
У1 СТАНДАРТ ✅ — — —
У2 ПАТТЕРН ✅ ✅ — —
У3 ШАБЛОН ✅ ✅ ✅ —
У4 РЕАЛИЗАЦИЯ — — ✅ ✅
Тип описывает назначение документа. Типы применяются на любом уровне знания (У0–У4) и фрактальном уровне:
| Тип | Назначение |
|---|---|
| КОНЦЕПЦИЯ | Видение, идея — как мы понимаем предмет |
| СТАНДАРТ | Правило — как должно быть сделано |
| ADR | Архитектурное решение — почему решили именно так |
| ПАТТЕРН | Рецепт — типовое решение типовой задачи |
| ШАБЛОН | Заготовка — готовая форма для заполнения |
| ИССЛЕДОВАНИЕ | Активное изучение: внешних систем, рынка, отрасли |
| АНАЛИЗ | Осмысление собранного: выводы, закономерности, противоречия |
| ПРАКТИКА | Накопленный опыт: статистика, повторяющиеся случаи |
| ПЛАН | Что и когда делать |
| ИНСТРУКЦИЯ | Как делать шаг за шагом |
| ТИКЕТ | Задача / баг / технический долг |
Каждый тип документа имеет рекомендуемый набор секций:
СТАНДАРТ:
## ЗАЧЕМ — проблема / цель
## ПРАВИЛА — жёсткие требования
## ПРИМЕРЫ — как применять
## ИСКЛЮЧЕНИЯ — когда можно нарушить
ADR (архитектурное решение):
## Контекст — какая проблема, почему возникла
## Решение — что решили делать
## Альтернативы — что рассматривали, почему отказались
## Последствия — что изменится, плюсы / минусы
ПЛАН:
## Цель — чего хотим достичь
## Scope — границы: что входит, что нет
## Фазы — последовательность шагов
## Риски — что может пойти не так
ТИКЕТ:
## Описание — что не так / что нужно сделать
## Критерии готовности — когда считать выполненным
## Откат — как вернуть назад если сломалось
Фрактал — рекурсивный механизм, по которому работает вся документная система. Документы порождают документы, каждый узел работает по тем же правилам что родитель.
| Операция | Что происходит |
|---|---|
| РЕКУРСИЯ | Войти в узел, применить те же правила что у родителя |
| СТАДИЯ | Провести документ draft → final внутри узла |
| ДЕРИВАЦИЯ | Родитель порождает дочерний документ |
| ДЕКОМПОЗИЦИЯ | Один документ дробится на части по смыслу |
| ВОПЛОЩЕНИЕ | Абстрактное обретает форму — уровень закрывается |
Порядок: РЕКУРСИЯ запускает механизм → СТАДИЯ ведёт документ → ДЕРИВАЦИЯ или ДЕКОМПОЗИЦИЯ порождает детей → ВОПЛОЩЕНИЕ закрывает уровень.
| Поток | Направление | Описание |
|---|---|---|
| КАСКАД | сверху вниз | Знание движется от абстрактного к конкретному (У0→У4) |
| ЦЕПОЧКА | горизонтально | Документы порождают друг друга последовательно |
АРТЕФАКТ — терминальный результат фрактала. Рекурсия останавливается.
У4 РЕАЛИЗАЦИЯ → ВОПЛОЩЕНИЕ → АРТЕФАКТ
(работающий сервис / данные / продукт)
Артефакт — не тип документа. Это выход за пределы документной системы в мир исполнения.
| Роль | Создаёт | Читает |
|---|---|---|
| Архитектор | У0–У1 (теория, концепция, стандарты) | У0–У1 |
| Проектор | У2–У3 (паттерны, шаблоны, планы) | У1–У3 |
| Кодер | У3–У4 (шаблоны, реализация) | У2–У4 |
| Инфра | У4 (конфиги, деплой) | У1, У4 |
| AI | — | CLAUDE.md, AI.md, все содержательные |
| Внешний | — | README.md |
УРОВЕНЬ АВТОР ДОСТУП
────────────────────────────────────────────────────
У0 ТЕОРИЯ Архитектор Архитектор
У0 КОНЦЕПЦИЯ Архитектор Архитектор, Проектор
У1 СТАНДАРТ Архитектор Все роли
У2 ПАТТЕРН Арх + Кодер Проектор, Кодер
У3 ШАБЛОН Кодер Проектор, Кодер, Инфра
У4 РЕАЛИЗАЦИЯ Кодер + Инфра Кодер, Инфра, AI
Проектор использует общие типы документов и добавляет атрибут phase для привязки к фазе проекта.
⏸ Полная систематизация видов проектов и их фаз (АРХ / ПРО / КОД / ТЕСТ / ЭКСПЛУАТАЦИЯ / МОДЕРНИЗАЦИЯ) — в platform-architecture.md.
Обязательные поля (4):
---
type: standard|concept|decision|pattern|template|analysis|research|practice|plan|instruction|ticket
title: "Название документа"
status: draft|development|testing|active|archived|deprecated
date: YYYY-MM-DD
---
Рекомендуемые поля:
version: X.Y.Z # для версионируемых документов (стандарты, концепции)
owner: architect # для документов с явным владельцем
Опциональные поля:
id: ADR-001 # для decisions / tickets
priority: HIGH # для tickets
knowledge_level: У1 # У0|У1|У2|У3|У4
fractal_level: arch # arch|pro|project|component|subcomponent
parent: path/to.md # ссылка вверх по каскаду
derived_from: path/to.md # деривация: от какого документа
part_of: path/to.md # декомпозиция: частью чего является
spawns: [a.md, b.md] # что породил
phase: 3 # фаза Проектора (0–15), только для проектных документов
tags: [api, security]
audience: [architect, coder]
| Вид | Формат | Примеры |
|---|---|---|
| Корневые служебные | UPPERCASE.md |
CLAUDE.md, README.md, INDEX.md |
| Стандарты | {aspect}-{slug}.md |
format-file-types.md, structure-workspace.md |
| Решения ADR | NNN-slug.md |
001-agents.md |
| Тикеты | TICKET-NNN-slug.md |
TICKET-001-session-gap.md |
| AI-агенты | {name}.ai.md |
architect.ai.md |
| Защищённые | {name}.fx.md |
theory-core.fx.md |
| Обычные | kebab-case.md |
platform-document-system.md |
ДЕРИВАЦИЯ (родитель → один дочерний) — новый файл в той же папке:
standards/format/
├── format-file-types.md ← родитель
└── format-file-types-web.md ← дочерний
ДЕКОМПОЗИЦИЯ (один → много частей) — новая подпапка:
standards/
├── naming.md ← было
└── naming/ ← стало (декомпозиция)
├── naming.md ← родитель (теперь индекс)
├── naming-files.md
└── naming-folders.md
Новый фрактальный уровень — новая папка + обязательно CLAUDE.md:
projects/org/
└── pirotehnika/
├── CLAUDE.md ← обязательно
└── ...
Файлы с суффиксом .fx.md заблокированы от изменений через pre-commit hook:
# .git/hooks/pre-commit
LOCKED=$(git diff --cached --name-only | grep "\.fx\.md$")
if [ -n "$LOCKED" ]; then
echo "❌ Защищённый файл: $LOCKED"
echo "Требуется согласование с Архитектором."
exit 1
fi
ФОРМА — физическая форма записи содержимого:
| Форма | Описание | Где хранить |
|---|---|---|
| ТЕКСТ | Prose, markdown | $WORKSPACE (.md) |
| ТАБЛИЦА | Структурированные данные | $WORKSPACE (.yaml, .json) / $DATASPACE (.csv, .xlsx) |
| СХЕМА | Диаграммы, графы | Исходник в $WORKSPACE (как код), рендер в $DATASPACE |
| КОД | Исполняемый файл | $WORKSPACE (.py, .js, .sh) |
Состав диалекта:
GFM (GitHub Flavored Markdown) — база
↓
Pandoc extensions — расширения
↓
Custom transclusion — компиляция
| Компонент | Источник | Зачем |
|---|---|---|
| GFM | GitHub, CommonMark | Таблицы, чеклисты, code blocks, совместимость |
| YAML frontmatter | Pandoc | Метаданные документов |
| Footnotes | Pandoc | Сноски для теории |
| Definition lists | Pandoc | Терминология |
| Fenced divs | Pandoc | Блоки предупреждений, примеров, заметок |
Fenced divs — синтаксис:
::: warning
**Внимание:** Это важное предупреждение.
:::
::: note
Примечание для читателя.
:::
::: example
Пример использования.
:::
Списки: маркированные через - (не * или +).
Горизонтальная линия: через --- (не *** или ___).
Ссылки: только относительные внутри репозитория:
✅ [Стандарт](./format-file-types.md)
✅ [Секция](#название-раздела)
✅ [Родитель](../MASTER.md)
❌ [Стандарт](/opt/claude-workspace/architect/standards/file.md)
❌ [Файл](C:\Users\...\file.md)
Заголовки: один H1 в документе, пропуск уровней запрещён (H1 → H3).
Код: всегда указывать язык (python,bash, yaml). Для псевдокода —text.
Для больших документов используется трёхуровневая иерархия:
MASTER.md ← Верхний уровень (обзор)
↓ ссылка
DETAIL_1.md ← Средний уровень (детали)
↓ ссылка
SUBDETAIL_1.1.md ← Нижний уровень (реализация)
Связь с родителем: поле parent: во frontmatter:
---
type: detail
title: "Архитектура платформы"
parent: ../MASTER.md
---
Два режима просмотра:
1. Уровневый — читать только MASTER.md (ссылки на детали)
2. Компилированный — собрать все уровни в один документ
Директива <!-- INCLUDE: path --> позволяет собирать иерархические документы в один файл.
Синтаксис:
## Детали структуры
[→ Читать отдельно](./details/STRUCTURE_DETAILS.md)
<!-- INCLUDE: ./details/STRUCTURE_DETAILS.md -->
При обычном просмотре — видна ссылка. При компиляции препроцессором — вставляется содержимое включаемого файла (без его frontmatter).
Компиляция:
python3 architect/tools/md-compile.py INPUT.md OUTPUT.md
Препроцессор рекурсивно обрабатывает вложенные INCLUDE (до 10 уровней глубины, защита от циклов).
DRAFT → DEV → TEST → PROD → ARCHIVE
| Стадия | Статус | Значение |
|---|---|---|
| DRAFT | draft |
Черновик, идея |
| DEV | development |
Активная разработка |
| TEST | testing |
Review, проверка |
| PROD | active |
Действует |
| ARCHIVE | archived |
Убран в архив |
| Статус | Когда применять | Значение |
|---|---|---|
deprecated |
Перед ARCHIVE | Устарело, но ещё работает. Есть замена, используй её |
suspended |
В любой момент | Приостановлено. Может быть возобновлено |
failed |
После TEST | Не прошло тестирование. Требуется исправление |
cancelled |
В любой момент | Отменено. Работа прекращена без результата |
1. Нельзя пропускать стадии:
❌ DRAFT → PROD (без DEV и TEST)
✅ DRAFT → DEV → TEST → PROD
2. Откат только на одну стадию назад:
❌ PROD → DRAFT (слишком далеко)
✅ PROD → TEST → DEV (постепенно)
3. Из ARCHIVE нельзя вернуть в PROD:
❌ ARCHIVE → PROD
✅ ARCHIVE → (создать новый документ/проект)
4. Специальные переходы:
ANY → SUSPENDED # Приостановка из любой стадии
SUSPENDED → ANY # Возобновление в ту же стадию
ANY → CANCELLED # Отмена из любой стадии
TEST → FAILED # Провал тестирования
PROD → DEPRECATED # Устаревание перед архивацией
| Переход | Условие |
|---|---|
| DRAFT → DEV | Требования определены, план утверждён |
| DEV → TEST | Код/контент готов, тесты написаны |
| TEST → PROD | Тесты пройдены, review сделан |
| PROD → ARCHIVE | Замена готова, данные мигрированы |
ДРОБИТЬ — если части используются раздельно
ДЕРЖАТЬ — если используются вместе
МАКСИМУМ — 5000 строк (~100 страниц)
MAJOR.MINOR.PATCH
PATCH — опечатки, форматирование 1.0.0 → 1.0.1
MINOR — новая секция, уточнения 1.0.1 → 1.1.0
MAJOR — изменение структуры, breaking 1.1.0 → 2.0.0
status: archived + добавить archived_date в frontmattermv doc.md arh/doc_vX.Y.Z_YYYY-MM-DD.mddocs: Archive doc.md, replaced by new-doc.md| Термин | Определение |
|---|---|
| $WORKSPACE | Пространство исходников (git) |
| $DATASPACE | Пространство результатов (S3) |
| ФРАКТАЛ | Рекурсивный механизм документной системы |
| РЕКУРСИЯ | Принцип: правила повторяются на каждом уровне |
| СТАДИЯ | Шаг жизненного цикла (DRAFT→PROD) |
| СТАТУС | Текущее положение в стадиях |
| ДЕРИВАЦИЯ | Родитель порождает дочерний документ |
| ДЕКОМПОЗИЦИЯ | Документ дробится на части по смыслу |
| ВОПЛОЩЕНИЕ | Абстрактное обретает форму, уровень закрывается |
| АРТЕФАКТ | Терминальный результат фрактала |
| КАСКАД | Поток знания сверху вниз (У0→У4) |
| ЦЕПОЧКА | Последовательность документов порождающих друг друга |
| ТИП | Назначение документа (СТАНДАРТ, ADR, ПАТТЕРН...) |
| ФОРМА | Физическая форма записи (текст, таблица, схема, код) |
| ФОРМАТ | Расширение файла (.md, .yaml, .csv) |
| АВТОР | Роль создающая документ |
| ДОСТУП | Роли читающие документ |
| АНАЛИЗ | Осмысление собранного: выводы, закономерности |
| ИССЛЕДОВАНИЕ | Активное изучение внешних систем / рынка / отрасли |
| ПРАКТИКА | Накопленный опыт: статистика, повторяющиеся случаи |
| TRANSCLUSION | Включение содержимого одного документа в другой при компиляции |
| MASTER/DETAIL | Иерархия документов: обзор / детали / реализация |
Статус: active 1.1.0
Дата: 2026-04-10