@nitra/cursor 5.3.4 → 5.4.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.
- package/.claude-template/settings.template.json +2 -2
- package/.pi-template/extensions/n-cursor-adr/docs/index.md +13 -24
- package/CHANGELOG.md +11 -0
- package/bin/n-cursor.js +43 -22
- package/lib/docs/models.md +29 -18
- package/lib/docs/omlx-trace.md +51 -0
- package/lib/docs/omlx.md +31 -15
- package/lib/omlx.mjs +2 -5
- package/package.json +1 -1
- package/rules/abie/docs/fix.md +17 -11
- package/rules/adr/docs/fix.md +25 -140
- package/rules/bun/docs/fix.md +18 -151
- package/rules/capacitor/docs/fix.md +16 -13
- package/rules/capacitor/js/docs/platforms.md +31 -43
- package/rules/changelog/docs/fix.md +25 -169
- package/rules/ci4/docs/fix.md +11 -14
- package/rules/doc-files/doc-files.mdc +60 -0
- package/rules/doc-files/docs/fix.md +31 -0
- package/rules/doc-files/fix.mjs +19 -0
- package/{skills → rules}/doc-files/js/docgen-extract.mjs +42 -19
- package/{skills → rules}/doc-files/js/docgen-ignore.mjs +2 -1
- package/{skills → rules}/doc-files/js/docgen-scan.mjs +9 -1
- package/{skills → rules}/doc-files/js/docs/docgen-crc.md +1 -1
- package/{skills → rules}/doc-files/js/docs/docgen-extract-anchors.md +1 -1
- package/{skills → rules}/doc-files/js/docs/docgen-extract.md +2 -2
- package/{skills → rules}/doc-files/js/docs/docgen-files-batch.md +1 -1
- package/{skills → rules}/doc-files/js/docs/docgen-gen.md +1 -1
- package/{skills → rules}/doc-files/js/docs/docgen-ignore.md +4 -4
- package/rules/doc-files/js/docs/docgen-prompts.md +39 -0
- package/rules/doc-files/js/docs/docgen-scan.md +54 -0
- package/rules/doc-files/js/docs/lint.md +36 -0
- package/rules/doc-files/js/docs/units-js.md +31 -0
- package/rules/doc-files/js/docs/units-rs.md +35 -0
- package/rules/doc-files/js/docs/units.md +30 -0
- package/rules/doc-files/js/lint.mjs +96 -0
- package/{skills → rules}/doc-files/js/units-rs.mjs +37 -17
- package/rules/doc-files/lint/docs/lint.md +37 -0
- package/rules/doc-files/lint/lint.mjs +105 -0
- package/rules/doc-files/meta.json +1 -0
- package/rules/docker/docs/fix.md +21 -161
- package/rules/efes/docs/fix.md +23 -194
- package/rules/feedback/docs/fix.md +10 -8
- package/rules/ga/docs/fix.md +10 -5
- package/rules/graphql/docs/fix.md +23 -119
- package/rules/hasura/docs/fix.md +19 -5
- package/rules/hasura/js/docs/internal_urls.md +34 -307
- package/rules/image-avif/docs/fix.md +16 -127
- package/rules/image-compress/docs/fix.md +20 -141
- package/rules/image-compress/js/docs/package_setup.md +22 -182
- package/rules/js-bun-db/docs/fix.md +23 -139
- package/rules/js-bun-db/js/docs/safety.md +33 -221
- package/rules/js-bun-redis/docs/fix.md +25 -114
- package/rules/js-bun-redis/js/docs/imports.md +18 -166
- package/rules/js-lint/docs/fix.md +30 -108
- package/rules/js-lint/js/docs/lint-findings.md +37 -17
- package/rules/js-lint/js/docs/lint.md +22 -238
- package/rules/js-lint/js/docs/tooling.md +34 -331
- package/rules/js-lint-ci/docs/fix.md +16 -149
- package/rules/js-lint-ci/js/docs/lint.md +16 -136
- package/rules/js-mssql/docs/fix.md +18 -123
- package/rules/js-mssql/js/docs/deps.md +28 -251
- package/rules/js-run/docs/fix.md +23 -138
- package/rules/js-run/js/docs/runtime.md +24 -378
- package/rules/k8s/docs/fix.md +18 -123
- package/rules/nginx-default-tpl/docs/fix.md +22 -118
- package/rules/nginx-default-tpl/js/docs/template.md +38 -360
- package/rules/npm-module/docs/fix.md +27 -89
- package/rules/npm-module/js/docs/header_doc_pointer.md +15 -15
- package/rules/npm-module/js/docs/package_structure.md +36 -258
- package/rules/npm-module/js/docs/rule_meta.md +25 -127
- package/rules/npm-module/js/docs/skill_meta.md +18 -180
- package/rules/php/docs/fix.md +21 -98
- package/rules/php/js/docs/tooling.md +20 -143
- package/rules/python/docs/fix.md +25 -157
- package/rules/python/js/docs/applies.md +20 -98
- package/rules/python/js/docs/tooling.md +27 -144
- package/rules/rego/docs/fix.md +24 -112
- package/rules/rego/js/docs/applies.md +20 -164
- package/rules/rego/js/docs/lint.md +15 -110
- package/rules/release/docs/fix.md +16 -114
- package/rules/rust/docs/fix.md +24 -119
- package/rules/rust/js/docs/applies.md +20 -129
- package/rules/security/docs/fix.md +21 -78
- package/rules/security/js/docs/sample_secret.md +23 -182
- package/rules/security/js/docs/trufflehog.md +19 -128
- package/rules/style-lint/docs/fix.md +16 -150
- package/rules/style-lint/js/docs/lint.md +21 -172
- package/rules/style-lint/js/docs/tooling.md +19 -184
- package/rules/tauri/docs/fix.md +26 -152
- package/rules/tauri/js/docs/cargo_mutants_config.md +21 -159
- package/rules/tauri/js/docs/tooling.md +20 -217
- package/rules/test/docs/fix.md +19 -127
- package/rules/test/js/data/stryker_config/docs/stryker.config.baseline.md +15 -127
- package/rules/test/js/data/stryker_config/docs/stryker.config.vue.baseline.md +17 -153
- package/rules/test/js/docs/cargo_mutants_config.md +24 -164
- package/rules/test/js/docs/location.md +24 -126
- package/rules/test/js/docs/no-process-chdir.md +20 -151
- package/rules/test/js/docs/no-relative-fs-path.md +24 -261
- package/rules/test/js/docs/stryker_config.md +48 -148
- package/rules/test/js/docs/vitest-config-pool-forks.md +21 -164
- package/rules/text/docs/fix.md +25 -113
- package/rules/text/js/docs/forbidden-prettier.md +21 -132
- package/rules/text/js/docs/formatting.md +60 -251
- package/rules/text/js/docs/lint.md +17 -114
- package/rules/vue/docs/fix.md +25 -118
- package/rules/vue/js/docs/packages.md +25 -323
- package/rules/worktree/docs/fix.md +31 -150
- package/scripts/coverage-classify/docs/index.md +23 -209
- package/scripts/coverage-classify/docs/verdict-schema.md +14 -159
- package/scripts/dispatcher/docs/trace.md +35 -0
- package/scripts/docs/auto-rules.md +37 -361
- package/scripts/docs/lint-cli.md +12 -13
- package/scripts/docs/post-tool-use-fix.md +16 -15
- package/scripts/docs/skills-cli.md +26 -23
- package/scripts/docs/sync-claude-config.md +94 -34
- package/scripts/docs/worktree-cli.md +11 -34
- package/scripts/lib/docs/assert-project-root.md +14 -16
- package/scripts/lib/docs/changed-files.md +24 -139
- package/scripts/lib/docs/discover-check-rules-from-cursor.md +14 -146
- package/scripts/lib/docs/rule-predicates.md +20 -17
- package/scripts/lib/docs/run-rule-cli.md +14 -18
- package/scripts/lib/docs/run-rule.md +13 -20
- package/scripts/lib/docs/run-standard-rule.md +12 -15
- package/scripts/lib/docs/sync-gitignore-worktree.md +15 -18
- package/scripts/lib/rule-predicates.mjs +1 -1
- package/scripts/sync-claude-config.mjs +4 -1
- package/scripts/utils/docs/with-lock.md +19 -12
- package/scripts/utils/with-lock.mjs +4 -2
- package/skills/doc-aggregate/SKILL.md +2 -2
- package/skills/doc-aggregate/js/docgen-ignore.mjs +6 -6
- package/skills/doc-aggregate/js/docs/docgen-ignore.md +1 -1
- package/skills/doc-aggregate/js/docs/docgen-scan.md +78 -0
- package/skills/doc-files/.changes/260612-0031.md +5 -0
- package/skills/doc-files/.changes/260612-0036.md +5 -0
- package/skills/doc-files/.changes/260612-0114.md +5 -0
- package/skills/doc-files/SKILL.md +6 -6
- package/skills/fix/js/docs/llm-worker.md +17 -15
- package/skills/fix/js/docs/orchestrator.md +30 -23
- package/skills/fix/js/docs/t0.md +26 -16
- package/skills/start-check/js/docs/check.md +26 -22
- package/skills/taze/js/docs/diff.md +44 -20
- package/skills/doc-files/js/docs/docgen-prompts.md +0 -32
- package/skills/doc-files/js/docs/docgen-scan.md +0 -25
- package/skills/doc-files/js/docs/units-rs.md +0 -35
- /package/{skills → rules}/doc-files/js/docgen-crc.mjs +0 -0
- /package/{skills → rules}/doc-files/js/docgen-extract-anchors.mjs +0 -0
- /package/{skills → rules}/doc-files/js/docgen-files-batch.mjs +0 -0
- /package/{skills → rules}/doc-files/js/docgen-gen.mjs +0 -0
- /package/{skills → rules}/doc-files/js/docgen-prompts.mjs +0 -0
- /package/{skills → rules}/doc-files/js/units-js.mjs +0 -0
- /package/{skills → rules}/doc-files/js/units.mjs +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
docgen:
|
|
3
|
+
source: npm/skills/doc-aggregate/js/docgen-scan.mjs
|
|
4
|
+
crc: 193dd362
|
|
5
|
+
score: 100
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# docgen-scan.mjs
|
|
9
|
+
|
|
10
|
+
## Огляд
|
|
11
|
+
|
|
12
|
+
isSourceFile
|
|
13
|
+
Перевіряє, чи є файл коду, який слугує джерелом для документування.
|
|
14
|
+
|
|
15
|
+
scanSourceFiles
|
|
16
|
+
Рекурсивно збирає кодові файли проєкту за позикс-шляхами від кореня.
|
|
17
|
+
|
|
18
|
+
slugForModule
|
|
19
|
+
Генерує стабільний slug модуля на основі його відносного шляху.
|
|
20
|
+
|
|
21
|
+
findModuleRoots
|
|
22
|
+
Знаходить абсолютні шляхи коренів модулів, використовуючи дані з package.json.
|
|
23
|
+
|
|
24
|
+
nearestModuleRoot
|
|
25
|
+
Визначає найближчий модуль-предок для заданого файлу серед усіх доступних коренів модулів.
|
|
26
|
+
|
|
27
|
+
scanForModules
|
|
28
|
+
Лістить логічні модулі, збираючи члени-файли та інформацію про наявність документації.
|
|
29
|
+
|
|
30
|
+
resolveRoot
|
|
31
|
+
Парсить аргументи для визначення абсолютної кореневої директорії.
|
|
32
|
+
|
|
33
|
+
runDocAggregateModulesCli
|
|
34
|
+
Сканує модулі та виводить масив JSON у stdout.
|
|
35
|
+
|
|
36
|
+
## Поведінка
|
|
37
|
+
|
|
38
|
+
isSourceFile
|
|
39
|
+
Перевіряє, чи є файл кодовим джерелом для документування
|
|
40
|
+
|
|
41
|
+
scanSourceFiles
|
|
42
|
+
Рекурсивно збирає кодові файли проєкту по позикс-шляхах від кореня
|
|
43
|
+
|
|
44
|
+
slugForModule
|
|
45
|
+
Генерує стабільний slug модуля з його відносним шляхом
|
|
46
|
+
|
|
47
|
+
findModuleRoots
|
|
48
|
+
Знаходить абсолютні шляхи коренів модулів з файлами package.json
|
|
49
|
+
|
|
50
|
+
nearestModuleRoot
|
|
51
|
+
Знаходить найближчий модуль-предок для файлу серед наявних коренів модулів
|
|
52
|
+
|
|
53
|
+
scanForModules
|
|
54
|
+
Лістить логічні модулі, збираючи члени-файли та інформацію про наявність документації
|
|
55
|
+
|
|
56
|
+
resolveRoot
|
|
57
|
+
Парсить аргументи для визначення абсолютного кореня
|
|
58
|
+
|
|
59
|
+
runDocAggregateModulesCli
|
|
60
|
+
Сканує модулі та виводить JSON-масив у stdout
|
|
61
|
+
|
|
62
|
+
## Публічний API
|
|
63
|
+
|
|
64
|
+
- isSourceFile — визначає, чи є файл коду для документування.
|
|
65
|
+
- scanSourceFiles — рекурсивно збирає файли коду проєкту (від кореня за POSIX-шляхом).
|
|
66
|
+
- slugForModule — генерує стабільний slug модуля з його відносним шляхом (для лейблів/логів).
|
|
67
|
+
- findModuleRoots — знаходить кореневі директорії модулів у `package.json` (корінь — це модуль).
|
|
68
|
+
- nearestModuleRoot — визначає найближчий модуль-предок для файлу (найдовший збіг шляху).
|
|
69
|
+
- scanForModules — лістить логічні модулі проєкту з членами-файлами та `docPath module-summary`. Пропускає модулі без кодових файлів.
|
|
70
|
+
- resolveRoot — парсить аргумент `--root <dir>`; за замовчуванням використовує поточну директорію.
|
|
71
|
+
- runDocAggregateModulesCli — виконує команду `doc-aggregate modules`, скануючи модулі та виводячи JSON-масив у stdout.
|
|
72
|
+
|
|
73
|
+
## Гарантії поведінки
|
|
74
|
+
|
|
75
|
+
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
76
|
+
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
|
|
77
|
+
- За невдачі повертає значення помилки (`false`/`null`/`Err`) замість генерування винятку чи паніки.
|
|
78
|
+
- Не звертається до мережі.
|
|
@@ -31,7 +31,7 @@ docgen:
|
|
|
31
31
|
## Оркестрацію веде JS, не модель; конвеєр — local-only
|
|
32
32
|
|
|
33
33
|
Уся важка робота — черга, батчинг, виклики LLM і штамп CRC — живе в JS-команді
|
|
34
|
-
`doc-files
|
|
34
|
+
`fix-doc-files`. **Ти не диспатчиш субагентів і не тримаєш сотні файлів у контексті**
|
|
35
35
|
— тому навіть масовий перший прогін усього репо не «заморює». Цей скіл **тонкий**: твоє завдання —
|
|
36
36
|
запустити генерацію і прочитати підсумок.
|
|
37
37
|
|
|
@@ -50,7 +50,7 @@ docgen:
|
|
|
50
50
|
### Крок 1: Генерація застарілих/відсутніх док
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
-
npx @nitra/cursor doc-files
|
|
53
|
+
npx @nitra/cursor fix-doc-files
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
Команда сама: перевіряє omlx (preflight: «сервер лежить» / «модель не влазить у пам'ять
|
|
@@ -66,18 +66,18 @@ npx @nitra/cursor doc-files gen
|
|
|
66
66
|
|
|
67
67
|
Дочекайся підсумку `✓ OK: <N> ⚠ degraded: <D> ✗ Err: <E>`. Якщо є помилки — перелічи
|
|
68
68
|
проблемні файли. Exit-код `1` означає, що хоча б один файл не згенерувався (або не пройшов
|
|
69
|
-
preflight). Degraded — не помилка: дока існує, борг видно у `
|
|
69
|
+
preflight). Degraded — не помилка: дока існує, борг видно у `lint-doc-files --degraded`.
|
|
70
70
|
|
|
71
71
|
### Крок 3 (за потреби): перевірка перед завершенням
|
|
72
72
|
|
|
73
73
|
```bash
|
|
74
|
-
npx @nitra/cursor doc-files
|
|
74
|
+
npx @nitra/cursor lint-doc-files --git
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
Перевіряє змінені у задачі джерела (`git diff --name-only HEAD`) проти CRC їхніх док.
|
|
78
78
|
Цю ж перевірку виконує **Stop-hook** як твердий гейт: завершити задачу зі застарілими
|
|
79
79
|
доками не можна (виняток — масовий прогін понад поріг `N_CURSOR_DOC_FILES_GATE_MAX`, дефолт 50).
|
|
80
|
-
Degraded-доки гейт **не** блокує (CRC свіжий); їх список — `doc-files
|
|
80
|
+
Degraded-доки гейт **не** блокує (CRC свіжий); їх список — `lint-doc-files --degraded`.
|
|
81
81
|
|
|
82
82
|
## Правила стилю документа (за adr/ci4)
|
|
83
83
|
|
|
@@ -97,4 +97,4 @@ Degraded-доки гейт **не** блокує (CRC свіжий); їх спи
|
|
|
97
97
|
усі теки `docs/`, а також `*.test.*` / `*.spec.*` / `*.d.ts`. Кореневий repo `docs/` —
|
|
98
98
|
system-wide only: file-level docs туди не пишуться. Список glob-ів — `docgen-ignore.mjs`.
|
|
99
99
|
- Агрегуюча документація (module-summary, доменні доки) — окремий скіл `doc-aggregate`, за запитом.
|
|
100
|
-
- Для наявних док без CRC одноразово: `npx @nitra/cursor doc-files stamp` (штампує frontmatter без LLM).
|
|
100
|
+
- Для наявних док без CRC одноразово: `npx @nitra/cursor fix-doc-files --stamp` (штампує frontmatter без LLM).
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
docgen:
|
|
3
3
|
source: npm/skills/fix/js/llm-worker.mjs
|
|
4
|
-
crc:
|
|
4
|
+
crc: 6507b5b7
|
|
5
|
+
score: 100
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# llm-worker.mjs
|
|
8
9
|
|
|
9
10
|
## Огляд
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
MODEL визначає основну модель для виконання операцій. MODEL_HEAVY визначає модель для посиленої обробки. runLlmWorker корегує одне визначене правило порушення через LLM.
|
|
12
13
|
|
|
13
14
|
## Поведінка
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
MODEL
|
|
17
|
+
Визначає модель за замовчуванням для роботи.
|
|
18
|
+
|
|
19
|
+
MODEL_HEAVY
|
|
20
|
+
Визначає модель для важкої ескалації.
|
|
21
|
+
|
|
22
|
+
runLlmWorker
|
|
23
|
+
Виправляє одне правило порушення через LLM.
|
|
16
24
|
|
|
17
25
|
## Публічний API
|
|
18
26
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
runLlmWorker — Виправляє порушення
|
|
27
|
+
MODEL — Створює модель.
|
|
28
|
+
MODEL_HEAVY — Створює важку модель.
|
|
29
|
+
runLlmWorker — Виправляє одне порушення правила через pi (C1 pattern).
|
|
22
30
|
|
|
23
31
|
## Гарантії поведінки
|
|
24
32
|
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
- Використовує LLM для генерації змін.
|
|
29
|
-
- Викликає LLM через `pi`.
|
|
30
|
-
- Не використовує tool-use.
|
|
31
|
-
- Не кидає винятків.
|
|
32
|
-
- У разі невдачі повертає `false` та `null`.
|
|
33
|
-
- Не використовує кешування.
|
|
33
|
+
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
|
|
34
|
+
- За невдачі повертає значення помилки (`false`/`null`/`Err`) замість генерування винятку чи паніки.
|
|
35
|
+
- Не звертається до мережі.
|
|
@@ -1,38 +1,45 @@
|
|
|
1
1
|
---
|
|
2
2
|
docgen:
|
|
3
3
|
source: npm/skills/fix/js/orchestrator.mjs
|
|
4
|
-
crc:
|
|
4
|
+
crc: e77aaf7b
|
|
5
|
+
score: 100
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# orchestrator.mjs
|
|
8
9
|
|
|
9
10
|
## Огляд
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
runOrchestratorCli
|
|
13
|
+
Запускає ітеративний цикл для перевірки набору правил. Проходить через кроки T0-auto та T1, взаємодіючи з LLM-воркерами. Завершує роботу, перевіряючи, чи всі правила виконані, повертаючи нуль або одиницю залежно від кінцевого стану.
|
|
12
14
|
|
|
13
15
|
## Поведінка
|
|
14
16
|
|
|
15
|
-
1.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
1. Парсинг аргументів
|
|
18
|
+
Приймає аргументи командного рядка після 'fix'
|
|
19
|
+
Визначає максимальну кількість ітерацій
|
|
20
|
+
Визначає фільтр правил
|
|
21
|
+
2. Початкова перевірка
|
|
22
|
+
Запускає перевірку стану
|
|
23
|
+
Отримує початковий набір правил
|
|
24
|
+
Перевіряє наявність помилок
|
|
25
|
+
3. Ітеративний цикл
|
|
26
|
+
Повторює ітерації до максимального ліміту
|
|
27
|
+
Виконує крок T0-auto
|
|
28
|
+
Перевіряє кількість провалів після кроку T0
|
|
29
|
+
Якщо провалів немає, завершує цикл
|
|
30
|
+
Виконує крок T1
|
|
31
|
+
Запускає роботу з LLM-воркерами для кожного правила
|
|
32
|
+
Збільшує лічильник провалів для невдалих правил
|
|
33
|
+
Перевіряє стан після LLM
|
|
34
|
+
Перевіряє наявність невирішених правил
|
|
35
|
+
4. Завершення
|
|
36
|
+
Перевіряє, чи всі правила вирішено
|
|
37
|
+
Повертає нуль у разі чистого стану
|
|
38
|
+
Повертає одиницю у разі невирішеного стану
|
|
26
39
|
|
|
27
40
|
## Гарантії поведінки
|
|
28
41
|
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
- `T0-auto` виконує regex-парсинг та застосовує програмний фікс у разі виявлення порушення.
|
|
34
|
-
- `T1` використовує LLM через `pi` (ескалація до `haiku` та `sonnet`).
|
|
35
|
-
- `check-gate` повторно запускає `T0` після кожної ітерації.
|
|
36
|
-
- У разі помилки програма повертає `false` або `null`.
|
|
37
|
-
- Програма кешує результати для оптимізації роботи в межах одного запуску.
|
|
38
|
-
- Програма не взаємодіє з мережею.
|
|
42
|
+
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
43
|
+
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
|
|
44
|
+
- За невдачі повертає значення помилки (`false`/`null`/`Err`) замість генерування винятку чи паніки.
|
|
45
|
+
- Не звертається до мережі.
|
package/skills/fix/js/docs/t0.md
CHANGED
|
@@ -1,29 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
docgen:
|
|
3
|
+
source: npm/skills/fix/js/t0.mjs
|
|
4
|
+
crc: 51311329
|
|
5
|
+
score: 90
|
|
6
|
+
---
|
|
7
|
+
|
|
1
8
|
# t0.mjs
|
|
2
9
|
|
|
3
10
|
## Огляд
|
|
4
11
|
|
|
5
|
-
|
|
12
|
+
applyT0Auto застосовує паттерни T0-auto до вихідного результату.
|
|
13
|
+
|
|
14
|
+
filterT0AutoRules фільтрує список правил, для яких присутній хоча б один T0-auto паттерн.
|
|
15
|
+
|
|
16
|
+
runT0AutoCli запускає перевірку, застосовує T0-auto до провальних правил, виводить результат та перевіряє стан через check-gate.
|
|
6
17
|
|
|
7
18
|
## Поведінка
|
|
8
19
|
|
|
9
|
-
applyT0Auto
|
|
10
|
-
|
|
11
|
-
|
|
20
|
+
applyT0Auto
|
|
21
|
+
Застосовує паттерни T0-auto до одного вихідного результату
|
|
22
|
+
|
|
23
|
+
filterT0AutoRules
|
|
24
|
+
Фільтрує список правил, для яких існує хоча б один T0-auto паттерн
|
|
25
|
+
|
|
26
|
+
runT0AutoCli
|
|
27
|
+
Запускає перевірку, застосовує T0-auto до провальних правил, виводить результат та перевіряє стан через check-gate
|
|
12
28
|
|
|
13
29
|
## Публічний API
|
|
14
30
|
|
|
15
|
-
- applyT0Auto —
|
|
16
|
-
- filterT0AutoRules —
|
|
17
|
-
- runT0AutoCli —
|
|
31
|
+
- applyT0Auto — застосовує всі T0-auto шаблони до одного виводу порушення.
|
|
32
|
+
- filterT0AutoRules — повертає ідентифікатори правил, що мають хоча б один T0-auto шаблон у виводі порушення.
|
|
33
|
+
- runT0AutoCli — виконує команду `n-cursor fix-t0 [правило...]`.
|
|
34
|
+
- Запускає `fix --json`, застосовує T0-auto до кожного порушення, повторно перевіряє check-gate, виводить звіт.
|
|
18
35
|
|
|
19
36
|
## Гарантії поведінки
|
|
20
37
|
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
- `runT0AutoCli` повертає код виходу 0, якщо процес виконано успішно, і 1, якщо виявлено порушення.
|
|
24
|
-
- T0-auto запускається першим у конвергентному циклі.
|
|
25
|
-
- T1 запускається лише для решти.
|
|
26
|
-
- Система перехоплює помилки та не кидає винятки.
|
|
27
|
-
- В системі немає кешування.
|
|
28
|
-
- Вхідні дані `applyT0Auto` повинні відповідати формату JSON, вихідному від `n-cursor fix --json`.
|
|
29
|
-
- Якщо `violation-message` не містить інформації, яку можна видобути за допомогою регулярних виразів, `applyT0Auto` не виконує жод
|
|
38
|
+
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
|
|
39
|
+
- Не звертається до мережі.
|
|
@@ -1,40 +1,44 @@
|
|
|
1
1
|
---
|
|
2
2
|
docgen:
|
|
3
3
|
source: npm/skills/start-check/js/check.mjs
|
|
4
|
-
crc:
|
|
4
|
+
crc: 1f8fb2f0
|
|
5
|
+
score: 95
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# check.mjs
|
|
8
9
|
|
|
9
10
|
## Огляд
|
|
10
11
|
|
|
11
|
-
Файл
|
|
12
|
+
Файл надає інструменти для класифікації типів процесу, сканування конфігурації воркспейсів, парсингу логів та запуску скриптів.
|
|
12
13
|
|
|
13
14
|
## Поведінка
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
classifyStartType
|
|
17
|
+
Визначає тип процесу як сервер чи CLI на основі команди.
|
|
18
|
+
|
|
19
|
+
scanStartWorkspaces
|
|
20
|
+
Сканує монорепо для отримання інформації про наявність та конфігурацію `start` скриптів у воркспейсах.
|
|
21
|
+
|
|
22
|
+
parseStartLog
|
|
23
|
+
Парсить лог процесу для визначення готовності, першої помилки та останніх рядків.
|
|
24
|
+
|
|
25
|
+
runWorkspaceStart
|
|
26
|
+
Запускає `start` для одного воркспейсу з тайм-аутом і класифікує результат.
|
|
27
|
+
|
|
28
|
+
runStartCheckCli
|
|
29
|
+
Обробляє аргументи командного рядка для сканування або запуску тестування воркспейсів.
|
|
20
30
|
|
|
21
31
|
## Публічний API
|
|
22
32
|
|
|
23
|
-
- classifyStartType —
|
|
24
|
-
- scanStartWorkspaces —
|
|
25
|
-
- parseStartLog —
|
|
26
|
-
- runWorkspaceStart —
|
|
27
|
-
- runStartCheckCli —
|
|
33
|
+
- classifyStartType — визначає, чи команда `start` належить до довготривалого процесу (серверу) чи одноразової дії (CLI).
|
|
34
|
+
- scanStartWorkspaces — переглядає монорепо, витягуючи команду `start`, її команду та тип для кожного воркспейсу.
|
|
35
|
+
- parseStartLog — витягує з логу стадії: готовність (сервер), перша помилка або фінальний результат.
|
|
36
|
+
- runWorkspaceStart — ініціює запуск `start` для одного воркспейсу з обмеженням часу та класифікує отриманий результат.
|
|
37
|
+
- runStartCheckCli — CLI-команда: команда `scan` генерує список воркспейсів зі `start`; команда `run <ws>` запускає один воркспейс і виводить класифікований результат у stdout.
|
|
28
38
|
|
|
29
39
|
## Гарантії поведінки
|
|
30
40
|
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
- У разі невдачі перевірки, скрипт повертає `false` або `null`.
|
|
36
|
-
- Скрипт не кидає винятків.
|
|
37
|
-
- Скрипт не використовує кешування.
|
|
38
|
-
- Скрипт не взаємодіє з мережею.
|
|
39
|
-
- Результат запуску воркспейса представлений у форматі `{workspace, type, exitCode, timedOut, status, ready, firstError, logTail, sideEffects}`.
|
|
40
|
-
- `sideEffects` містить відкат стану воркспейса до його початкового стану перед запуском.
|
|
41
|
+
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
42
|
+
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
|
|
43
|
+
- За невдачі повертає значення помилки (`false`/`null`/`Err`) замість генерування винятку чи паніки.
|
|
44
|
+
- Не звертається до мережі.
|
|
@@ -1,33 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
docgen:
|
|
3
|
+
source: npm/skills/taze/js/diff.mjs
|
|
4
|
+
crc: fe4d76ce
|
|
5
|
+
score: 100
|
|
6
|
+
---
|
|
7
|
+
|
|
1
8
|
# diff.mjs
|
|
2
9
|
|
|
3
10
|
## Огляд
|
|
4
11
|
|
|
5
|
-
|
|
12
|
+
parseVersion
|
|
13
|
+
Парсить версію з specifier.
|
|
14
|
+
|
|
15
|
+
isBreaking
|
|
16
|
+
Перевіряє перехід версій згідно з caret-семантикою.
|
|
17
|
+
|
|
18
|
+
diffPackageJson
|
|
19
|
+
Порівнює об'єкти package.json і повертає зміни залежностей.
|
|
20
|
+
|
|
21
|
+
collectTazeDiff
|
|
22
|
+
Збирає diff по всьому монорепо порівнюючи бекап та новий файл.
|
|
23
|
+
|
|
24
|
+
runTazeCli
|
|
25
|
+
Друкує результат diff у форматі JSON.
|
|
6
26
|
|
|
7
27
|
## Поведінка
|
|
8
28
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
29
|
+
parseVersion
|
|
30
|
+
Парсить версію з specifier
|
|
31
|
+
|
|
32
|
+
isBreaking
|
|
33
|
+
Перевіряє перехід версій згідно з caret-семантикою
|
|
34
|
+
|
|
35
|
+
diffPackageJson
|
|
36
|
+
Порівнює об'єкти package.json і повертає зміни залежностей
|
|
37
|
+
|
|
38
|
+
collectTazeDiff
|
|
39
|
+
Збирає diff по всьому монорепо порівнюючи бекап та новий файл
|
|
40
|
+
|
|
41
|
+
runTazeCli
|
|
42
|
+
Друкує результат diff у форматі JSON
|
|
14
43
|
|
|
15
44
|
## Публічний API
|
|
16
45
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
46
|
+
parseVersion — витягує версію з specifier-а, ігноруючи range-префікси.
|
|
47
|
+
isBreaking — визначає, чи є перехід між версіями breaking за caret-семантикою (зміна найлівішої ненульової частини).
|
|
48
|
+
diffPackageJson — порівнює два package.json-об'єкти та генерує список змін залежностей.
|
|
49
|
+
collectTazeDiff — збирає різницю між версіями всього монорепо, порівнюючи `package.json` з його резервною копією у кожному воркспейсі.
|
|
50
|
+
runTazeCli — виконує команду `n-cursor taze diff` для виведення компактного JSON зі списком major-оновлень та лічилки minor/patch.
|
|
22
51
|
|
|
23
52
|
## Гарантії поведінки
|
|
24
53
|
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
- Minor та patch оновлення не включаються в результат.
|
|
30
|
-
- Результат завжди детермінований, тобто при однаковому вході скрипт завжди повертає однаковий результат.
|
|
31
|
-
- Скрипт не використовує кешування.
|
|
32
|
-
- Скрипт не кидає винятків.
|
|
33
|
-
- Скрипт перехоплює помилки та повертає `false` та `null`.
|
|
54
|
+
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
55
|
+
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
|
|
56
|
+
- За невдачі повертає значення помилки (`false`/`null`/`Err`) замість генерування винятку чи паніки.
|
|
57
|
+
- Не звертається до мережі.
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docgen:
|
|
3
|
-
source: npm/skills/doc-files/js/docgen-prompts.mjs
|
|
4
|
-
crc: c454d2a6
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# docgen-prompts
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
|
-
Промптовий шар local-only конвеєра файлових док: будує messages-набори для секційної генерації, критики й переписування, а секцію «Гарантії поведінки» формує детерміновано без LLM. Весь стиль документа (українська, поведінковість, заборона сигнатур) зашитий у спільний system-блок.
|
|
12
|
-
|
|
13
|
-
## Поведінка
|
|
14
|
-
|
|
15
|
-
1. Для кожної секції збирається мінімальний контекст: «Огляд» — лише людиночитний витяг фактів (без коду), «Поведінка» — єдина секція з повним кодом файлу у вікні, «Публічний API» — лише список експортів з їхніми описами. Анкори (URL, константи, маркери, приклади) додаються окремим блоком, коли вони є.
|
|
16
|
-
2. Факт-лист перекладається в негативні й позитивні твердження для моделі: свідомі пропуски шляхів, read-only, перехоплення помилок, явне «Кешування: НЕМАЄ — не згадуй кеш» — щоб відсікти типові галюцинації ще в промпті.
|
|
17
|
-
3. Критик отримує чорнетку секції і закритий список критеріїв дефектів (generic-фрази, пропущені анкори, граматика, підзаголовки, скопійовані сигнатури, вигадані факти); відповідь — список проблем або `NONE`. Переписувач отримує чорнетку разом зі списком проблем і повертає лише оновлений текст.
|
|
18
|
-
4. «Гарантії поведінки» складаються шаблоном з маркерів факт-листа (read-only, fail-safe, кешування, пропуски шляхів, відсутність мережі) — нуль запитів і нуль generic-фраз; за відсутності маркерів — твердження про детермінованість.
|
|
19
|
-
|
|
20
|
-
## Публічний API
|
|
21
|
-
|
|
22
|
-
- `sectionMessages` — секційні набори messages з мінімальним контекстом під кожну секцію.
|
|
23
|
-
- `criticMessages` / `refineMessages` — пара критика й переписувача для одного циклу уточнення секції.
|
|
24
|
-
- `guaranteesFromMarkers` — детермінований текст секції гарантій з маркерів.
|
|
25
|
-
- `oneShotMessages` — один запит на весь документ для нестандартних структур файлів.
|
|
26
|
-
- `STYLE` — спільний system-блок стилю.
|
|
27
|
-
|
|
28
|
-
## Гарантії поведінки
|
|
29
|
-
|
|
30
|
-
- Код файлу потрапляє лише у промпт секції «Поведінка» й у one-shot — решта секцій працюють на факт-листі.
|
|
31
|
-
- Формування промптів детерміноване: однакові факти й код → однакові messages.
|
|
32
|
-
- Не звертається до мережі й не виконує LLM-викликів — лише будує тексти.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docgen:
|
|
3
|
-
source: npm/skills/doc-files/js/docgen-scan.mjs
|
|
4
|
-
crc: b517ab25
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# docgen-scan
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
|
-
Сканер кодових файлів і детектор стану файлових док: які джерела підлягають документуванню, де лежить їхня дока, що застаріло, що degraded. Працює і як бібліотека для batch-генерації, і як CLI (`doc-files scan` / `doc-files check`) для хуків.
|
|
12
|
-
|
|
13
|
-
## Поведінка
|
|
14
|
-
|
|
15
|
-
1. Рекурсивний обхід від кореня збирає кодові файли (`js`/`mjs`/`ts`/`vue`/`py`), пропускаючи тести, оголошення типів, ignore-дерева і теки `docs/`; для кореня з system-wide docs-layout файлові доки на верхньому рівні не плануються.
|
|
16
|
-
2. Для кожного джерела обчислюється шлях доки (`<dir>/docs/<stem>.md`) і стан застарілості за контрольною сумою.
|
|
17
|
-
3. `check` працює в режимах: `--hook` — один файл зі stdin-payload редакторського хука; `--git` — змінені відносно HEAD джерела як Stop-гейт із порогом великого прогону (`--max`, дефолт `50` або `N_CURSOR_DOC_FILES_GATE_MAX`: більше застарілих — попередження без блоку); явні шляхи — точкова перевірка.
|
|
18
|
-
4. Застарілі доки → exit-код `2` зі списком і підказкою перегенерації; усе свіже або великий прогін — `0`.
|
|
19
|
-
5. `check --degraded` — інформаційний звіт (exit `0`): свіжі за сумою доки з оцінкою нижче порогу, з кодами проблем і підказкою про `gen --retry-degraded`. Degraded — видимий борг, не гейт.
|
|
20
|
-
|
|
21
|
-
## Гарантії поведінки
|
|
22
|
-
|
|
23
|
-
- Сканер read-only: жодних записів у дерево.
|
|
24
|
-
- Рішення «застаріла/свіжа» детерміноване і залежить лише від вмісту джерела й frontmatter доки.
|
|
25
|
-
- Stop-гейт ніколи не блокує масовий перший прогін понад поріг — захист від нескінченного блокування задач.
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
docgen:
|
|
3
|
-
source: npm/skills/doc-files/js/units-rs.mjs
|
|
4
|
-
crc: 11099381
|
|
5
|
-
score: 100
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# units-rs.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
|
-
Файл аналізує рядки для визначення структури та елементів модуля. Він ітерує по рядках для визначення глибини, обробляє рядкові літерали для визначення зміщення, змінює глибину при зустрічі відкриваючої чи закриваючої фігу, видаляє відкриті блоки зі стека, перевіряє наявність атрибутів експонування, визначає декларації на верхньому рівні чи в модулях, а також витягує тіло функції та збирає виклики інших юнітів у тілі функції.
|
|
13
|
-
|
|
14
|
-
## Поведінка
|
|
15
|
-
|
|
16
|
-
1. Скан файлу по рядках.
|
|
17
|
-
2. Ітерація по рядках для визначення глибини.
|
|
18
|
-
3. Обробка рядкових літералів для визначення зміщення.
|
|
19
|
-
4. Зміна глибини при зустрічі відкриваючої фігу.
|
|
20
|
-
5. Зміна глибини при зустрічі закриваючої фігу.
|
|
21
|
-
6. Видалення відкритих блоків з стека.
|
|
22
|
-
7. Перевірка наявності атрибутів експонування.
|
|
23
|
-
8. Визначення декларацій на верхньому рівні або в модулях.
|
|
24
|
-
9. Визначення публічних функцій, структур, перерахувань, трейтів, типів.
|
|
25
|
-
10. Витягування тіла функції через пошук закриваючої фігу.
|
|
26
|
-
11. Збір викликів інших юнітів у тілі функції.
|
|
27
|
-
|
|
28
|
-
## Публічний API
|
|
29
|
-
|
|
30
|
-
extractUnitsRs — Визначає top-level і impl-методи через підрахунок дужок по рядках. Обмеження: рядкові літерали з `{`/`}` всередині `{}` можуть дати хибну глибину.
|
|
31
|
-
|
|
32
|
-
## Гарантії поведінки
|
|
33
|
-
|
|
34
|
-
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
35
|
-
- Не звертається до мережі.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|