From 7333953b1e0b5695fa2ad808f6f5d3a48d2e3e23 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Thu, 13 Aug 2026 11:57:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B5=D0=B7=D0=B4:=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D1=8C=20=D0=B6=D1=83=D1=80=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=D0=B0=20=D0=BD=D0=B5=20=D0=B7=D0=BD=D0=B0=D0=BB?= =?UTF-8?q?=D0=B0=20=D0=BF=D1=80=D0=BE=20=D1=81=D0=BE=D0=B1=D1=81=D1=82?= =?UTF-8?q?=D0=B2=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20=D1=87=D1=82=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Первый живой прогон на transcriber. Проект читал docs/.docs.json своим шагом гейта — и по хорошей причине, названной там же в комментарии: чтобы не заводить каталогу миграций второй дом. Запись 1 такого шага не предусматривала, и переезд уронил гейт на шаге, к плагину отношения не имеющем. Появился шаг 7: найти grep-ом свои чтения служебного файла и перевести их на tomllib. Заодно: заключительный абзац openspec.py после вычитки ревью стал утверждать, что документов канона в проекте нет, — печатается-то он всегда. Вернулось условие. --- av-dev/skills/code-openspec/scripts/openspec.py | 4 ++-- av-dev/skills/doc-canon/references/changelog.md | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/av-dev/skills/code-openspec/scripts/openspec.py b/av-dev/skills/code-openspec/scripts/openspec.py index 1a1353a..713a992 100644 --- a/av-dev/skills/code-openspec/scripts/openspec.py +++ b/av-dev/skills/code-openspec/scripts/openspec.py @@ -289,8 +289,8 @@ def report(rep: Report) -> int: "документов проекта и ключи rules против артефактов схемы. Чего она не\n" "видит — **пересказ вместо ссылки**: утверждение, которое можно\n" "опровергнуть, открыв другой файл проекта, от строки «открой такой-то\n" - "файл» она не отличает. Это суждение агента `doc-consistency`; документов\n" - "канона в проекте нет — сверять пересказ не с чем, и так и скажи." + "файл» она не отличает. Это суждение агента `doc-consistency`. Если\n" + "документов канона в проекте нет, сверять пересказ не с чем — так и скажи." ) if rep.errors: print(f"\nИтог: дрейф, {len(rep.errors)} пунктов.") diff --git a/av-dev/skills/doc-canon/references/changelog.md b/av-dev/skills/doc-canon/references/changelog.md index 681ee5f..0f29fff 100644 --- a/av-dev/skills/doc-canon/references/changelog.md +++ b/av-dev/skills/doc-canon/references/changelog.md @@ -74,9 +74,16 @@ 6. **Поправить свои вызовы скиллов** — в `CLAUDE.md`, в `Taskfile`, в записях задач: короткое имя разрешится в проектную копию, а прежнее полное не разрешится вовсе. -7. **Поднять версию** — `docs.py bump`. Последним шагом: число объявляет +7. **Найти, где проект читает служебный файл сам.** Шаг гейта, скрипт, шаблон — + что угодно, что брало значение из `docs/.docs.json`, чтобы не заводить факту + второй дом. Такое чтение переезжает на `.av-dev.toml` и на `tomllib` вместо + `json`: `python3 -c 'import tomllib; print(tomllib.load(open(".av-dev.toml","rb"))["docs"]["migrations"])'`. + Ищется командой `grep -rn "\.docs\.json\|\.tasks\.json" --exclude-dir=.git .` + — по проекту целиком, а не по документам: на первом же живом переезде это + нашлось в `Taskfile.yml`, и нашёл это гейт, а не человек. +8. **Поднять версию** — `docs.py bump`. Последним шагом: число объявляет пройденными шаги журнала, и раньше времени поднятое врёт. -8. `docs.py check` и `tasks.py check --dir <каталог задач>` — до отсутствия +9. `docs.py check` и `tasks.py check --dir <каталог задач>` — до отсутствия дрейфа. **Чего делать не надо.** Переписывать прошлые записи журналов под новые имена.