@rt-tools/agent-kit 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +17 -0
  2. package/assets/checks/archive-age.mjs +107 -0
  3. package/assets/checks/archive-prune.mjs +46 -0
  4. package/assets/checks/check-archive-age.mjs +42 -0
  5. package/assets/checks/check-board.github.mjs +16 -0
  6. package/assets/checks/check-descriptions.mjs +123 -0
  7. package/assets/checks/check-dupes.mjs +31 -3
  8. package/assets/checks/check-file-size.mjs +47 -2
  9. package/assets/checks/check-turn-map.mjs +20 -3
  10. package/assets/checks/lib-common.mjs +12 -1
  11. package/assets/checks/lib-domains.mjs +1 -1
  12. package/assets/checks/rt-kit-checks.config.mjs +24 -1
  13. package/assets/checks/spec-anchors.mjs +18 -3
  14. package/assets/checks/spec-common.mjs +5 -1
  15. package/assets/defaults/project.sh +22 -17
  16. package/assets/defaults/turn-map.md +15 -19
  17. package/assets/docs/GLOSSARY.md +52 -58
  18. package/assets/hooks/rule-article.sh +12 -0
  19. package/assets/hooks/skill-gate.sh +5 -4
  20. package/assets/hooks/task-flow-guard.sh +20 -0
  21. package/assets/hooks/turn-exit-guard.sh +229 -4
  22. package/assets/laws/delivery.md +92 -104
  23. package/assets/laws/frontend-application.md +4 -0
  24. package/assets/laws/project-documentation.md +64 -68
  25. package/assets/laws/verifiability.md +32 -33
  26. package/assets/laws/work-conduct.md +167 -157
  27. package/assets/patterns/doc-style-sweep.md +1 -1
  28. package/assets/patterns/doc-style-trace.md +1 -1
  29. package/assets/patterns/git-workflow-commit.azure.md +1 -1
  30. package/assets/patterns/git-workflow-commit.github.md +7 -1
  31. package/assets/patterns/git-workflow-commit.gitlab.md +1 -1
  32. package/assets/patterns/git-workflow-docker.md +1 -1
  33. package/assets/patterns/git-workflow-merge.md +14 -3
  34. package/assets/patterns/git-workflow-pr.azure.md +1 -1
  35. package/assets/patterns/git-workflow-pr.github.md +1 -1
  36. package/assets/patterns/git-workflow-pr.gitlab.md +1 -1
  37. package/assets/patterns/git-workflow-restart.md +1 -1
  38. package/assets/patterns/git-workflow-secrets.md +1 -1
  39. package/assets/patterns/git-workflow-stack.md +93 -0
  40. package/assets/patterns/seo-page.md +1 -1
  41. package/assets/patterns/spec-driven-rule.md +55 -0
  42. package/assets/patterns/status-report-table.github.md +88 -0
  43. package/assets/patterns/task-flow-archive.md +3 -4
  44. package/assets/patterns/task-flow-close.md +6 -1
  45. package/assets/patterns/task-flow-start.md +17 -5
  46. package/assets/patterns/ts-procedure.md +1 -1
  47. package/assets/pitfalls/doc-style.md +5 -0
  48. package/assets/pitfalls/git-workflow.github.md +47 -0
  49. package/assets/pitfalls/task-flow.md +28 -0
  50. package/assets/pitfalls/testing.md +14 -0
  51. package/assets/pitfalls/turn-conduct.md +33 -0
  52. package/assets/rules/angular-patterns.md +1 -1
  53. package/assets/rules/api-layer.md +3 -3
  54. package/assets/rules/browser-verification.md +15 -1
  55. package/assets/rules/dependencies.md +1 -1
  56. package/assets/rules/deploy-flow.azure.md +1 -1
  57. package/assets/rules/deploy-flow.github.md +1 -1
  58. package/assets/rules/deploy-flow.gitlab.md +1 -1
  59. package/assets/rules/doc-style.md +18 -0
  60. package/assets/rules/entity-conventions.needs-admin.md +1 -1
  61. package/assets/rules/entity-models.md +1 -1
  62. package/assets/rules/git-workflow.azure.md +1 -1
  63. package/assets/rules/git-workflow.github.md +154 -181
  64. package/assets/rules/git-workflow.gitlab.md +1 -1
  65. package/assets/rules/lib-layers.md +1 -1
  66. package/assets/rules/observability.needs-app.md +1 -1
  67. package/assets/rules/platform-access.md +1 -1
  68. package/assets/rules/reuse-first.md +1 -1
  69. package/assets/rules/seo.md +4 -3
  70. package/assets/rules/shared-code.md +1 -1
  71. package/assets/rules/spec-driven.md +68 -1
  72. package/assets/rules/status-report.md +97 -0
  73. package/assets/rules/styling-bem.md +12 -0
  74. package/assets/rules/task-flow.md +102 -100
  75. package/assets/rules/testing.md +67 -66
  76. package/assets/rules/turn-conduct.md +146 -105
  77. package/assets/rules/turn-entry.md +7 -1
  78. package/assets/rules/typescript-conventions.md +1 -1
  79. package/assets/skills/agent-kit-extend.md +1 -1
  80. package/assets/skills/agent-kit.md +18 -1
  81. package/bin/agent-kit.d.ts.map +1 -1
  82. package/bin/agent-kit.js +25 -0
  83. package/bin/agent-kit.js.map +1 -1
  84. package/lib/cost.d.ts +44 -0
  85. package/lib/cost.d.ts.map +1 -0
  86. package/lib/cost.js +181 -0
  87. package/lib/cost.js.map +1 -0
  88. package/package.json +1 -1
  89. package/rt-tools-agent-kit-0.16.0.tgz +0 -0
  90. package/rt-tools-agent-kit-0.14.0.tgz +0 -0
