# Спека: починка битых относительных .md-ссылок (долг lychee)

## Цель

Прогон `npm run links` (lychee) выявил 12 битых относительных ссылок на .md-файлы
в 6 документах. Каждая сломана из-за неверного относительного пути (лишний или
недостающий сегмент относительно каталога файла-источника) либо из-за указания на
несуществующую/переименованную цель. Привести все 12 ссылок к корректному виду:
рабочий относительный путь к существующей цели, либо — если цели в репозитории нет —
снять разметку ссылки, сохранив поясняющий текст. Ссылки на код (`*.mjs/*.py/*.php/
*.vue`), переехавший в отдельный репозиторий, и внешние URL — вне объёма этой правки.

## D1. Файл docs/CHANGELOG_claude_md.md {#D1}

Три ссылки внутри дословного снимка прежнего CLAUDE.md (файл лежит в `docs/`, а
ссылки записаны как `docs/...` — корректно для корневого CLAUDE.md, но из `docs/`
они удваивают сегмент в `docs/docs/...`). Контракт: убрать ведущий `docs/` из URL
(текст-подпись сохранить):

- строка 272: URL `docs/CHANGELOG_claude_md.md` → `CHANGELOG_claude_md.md` (соседний файл — он сам).
- строка 377: URL `docs/Plugin_stack_rules_v1.md#история-версий` → `Plugin_stack_rules_v1.md#история-версий`.
- строка 199: URL `docs/superpowers/specs/2026-05-28-router-gate-hard-wall-design.md` → `superpowers/specs/2026-05-28-router-gate-hard-wall-design.md`.

Цели существуют: `docs/CHANGELOG_claude_md.md`, `docs/Plugin_stack_rules_v1.md`,
`docs/superpowers/specs/2026-05-28-router-gate-hard-wall-design.md`.

## D2. Файл docs/observer/notes/2026-05-20-brain-retro.md {#D2}

Файл лежит в `docs/observer/notes/`.

- строка 389: ссылка на `docs/routing-off-phase.md` записана как `../routing-off-phase.md`
  (резолвится в `docs/observer/routing-off-phase.md` — нет). Цель существует как
  `docs/routing-off-phase.md`. Контракт: `../routing-off-phase.md` → `../../routing-off-phase.md`.
- строка 355: ссылка на файл памяти `feedback_brain_unused_tools_not_problem.md`,
  который физически лежит вне репозитория (каталог памяти в `~/.claude/`), внутри
  репозитория цели нет. Контракт: снять разметку ссылки, оставив текст
  `feedback_brain_unused_tools_not_problem`.

## D3. Файл docs/superpowers/plans/2026-05-23-router-overhaul-stage-1-registry.md {#D3}

Файл лежит в `docs/superpowers/plans/`; две ссылки записаны с `../superpowers/...`,
что удваивает сегмент (`docs/superpowers/superpowers/...`).

- строка 1162 (self-ссылка на сам план): URL `../superpowers/plans/2026-05-23-router-overhaul-stage-1-registry.md`
  → `2026-05-23-router-overhaul-stage-1-registry.md` (соседний файл — он сам).
- строка 1161 (ссылка на спеку): URL `../superpowers/specs/2026-05-23-router-discipline-overhaul-design.md`
  → `../specs/2026-05-23-router-discipline-overhaul-design.md`. Цель существует.

## D4. Файл docs/superpowers/specs/2026-05-26-slepok-routing-protection-design.md {#D4}

Файл лежит в `docs/superpowers/specs/`; ссылки записаны как `docs/...`, что добавляет
лишний префикс `docs/superpowers/specs/docs/...`.

- строка 1055: URL `docs/superpowers/plans/2026-05-24-billing-v2-spec-c-preflight-vtb.md`
  → `../plans/2026-05-24-billing-v2-spec-c-preflight-vtb.md`. Цель существует.
- строка 1057: URL `docs/Pravila_raboty_Claude_v1_1.md` → `../../Pravila_raboty_Claude_v1_1.md`. Цель существует.
- строка 1054: ссылка на план `2026-05-26-supplier-snapshot-guard.md`, которого в
  репозитории нет (план не создавался; `SupplierSnapshotGuard` — класс в коде).
  Контракт: снять разметку ссылки, оставив текст `SupplierSnapshotGuard plan`.

## D5. Файл docs/superpowers/specs/2026-05-29-lead-region-resolution-design.md {#D5}

- строка 981: ссылка на ADR-018 записана как `../../adr/018-audit-chain-per-tenant.md`,
  но реальный файл назван `ADR-018-audit-chain-per-tenant-semantics.md`. Контракт:
  URL `../../adr/018-audit-chain-per-tenant.md` → `../../adr/ADR-018-audit-chain-per-tenant-semantics.md`.

## D6. Файл docs/Pravila_raboty_Claude_v1_1.md {#D6}

Файл лежит в `docs/`.

- строка 941: ссылка на `docs/router-procedure.md` записана как `../router-procedure.md`
  (резолвится в корень — нет). Цель существует как `docs/router-procedure.md`.
  Контракт: URL `../router-procedure.md` → `router-procedure.md`.

Критерий приёмки: повторный `npm run links` не сообщает об этих 12 .md-ссылках;
все исправленные ссылки указывают на существующие файлы либо превращены в текст,
если цели в репозитории нет.

```verified-context-json
[
  {"id":"vc1","kind":"EXTRACTED","ref":"docs/superpowers/specs/2026-05-26-slepok-routing-protection-design.md","anchor":"[Pravila §4.7](docs/Pravila_raboty_Claude_v1_1.md)"},
  {"id":"vc2","kind":"EXTRACTED","ref":"docs/superpowers/specs/2026-05-29-lead-region-resolution-design.md","anchor":"](../../adr/018-audit-chain-per-tenant.md)"}
]
```
