гейт: добавлена проверка ссылок и номеров журнала решений
- `decisions.py` судит четыре вещи: уникальность номеров Т/Р/С, раскладку тем, указатель и ссылки — цель существует, подпись называет именно её; - проверка идёт без glob, как адреса: файл темы и ссылки на него лежат порознь, и переименование темы трогает только одну сторону, а ломает обе; - ссылка внутри блока кода ссылкой не считается — в скелетах канона она адресована дереву проекта.
This commit is contained in:
@@ -526,7 +526,7 @@ python3 scripts/diagrams.py A.md B.md # только названные фай
|
||||
|
||||
## Гейт коммита
|
||||
|
||||
Все шесть проверок стоят в `pre-commit` через [lefthook](https://lefthook.dev) —
|
||||
Все семь проверок стоят в `pre-commit` через [lefthook](https://lefthook.dev) —
|
||||
конфиг в [lefthook.yml](lefthook.yml), ставится один раз на клон:
|
||||
|
||||
```
|
||||
@@ -539,6 +539,7 @@ lefthook run pre-commit # прогнать руками, не коммитя
|
||||
| фронтматтеры | правка `*.md` или `*.json` | весь репозиторий | миллисекунды |
|
||||
| копии правил | правка `*.md` | весь репозиторий | миллисекунды |
|
||||
| адреса документов | **каждый коммит** | весь репозиторий | ~0.07 с |
|
||||
| журнал решений | **каждый коммит** | весь репозиторий | ~0.09 с |
|
||||
| диаграммы | правка `*.md` | staged-файлы | ~1 с на файл |
|
||||
| `ruff check --fix` | правка `*.py` | staged-файлы | доли секунды |
|
||||
| `pyrefly check` | правка `*.py` | staged-файлы | доли секунды |
|
||||
@@ -554,7 +555,16 @@ Glob разводит две половины: коммит, трогающий
|
||||
обходит весь репозиторий за сотые доли секунды — экономить тут нечего;
|
||||
`addresses.py` идёт **без glob вовсе**, потому что сводит две стороны: перечень
|
||||
адресов лежит в `*.py` владельца, а упоминания — в `*.md` соседей, и коммит с
|
||||
переименованием документа трогает только первую.
|
||||
переименованием документа трогает только первую; `decisions.py` — по той же
|
||||
причине: файл темы и ссылки на него лежат порознь, и переименование темы трогает
|
||||
только одну сторону.
|
||||
|
||||
**Что судит `decisions.py`.** Номер записи журнала обязан быть один: буквенные
|
||||
метки решений выродились до пятибуквенных и разъехались молча — `АЕАКЛ` означала
|
||||
и тему 53, и тему 65. И подпись ссылки обязана называть свою цель: в
|
||||
`[тема 5](05-project-start-lifecycle.md)` номер записан дважды, словом и путём, —
|
||||
дубль неизбежный (иначе ссылку не прочитать, не открыв) и потому сверяемый, как
|
||||
всякая копия.
|
||||
|
||||
**`ruff` чинит безопасное сам, и починка доносится до этого же коммита**
|
||||
(`stage_fixed: true`). Иначе исправленный файл остался бы в рабочем дереве, а в
|
||||
|
||||
Reference in New Issue
Block a user