@@ -2,7 +2,7 @@
2
2
  name: api-layer
3
3
  kind: rule
4
4
  law: frontend-application
5
- description: Правило под «Закон о фронтовом приложении». Брать при правке слоя api фронтового домена — *-api.facade.ts, *-api.service.ts и мапперов в его mappers/ под libs/admin и libs/site. Называет пару «фасад и сервис», один вход выборки у списка и общий конвертер страницы. Готовый код — в паттерне api-layer-pair.
5
+ description: Правило под «Закон о фронтовом приложении». Брать при правке слоя api фронтового домена — фасада, сервиса и мапперов при них. Называет пару «фасад и сервис», один вход выборки у списка и общий конвертер страницы. Паттерн api-layer-pair.
6
6
  ---
7
7
 
8
8
  # Обращение к серверу — как это устроено здесь
@@ -90,7 +90,7 @@ flowchart TD
90
90
  - **Одна пара — одна сущность.** У объекта, его прежних адресов и подписок на календари свои
91
91
  пары, хотя процедуры лежат в одном proto-сервисе.
92
92
  - **Метод, которого у домена нет, не объявляется.** Список читают все, правят не все.
93
- - **Серверный стрим — исключение из правила про поток:** живой срез аналитики и лента тредов
94
- приходят асинхронным итератором, и заворачивать его некуда.
93
+ - **Серверный стрим — исключение из правила про поток:** живой срез показателей и лента входящих
94
+ записей приходят асинхронным итератором, и заворачивать его некуда.
95
95
  - Своей копии общих мапперов страницы, порядка и отбора домен не заводит — второй экземпляр
96
96
  ловит `npm run check:dupes`.
@@ -2,7 +2,7 @@
2
2
  name: browser-verification
3
3
  kind: rule
4
4
  law: verifiability
