architect/prospective/document-system.md

type: standard
aspect: platform
title: "Платформа — Документная Система"
status: active
version: 1.1.0
date: 2026-04-10
owner: architect
parent: concept/metamodel.md


Платформа — Документная Система

Стандарт описывает как устроена система документов и файлов платформы: где они хранятся, что они из себя представляют, как связаны между собой, как оформляются и как живут во времени.

↑ Родитель: metamodel.md

Полный глоссарий терминов — в разделе ТЕРМИНЫ в конце документа.


1. ОПРЕДЕЛЕНИЕ ДОКУМЕНТА

Документ — информационная система, хранящая и передающая знания.

Любой документ описывается пятью обязательными вопросами:

ЧТО?     → содержание — о чём документ
ЧЕМ?     → формат    — в каком виде записан (.md, .yaml, .csv)
КАК?     → структура — как организован внутри
ГДЕ?     → путь      — где физически находится
СКОЛЬКО? → объём     — размер, количество разделов

Дополнительно (опционально):

ЗАЧЕМ?  → назначение — для чего создан
КТО?    → аудитория  — кто читает
КОГДА?  → версия     — когда создан / изменён

2. ПРОСТРАНСТВА

Все файлы платформы живут в одном из двух пространств:

Пространство Что хранит Где физически
$WORKSPACE Исходники: документация, код на языках, конфигурации git-репозиторий
$DATASPACE Результат обработки: скомпилированное, форматированное, данные, бинарные файлы S3-хранилище

Ключевой принцип

$WORKSPACE = исходники (source)
$DATASPACE = результат обработки (output / binary / data)

Что идёт в $WORKSPACE (git)

 Код:          .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

Что идёт в $DATASPACE (S3)

❌ Графика:    .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

3. КЛАССЫ ФАЙЛОВ

Каждый файл принадлежит одному из трёх классов:

Класс Для кого Примеры
Служебный Система (git, AI, ФС) CLAUDE.md, AI.md, README.md, INDEX.md, .gitignore
Содержательный Люди / AI-агенты Концепции, стандарты, инструкции, ADR, тикеты, шаблоны
Технический Инструменты (docker, python, node) Код, конфиги, данные

3.1. Служебные файлы

Файл Читает Назначение
CLAUDE.md Claude Code Навигатор папки: что здесь, куда идти
AI.md Любой AI-агент Определение агента: роль, правила, протоколы
README.md GitHub, люди Публичное описание компонента
INDEX.md AI + люди Оглавление большой папки с аннотациями
.gitignore git Что не коммитить
.env приложение Переменные среды (НЕ в git)

3.2. Защищённые файлы (.credentials.md)

Файлы с секретами (пароли, токены, API keys):

.credentials.md    секреты (НЕ в git)

Правила безопасности:

chmod 600 .credentials.md    # только владелец может читать

Обязательно добавить в .gitignore:

*.credentials.md

3.3. Правило четырёх корневых файлов

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 ✅ только большие папки с многими документами

4. УРОВНИ

4.1. Уровень знания (У0–У4)

Показывает насколько документ абстрактен:

У0  ТЕОРИЯ        Универсальные законы. Не зависят от платформы.
                  Меняется: НИКОГДА (LOCKED)

У0  КОНЦЕПЦИЯ     Как МЫ видим нашу платформу.
                  Меняется: редко, только большие решения

У1  СТАНДАРТЫ     Наши правила — как делать конкретные вещи.
                  Меняется: при эволюции платформы

У2  ПАТТЕРНЫ      Рецепты — типовые решения типовых задач.
                  Меняется: по мере накопления опыта

У3  ШАБЛОНЫ       Заготовки — готовые формы для заполнения.
                  Меняется: постоянно растёт

У4  РЕАЛИЗАЦИЯ    Конкретный код / конфиг / данные.
                  Меняется: часто

Каскад знания (сверху вниз):

У0 ТЕОРИЯ → У0 КОНЦЕПЦИЯ → У1 СТАНДАРТЫ → У2 ПАТТЕРНЫ → У3 ШАБЛОНЫ → У4 РЕАЛИЗАЦИЯ

