@nitra/cursor 12.7.0 → 12.8.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/.pi-template/extensions/n-cursor-adr/docs/index.md +2 -2
- package/CHANGELOG.md +15 -5
- package/bin/n-cursor.js +1 -1
- package/docs/index.md +3 -3
- package/docs/stryker.config.md +3 -3
- package/lib/docs/index.md +5 -5
- package/lib/docs/llm.md +4 -4
- package/package.json +2 -2
- package/rules/abie/docs/fix.md +8 -8
- package/rules/abie/docs/index.md +3 -3
- package/rules/abie/js/docs/index.md +6 -6
- package/rules/abie/lib/docs/index.md +9 -9
- package/rules/bun/docs/fix.md +5 -5
- package/rules/bun/docs/index.md +3 -3
- package/rules/bun/js/docs/index.md +2 -2
- package/rules/capacitor/docs/fix.md +10 -10
- package/rules/capacitor/docs/index.md +3 -3
- package/rules/capacitor/js/docs/index.md +2 -2
- package/rules/changelog/docs/fix.md +11 -11
- package/rules/changelog/docs/index.md +3 -3
- package/rules/changelog/js/docs/consistency.md +12 -12
- package/rules/changelog/js/docs/index.md +2 -2
- package/rules/changelog/lib/docs/index.md +2 -2
- package/rules/ci4/docs/fix.md +4 -4
- package/rules/ci4/docs/index.md +3 -3
- package/rules/ci4/js/docs/index.md +2 -2
- package/rules/doc-files/docs/index.md +3 -3
- package/rules/doc-files/js/docgen-crc.mjs +2 -8
- package/rules/doc-files/js/docgen-extract.mjs +5 -3
- package/rules/doc-files/js/docgen-files-batch.mjs +18 -3
- package/rules/doc-files/js/docgen-gen.mjs +11 -3
- package/rules/doc-files/js/docgen-judge-measure.mjs +67 -18
- package/rules/doc-files/js/docgen-judge.mjs +8 -1
- package/rules/doc-files/js/docgen-scan.mjs +10 -2
- package/rules/doc-files/js/docs/docgen-crc.md +25 -14
- package/rules/doc-files/js/docs/docgen-extract.md +15 -13
- package/rules/doc-files/js/docs/docgen-files-batch.md +11 -11
- package/rules/doc-files/js/docs/docgen-gen.md +15 -26
- package/rules/doc-files/js/docs/docgen-judge-measure.md +14 -12
- package/rules/doc-files/js/docs/index.md +16 -16
- package/rules/docker/docs/fix.md +6 -6
- package/rules/docker/docs/index.md +3 -3
- package/rules/docker/js/docs/index.md +2 -2
- package/rules/docker/lib/docs/docker-hadolint.md +2 -2
- package/rules/docker/lib/docs/index.md +5 -5
- package/rules/efes/docs/fix.md +8 -8
- package/rules/efes/docs/index.md +3 -3
- package/rules/feedback/docs/fix.md +5 -5
- package/rules/feedback/docs/index.md +3 -3
- package/rules/ga/docs/fix.md +5 -5
- package/rules/ga/docs/index.md +3 -3
- package/rules/ga/js/docs/index.md +3 -3
- package/rules/graphql/docs/fix.md +8 -8
- package/rules/graphql/docs/index.md +3 -3
- package/rules/graphql/docs/main.md +8 -8
- package/rules/graphql/js/docs/index.md +2 -2
- package/rules/graphql/lib/docs/index.md +2 -2
- package/rules/hasura/docs/fix.md +11 -11
- package/rules/hasura/docs/index.md +3 -3
- package/rules/hasura/js/docs/index.md +2 -2
- package/rules/image-avif/docs/fix.md +3 -3
- package/rules/image-avif/docs/index.md +3 -3
- package/rules/image-avif/js/docs/avif_generation.md +6 -6
- package/rules/image-avif/js/docs/index.md +2 -2
- package/rules/image-compress/docs/fix.md +2 -2
- package/rules/image-compress/docs/index.md +3 -3
- package/rules/image-compress/js/docs/index.md +3 -3
- package/rules/js-bun-db/docs/fix.md +5 -5
- package/rules/js-bun-db/docs/index.md +3 -3
- package/rules/js-bun-db/js/docs/index.md +2 -2
- package/rules/js-bun-db/lib/docs/index.md +2 -2
- package/rules/js-bun-redis/docs/fix.md +6 -6
- package/rules/js-bun-redis/docs/index.md +3 -3
- package/rules/js-bun-redis/js/docs/index.md +2 -2
- package/rules/js-bun-redis/lib/docs/index.md +2 -2
- package/rules/js-lint/docs/fix.md +9 -9
- package/rules/js-lint/docs/index.md +3 -3
- package/rules/js-lint/js/docs/check.md +5 -5
- package/rules/js-lint/js/docs/index.md +4 -4
- package/rules/js-lint-ci/docs/fix.md +3 -3
- package/rules/js-lint-ci/docs/index.md +3 -3
- package/rules/js-lint-ci/js/docs/index.md +2 -2
- package/rules/js-mssql/docs/fix.md +5 -5
- package/rules/js-mssql/docs/index.md +3 -3
- package/rules/js-mssql/js/docs/index.md +2 -2
- package/rules/js-mssql/lib/docs/index.md +2 -2
- package/rules/js-run/docs/fix.md +8 -8
- package/rules/js-run/docs/index.md +3 -3
- package/rules/js-run/js/docs/index.md +2 -2
- package/rules/js-run/lib/docs/index.md +7 -7
- package/rules/k8s/docs/fix.md +4 -4
- package/rules/k8s/docs/index.md +3 -3
- package/rules/k8s/js/docs/index.md +3 -3
- package/rules/nginx-default-tpl/docs/fix.md +7 -7
- package/rules/nginx-default-tpl/docs/index.md +3 -3
- package/rules/nginx-default-tpl/js/docs/index.md +2 -2
- package/rules/nginx-default-tpl/js/docs/template.md +2 -2
- package/rules/npm-module/docs/fix.md +8 -8
- package/rules/npm-module/docs/index.md +3 -3
- package/rules/npm-module/js/docs/index.md +5 -5
- package/rules/npm-module/js/docs/rule_meta.md +6 -6
- package/rules/npm-module/js/header_doc_pointer.mjs +1 -3
- package/rules/php/docs/fix.md +6 -6
- package/rules/php/docs/index.md +3 -3
- package/rules/php/js/docs/index.md +3 -3
- package/rules/python/docs/fix.md +11 -11
- package/rules/python/docs/index.md +3 -3
- package/rules/python/js/docs/index.md +3 -3
- package/rules/python/main.mjs +2 -1
- package/rules/rego/docs/fix.md +5 -5
- package/rules/rego/docs/index.md +3 -3
- package/rules/rego/js/docs/index.md +3 -3
- package/rules/release/docs/index.md +5 -5
- package/rules/release/lib/docs/index.md +4 -4
- package/rules/rust/docs/fix.md +4 -4
- package/rules/rust/docs/index.md +3 -3
- package/rules/rust/js/docs/index.md +3 -3
- package/rules/rust/lib/docs/index.md +2 -2
- package/rules/rust/main.mjs +7 -1
- package/rules/security/docs/fix.md +6 -6
- package/rules/security/docs/index.md +3 -3
- package/rules/security/js/docs/index.md +4 -4
- package/rules/style-lint/docs/fix.md +3 -3
- package/rules/style-lint/docs/index.md +3 -3
- package/rules/style-lint/js/docs/index.md +3 -3
- package/rules/tauri/docs/fix.md +11 -11
- package/rules/tauri/docs/index.md +3 -3
- package/rules/tauri/js/docs/index.md +3 -3
- package/rules/test/docs/fix.md +5 -5
- package/rules/test/docs/index.md +3 -3
- package/rules/test/js/data/stryker_config/docs/index.md +4 -4
- package/rules/test/js/data/vitest_config/docs/index.md +2 -2
- package/rules/test/js/docs/index.md +7 -7
- package/rules/text/docs/fix.md +11 -11
- package/rules/text/docs/index.md +3 -3
- package/rules/text/js/cspell-fix.mjs +7 -2
- package/rules/text/js/docs/index.md +8 -8
- package/rules/text/js/docs/run-v8r.md +3 -3
- package/rules/text/main.mjs +3 -1
- package/rules/tool-surface/docs/index.md +3 -3
- package/rules/tool-surface/meta.json +6 -1
- package/rules/vue/docs/fix.md +6 -6
- package/rules/vue/docs/index.md +3 -3
- package/rules/vue/js/docs/index.md +2 -2
- package/rules/vue/lib/docs/index.md +2 -2
- package/rules/worktree/docs/fix.md +11 -11
- package/rules/worktree/docs/index.md +3 -3
- package/scripts/coverage-classify/docs/index.md +6 -6
- package/scripts/dispatcher/docs/index.md +2 -2
- package/scripts/docs/index.md +16 -16
- package/scripts/lib/docs/index.md +36 -36
- package/scripts/lib/docs/run-lint.md +3 -3
- package/scripts/lib/docs/run-standard-lint.md +7 -5
- package/scripts/lib/fix/analyze-escalation.mjs +4 -1
- package/scripts/lib/fix/docs/index.md +10 -10
- package/scripts/lib/fix/docs/run-conformance-check.md +4 -3
- package/scripts/lib/fix/docs/run-fix-check.md +3 -3
- package/scripts/lib/fix/orchestrator.mjs +26 -3
- package/scripts/lib/fix/t0.mjs +4 -1
- package/scripts/lib/run-lint.mjs +1 -3
- package/scripts/utils/docs/index.md +14 -14
- package/skills/doc-aggregate/js/docs/index.md +3 -3
- package/skills/doc-files/.changes/260612-0002.md +1 -0
- package/skills/doc-files/.changes/260612-0006.md +1 -0
- package/skills/doc-files/.changes/260612-0008.md +1 -0
- package/skills/doc-files/.changes/260612-0012.md +1 -0
- package/skills/doc-files/.changes/260612-0031.md +1 -0
- package/skills/doc-files/.changes/260612-0036.md +1 -0
- package/skills/doc-files/.changes/260612-0114.md +1 -0
- package/skills/start-check/js/docs/index.md +2 -2
- package/skills/taze/js/docs/index.md +2 -2
- package/types/bin/n-cursor.d.ts +1 -1
package/rules/test/docs/index.md
CHANGED
|
@@ -6,8 +6,8 @@ resource: npm/rules/test/js/data/stryker_config/
|
|
|
6
6
|
|
|
7
7
|
# npm/rules/test/js/data/stryker_config
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [stryker-vue-macros-ignorer.mjs](stryker-vue-macros-ignorer.md)
|
|
12
|
-
| [stryker.config.baseline.mjs](stryker.config.baseline.md)
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| ----------------------------------------------------------------- | --------- |
|
|
11
|
+
| [stryker-vue-macros-ignorer.mjs](stryker-vue-macros-ignorer.md) | JS Module |
|
|
12
|
+
| [stryker.config.baseline.mjs](stryker.config.baseline.md) | JS Module |
|
|
13
13
|
| [stryker.config.vue.baseline.mjs](stryker.config.vue.baseline.md) | JS Module |
|
|
@@ -6,6 +6,6 @@ resource: npm/rules/test/js/data/vitest_config/
|
|
|
6
6
|
|
|
7
7
|
# npm/rules/test/js/data/vitest_config
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| ------------------------------------------------------ | --------- |
|
|
11
11
|
| [vitest.config.baseline.js](vitest.config.baseline.md) | JS Module |
|
|
@@ -6,11 +6,11 @@ resource: npm/rules/test/js/
|
|
|
6
6
|
|
|
7
7
|
# npm/rules/test/js
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [cargo_mutants_config.mjs](cargo_mutants_config.md)
|
|
12
|
-
| [location.mjs](location.md)
|
|
13
|
-
| [no-process-chdir.mjs](no-process-chdir.md)
|
|
14
|
-
| [no-relative-fs-path.mjs](no-relative-fs-path.md)
|
|
15
|
-
| [stryker_config.mjs](stryker_config.md)
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| ----------------------------------------------------------- | --------- |
|
|
11
|
+
| [cargo_mutants_config.mjs](cargo_mutants_config.md) | JS Module |
|
|
12
|
+
| [location.mjs](location.md) | JS Module |
|
|
13
|
+
| [no-process-chdir.mjs](no-process-chdir.md) | JS Module |
|
|
14
|
+
| [no-relative-fs-path.mjs](no-relative-fs-path.md) | JS Module |
|
|
15
|
+
| [stryker_config.mjs](stryker_config.md) | JS Module |
|
|
16
16
|
| [vitest-config-pool-forks.mjs](vitest-config-pool-forks.md) | JS Module |
|
package/rules/text/docs/fix.md
CHANGED
|
@@ -12,18 +12,18 @@ docgen:
|
|
|
12
12
|
## Поведінка
|
|
13
13
|
|
|
14
14
|
1. Запуск правила.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
- Приймає контекст прогону.
|
|
16
|
+
- Виконує застосування JS-занепокоєних.
|
|
17
|
+
- Застосовує політику.
|
|
18
|
+
- Генерує посилання MDC.
|
|
19
|
+
- Повертає результат прогону.
|
|
20
20
|
2. Виконання у режимі CLI.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
- Виконується як автономний скрипт.
|
|
22
|
+
- Виконує повний еквівалент команди `npx @nitra/cursor fix <id>`.
|
|
23
|
+
- Виконує завантаження конфігурації.
|
|
24
|
+
- Виконує перевірку дозволених записів.
|
|
25
|
+
- Генерує зведену інформацію.
|
|
26
|
+
- Визначає код виходу процесу.
|
|
27
27
|
|
|
28
28
|
## Публічний API
|
|
29
29
|
|
package/rules/text/docs/index.md
CHANGED
|
@@ -143,12 +143,17 @@ export function runCspellText(cwd = process.cwd(), readOnly = false, llmFix = fa
|
|
|
143
143
|
const words = unknownWords(first.out)
|
|
144
144
|
const batch = words.slice(0, MAX_CLASSIFY_WORDS)
|
|
145
145
|
if (words.length > MAX_CLASSIFY_WORDS) {
|
|
146
|
-
process.stdout.write(
|
|
146
|
+
process.stdout.write(
|
|
147
|
+
`ℹ️ cspell: класифікація перших ${MAX_CLASSIFY_WORDS}/${words.length} слів (решта — наступний прогін)\n`
|
|
148
|
+
)
|
|
147
149
|
}
|
|
148
150
|
|
|
149
151
|
let text
|
|
150
152
|
try {
|
|
151
|
-
text = callLlm([{ role: 'user', content: classifyPrompt(batch) }], model, {
|
|
153
|
+
text = callLlm([{ role: 'user', content: classifyPrompt(batch) }], model, {
|
|
154
|
+
caller: 'cspell-classify',
|
|
155
|
+
maxTokens: 4000
|
|
156
|
+
})
|
|
152
157
|
} catch (error) {
|
|
153
158
|
process.stdout.write(`⚠️ cspell: omlx-класифікація впала (${error.message}) — без авто-словника\n`)
|
|
154
159
|
process.stdout.write(first.out)
|
|
@@ -6,12 +6,12 @@ resource: npm/rules/text/js/
|
|
|
6
6
|
|
|
7
7
|
# npm/rules/text/js
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [cspell-fix.mjs](cspell-fix.md)
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| ----------------------------------------------- | --------- |
|
|
11
|
+
| [cspell-fix.mjs](cspell-fix.md) | JS Module |
|
|
12
12
|
| [forbidden-prettier.mjs](forbidden-prettier.md) | JS Module |
|
|
13
|
-
| [formatting.mjs](formatting.md)
|
|
14
|
-
| [lint.mjs](lint.md)
|
|
15
|
-
| [run-dotenv-linter.mjs](run-dotenv-linter.md)
|
|
16
|
-
| [run-shellcheck.mjs](run-shellcheck.md)
|
|
17
|
-
| [run-v8r.mjs](run-v8r.md)
|
|
13
|
+
| [formatting.mjs](formatting.md) | JS Module |
|
|
14
|
+
| [lint.mjs](lint.md) | JS Module |
|
|
15
|
+
| [run-dotenv-linter.mjs](run-dotenv-linter.md) | JS Module |
|
|
16
|
+
| [run-shellcheck.mjs](run-shellcheck.md) | JS Module |
|
|
17
|
+
| [run-v8r.mjs](run-v8r.md) | JS Module |
|
|
@@ -20,9 +20,9 @@ runV8rWithGlobs — послідовно запускає перевірку к
|
|
|
20
20
|
|
|
21
21
|
## Публічний API
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
- DEFAULT_V8R_GLOBS — Містить стандартні шаблони для пошуку файлів, які обробляє v8r.
|
|
24
|
+
- V8R_CATALOG_PATH — Вказує на розташування файлу `v8r-catalog.json` у корені пакета.
|
|
25
|
+
- runV8rWithGlobs — Виконує послідовні запуски v8r для файлів, знайдених за шаблонами, повертаючи код завершення.
|
|
26
26
|
|
|
27
27
|
## Гарантії поведінки
|
|
28
28
|
|
package/rules/text/main.mjs
CHANGED
|
@@ -132,7 +132,9 @@ function runLintTextSteps(readOnly = false, llmFix = false) {
|
|
|
132
132
|
const dotenvCode = runDotenvLinter(process.cwd(), readOnly)
|
|
133
133
|
if (dotenvCode !== 0) return dotenvCode
|
|
134
134
|
|
|
135
|
-
const mdArgs = readOnly
|
|
135
|
+
const mdArgs = readOnly
|
|
136
|
+
? ['markdownlint-cli2', '**/*.md', '**/*.mdc']
|
|
137
|
+
: ['markdownlint-cli2', '--fix', '**/*.md', '**/*.mdc']
|
|
136
138
|
const markdownlintCode = runLintStep('markdownlint', 'bunx', mdArgs)
|
|
137
139
|
if (markdownlintCode !== 0) return markdownlintCode
|
|
138
140
|
|
|
@@ -6,7 +6,7 @@ resource: npm/rules/tool-surface/
|
|
|
6
6
|
|
|
7
7
|
# npm/rules/tool-surface
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [fix.mjs](fix.md)
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| ------------------- | --------- |
|
|
11
|
+
| [fix.mjs](fix.md) | JS Module |
|
|
12
12
|
| [main.mjs](main.md) | JS Module |
|
|
@@ -1 +1,6 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"auto": {
|
|
3
|
+
"predicate": "depInAnyPackageJson",
|
|
4
|
+
"arg": ["vue", "react", "svelte", "@angular/core", "preact", "solid-js", "@tauri-apps/api", "@capacitor/core"]
|
|
5
|
+
}
|
|
6
|
+
}
|
package/rules/vue/docs/fix.md
CHANGED
|
@@ -12,13 +12,13 @@ docgen:
|
|
|
12
12
|
## Поведінка
|
|
13
13
|
|
|
14
14
|
1. Запуск правила.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
- Приймає контекст прогону.
|
|
16
|
+
- Використовує runStandardRule для застосування політики.
|
|
17
|
+
- Повертає результат прогону.
|
|
18
18
|
2. Запуск у режимі CLI.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
- Викликається через `import + run`.
|
|
20
|
+
- Виконує повний еквівалент `npx @nitra/cursor fix <id>`.
|
|
21
|
+
- Визначає вихідний код процесу на основі результату.
|
|
22
22
|
|
|
23
23
|
## Публічний API
|
|
24
24
|
|
package/rules/vue/docs/index.md
CHANGED
|
@@ -14,19 +14,19 @@ docgen:
|
|
|
14
14
|
## Поведінка
|
|
15
15
|
|
|
16
16
|
1. Запуск правила.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
- Приймає контекст прогону.
|
|
18
|
+
- Виконує застосування JS-занепокоєних.
|
|
19
|
+
- Застосовує політику.
|
|
20
|
+
- Генерує посилання MDC.
|
|
21
|
+
- Повертає результат прогону.
|
|
22
22
|
|
|
23
23
|
2. Запуск у режимі CLI.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
- Виконується при запуску через CLI.
|
|
25
|
+
- Виконує повний еквівалент команди `npx @nitra/cursor fix <id>`.
|
|
26
|
+
- Виконує завантаження конфігурації.
|
|
27
|
+
- Виконує перевірку дозволених елементів.
|
|
28
|
+
- Генерує зведену інформацію.
|
|
29
|
+
- Виконує вихід з процесу залежно від результату.
|
|
30
30
|
|
|
31
31
|
## Публічний API
|
|
32
32
|
|
|
@@ -6,9 +6,9 @@ docgen:
|
|
|
6
6
|
crc: 06249ac8
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [apply.mjs](apply.md)
|
|
12
|
-
| [cache.mjs](cache.md)
|
|
13
|
-
| [prompt.mjs](prompt.md)
|
|
14
|
-
| [verdict-schema.mjs](verdict-schema.md) | JS Module | Файл надає схему VerdictSchema для валідації вердиктів LLM-класифікатора.
|
|
9
|
+
| Файл | Тип | Опис |
|
|
10
|
+
| --------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------ |
|
|
11
|
+
| [apply.mjs](apply.md) | JS Module | Модуль apply.mjs із пакета coverage-classify відповідає за \*\*застосування вердиктів класифікатора му |
|
|
12
|
+
| [cache.mjs](cache.md) | JS Module | Модуль cache.mjs реалізує **file-hash-keyed cache** для вердиктів класифікатора покриття мутаційного |
|
|
13
|
+
| [prompt.mjs](prompt.md) | JS Module | Модуль prompt.mjs — це prompt-builder для скрипта coverage-classify, що класифікує вцілілих мутантів |
|
|
14
|
+
| [verdict-schema.mjs](verdict-schema.md) | JS Module | Файл надає схему VerdictSchema для валідації вердиктів LLM-класифікатора. |
|
package/scripts/docs/index.md
CHANGED
|
@@ -6,20 +6,20 @@ resource: npm/scripts/
|
|
|
6
6
|
|
|
7
7
|
# npm/scripts
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [auto-rules.mjs](auto-rules.md)
|
|
12
|
-
| [auto-skills.mjs](auto-skills.md)
|
|
13
|
-
| [build-agents-commands.mjs](build-agents-commands.md)
|
|
14
|
-
| [cli-entry.mjs](cli-entry.md)
|
|
15
|
-
| [coverage-fix-extract.mjs](coverage-fix-extract.md)
|
|
16
|
-
| [coverage-fix.mjs](coverage-fix.md)
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| ----------------------------------------------------------------------------------- | --------- |
|
|
11
|
+
| [auto-rules.mjs](auto-rules.md) | JS Module |
|
|
12
|
+
| [auto-skills.mjs](auto-skills.md) | JS Module |
|
|
13
|
+
| [build-agents-commands.mjs](build-agents-commands.md) | JS Module |
|
|
14
|
+
| [cli-entry.mjs](cli-entry.md) | JS Module |
|
|
15
|
+
| [coverage-fix-extract.mjs](coverage-fix-extract.md) | JS Module |
|
|
16
|
+
| [coverage-fix.mjs](coverage-fix.md) | JS Module |
|
|
17
17
|
| [ensure-nitra-cursor-dev-dependencies.mjs](ensure-nitra-cursor-dev-dependencies.md) | JS Module |
|
|
18
|
-
| [post-tool-use-check.mjs](post-tool-use-check.md)
|
|
19
|
-
| [post-tool-use-fix.mjs](post-tool-use-fix.md)
|
|
20
|
-
| [rename-yaml-extensions.mjs](rename-yaml-extensions.md)
|
|
21
|
-
| [skills-cli.mjs](skills-cli.md)
|
|
22
|
-
| [sync-claude-config.mjs](sync-claude-config.md)
|
|
23
|
-
| [sync-setup-bun-deps-action.mjs](sync-setup-bun-deps-action.md)
|
|
24
|
-
| [upgrade-nitra-cursor-and-install.mjs](upgrade-nitra-cursor-and-install.md)
|
|
25
|
-
| [worktree-cli.mjs](worktree-cli.md)
|
|
18
|
+
| [post-tool-use-check.mjs](post-tool-use-check.md) | JS Module |
|
|
19
|
+
| [post-tool-use-fix.mjs](post-tool-use-fix.md) | JS Module |
|
|
20
|
+
| [rename-yaml-extensions.mjs](rename-yaml-extensions.md) | JS Module |
|
|
21
|
+
| [skills-cli.mjs](skills-cli.md) | JS Module |
|
|
22
|
+
| [sync-claude-config.mjs](sync-claude-config.md) | JS Module |
|
|
23
|
+
| [sync-setup-bun-deps-action.mjs](sync-setup-bun-deps-action.md) | JS Module |
|
|
24
|
+
| [upgrade-nitra-cursor-and-install.mjs](upgrade-nitra-cursor-and-install.md) | JS Module |
|
|
25
|
+
| [worktree-cli.mjs](worktree-cli.md) | JS Module |
|
|
@@ -6,40 +6,40 @@ resource: npm/scripts/lib/
|
|
|
6
6
|
|
|
7
7
|
# npm/scripts/lib
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [assert-project-root.mjs](assert-project-root.md)
|
|
12
|
-
| [changed-files.mjs](changed-files.md)
|
|
13
|
-
| [check-mdc-template-refs.mjs](check-mdc-template-refs.md)
|
|
14
|
-
| [check-reporter.mjs](check-reporter.md)
|
|
15
|
-
| [diff-added-lines.mjs](diff-added-lines.md)
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| --------------------------------------------------------------------------- | --------- |
|
|
11
|
+
| [assert-project-root.mjs](assert-project-root.md) | JS Module |
|
|
12
|
+
| [changed-files.mjs](changed-files.md) | JS Module |
|
|
13
|
+
| [check-mdc-template-refs.mjs](check-mdc-template-refs.md) | JS Module |
|
|
14
|
+
| [check-reporter.mjs](check-reporter.md) | JS Module |
|
|
15
|
+
| [diff-added-lines.mjs](diff-added-lines.md) | JS Module |
|
|
16
16
|
| [discover-check-rules-from-cursor.mjs](discover-check-rules-from-cursor.md) | JS Module |
|
|
17
|
-
| [discover-checkable-rules.mjs](discover-checkable-rules.md)
|
|
18
|
-
| [ensure-tool.mjs](ensure-tool.md)
|
|
19
|
-
| [generated-markdown.mjs](generated-markdown.md)
|
|
20
|
-
| [gha-workflow.mjs](gha-workflow.md)
|
|
21
|
-
| [inline-template-links.mjs](inline-template-links.md)
|
|
22
|
-
| [list-project-rules-mdc.mjs](list-project-rules-mdc.md)
|
|
23
|
-
| [list-rule-ids.mjs](list-rule-ids.md)
|
|
24
|
-
| [load-cursor-config.mjs](load-cursor-config.md)
|
|
25
|
-
| [mirror-parity.mjs](mirror-parity.md)
|
|
26
|
-
| [read-n-cursor-config-lite.mjs](read-n-cursor-config-lite.md)
|
|
27
|
-
| [resolve-target-files.mjs](resolve-target-files.md)
|
|
28
|
-
| [root-notice.mjs](root-notice.md)
|
|
29
|
-
| [rule-meta-helpers.mjs](rule-meta-helpers.md)
|
|
30
|
-
| [rule-meta.mjs](rule-meta.md)
|
|
31
|
-
| [rule-predicates.mjs](rule-predicates.md)
|
|
32
|
-
| [run-conftest-batch.mjs](run-conftest-batch.md)
|
|
33
|
-
| [run-lint-step.mjs](run-lint-step.md)
|
|
34
|
-
| [run-lint.mjs](run-lint.md)
|
|
35
|
-
| [run-rule-cli.mjs](run-rule-cli.md)
|
|
36
|
-
| [run-rule.mjs](run-rule.md)
|
|
37
|
-
| [run-standard-lint.mjs](run-standard-lint.md)
|
|
38
|
-
| [run-standard-rule.mjs](run-standard-rule.md)
|
|
39
|
-
| [skill-meta.mjs](skill-meta.md)
|
|
40
|
-
| [sync-gitignore-worktree.mjs](sync-gitignore-worktree.md)
|
|
41
|
-
| [template.mjs](template.md)
|
|
42
|
-
| [timing-summary.mjs](timing-summary.md)
|
|
43
|
-
| [workspaces.mjs](workspaces.md)
|
|
44
|
-
| [worktree-notice.mjs](worktree-notice.md)
|
|
45
|
-
| [worktree.mjs](worktree.md)
|
|
17
|
+
| [discover-checkable-rules.mjs](discover-checkable-rules.md) | JS Module |
|
|
18
|
+
| [ensure-tool.mjs](ensure-tool.md) | JS Module |
|
|
19
|
+
| [generated-markdown.mjs](generated-markdown.md) | JS Module |
|
|
20
|
+
| [gha-workflow.mjs](gha-workflow.md) | JS Module |
|
|
21
|
+
| [inline-template-links.mjs](inline-template-links.md) | JS Module |
|
|
22
|
+
| [list-project-rules-mdc.mjs](list-project-rules-mdc.md) | JS Module |
|
|
23
|
+
| [list-rule-ids.mjs](list-rule-ids.md) | JS Module |
|
|
24
|
+
| [load-cursor-config.mjs](load-cursor-config.md) | JS Module |
|
|
25
|
+
| [mirror-parity.mjs](mirror-parity.md) | JS Module |
|
|
26
|
+
| [read-n-cursor-config-lite.mjs](read-n-cursor-config-lite.md) | JS Module |
|
|
27
|
+
| [resolve-target-files.mjs](resolve-target-files.md) | JS Module |
|
|
28
|
+
| [root-notice.mjs](root-notice.md) | JS Module |
|
|
29
|
+
| [rule-meta-helpers.mjs](rule-meta-helpers.md) | JS Module |
|
|
30
|
+
| [rule-meta.mjs](rule-meta.md) | JS Module |
|
|
31
|
+
| [rule-predicates.mjs](rule-predicates.md) | JS Module |
|
|
32
|
+
| [run-conftest-batch.mjs](run-conftest-batch.md) | JS Module |
|
|
33
|
+
| [run-lint-step.mjs](run-lint-step.md) | JS Module |
|
|
34
|
+
| [run-lint.mjs](run-lint.md) | JS Module |
|
|
35
|
+
| [run-rule-cli.mjs](run-rule-cli.md) | JS Module |
|
|
36
|
+
| [run-rule.mjs](run-rule.md) | JS Module |
|
|
37
|
+
| [run-standard-lint.mjs](run-standard-lint.md) | JS Module |
|
|
38
|
+
| [run-standard-rule.mjs](run-standard-rule.md) | JS Module |
|
|
39
|
+
| [skill-meta.mjs](skill-meta.md) | JS Module |
|
|
40
|
+
| [sync-gitignore-worktree.mjs](sync-gitignore-worktree.md) | JS Module |
|
|
41
|
+
| [template.mjs](template.md) | JS Module |
|
|
42
|
+
| [timing-summary.mjs](timing-summary.md) | JS Module |
|
|
43
|
+
| [workspaces.mjs](workspaces.md) | JS Module |
|
|
44
|
+
| [worktree-notice.mjs](worktree-notice.md) | JS Module |
|
|
45
|
+
| [worktree.mjs](worktree.md) | JS Module |
|
|
@@ -21,9 +21,9 @@ runLint запускає лінт-оркестрацію, виконуючи п
|
|
|
21
21
|
|
|
22
22
|
selectLintRules — обирає ідентифікатори правил для контексту, розташовуючи їх в алфавітному порядку.
|
|
23
23
|
runLint — ініціює процес лінтування.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
full — сканує весь репозиторій, порівнюючи його з початковим станом.
|
|
25
|
+
readOnly — лише виявляє проблеми без внесення змін.
|
|
26
|
+
rules — виконує повне сканування репозиторію, застосовуючи лише вказаний набір правил.
|
|
27
27
|
|
|
28
28
|
## Гарантії поведінки
|
|
29
29
|
|
|
@@ -11,11 +11,12 @@ docgen:
|
|
|
11
11
|
## Огляд
|
|
12
12
|
|
|
13
13
|
Спільна точка входу для канонічних `lint-<rule>` підкоманд `@nitra/cursor`. Файл серіалізує та дедуплікує запуски лінту через `withLock`. `ruleId` визначається зі шляху незалежно від глибини виклику (наприклад, `rules/<id>`). Це дозволяє уніфікувати крос-cutting концерни. Інтеграція з боку правила виглядає так:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
|
|
15
|
+
- import { runStandardLint } from '../../scripts/lib/run-standard-lint.mjs'
|
|
16
|
+
-
|
|
17
|
+
- async function runLintFooSteps { ... }
|
|
18
|
+
-
|
|
19
|
+
- export function lint { return runStandardLint }
|
|
19
20
|
|
|
20
21
|
## Поведінка
|
|
21
22
|
|
|
@@ -29,6 +30,7 @@ lint — є спільною точкою входу для канонічних
|
|
|
29
30
|
runStandardLint — виконує стандартний лінтинг у директорії, приймаючи контекст директорії та функцію, що описує кроки лінтингу.
|
|
30
31
|
|
|
31
32
|
Приклад інтеграції:
|
|
33
|
+
|
|
32
34
|
```js
|
|
33
35
|
import { runStandardLint } from '../../scripts/lib/run-standard-lint.mjs'
|
|
34
36
|
|
|
@@ -231,7 +231,10 @@ function buildSynthesisPrompt(partials) {
|
|
|
231
231
|
*/
|
|
232
232
|
function safeCall(call, prompt, model) {
|
|
233
233
|
try {
|
|
234
|
-
const text = call([{ role: 'user', content: prompt }], model, {
|
|
234
|
+
const text = call([{ role: 'user', content: prompt }], model, {
|
|
235
|
+
timeoutMs: ANALYZE_TIMEOUT_MS,
|
|
236
|
+
caller: 'fix-analyze'
|
|
237
|
+
})
|
|
235
238
|
return text || null
|
|
236
239
|
} catch {
|
|
237
240
|
return null
|
|
@@ -6,14 +6,14 @@ resource: npm/scripts/lib/fix/
|
|
|
6
6
|
|
|
7
7
|
# npm/scripts/lib/fix
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [analyze-escalation.mjs](analyze-escalation.md)
|
|
12
|
-
| [escalation-log.mjs](escalation-log.md)
|
|
13
|
-
| [llm-fix-apply.mjs](llm-fix-apply.md)
|
|
14
|
-
| [llm-lint-fix.mjs](llm-lint-fix.md)
|
|
15
|
-
| [llm-worker.mjs](llm-worker.md)
|
|
16
|
-
| [orchestrator.mjs](orchestrator.md)
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| ----------------------------------------------------- | --------- |
|
|
11
|
+
| [analyze-escalation.mjs](analyze-escalation.md) | JS Module |
|
|
12
|
+
| [escalation-log.mjs](escalation-log.md) | JS Module |
|
|
13
|
+
| [llm-fix-apply.mjs](llm-fix-apply.md) | JS Module |
|
|
14
|
+
| [llm-lint-fix.mjs](llm-lint-fix.md) | JS Module |
|
|
15
|
+
| [llm-worker.mjs](llm-worker.md) | JS Module |
|
|
16
|
+
| [orchestrator.mjs](orchestrator.md) | JS Module |
|
|
17
17
|
| [run-conformance-check.mjs](run-conformance-check.md) | JS Module |
|
|
18
|
-
| [run-fix-check.mjs](run-fix-check.md)
|
|
19
|
-
| [t0.mjs](t0.md)
|
|
18
|
+
| [run-fix-check.mjs](run-fix-check.md) | JS Module |
|
|
19
|
+
| [t0.mjs](t0.md) | JS Module |
|
|
@@ -21,9 +21,10 @@ runConformanceCheck виконує перевірку конформності
|
|
|
21
21
|
## Публічний API
|
|
22
22
|
|
|
23
23
|
resolveCheckRuleIds — Визначає, які правила будуть застосовані для перевірки, використовуючи `.n-cursor.json` як основне джерело:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
|
|
25
|
+
- Якщо вказані правила, вони фільтруються до активних у конфігурації.
|
|
26
|
+
- Якщо правила не вказані, беруться всі активні правила з конфігу.
|
|
27
|
+
- Якщо правила не вказані і конфіг відсутній, використовується список правил, що були збережені локально.
|
|
27
28
|
|
|
28
29
|
runConformanceCheck — Виконує перевірку відповідності для кожного окремого правила без внесення змін.
|
|
29
30
|
|
|
@@ -15,9 +15,9 @@ docgen:
|
|
|
15
15
|
1. Визначається наявність інструменту `conftest`.
|
|
16
16
|
2. Отримується список усіх доступних ідентифікаторів правил з каталогу правил.
|
|
17
17
|
3. Визначається список ідентифікаторів правил для прогону (`resolveCheckRuleIds`), де `.n-cursor.json` — єдине джерело правди:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
а. Якщо надано явний список правил — він валідується проти доступних і звужується до активних (вимкнене правило не вмикається навіть на явний запит).
|
|
19
|
+
б. Якщо явного списку нема й конфіг є — беруться активні правила конфіга (`available ∩ enabled`); `.cursor/rules/*.mdc` ігнорується (фікс дрейфу «enabled, але .mdc нема»).
|
|
20
|
+
в. Якщо конфіга нема (open-by-default debug) — fallback на скан `.cursor/rules/*.mdc`.
|
|
21
21
|
4. Якщо визначено ідентифікатори правил для прогону, для кожного ідентифікатора запускається окремий процес `bun` з файлом `fix.mjs` відповідного правила.
|
|
22
22
|
5. Захоплюється вивід кожного процесу.
|
|
23
23
|
6. Підраховується загальна кількість правил, що не пройшли перевірку.
|
|
@@ -45,7 +45,14 @@ const CLOUD_TRANSPORT_RE = /etimedout|timed out|pi error/i
|
|
|
45
45
|
export function buildLadder({ localMin, cloudMin, cloudAvg }) {
|
|
46
46
|
return [
|
|
47
47
|
{ tier: 'local-min', model: localMin, feedback: false, local: true, isAvg: false, timeoutMs: LOCAL_TIMEOUT_MS },
|
|
48
|
-
{
|
|
48
|
+
{
|
|
49
|
+
tier: 'local-min-retry',
|
|
50
|
+
model: localMin,
|
|
51
|
+
feedback: true,
|
|
52
|
+
local: true,
|
|
53
|
+
isAvg: false,
|
|
54
|
+
timeoutMs: LOCAL_TIMEOUT_MS
|
|
55
|
+
},
|
|
49
56
|
{ tier: 'cloud-min', model: cloudMin, feedback: true, local: false, isAvg: false, timeoutMs: CLOUD_TIMEOUT_MS },
|
|
50
57
|
{ tier: 'cloud-avg', model: cloudAvg, feedback: true, local: false, isAvg: true, timeoutMs: CLOUD_TIMEOUT_MS }
|
|
51
58
|
].filter(r => r.model)
|
|
@@ -103,7 +110,15 @@ export async function escalateRule(rule, cwd, deps) {
|
|
|
103
110
|
|
|
104
111
|
const common = { rung: idx, tier: rung.tier, model: rung.model, withFeedback: rung.feedback }
|
|
105
112
|
if (rung.isAvg && avgBudget - avgUsed <= 0) {
|
|
106
|
-
record({
|
|
113
|
+
record({
|
|
114
|
+
...common,
|
|
115
|
+
callOk: false,
|
|
116
|
+
callError: 'cloud-avg cap reached',
|
|
117
|
+
recheckOk: false,
|
|
118
|
+
remainingViolation: currentViolation,
|
|
119
|
+
diagnosis: null,
|
|
120
|
+
ms: 0
|
|
121
|
+
})
|
|
107
122
|
log(` ⏭️ ${rule.ruleId}: ${rung.tier} пропущено (avg-кеп вичерпано)`)
|
|
108
123
|
continue
|
|
109
124
|
}
|
|
@@ -120,7 +135,15 @@ export async function escalateRule(rule, cwd, deps) {
|
|
|
120
135
|
const recheck = await check([rule.ruleId], cwd)
|
|
121
136
|
const recheckOk = recheck.rules.every(r => r.ok)
|
|
122
137
|
const remaining = recheckOk ? '' : (recheck.rules.find(r => !r.ok)?.output ?? '')
|
|
123
|
-
record({
|
|
138
|
+
record({
|
|
139
|
+
...common,
|
|
140
|
+
callOk: res.ok,
|
|
141
|
+
callError: res.error ?? null,
|
|
142
|
+
recheckOk,
|
|
143
|
+
remainingViolation: remaining,
|
|
144
|
+
diagnosis: res.diagnosis ?? null,
|
|
145
|
+
ms: clock() - startedAt
|
|
146
|
+
})
|
|
124
147
|
|
|
125
148
|
if (recheckOk) {
|
|
126
149
|
log(` ✅ ${rung.tier} (${rung.model || 'pi'}): ${rule.ruleId}`)
|
package/scripts/lib/fix/t0.mjs
CHANGED
|
@@ -210,7 +210,10 @@ export async function runT0AutoCli(args, cwd) {
|
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
// 4. Check-gate: перевірити лише ті правила, що ми чіпали
|
|
213
|
-
const recheckJson = await runConformanceCheck(
|
|
213
|
+
const recheckJson = await runConformanceCheck(
|
|
214
|
+
applied.map(a => a.ruleId),
|
|
215
|
+
cwd
|
|
216
|
+
)
|
|
214
217
|
const stillFailed = recheckJson.rules.filter(r => !r.ok)
|
|
215
218
|
|
|
216
219
|
if (verbose) {
|