5
- description: Правило под «Закон о проверяемости». Брать при любой проверке через браузер и при запросах curl или wget к дев-серверу. Называет, где подняты приложения дерева, чему на дев-сервере верить нельзя и чем измерять вместо взгляда. Готовый код — в паттернах browser-verification-stand и browser-verification-measure.
5
+ description: Правило под «Закон о проверяемости». Брать при любой проверке через браузер и при запросах к дев-серверу. Называет, где подняты приложения дерева, чему на дев-сервере верить нельзя и чем измерять вместо взгляда. Паттерны: browser-verification-stand, -measure.
6
6
  ---
7
7
 
8
8
  # Проверка работающего приложения — как это устроено здесь
@@ -71,6 +71,14 @@ flowchart TD
71
71
  сессии, не держится: после паузы следующий вызов открывает вкладку в другом профиле молча.
72
72
  - **Профиль не выбирается из списка и не спрашивается у владельца.** Список отдаёт неустойчивые
73
73
  имена, которые не опознают ничего, а выбор из него ведёт на профиль без входа.
74
+ - **Замер делается на самом длинном значении, а не на образцовом.** Наезд, вылезание за край и
75
+ обрезка без признака видны только там, где содержимое в своё место не влезает; на коротком
76
+ значении всё три выглядят исправными. Значение для замера берётся предельное — то, какое узел
77
+ может получить у настоящего потребителя, а не то, какое стоит в примере.
78
+ - **Готовое из набора, взятое под данные другого размера, меряется, а не разглядывается.**
79
+ Компонент, живший там, где значения короткие, в новом месте получает значение вчетверо
80
+ длиннее — и ведёт себя иначе, оставаясь тем же кодом. Спека этого не видит вовсе: обрезка
81
+ браузером в разметке не отражается, и текст приходит из неё целым.
74
82
  - **Прод-конфигурация проверяется только за настоящим прокси.** Голый сервер отдачи страниц
75
83
  про кэш, перенаправления и заголовки не знает ничего.
76
84
  - **Первый заход на публичный экран метится признаком служебного посещения.** Драйвер водит
@@ -79,6 +87,12 @@ flowchart TD
79
87
  дерева; признак, который живёт в хранилище браузера, дописывается один раз на профиль, а не
80
88
  к каждому адресу.
81
89
 
90
+ - **Экран, данных для которого в базе разработки не бывает, меряется настоящими стилями
91
+ компонента.** Разметка вставляется в уже открытый экран со своим атрибутом области, и правила
92
+ оформления применяются к ней те же, что применились бы к живой строке. Это приём, а не обход:
93
+ замеряются те же вычисленные значения, а выдумывается только содержимое строки. Обходом было
94
+ бы измерить чужой экран и назвать это замером нужного.
95
+
82
96
  Вывод о вёрстке подкрепляется числом: «выглядит нормально» результатом проверки не является.
83
97
  Этого не стережёт ничто — как измерять, разобрано в паттерне `browser-verification-measure`.
84
98
 
@@ -2,7 +2,7 @@
2
2
  name: dependencies
3
3
  kind: rule
4
4
  law: delivery
5
- description: Правило под «Закон о поставке». Брать при правке package.json, pnpm-lock.yaml и pnpm-workspace.yaml и при обновлении любого пакета. Называет точный номер версии вместо диапазона, снимок дерева, подмену чужих версий, выдержку новой версии и границу переформатирования после обновления форматтера. Готовый порядок — в паттерне dependencies-upgrade.
5
+ description: Правило под «Закон о поставке». Брать при правке package.json, снимка дерева зависимостей и настроек рабочей области, а также при обновлении любого пакета. Называет точный номер версии вместо диапазона и выдержку новой версии. Паттерн dependencies-upgrade.
6
6
  ---
7
7
 
8
8
  # Зависимости — как это устроено здесь
@@ -2,7 +2,7 @@
2
2
  name: deploy-flow
3
3
  kind: rule
4
4
  law: delivery