Обратный поток (снизу вверх): знания создаются из опыта (У4), авторитет сверху (У0–У1).

4.2. Фрактальный уровень

Показывает насколько широко применяется документ:

ПЛАТФОРМА
  ├── АРХ          architect/         методология, стандарты, теория
  ├── ПРО          projects/          проекты
       └── ПРОЕКТ     projects/org/{name}/
             └── КОМПОНЕНТ    @name.type/
                   └── ПОДКОМПОНЕНТ
  ├── SYS         system/            агенты, планировщик, мониторинг
  └── ИНФРА       infra/             серверы, деплой

⏸ Роль SYS и ИНФРА в фрактале — открытый вопрос. Требует отдельного обсуждения (platform-architecture.md).

Документ существует на двух координатах одновременно:

                  АРХ   ПРО   ПРОЕКТ   КОМПОНЕНТ
У0 ТЕОРИЯ          ✅    —      —          —
У0 КОНЦЕПЦИЯ       ✅    —      —          —
У1 СТАНДАРТ        ✅    —      —          —
У2 ПАТТЕРН         ✅    ✅     —          —
У3 ШАБЛОН          ✅    ✅     ✅         —
У4 РЕАЛИЗАЦИЯ      —     —     ✅         ✅

5. ТИПЫ ДОКУМЕНТОВ

Тип описывает назначение документа. Типы применяются на любом уровне знания (У0–У4) и фрактальном уровне:

Тип Назначение
КОНЦЕПЦИЯ Видение, идея — как мы понимаем предмет
СТАНДАРТ Правило — как должно быть сделано
ADR Архитектурное решение — почему решили именно так
ПАТТЕРН Рецепт — типовое решение типовой задачи
ШАБЛОН Заготовка — готовая форма для заполнения
ИССЛЕДОВАНИЕ Активное изучение: внешних систем, рынка, отрасли
АНАЛИЗ Осмысление собранного: выводы, закономерности, противоречия
ПРАКТИКА Накопленный опыт: статистика, повторяющиеся случаи
ПЛАН Что и когда делать
ИНСТРУКЦИЯ Как делать шаг за шагом
ТИКЕТ Задача / баг / технический долг

5.1. Рекомендуемая структура секций по типу

Каждый тип документа имеет рекомендуемый набор секций:

СТАНДАРТ:

## ЗАЧЕМ          — проблема / цель
## ПРАВИЛА        — жёсткие требования
## ПРИМЕРЫ        — как применять
## ИСКЛЮЧЕНИЯ     — когда можно нарушить

ADR (архитектурное решение):

## Контекст       — какая проблема, почему возникла
## Решение        — что решили делать
## Альтернативы   — что рассматривали, почему отказались
## Последствия    — что изменится, плюсы / минусы

ПЛАН:

## Цель           — чего хотим достичь
## Scope          — границы: что входит, что нет
## Фазы           — последовательность шагов
## Риски          — что может пойти не так

ТИКЕТ:

## Описание           — что не так / что нужно сделать
## Критерии готовности — когда считать выполненным
## Откат              — как вернуть назад если сломалось

5.2. Чеклист создания нового документа


6. ФРАКТАЛ

Фрактал — рекурсивный механизм, по которому работает вся документная система. Документы порождают документы, каждый узел работает по тем же правилам что родитель.

6.1. Операции фрактала

Операция Что происходит
РЕКУРСИЯ Войти в узел, применить те же правила что у родителя
СТАДИЯ Провести документ draft → final внутри узла
ДЕРИВАЦИЯ Родитель порождает дочерний документ
ДЕКОМПОЗИЦИЯ Один документ дробится на части по смыслу
ВОПЛОЩЕНИЕ Абстрактное обретает форму — уровень закрывается

Порядок: РЕКУРСИЯ запускает механизм → СТАДИЯ ведёт документ → ДЕРИВАЦИЯ или ДЕКОМПОЗИЦИЯ порождает детей → ВОПЛОЩЕНИЕ закрывает уровень.

6.2. Потоки

Поток Направление Описание
КАСКАД сверху вниз Знание движется от абстрактного к конкретному (У0→У4)
ЦЕПОЧКА горизонтально Документы порождают друг друга последовательно

