mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
docs: update to slug - id changes
This commit is contained in:
+22
-5
@@ -64,16 +64,18 @@
|
||||
|
||||
Правило про числа не закрывает более опасный класс расхождений: документ не
|
||||
устарел числом, а **перечисляет то, чего нет в коде**. В разделе «Реализовано»
|
||||
карты лежали несуществующие id (`png-info`, `color-wheel-generator`,
|
||||
карты лежали несуществующие страницы (`png-info`, `color-wheel-generator`,
|
||||
`jpg-to-png`, `watermark-image-png`), которые агент принял бы за готовые
|
||||
инструменты. Счёт при этом был верный — число такой класс не ловит.
|
||||
|
||||
Сверка множеств отвечает на вопрос однозначно и без allowlist, поэтому
|
||||
автоматизирована: `web/src/lib/registry/tools-map-doc.test.ts` парсит раздел
|
||||
«Реализовано» и сравнивает id с `TOOLS` в обе стороны (id без инструмента и
|
||||
инструмент без записи), плюс ловит повтор id между буллетами. Формат строки
|
||||
карты — всё до первого тире, id через `/` или `,` — закреплён в самом документе
|
||||
и в тесте.
|
||||
«Реализовано» и сравнивает slug с `PAGES` в обе стороны (slug без страницы и
|
||||
страница без записи), плюс ловит повтор slug между буллетами. Формат строки
|
||||
карты — всё до первого тире, slug через `/` или `,` — закреплён в самом
|
||||
документе и в тесте. Сверяются именно страницы, а не инструменты: карта
|
||||
описывает то, что видит пользователь, а один инструмент может обслуживать
|
||||
несколько страниц (см. `docs/architecture.md`, раздел 3).
|
||||
|
||||
Чтобы сломанный парсер не выглядел как успех, у теста есть отдельная проверка
|
||||
«разбор не пустой»: если формат карты снова поменяется, тест упадёт с сообщением
|
||||
@@ -153,3 +155,18 @@ PR. Актуальные длительности — в логе прогона
|
||||
5. красный `e2e` только из-за ресурсов раннера фиксируется как ограничение
|
||||
окружения: сначала проверяются один проект и один spec
|
||||
(`docs/agent-workflow.md`, раздел 3), а не увеличиваются таймауты.
|
||||
|
||||
## 11. Тексты страниц: в базовой локали секция `pages` пустая
|
||||
|
||||
Заголовки и описания страниц переводятся (`pages.<slug>.*`), а EN-строка лежит в
|
||||
реестре страниц — дублировать её в `en.ts` нельзя, иначе при правке реестра
|
||||
английский текст разъедется со страницей, а `dict-consistency` этого не увидит.
|
||||
Поэтому `en.ts` объявляет `pages: {}` — пустую секцию, а линтер правила
|
||||
`i18n/dict-consistency` не считает это нарушением: в базовой локали отсутствие
|
||||
`pages.*.title/description` разрешено опцией `baseLocaleFallback`, а полнота
|
||||
перевода для остальных локалей проверяется строго и юнит-тестом
|
||||
(`tools-i18n.test.ts`).
|
||||
|
||||
Альтернатива — `allowPaths: ["pages"]` — была бы слабее: она разрешила бы пустую
|
||||
секцию `pages` в любой локали, то есть пропущенный перевод страницы прошёл бы
|
||||
линтер молча. Пустая секция в EN и есть то, что делает правило точным.
|
||||
|
||||
Reference in New Issue
Block a user