5
- description: Правило под «Закон о поставке» для дерева в Azure DevOps — та его часть, что про выкатку. Брать, когда правка едет на прод: слияние в главную ветку, конвейер, образы и их метки, чистка реестра, описание прода, цепочка миграций хранилища. Называет признак режима в образе, выкатку по sha коммита, глубину отката и сверку прода с главной веткой. Готовый код — в паттернах git-workflow-migration, git-workflow-restart, git-workflow-docker и git-workflow-secrets. Не брать на заведение задачи, ветки, коммит и заявку — это правило git-workflow.
5
+ description: Правило под «Закон о поставке» для дерева в Azure DevOps — та его часть, что про выкатку. Брать, когда правка едет на прод: слияние в главную ветку, конвейер, образы и метки, миграции хранилища. Паттерны: git-workflow-migration, -restart, -docker, -secrets.
6
6
  ---
7
7
 
8
8
  # Выкатка — как это устроено здесь
@@ -2,7 +2,7 @@
2
2
  name: deploy-flow
3
3
  kind: rule
4
4
  law: delivery
5
- description: Правило под «Закон о поставке» для дерева на GitHub — та его часть, что про выкатку. Брать, когда правка едет на прод: мерж в главную ветку, конвейер, образы и их метки, чистка реестра, описание прода, цепочка миграций хранилища. Называет признак режима в образе, выкатку по sha коммита, глубину отката и сверку прода с главной веткой. Готовый код — в паттернах git-workflow-migration, git-workflow-restart, git-workflow-docker и git-workflow-secrets. Не брать на заведение задачи, ветки, коммит и заявкуэто правило git-workflow.
5
+ description: Правило под «Закон о поставке» для дерева на GitHub — та его часть, что про выкатку. Брать, когда правка едет на прод: мерж в главную ветку, конвейер, образы и метки, миграции хранилища. Паттерны: git-workflow-migration, -restart, -docker, -secrets. Задача и ветка — правило git-workflow.
6
6
  ---
7
7
 
8
8
  # Выкатка — как это устроено здесь
@@ -2,7 +2,7 @@
2
2
  name: deploy-flow
3
3
  kind: rule
4
4
  law: delivery
5
- description: Правило под «Закон о поставке» для дерева на GitLab — та его часть, что про выкатку. Брать, когда правка едет на прод: слияние в главную ветку, конвейер, образы и их метки, чистка реестра, описание прода, цепочка миграций хранилища. Называет признак режима в образе, выкатку по sha коммита, глубину отката и сверку прода с главной веткой. Готовый код — в паттернах git-workflow-migration, git-workflow-restart, git-workflow-docker и git-workflow-secrets. Не брать на заведение задачи, ветки, коммит и заявкуэто правило git-workflow.
5
+ description: Правило под «Закон о поставке» для дерева на GitLab — та его часть, что про выкатку. Брать, когда правка едет на прод: слияние в главную ветку, конвейер, образы и метки, миграции хранилища. Паттерны: git-workflow-migration, -restart, -docker, -secrets. Задача и ветка — правило git-workflow.
6
6
  ---
7
7
 
8
8
  # Выкатка — как это устроено здесь
@@ -112,12 +112,30 @@ flowchart TD
112
112
  строка в шапке дешевле правки всех ссылающихся записей и прошлого не трогает.
113
113
  <!-- rt-when: *.md -->
114
114
 
115
+ - **Словарь работы и язык экрана — два разных словаря.** Слово, которым слой правил зовёт своё
116
+ понятие, для человека за экраном ничего не значит: он не читал ни одного правила и читать не
117
+ будет. Термин словаря в подписи кнопки, колонки или пустого состояния — это внутреннее слово,
118
+ показанное наружу; слово для человека выбирает тот, кто с ним говорит, и берёт он его из языка
119
+ предметной области, а не из левой колонки словаря.
120
+ <!-- rt-when: *.md -->
121
+
115
122
  - **Текст, называющий состояние машины, устаревает без единой правки в дереве.** Ловушка о том,
116
123
  что на машине установлено, верна в день, когда её пишут, и становится неправдой сама собой —