6.3. Артефакт

АРТЕФАКТ — терминальный результат фрактала. Рекурсия останавливается.

У4 РЕАЛИЗАЦИЯ → ВОПЛОЩЕНИЕ → АРТЕФАКТ
                               (работающий сервис / данные / продукт)

Артефакт — не тип документа. Это выход за пределы документной системы в мир исполнения.


7. РОЛИ

Роль Создаёт Читает
Архитектор У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.


8. ОФОРМЛЕНИЕ

8.1. Frontmatter

Обязательные поля (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]

8.2. Именование файлов

Вид Формат Примеры
Корневые служебные 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

8.3. Запись фрактала в файловой системе

ДЕРИВАЦИЯ (родитель → один дочерний) — новый файл в той же папке:

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             ← обязательно
        └── ...

8.4. Защищённые файлы (.fx.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

8.5. Форма документа

ФОРМА — физическая форма записи содержимого:

Форма Описание Где хранить
ТЕКСТ Prose, markdown $WORKSPACE (.md)
ТАБЛИЦА Структурированные данные $WORKSPACE (.yaml, .json) / $DATASPACE (.csv, .xlsx)
СХЕМА Диаграммы, графы Исходник в $WORKSPACE (как код), рендер в $DATASPACE
КОД Исполняемый файл $WORKSPACE (.py, .js, .sh)

8.6. Диалект Markdown

Состав диалекта:

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
Пример использования.
:::

8.7. Правила оформления Markdown

Списки: маркированные через - (не * или +).

Горизонтальная линия: через --- (не *** или ___).

Ссылки: только относительные внутри репозитория:

✅ [Стандарт](./format-file-types.md)
✅ [Секция](#название-раздела)
✅ [Родитель](../MASTER.md)

❌ [Стандарт](/opt/claude-workspace/architect/standards/file.md)
❌ [Файл](C:\Users\...\file.md)

Заголовки: один H1 в документе, пропуск уровней запрещён (H1 → H3).

Код: всегда указывать язык (python,bash, yaml). Для псевдокода —text.

8.8. Иерархические документы (MASTER/DETAIL/SUBDETAIL)

Для больших документов используется трёхуровневая иерархия:

MASTER.md                    ← Верхний уровень (обзор)
  ↓ ссылка
  DETAIL_1.md               ← Средний уровень (детали)
    ↓ ссылка
    SUBDETAIL_1.1.md        ← Нижний уровень (реализация)

Связь с родителем: поле parent: во frontmatter:

---
type: detail
title: "Архитектура платформы"
parent: ../MASTER.md
---

Два режима просмотра:
1. Уровневый — читать только MASTER.md (ссылки на детали)
2. Компилированный — собрать все уровни в один документ

8.9. Transclusion (компиляция документов)

Директива <!-- INCLUDE: path --> позволяет собирать иерархические документы в один файл.

Синтаксис:

## Детали структуры

[→ Читать отдельно](./details/STRUCTURE_DETAILS.md)

<!-- INCLUDE: ./details/STRUCTURE_DETAILS.md -->

При обычном просмотре — видна ссылка. При компиляции препроцессором — вставляется содержимое включаемого файла (без его frontmatter).

Компиляция:

python3 architect/tools/md-compile.py INPUT.md OUTPUT.md

Препроцессор рекурсивно обрабатывает вложенные INCLUDE (до 10 уровней глубины, защита от циклов).


9. ВЕДЕНИЕ

9.1. Стадии жизненного цикла

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 Замена готова, данные мигрированы

9.2. Гранулярность — когда дробить

ДРОБИТЬ   — если части используются раздельно
ДЕРЖАТЬ   — если используются вместе
МАКСИМУМ  — 5000 строк (~100 страниц)

9.3. Версионирование (SemVer)

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

9.4. Архивирование

  1. Изменить status: archived + добавить archived_date в frontmatter
  2. Переместить: mv doc.md arh/doc_vX.Y.Z_YYYY-MM-DD.md
  3. Обновить все ссылки на новый документ
  4. Коммит: docs: 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