type: reform
aspect: naming
title: "Реформа: именование и организация артефактов платформы"
version: 0.1.0
date: 2026-03-30
status: draft
owner: architect
ЧЕРНОВИК — не применять до финализации
Текущие стандарты именования раздроблены по трём файлам, дублируют друг друга и смешивают несколько аспектов (naming, structure, typology) в одном документе. Реформа:
- объединяет правила именования в единый стандарт по пространствам
- выделяет типологию компонентов в отдельный документ
- вводит паттерн «реформа» в процесс изменений платформы
Этот документ содержит:
1. Манифест — что и зачем меняем
2. Анализ и томография — проверка перед применением
3. Чеклист миграции — порядок применения
4. Документы реформы — полный контент новых/изменённых файлов (каждый отдельной секцией)
5. Поправки в другие документы — список правок в файлы вне реформы (в конце)
Правило: поправки к документам вне области реформы не вносятся сразу —
они фиксируются в разделе «Поправки» и применяются после финализации реформы.
arh/)| Файл | Причина |
|---|---|
naming-workspace.md v3.2.0 |
Заменяет naming-platform.md |
naming-dataspace.draft.md v0.1.0 |
Поглощён naming-platform.md |
naming-database.md v1.0.0 |
Поглощён naming-platform.md |
naming-platform.draft.md v0.1.0 |
Рабочий черновик → поглощается naming-platform.md (не архивируется, удаляется) |
| Файл | Назначение |
|---|---|
naming-platform.md |
Единый стандарт именования по всем пространствам |
typology-components.md |
Каталог типов компонентов платформы |
| Файл | Изменение |
|---|---|
process-platform-change.draft.md |
Добавить паттерн «реформа» |
README.md (naming/) |
Актуализировать список документов |
naming-variables.md — покрывает переменные в коде, остаётсяnaming-projects.md — именование проектов, остаётсяnaming-terminology.md — терминология, остаётсяnaming-code-imports.md — импорты в коде, остаётсяstructure-workspace.md — структура папок, остаётся (ссылки только)format-file-types.md — типы файлов, остаётся (ссылки только)Раздробленность: три документа (naming-workspace.md, naming-dataspace.draft.md, naming-database.md) описывают одну тему — именование — но каждый в своём пространстве. Нет единого источника правил.
Смешение аспектов в naming-workspace.md и naming-platform.draft.md:
| Контент | Правильный аспект | Где должен быть |
|---|---|---|
| Формулы имён | naming ✅ |
naming-platform.md |
| Иерархия папок $WORKSPACE | structure |
→ structure-workspace.md (ссылка) |
| Типы компонентов (.app, .agent) | typology |
→ typology-components.md |
| Форматы файлов (.md, .yaml) | format |
→ format-file-types.md (ссылка) |
| Карта инстансов Platform 2.0 | typology |
→ typology-components.md |
Неполнота naming-platform.draft.md v0.1.0:
- Отсутствуют роли .data и .cache
- Отсутствует .yml как вариант совместимости
- Отсутствует .credentials.md в конфиденциальных файлах
- Не хватает кодов БД: anl, doc, tsk
- Нет Nginx в разделе $INFRASTRUCTURE
- Нет колонки Status в таблице ролей
Несогласованность:
- Открытые вопросы об _inbox/ и подчёркиваниях — уже закрыты в тексте, но числились открытыми
- README.md в naming/ показывает устаревшую версию naming-workspace.md
- Формула $DATASPACE показывает дефис, примечание говорит "подчёркивания тоже допустимы" — два сигнала
Неоднозначность:
- В ролях нет разделения active / planned — читатель не знает, что работает сейчас
- "Форматы по размеру" в $DATASPACE — таблица называется Format, но описывает WHERE хранить
| Принцип | Нарушение | Решение |
|---|---|---|
| 9 аспектов: один документ — один аспект | naming-workspace.md смешивает naming + structure + typology | Разделить: naming-platform.md + typology-components.md |
| Не дублировать (DMS политика) | Структура workspace описана и здесь, и в structure-workspace.md | Оставить в structure-workspace.md, в naming — ссылка |
| Каждое правило аргументировано | Правила без обоснования | Добавить HTML-комментарии с <!-- Почему: ... --> |
| Реестр как часть изменения | README.md в naming/ устарел | Обновить в чеклисте |
Полнота: все пространства платформы покрыты ($WORKSPACE, $DATASPACE, $BACKUPSPACE, $DATABASE, $INFRASTRUCTURE). Роли файлов полные. Форматы полные. ✅
Согласованность: naming-platform.md не дублирует structure-workspace.md (только ссылается). typology-components.md содержит каталог без дублирования с naming. ✅
Однозначность: одно правило — одно место. Подчёркивания: явно по пространствам. Формула $DATASPACE: дефис стандарт, подчёркивания допустимы — зафиксировано в ОБЩИХ ПРАВИЛАХ, не как примечание. ✅
Применимость: практик может найти: нужна формула имени → naming-platform.md. Нужен тип компонента → typology-components.md. Нужна структура папок → structure-workspace.md. Три ответа, три документа. ✅
Структура: General → per-space specifics. Каждое пространство: формулы → примеры → антипримеры. ✅
ПОДГОТОВКА
[ ] Утвердить reform-naming-arch.draft.md
[ ] git mv reform-naming-arch.draft.md process-naming-reform.draft.md
СОЗДАНИЕ НОВЫХ ФАЙЛОВ
[ ] naming-platform.md → architect/standards/naming/
[ ] typology-components.md → architect/standards/typology/
АРХИВИРОВАНИЕ
[ ] git mv naming-workspace.md arh/naming-workspace-2026-03-30.md
[ ] git mv naming-dataspace.draft.md arh/naming-dataspace-2026-03-30.md
[ ] git mv naming-database.md arh/naming-database-2026-03-30.md
[ ] rm naming-platform.draft.md (входит в reform, станет naming-platform.md)
ОБНОВЛЕНИЕ
[ ] architect/standards/naming/README.md — актуализировать список
[ ] architect/standards/process/process-platform-change.draft.md — добавить паттерн реформы
[ ] architect/CLAUDE.md — обновить ссылки
[ ] dms.draft.md — обновить ссылки
ФИНАЛИЗАЦИЯ
[ ] git commit: "feat(naming): reform — unified naming-platform.md, add typology-components"
[ ] git mv reform-naming-arch.draft.md arh/reform-naming-arch-2026-03-30.md
Путь: architect/standards/naming/naming-platform.md
Тип: standard | Аспект: naming | Статус: active (после миграции)
Заменяет: naming-workspace.md, naming-dataspace.draft.md, naming-database.md
type: standard
aspect: naming
title: "Стандарт именования платформы"
version: 1.0.0
date: 2026-03-30
status: active
owner: architect
replaces: naming-workspace.md v3.2.0, naming-dataspace.draft.md v0.1.0, naming-database.md v1.0.0
Стандарт описывает правила именования во всех пространствах платформы.
| Пространство | Где | Что хранит |
|---|---|---|
| $WORKSPACE | git /opt/claude-workspace |
Код, документы, конфиги, компоненты |
| $DATASPACE | S3 /mnt/beget-s3 |
Данные: xlsx, csv, медиа |
| $BACKUPSPACE | S3 /mnt/beget-infra |
Резервные копии |
| $DATABASE | PostgreSQL | Базы, таблицы, колонки |
| $INFRASTRUCTURE | DNS, Docker, Git, env | Инфраструктурные ресурсы |
Не описывает:
- Переменные и функции в коде → naming-variables.md
- Структуру папок → structure-workspace.md
- Типы компонентов → typology-components.md
- Типы файлов (11 классов) → format-file-types.md
Формульные документы: lowercase (naming-workspace.md)
Сервисные файлы: UPPERCASE (README.md, CLAUDE.md, INDEX.md)
Машинные файлы: lowercase (index.yaml, .env)
Дефис (-) — стандарт для файлов, папок, компонентов
Точка (.) — разделитель роли и расширения (naming-platform.draft.md)
разделитель типа компонента (@name.type)
| Пространство | Правило |
|---|---|
| $WORKSPACE | Только латиница — везде без исключений |
| $DATASPACE, $BACKUPSPACE, $DATABASE, $INFRASTRUCTURE | Только латиница |
| Пространство | Правило | Обоснование |
|---|---|---|
| $WORKSPACE | ❌ Запрещены везде и всегда | Дефис — стандарт web, URL, CSS |
| $DATASPACE | ✅ Допустимы в именах файлов | Python/SQL/1С генерируют _ |
| $BACKUPSPACE | ✅ Допустимы | Следуют конвенции источника |
| $DATABASE | ✅ Обязательны (snake_case) | Стандарт SQL |
| $INFRASTRUCTURE | Зависит от инструмента | См. раздел |
[aspect]-[object]-[detail].[role].format
| Часть | Обязательность | Описание |
|---|---|---|
aspect |
✅ | Тема/раздел (9 фиксированных) |
object |
✅ | Объект описания |
detail |
опционально | Уточнение |
role |
опционально | Состояние файла |
format |
✅ | Расширение |
| Aspect | Вопрос | Пример |
|---|---|---|
typology |
ЧТО это? | typology-project-types.md |
structure |
КАК УСТРОЕНО? | structure-workspace.md |
format |
КАК ВЫГЛЯДИТ? | format-document.md |
naming |
КАК НАЗЫВАТЬ? | naming-platform.md |
lifecycle |
КАК ЖИВЁТ? | lifecycle-project-states.md |
policy |
ЧТО МОЖНО? | policy-security.md |
process |
КАК ДЕЛАТЬ? | process-deployment.md |
operation |
КАКИЕ ДЕЙСТВИЯ? | operation-cleanup.md |
guidance |
КАК ПРИМЕНЯТЬ? | guidance-project-development-ai.md |
| Role | Статус | Назначение | Когда использовать |
|---|---|---|---|
| (нет) | active | Основной документ | Финализирован, применяется |
.draft |
active | Черновик в работе | Пишется / обсуждается, не применять |
.idea |
active | Сырая идея | Мысль, не проработанная |
.task |
active | Задача в очереди | Тикет для исполнителя |
.ai |
active | Документ / код для AI | Инструкция, протокол или промпт для AI-агента |
.tpl |
planned | Шаблон | Заготовка для создания нового документа |
.spec |
planned | Спецификация / ТЗ | Требования к фиче или системе |
.data |
planned | Машиночитаемые данные | CSV/YAML как данные, не конфиг |
.cache |
planned | Автогенерируемый файл | Создаётся инструментом, не редактируется |
Формат задачи: [YYYY-MM-DD]-[name].task.yaml
2026-03-30-deploy-worker.task.yaml
find . -name "*.draft.md" # все черновики
find . -name "*.idea.md" # все идеи
find . -name "*.task.yaml" # все задачи
find . -name "*.ai.md" # все файлы предназначенные для AI-агентов
find . -name "AI.md" # все определения агентов (корень @name.agent/)
| Format | Когда | Читатель |
|---|---|---|
.md |
Документы, стандарты, инструкции | человек |
.yaml |
Конфиги, метаданные, задачи — основной | машина |
.yml |
То же, для совместимости с инструментами | машина |
.json |
API, обмен данными | машина |
.csv |
Таблицы < 100KB (больше → $DATASPACE) | машина |
Формульные файлы: lowercase + дефисы
Служебные файлы: UPPERCASE без подчёркиваний
Машинные файлы: lowercase
✅ naming-platform.md
✅ structure-workspace.md
✅ CLAUDE.md, INDEX.md, README.md
✅ index.yaml, .env
❌ naming_workspace.md (подчёркивания запрещены везде и всегда)
❌ NamingWorkspace.md (camelCase запрещён)
❌ NAMING-WORKSPACE.MD (UPPERCASE для формульных)
Язык: только латиница — везде в $WORKSPACE без исключений.
Универсальные:
| Файл | Читатель | Назначение |
|---|---|---|
CLAUDE.md |
AI + человек | Навигатор папки: что здесь, куда идти. Загружается автоматически при входе. Только навигация — не правила. |
AI.md |
AI + человек | Определение агента: роль, правила, протоколы. Только в компонентах-агентах. |
INDEX.md |
человек | Полный структурированный индекс раздела |
README.md |
человек | Краткое описание — только для публичных/внешних компонентов |
CHANGELOG.md |
человек | История изменений кода/версий |
index.yaml |
машина | Манифест компонента: зависимости, метаданные |
Правила размещения:
| Файл | Где создавать ✅ | Где НЕ создавать ❌ |
|---|---|---|
CLAUDE.md |
Корень workspace, ключевые разделы (architect/, infra/, projects/org/), компонент — только если есть нюансы |
Каждая вложенная папка (scripts/, css/, src/) |
AI.md |
Только в компонентах-агентах (@name.agent/, system/agents/) |
Обычные компоненты, проекты, папки |
README.md |
Публичные компоненты, GitHub-репозитории | Внутри платформы — не нужен |
Шаблон CLAUDE.md:
# [Папка] — [одна строка: что это]
## СОДЕРЖИМОЕ
| Файл / Папка | Назначение |
## НАВИГАЦИЯ
| Задача / тема | Куда идти |
## ВАЖНО ← только если есть реальные нюансы
Проектные:
| Файл | Назначение |
|---|---|
PROJECT.md |
Описание проекта (9 вопросов) |
STATUS.md |
Текущее состояние |
ROADMAP.md |
Планы и фазы |
TODO.md |
Список задач |
LOG.md |
Журнал: решения, события, отчёты |
ARCHITECTURE.md |
Архитектура решения |
Конфиденциальные (всегда в .gitignore):
| Файл | Назначение |
|---|---|
SECRETS.md |
Секреты и ключи |
.credentials.md |
Учётные данные |
.env |
Переменные окружения (не в git) |
.env.example |
Шаблон переменных (в git, без реальных значений) |
Отчёты и логи:
❌ MIGRATION_COMPLETE_REPORT.md (отдельный файл-отчёт)
✅ LOG.md (запись о миграции внутри)
✅ LOG-migration.md (отдельный лог если большой)
Датированные файлы (прайсы, выгрузки, отчёты):
{source}-{YYYY-MM-DD}.{ext}
{source}-{YYYY-MM-DD}-{suffix}.{ext}
| Часть | Описание | Пример |
|---|---|---|
source |
Источник: поставщик, система | jf, maxsem, ozon, 1c |
YYYY-MM-DD |
Дата ISO 8601 | 2026-03-30 |
suffix |
Уточнение (опционально) | orders, prices |
✅ jf-2026-03-30.xlsx
✅ ozon-2026-03-30-orders.csv
✅ 1c-2026-03-30-export.xml
✅ jf_2026-03-30.xlsx (подчёркивание допустимо — конвенция Python/1С)
❌ MASTER_PRICE_LIST (1).xlsx (пробелы, скобки, UPPERCASE)
❌ 16.10 Прайс Maxsem.xlsx (кириллица, пробелы)
❌ new-prices.xlsx (нет даты — неясно когда актуально)
Файлы без временного контекста (справочники, медиа):
{entity}-{detail}.{ext} — справочники
{article}-{view}.{ext} — медиа товаров
✅ categories-mapping.csv
✅ 12345-front.jpg
❌ photo1.jpg (неинформативно)
| Размер | Хранилище |
|---|---|
| CSV < 100KB | $WORKSPACE допустимо |
| CSV < 10K строк | $DATASPACE |
| CSV 10K–100K строк | SQLite или CSV в $DATASPACE |
| CSV > 100K строк | PostgreSQL |
| Excel, изображения | $DATASPACE (не в git) |
$DATASPACE/
├── projects/ ← данные проектов (зеркало $WORKSPACE/projects/)
│ ├── my/
│ │ └── {project}/
│ │ ├── inbox/
│ │ ├── media/ ← медиа проекта (физически здесь; может быть примонтирован диск)
│ │ │ ├── images/
│ │ │ ├── video/
│ │ │ └── documents/
│ │ └── archive/
│ └── org/
│ └── {project}/
│ ├── inbox/
│ ├── prices/
│ ├── products/
│ ├── exports/
│ ├── media/ ← медиа проекта (физически здесь; может быть примонтирован диск)
│ │ ├── images/
│ │ ├── video/
│ │ └── documents/
│ └── archive/
├── releases/ ← сборки компонентов для деплоя (.zip, .tar.gz)
│ ├── connectors/
│ ├── extensions/
│ └── applications/
└── archive/ ← архивные данные
Что куда:
| Файл | Путь в $DATASPACE |
|---|---|
| Прайс-листы, CSV, Excel | projects/{type}/{project}/prices/ |
| Выгрузки, данные | projects/{type}/{project}/exports/ |
| Фото > 50KB, видео | projects/{type}/{project}/media/images/ |
| PDF, DOCX | projects/{type}/{project}/media/documents/ |
| Собранный модуль для деплоя | releases/ |
| SVG, PNG < 50KB | $WORKSPACE допустимо |
Медиа-стратегия проекта — фиксируется в index.yaml:
# projects/org/lideravto/index.yaml
media_storage: dataspace # папка media/ в $DATASPACE (по умолчанию)
# media_storage: mounted # media/ — точка монтирования отдельного S3/диска
# media_storage: cdn # внешний CDN (Cloudflare, CloudFront)
Путь media/ в проекте всегда один и тот же. Отличается только то, что за ним стоит физически.
Стандартная структура проекта в projects/:
projects/org/{project}/
├── inbox/ ← входящие необработанные файлы
├── prices/ ← прайс-листы поставщиков
│ └── {supplier}/ ← по поставщику: jf/, maxsem/
├── products/ ← данные номенклатуры
│ └── 1c/ ← выгрузки из 1С
├── exports/ ← выгрузки для внешних систем
└── archive/
└── {YYYY-MM}/ ← архив по месяцу
Обязательные: inbox/, archive/
Рекомендуемые: prices/, products/, exports/
Жизненный цикл файла в projects/:
inbox/ → {тематическая}/ → archive/{YYYY-MM}/
Зеркальность с $WORKSPACE:
$WORKSPACE/projects/my/{project}/ ← личные: код, доки
$DATASPACE/projects/my/{project}/ ← личные: данные, выгрузки
$DATASPACE/projects/my/{project}/media/ ← медиа (физически здесь или примонтировано)
$WORKSPACE/projects/org/{project}/ ← общественные/бизнес: код
$DATASPACE/projects/org/{project}/ ← данные, выгрузки
$DATASPACE/projects/org/{project}/media/ ← медиа (физически здесь или примонтировано)
Правило: media/ — всегда папка внутри проекта в $DATASPACE. Код обращается по одному пути независимо от физического хранилища за ним.
$BACKUPSPACE/{server}/backup/
├── L0-SECRETS/ ← SSH ключи, credentials
├── L1-SYSTEM/ ← системные файлы
├── L2-DOCKER/ ← Docker volumes
├── L3-WORKSPACE/ ← исходный код (git bundle)
│ └── git-bundle/
├── L4-CLAUDE/ ← Claude конфиги и память
│ ├── claude-md/
│ └── settings/
├── L5-STATE/ ← состояние (опционально)
├── golden/ ← эталонные ручные копии
├── postgres/ ← дампы PostgreSQL
└── restic/ ← Restic repository
{type}-{source}-{YYYYMMDD}-{HHMM}.{ext}
| Тип | Формула | Пример |
|---|---|---|
| CLAUDE.md | CLAUDE-{branch}-{YYYYMMDD}-{HHMM}.md |
CLAUDE-main-20260330-0603.md |
| Git bundle полный | workspace-full-{YYYYMMDD}.bundle |
workspace-full-20260330.bundle |
| Git bundle инкремент | workspace-incr-{YYYYMMDD}.bundle |
workspace-incr-20260330.bundle |
| PostgreSQL дамп | {dbname}-{YYYYMMDD}-{HHMM}.sql |
platform-20260330-0400.sql |
| Workspace tar | workspace-{YYYYMMDD}-{HHMM}.tar.gz |
workspace-20260330-0500.tar.gz |
| Docker volume | {volume}-{YYYYMMDD}.tar.gz |
postgres-data-20260330.tar.gz |
| Эталонная копия | {type}-golden-{YYYYMMDD}.{ext} |
CLAUDE-golden-20260330.md |
| Тип | Частота | Ротация |
|---|---|---|
| CLAUDE.md | каждые 6ч | сегодня все; вчера 1; 7–30д воскресенья; 30–365д конец месяца |
| PostgreSQL | каждые 4ч | последние 7 дней |
| Git bundle | полный вс, инкремент пн–сб | 4 полных + текущая неделя инкрементов |
| Workspace tar | ежедневно 05:00 | последние 7 дней |
| Restic | каждые 6ч | 24h hourly, 7d daily, 4w weekly, 6m monthly |
{type}_{level}_{entity}[_{instance}]
| Часть | Описание | Примеры |
|---|---|---|
type |
3-буквенный код проекта | crm, pir, lid |
level |
Уровень данных | app, sol, prj, usr |
entity |
Имя сущности (snake_case) | users, orders, funnel_stages |
instance |
Экземпляр (если нужно несколько) | spb, msk, retail |
crm_app_users ← CRM, приложение, пользователи
crm_prj_clients ← CRM, проект, клиенты
pir_prj_orders_retail ← Пиротехника, заказы, розница
| Код | Проект |
|---|---|
crm |
CRM |
mrk |
Маркетинг |
pir |
Пиротехника |
lid |
Лидер Авто |
ozn |
Ozon |
anl |
Аналитика |
doc |
Документы |
tsk |
Задачи |
sys |
Системные |
| Код | Уровень | Что хранит |
|---|---|---|
app |
Application | Пользователи, настройки, логи |
sol |
Solution | Справочники, шаблоны, конфиги |
prj |
Project | Бизнес-данные: клиенты, заказы |
usr |
User | Персональные настройки |
snake_case, единственное число
✅ first_name, order_id, created_at
❌ FirstName, orderId, createdAt
Системные поля в каждой таблице:
| Поле | Тип |
|---|---|
id |
UUID / INT |
created_at |
TIMESTAMP |
updated_at |
TIMESTAMP |
created_by |
UUID → app_users.id |
{system}_{base}
dev_main ← основная БД dev-pro
prd_main ← продакшен
dev_archive ← архивные данные
{org}-{purpose}
beget-s3 ← данные проектов ($DATASPACE)
beget-infra ← бэкапы ($BACKUPSPACE)
{service}.{domain}
docs.0kt.ru ← документация
api.0kt.ru ← API
admin.0kt.ru ← администрирование
{type}-{name}:{version}
nginx-proxy:1.2.0
mcrm-app:2.1.0
nocodb:latest
| Роль | Формат | Пример |
|---|---|---|
| База данных | {type}-db |
nocodb-db, postgres-db |
| Приложение | {type}-app |
mcrm-app |
| Сервис | {type}-{service} |
mcrm-whatsapp, pir-sync |
| Volume | {type}-{purpose}-data |
postgres-main-data |
| Network | {type}-net |
platform-net |
{домен} ← crm.0kt.ru
api.{домен} ← api.crm.0kt.ru
{тип}.{домен} ← piro.0kt.ru
main ← основная
feature/{name} ← новая функциональность
fix/{name} ← исправление
release/{version} ← релиз
v{major}.{minor}.{patch} ← теги релизов
UPPER_SNAKE_CASE
APP_* ← настройки приложения
DB_* ← база данных
S3_* ← объектное хранилище
TG_* ← Telegram
OZON_* ← Ozon API
{type}.service ← mcrm.service
{type}-worker.service ← mcrm-worker.service
{type}-{task}.timer ← pir-sync.timer
{namespace}:{entity}:{id}:{field}
user:123:session
cache:products:list
lock:import:ozon
queue:tasks:pending
Типы компонентов и сервисов: → typology-components.md, typology-service-types.md
Версия: 1.0.0
Статус: active
Владелец: architect
Заменяет: naming-workspace.md v3.2.0, naming-dataspace.draft.md v0.1.0, naming-database.md v1.0.0
Путь: architect/standards/typology/typology-components.md
Тип: standard | Аспект: typology | Статус: active (после миграции)
Извлечено из: naming-workspace.md v3.2.0
type: standard
aspect: typology
title: "Типология компонентов платформы"
version: 1.0.0
date: 2026-03-30
status: active
owner: architect
source: naming-workspace.md v3.2.0 (extracted)
Стандарт описывает типы компонентов платформы: что существует, как классифицируется, как обозначается.
Не описывает:
- Как называть компоненты → naming-platform.md
- Как устроена папочная структура → structure-workspace.md
INSTANCE → COMPONENT → SERVICE
| Уровень | Термин | Формат | Пример |
|---|---|---|---|
| Физический сервер / VM | Instance | name |
papa, worker, dev-pro |
| Логическая единица | Component | @name.type |
@papa.gateway, @md-viewer.service |
| Процесс внутри компонента | Service | service-name |
wireguard, nginx, postgres |
@name — категория / классификатор (без точки)
projects/org/@biz-lideravto/
@templates/@org/
@templates/@mkt/ ← категория внутри категории — допустимо
@name.type — компонент платформы (с точкой)
infra/@md-viewer.service/
system/@projector.agent/
library/@utils.lib/
@name.qualifier.type — компонент с уточнением (квалификаторы слева)
@lider.drupal.web/ ← Drupal веб-приложение lider
@ozon.import.connector/ ← коннектор импорта Ozon
@admin.auth.service/ ← сервис авторизации admin
Правило: тип — крайний правый; квалификаторы добавляются левее типа.
Отличие .name/ от @name.type/:
- .queue/, .monitor/, .claude/ — встроены в workspace, не деплоятся отдельно
- @name.type/ — деплоится и управляется как независимая единица
Специальные префиксы папок — только два: . и @. Подчёркивания не используются.
| Type | Назначение | Пример |
|---|---|---|
.server |
Сервер / VPS | @dev-pro.server |
.pc |
Компьютер оператора | @kt-scraper.pc |
.gateway |
Сеть: VPN / DNS / proxy / nginx | @papa.gateway |
.storage |
Файлы, бэкапы, S3 | @beget-s3.storage |
.infra |
Инфраструктурный комплекс | @kt-station.infra |
| Type | Назначение | Пример |
|---|---|---|
.app |
Полноценное приложение (логика + UI) | @nocodb.app |
.ui |
Только веб-интерфейс | @admin.ui |
.web |
Сайт | @beget-panel.web |
.service |
Платформенный сервис / демон | @md-viewer.service |
.system |
Сложный комплекс сервисов | @bot-platform.system |
| Type | Назначение | Пример |
|---|---|---|
.agent |
AI-агент (Claude) | @projector.agent |
.model |
LLM | @ollama.model |
.db |
База данных | @postgres.db |
.cache |
Кэш, очереди | @redis.cache |
.data |
MDM, каталоги | @catalog.data |
.knowledge |
Wiki, RAG | @wiki.knowledge |
| Type | Назначение | Пример |
|---|---|---|
.connector |
Подключение к внешнему API | @openrouter.connector |
.adapter |
Адаптер формата / данных | @ozon.adapter |
.integration |
Бизнес-интеграция | @ozon-1c.integration |
.lib |
Библиотека, утилиты | @utils.lib |
.tool |
Утилита, CLI | @doctor.tool |
.registry |
Git, пакеты, образы | @gitea.registry |
.monitor |
Наблюдение, алерты | @prometheus.monitor |
Стандартные подпапки @name.type/:
@name.type/
├── CLAUDE.md ← навигатор (если есть нюансы)
├── index.yaml ← зависимости компонента
├── scripts/ ← скрипты
├── config/ ← конфиги
├── docs/ ← документация
└── src/ ← исходный код (если есть)
Структура компонента-агента:
system/@projector.agent/
├── AI.md ← определение агента: роль, правила, протоколы
├── CLAUDE.md ← навигатор папки (короткий)
└── index.yaml ← зависимости
Instance: mama ← закрыт, источник истины
└── @mama.registry
Instance: papa ← единственный публичный вход
└── @papa.gateway
Instance: projector ← управление проектами
├── @projector.agent
└── @scheduler.service
Instance: worker ← production окружение
├── @app.service
├── @postgres.db
└── @redis.cache
Instance: llm ← языковые модели
└── @ollama.model
Instance: backup ← резервное хранилище
└── @backup.storage
Instance: data ← MDM / каталоги
└── @catalog.data
Instance: knowledge ← база знаний / wiki
└── @wiki.knowledge
Версия: 1.0.0
Статус: active
Владелец: architect
Источник: naming-workspace.md v3.2.0
Путь: architect/standards/process/process-platform-change.draft.md
Изменение: добавить секцию РЕФОРМА после секции СТАДИИ
Когда использовать реформу (а не обычный .draft):
- Изменение затрагивает 3+ файлов
- Файлы логически связаны (одна область: именование, структура, процесс)
- Нужно обсудить изменения как единое целое до применения
Структура реформенного документа:
## 1. МАНИФЕСТ
- Цель и обоснование
- Архивируем: список файлов → arh/
- Создаём: новые файлы
- Обновляем: изменения в существующих
- Не трогаем
## 2. АНАЛИЗ И ТОМОГРАФИЯ
- Проблемы текущего состояния
- Соответствие концепции платформы
- Томография финального результата (5 измерений)
## 3. ЧЕКЛИСТ МИГРАЦИИ
[ ] пункты
## 4. ДОКУМЕНТ 1: name.md
[полный контент нового файла]
## 5. ДОКУМЕНТ N: ...
Именование: reform-{area}.draft.md
reform-naming-arch.draft.md
reform-agent-system.draft.md
После применения: реформенный документ → arh/reform-{area}-YYYY-MM-DD.md
Правило: один реформенный документ — одна связанная область. Не смешивать несвязанные реформы.
Файл: architect/concept/PRINCIPLES.md
Статус поправки: согласована (К-1)
Что изменить: Принцип 8 показывает library/_draft/ и library/_beta/ как этапы жизненного цикла компонентов библиотеки. Эта конвенция заменена.
Заменить на:
| Объект | Старая конвенция | Новая конвенция |
|---|---|---|
| Документ (.md) | _draft/ папка |
роль .draft в имени файла |
| Компонент (папка) | _draft/{name}/ |
index.yaml: status: draft |
| Код в разработке | _draft/{name}/ |
git branch feature/{name} |
Жизненный цикл компонентов:
git branch feature/name → index.yaml: status: beta → status: stable
(в разработке) (тестирование) (продакшен)
Жизненный цикл документов:
name.idea.md → name.draft.md → name.md → arh/name-YYYY-MM-DD.md
Обоснование: _draft/ папки нарушают запрет underscore в $WORKSPACE и дублируют то, что git branches уже решают лучше. Статус компонента — в метаданных (index.yaml), не в файловой системе.
.ai.mdФайл: architect/standards/format/format-document.md
Статус поправки: согласована (В-5)
Что изменить: в разделе "Расширения Markdown" строку:
.ai.md - AI-агент (промпт для Claude)
Заменить на:
AI.md — Определение агента: роль, правила, протоколы (только в @name.agent/)
name.ai.md — Документ / код предназначенный для чтения AI-агентом (.ai — роль)
Различие:
- AI.md — UPPERCASE, служебный файл в корне @name.agent/, аналог CLAUDE.md. Одно на компонент.
- name.ai.md — lowercase, роль .ai в формуле [aspect]-[object].[role].format. Инструкция или промпт для AI.
Файл: architect/standards/typology/typology-document-types.md
Статус поправки: согласована (В-6)
Что изменить:
- Стандарт → UPPER_CASE.md → исправить на kebab-case.md
- AI-агент → kebab-case.ai.md → исправить на AI.md (только в @name.agent/)
Файл: внутри реформы — раздел $INFRASTRUCTURE
Статус поправки: согласована (М-9)
Что добавить: в конец раздела $INFRASTRUCTURE строку:
**Типы сервисов Docker:** → [typology-service-types.md](../typology/typology-service-types.md)
Обоснование: раздел описывает именование Docker-образов и контейнеров, но типы сервисов (что такое .app, .service, .agent) описаны в typology-service-types.md. Без ссылки читатель не знает куда идти за классификацией.
architect/management/reforms/?.reform как роль файла (аналог .draft)? Или reform-* как префикс имени достаточно?typology/ или рядом с naming в naming/?Версия: 0.1.0 (черновик)
Статус: draft
Владелец: architect