117
124
  ни одна сверка этого не видит: они читают дерево, а состарилась машина. Утверждение о машине
118
125
  пишется способом её спросить: команда и то, с чем сверять ответ, вместо снимка ответа.
119
126
  <!-- rt-when: *.md -->
120
127
 
128
+ - **У записи описания прошлого есть срок, и после него запись снимается.** Каталог набирает по
129
+ записи на каждую закрытую работу и не отдаёт обратно ничего. Снятая остаётся в истории —
130
+ достают её тем же именем файла, которым ищут живую. Срок называет дерево ключом настройки;
131
+ умолчания у него нет, потому что снимается там разбор просьбы, которого нет больше нигде.
132
+ <!-- rt-when: *.md -->
133
+
134
+ - **Ссылка на запись описания прошлого в живом тексте живёт ровно до её срока.** Проверка
135
+ адресов архив не читает вовсе, поэтому мёртвая ссылка краснеет не в нём, а в том тексте,
136
+ который сослался. Живой текст называет решение словами, а не адресом записи.
137
+ <!-- rt-when: *.md -->
138
+
121
139
  ## Чего из закона здесь нет
122
140
 
123
141
  Ни одна из формулировочных договорённостей не проверяется: одна фраза на правило, простые
@@ -2,7 +2,7 @@
2
2
  name: entity-conventions
3
3
  kind: rule
4
4
  law: entity-editing
5
- description: Правило под «Закон о правке сущности». Брать при правке любого стора админки (*.store.ts) и любой панели создания или правки записи. Называет общую основу асайда, общую основу списочного стора, устройство панели и то, что асайд открывается маршрутом в аутлете ro. Готовый код — в паттернах entity-aside и entity-store.
5
+ description: Правило под «Закон о правке сущности». Брать при правке любого стора админки и любой панели создания или правки записи. Называет общую основу асайда и списочного стора и то, что асайд открывается своим маршрутом. Паттерны: entity-aside, entity-store.
6
6
  ---
7
7
 
8
8
  # Правка сущности — как это устроено здесь
@@ -2,7 +2,7 @@
2
2
  name: entity-models
3
3
  kind: rule
4
4
  law: entity-models
5
- description: Правило под «Закон о моделях сущностей». Брать при объявлении или правке модели записи и её маппера в админке, при правке моделей и мапперов в libs/common/util и при правке .proto. Называет неймспейс I<Сущность>, уровни модели и что берётся из @rt-tools/utils. Готовый код — в паттерне entity-models-new.
5
+ description: Правило под «Закон о моделях сущностей». Брать при объявлении или правке модели записи и её маппера, при правке общих моделей и при правке описания контракта. Называет неймспейс модели и её уровни. Паттерн entity-models-new.
6
6
  ---
7
7
 
8
8
  # Модели сущностей — как это устроено здесь
@@ -2,7 +2,7 @@
2
2
  name: git-workflow
3
3
  kind: rule
4
4
  law: delivery
5
- description: Правило под «Закон о поставке» для дерева в Azure DevOps. Брать на заведение задачи, ветки, коммит, пуш, создание PR, слияние, а также на правку схемы хранилища, её миграций и вызовы миграций. Называет рабочий элемент как начало работы, его состояние как ход работы, соответствие задачи и ветки один к одному, имя ветки, формат коммита, учётную запись машинной работы, обязательный состав PR, гарды поставки и сверку очереди работ. Готовый код — в паттернах git-workflow-commit, git-workflow-pr, git-workflow-merge. Выкатка, образы и миграции — правило deploy-flow.
5
+ description: Правило под «Закон о поставке» для дерева в Azure DevOps. Брать на заведение рабочего элемента, ветки, коммит, пуш, открытие PR и слияние. Называет соответствие элемента и ветки один к одному, имена, машинную учётную запись и гарды поставки. Паттерны: git-workflow-commit, -pr, -merge.
6
6
  ---
7
7
 
8
8
  # Поставка — как это устроено здесь