fix(tools): архив переписывает относительные ссылки перенесённых документов (#682)

Ревью #682 r1, Medium: перенос добавляет документу уровень вложенности
(`docs/reviews/X.md` → `legacy/reviews/<тег>/X.md`, `docs/specs/` →
`legacy/specs/`), а относительные ссылки внутри перенесённых документов и в
соседях, ссылавшихся на них, никто не пересчитывал — на `97d19268` 53 битые
ссылки в 46 файлах (заявление «все 26 резолвятся» в `7feb6177` было верно
только до переноса документов ревью). Гейты архив не смотрят.

`reviews-archive.mjs`: `repairLinks` пересчитывает ссылку, если она не
резолвится от нового места, а цель находится от нового или старого места
через карту переносов; битая и до переноса ссылка не трогается. `--apply`
делает это само, `--repair-links=<rev>` — для всех переименований
`<rev>..HEAD`, `--check-links` печатает битые. Этим коммитом
`--repair-links=origin/dev` переписал ровно 53 ссылки в 46 файлах; остались
две прежние «...»-заглушки в CODE-REVIEW-448-r2 (битые и на dev). Тесты:
перенесённый документ, сосед со ссылкой в архив, ТЗ со ссылкой на позже
перенесённое ревью, битая-до-переноса не трогается, в `legacy/` битых нет;
мутант `reviews-archive-links-from-new-place-only`. PROCESS §2.10 и
DEVELOPMENT › Release называют переписывание и `--check-links`.

Issue: #682
User-Visible: no
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd
This commit is contained in:
Claude
2026-09-27 22:10:47 +00:00
committed by claude[bot]
parent 65b3cb25f7
commit 0991c45374
51 changed files with 242 additions and 60 deletions
+3
View File
@@ -408,6 +408,9 @@ dev, ни при публикации документа код-ревью: ин
в последнюю; закрытая без выпуска (как #522) уезжает с линией, где лёг её
документ — коммит документа несёт трейлер; `RELEASE-REVIEW-vX.Y.Z.md` уходит в
каталог своего тега, поэтому перенос делается после публикации ревью линии.
Относительные ссылки в перенесённых документах и в соседях, которые на них
ссылаются, инструмент переписывает сам; `--check-links` печатает оставшиеся
битые.
Перенос идёт при пустой очереди `S7-code-review`: ребейз чужой ветки иначе
упрётся в перемещённый каталог.