architect/standards/arch-document-linking.md

type: standard
layer: arch
object: document
aspect: linking
form: text
title: "Операция СВЯЗЫВАНИЕ документов"
status: active
version: 1.0.0
date: 2026-04-11
knowledge_level: У1
parent: arch-document-system.md
deps:
- arch-document-system.md
- arch-document-format.md
- arch-rebuild-operation.md


Операция СВЯЗЫВАНИЕ документов

Стандарт описывает операцию СВЯЗЫВАНИЕ — установку и поддержку связей между документами через parent: / deps: в frontmatter и регистрацию в индексах родителей. Без СВЯЗЫВАНИЯ документы существуют изолированно; цепочки зависимостей не работают.


1. НАЗНАЧЕНИЕ

СВЯЗЫВАНИЕ — это Цикл 2 операции REBUILD (после ГЕНЕРАЦИИ).

Цель: каждый документ знает своих родителей, каждый родитель знает своих детей.

Документ A (parent)          Документ B (child)
├── children:                ├── parent: A
│   - B                      ├── deps:
│   - C                      │   - A
└── index.md (ссылки)        └── ...

Триггеры:
- Цикл 2 операции REBUILD
- Создание нового документа
- Перемещение / переименование документа


2. ТИПЫ СВЯЗЕЙ

Тип Поле Семантика
Родитель parent: Один непосредственный родитель (одиночное значение)
Зависимость deps: Документы, на которых основывается этот
Дочерний регистрация в индексе Документ, производный от текущего
Ссылка [текст](путь) в теле Упоминание, не обязательно зависимость

3. ПОЛЯ FRONTMATTER

parent:

parent: arch-document-system.md

deps:

deps:
  - arch-document-format.md
  - arch-filesystem-structure.md

4. АЛГОРИТМ СВЯЗЫВАНИЯ

Шаг 1 — Проверить наличие полей

# все файлы без parent:
grep -rL "^parent:" /opt/claude-workspace/architect/standards/ --include="*.md"

# все файлы без deps:
grep -rL "^deps:" /opt/claude-workspace/architect/standards/ --include="*.md"

Шаг 2 — Определить родителя

Правило: родитель = ближайший документ выше по иерархии знания.

arch-deployment-operation.md
  parent: arch-platform-policy.md   (политики → операции деплоя)

arch-platform-policy.md
  parent: arch-filesystem-structure.md   (структура → политики)

arch-filesystem-structure.md
  parent: architect/standards/           (папка-родитель)

Шаг 3 — Добавить parent: и deps: в дочерний документ

---
...
parent: arch-document-system.md
deps:
  - arch-document-system.md
  - arch-document-format.md
---

Шаг 4 — Зарегистрировать дочерний в индексе родителя

Если у родителя есть раздел "СВЯЗАННЫЕ ДОКУМЕНТЫ" или "Дочерние" — добавить ссылку:

## СВЯЗАННЫЕ ДОКУМЕНТЫ

- [arch-document-format.md](arch-document-format.md) — формат документов
- [arch-document-linking.md](arch-document-linking.md) — операция СВЯЗЫВАНИЕ  ← добавить

Если у родителя нет такого раздела — добавить в конец файла.

Шаг 5 — Проверить ссылки в теле документа

Все упоминания arch-*.md в тексте должны быть гиперссылками:

❌  см. arch-document-system.md
✅  см. [arch-document-system.md](arch-document-system.md)

5. ИНДЕКСЫ

CLAUDE.md папки

Каждая папка со стандартами должна содержать в CLAUDE.md раздел с перечнем файлов и их связями:

## Стандарты

| Файл | Родитель | Описание |
|------|---------|---------|
| arch-document-format.md | arch-document-system.md | Формат и frontmatter |
| arch-document-linking.md | arch-document-system.md | Операция СВЯЗЫВАНИЕ |

Граф зависимостей REBUILD.md

При операции REBUILD — граф зависимостей фиксируется в REBUILD.md проекта:

## Граф зависимостей

arch-filesystem-structure
  └── arch-workspace-structure
  └── arch-platform-policy
        └── arch-security-policy
        └── arch-deployment-operation

6. ПРОВЕРКА СВЯЗЕЙ (Цикл 2)

Чек-лист для каждого документа:

✅  parent: заполнен
✅  deps: заполнен (или deps: [] если нет зависимостей)
✅  все упомянутые файлы — в виде гиперссылок
✅  родительский документ содержит ссылку на этот
✅  путь в ссылках корректен (файл существует)

Команда для поиска битых ссылок:

# найти ссылки на несуществующие файлы
grep -r '\[.*\](arch-.*\.md)' /opt/claude-workspace/projects/sys/platform-update/standards/ \
  | grep -v ':.*\[.*\](http' \
  | awk -F'(' '{print $2}' | tr -d ')' \
  | while read f; do
      [ ! -f "/opt/claude-workspace/projects/sys/platform-update/standards/$f" ] && echo "BROKEN: $f"
    done

7. СВЯЗАННЫЕ ДОКУМЕНТЫ