@nitra/cursor 12.6.1 → 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/.claude-template/settings.template.json +1 -1
- package/.pi-template/extensions/n-cursor-adr/docs/index.md +2 -2
- package/CHANGELOG.md +25 -5
- package/bin/docs/n-cursor.md +4 -20
- package/bin/n-cursor.js +8 -54
- package/docs/index.md +3 -3
- package/docs/stryker.config.md +20 -28
- 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 +4 -3
- package/rules/abie/docs/main.md +29 -0
- package/rules/abie/js/docs/index.md +6 -6
- package/rules/abie/lib/docs/index.md +9 -9
- package/rules/abie/{fix.mjs → main.mjs} +5 -3
- package/rules/adr/docs/index.md +1 -0
- package/rules/adr/docs/main.md +29 -0
- package/rules/adr/{fix.mjs → main.mjs} +5 -3
- package/rules/bun/docs/fix.md +5 -5
- package/rules/bun/docs/index.md +4 -3
- package/rules/bun/docs/main.md +30 -0
- package/rules/bun/js/docs/index.md +2 -2
- package/rules/bun/js/docs/layout.md +11 -36
- package/rules/bun/{fix.mjs → main.mjs} +5 -3
- package/rules/capacitor/docs/fix.md +10 -10
- package/rules/capacitor/docs/index.md +4 -3
- package/rules/capacitor/docs/main.md +29 -0
- package/rules/capacitor/js/docs/index.md +2 -2
- package/rules/capacitor/{fix.mjs → main.mjs} +5 -3
- package/rules/changelog/docs/fix.md +11 -11
- package/rules/changelog/docs/index.md +4 -3
- package/rules/changelog/docs/main.md +27 -0
- 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/changelog/main.mjs +20 -0
- package/rules/ci4/docs/fix.md +4 -4
- package/rules/ci4/docs/index.md +4 -3
- package/rules/ci4/docs/main.md +30 -0
- package/rules/ci4/js/docs/index.md +2 -2
- package/rules/ci4/main.mjs +20 -0
- package/rules/doc-files/docs/index.md +4 -3
- package/rules/doc-files/docs/main.md +31 -0
- 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 +63 -4
- 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 +99 -11
- 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 +15 -15
- 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/docgen-scan.md +34 -34
- package/rules/doc-files/js/docs/index.md +16 -15
- package/rules/doc-files/js/docs/run-lint.md +27 -0
- package/rules/doc-files/{lint/lint.mjs → js/run-lint.mjs} +23 -9
- package/rules/doc-files/{js/lint.mjs → main.mjs} +60 -10
- package/rules/docker/docs/fix.md +6 -6
- package/rules/docker/docs/index.md +4 -3
- package/rules/docker/docs/main.md +28 -0
- package/rules/docker/js/docs/index.md +2 -2
- package/rules/docker/js/docs/lint.md +26 -54
- package/rules/docker/js/lint.mjs +11 -0
- package/rules/docker/lib/docker-hadolint.mjs +1 -1
- package/rules/docker/lib/docs/docker-hadolint.md +16 -173
- package/rules/docker/lib/docs/index.md +5 -5
- package/rules/docker/main.mjs +20 -0
- package/rules/efes/docs/fix.md +8 -8
- package/rules/efes/docs/index.md +4 -3
- package/rules/efes/docs/main.md +29 -0
- package/rules/efes/main.mjs +20 -0
- package/rules/feedback/docs/fix.md +5 -5
- package/rules/feedback/docs/index.md +4 -3
- package/rules/feedback/docs/main.md +30 -0
- package/rules/feedback/main.mjs +20 -0
- package/rules/ga/docs/fix.md +5 -5
- package/rules/ga/docs/index.md +4 -3
- package/rules/ga/docs/main.md +29 -0
- package/rules/ga/js/docs/index.md +3 -3
- package/rules/ga/{lint/lint.mjs → main.mjs} +36 -10
- package/rules/graphql/docs/fix.md +8 -8
- package/rules/graphql/docs/index.md +4 -3
- package/rules/graphql/docs/main.md +36 -0
- package/rules/graphql/js/docs/index.md +2 -2
- package/rules/graphql/lib/docs/index.md +2 -2
- package/rules/graphql/main.mjs +20 -0
- package/rules/hasura/docs/fix.md +11 -11
- package/rules/hasura/docs/index.md +4 -3
- package/rules/hasura/docs/main.md +30 -0
- package/rules/hasura/js/docs/index.md +2 -2
- package/rules/hasura/main.mjs +20 -0
- package/rules/image-avif/docs/fix.md +3 -3
- package/rules/image-avif/docs/index.md +4 -3
- package/rules/image-avif/docs/main.md +30 -0
- package/rules/image-avif/js/docs/avif_generation.md +20 -233
- package/rules/image-avif/js/docs/index.md +2 -2
- package/rules/image-avif/main.mjs +20 -0
- package/rules/image-compress/docs/fix.md +2 -2
- package/rules/image-compress/docs/index.md +4 -3
- package/rules/image-compress/docs/main.md +29 -0
- package/rules/image-compress/js/docs/index.md +3 -3
- package/rules/image-compress/js/docs/package_setup.md +12 -11
- package/rules/image-compress/{js/lint.mjs → main.mjs} +21 -5
- package/rules/js-bun-db/docs/fix.md +5 -5
- package/rules/js-bun-db/docs/index.md +4 -3
- package/rules/js-bun-db/docs/main.md +30 -0
- 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-db/main.mjs +20 -0
- package/rules/js-bun-redis/docs/fix.md +6 -6
- package/rules/js-bun-redis/docs/index.md +4 -3
- package/rules/js-bun-redis/docs/main.md +29 -0
- 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-bun-redis/main.mjs +20 -0
- package/rules/js-lint/docs/fix.md +9 -9
- package/rules/js-lint/docs/index.md +4 -3
- package/rules/js-lint/docs/main.md +29 -0
- package/rules/js-lint/js/check.mjs +268 -0
- package/rules/js-lint/js/docs/check.md +39 -0
- package/rules/js-lint/js/docs/index.md +4 -4
- package/rules/js-lint/js/docs/tooling.md +12 -32
- package/rules/js-lint/js/tooling.mjs +1 -265
- package/rules/js-lint/{js/lint.mjs → main.mjs} +19 -2
- package/rules/js-lint-ci/docs/fix.md +3 -3
- package/rules/js-lint-ci/docs/index.md +4 -3
- package/rules/js-lint-ci/docs/main.md +27 -0
- package/rules/js-lint-ci/js/docs/index.md +2 -2
- package/rules/js-lint-ci/main.mjs +33 -0
- package/rules/js-mssql/docs/fix.md +5 -5
- package/rules/js-mssql/docs/index.md +4 -3
- package/rules/js-mssql/docs/main.md +30 -0
- package/rules/js-mssql/js/docs/index.md +2 -2
- package/rules/js-mssql/lib/docs/index.md +2 -2
- package/rules/js-mssql/main.mjs +20 -0
- package/rules/js-run/docs/fix.md +8 -8
- package/rules/js-run/docs/index.md +4 -3
- package/rules/js-run/docs/main.md +30 -0
- package/rules/js-run/js/docs/index.md +2 -2
- package/rules/js-run/lib/docs/index.md +7 -7
- package/rules/js-run/main.mjs +20 -0
- package/rules/k8s/docs/fix.md +4 -4
- package/rules/k8s/docs/index.md +4 -3
- package/rules/k8s/docs/main.md +40 -0
- package/rules/k8s/js/docs/index.md +12 -0
- package/rules/k8s/{lint/lint.mjs → main.mjs} +32 -10
- package/rules/nginx-default-tpl/docs/fix.md +7 -7
- package/rules/nginx-default-tpl/docs/index.md +4 -3
- package/rules/nginx-default-tpl/docs/main.md +30 -0
- package/rules/nginx-default-tpl/js/docs/index.md +2 -2
- package/rules/nginx-default-tpl/js/docs/template.md +2 -2
- package/rules/nginx-default-tpl/main.mjs +20 -0
- package/rules/npm-module/docs/fix.md +8 -8
- package/rules/npm-module/docs/index.md +4 -3
- package/rules/npm-module/docs/main.md +29 -0
- package/rules/npm-module/js/docs/index.md +5 -5
- package/rules/npm-module/js/docs/rule_meta.md +17 -16
- package/rules/npm-module/js/header_doc_pointer.mjs +1 -3
- package/rules/npm-module/js/rule_meta.mjs +13 -3
- package/rules/npm-module/main.mjs +20 -0
- package/rules/php/docs/fix.md +6 -6
- package/rules/php/docs/index.md +4 -3
- package/rules/php/docs/main.md +33 -0
- package/rules/php/js/docs/index.md +3 -3
- package/rules/php/js/docs/tooling.md +10 -10
- package/rules/php/{lint/lint.mjs → main.mjs} +32 -6
- package/rules/python/docs/fix.md +11 -11
- package/rules/python/docs/index.md +4 -3
- package/rules/python/docs/main.md +31 -0
- package/rules/python/js/docs/index.md +3 -3
- package/rules/python/js/docs/tooling.md +17 -17
- package/rules/python/{lint/lint.mjs → main.mjs} +31 -6
- package/rules/rego/docs/fix.md +5 -5
- package/rules/rego/docs/index.md +4 -3
- package/rules/rego/docs/main.md +37 -0
- package/rules/rego/js/docs/index.md +3 -3
- package/rules/rego/{lint/lint.mjs → main.mjs} +27 -5
- package/rules/release/docs/index.md +5 -4
- package/rules/release/docs/main.md +29 -0
- package/rules/release/docs/release.md +0 -3
- package/rules/release/lib/docs/index.md +4 -4
- package/rules/release/release.mdc +10 -0
- package/rules/rust/docs/fix.md +4 -4
- package/rules/rust/docs/index.md +4 -3
- package/rules/rust/docs/main.md +27 -0
- package/rules/rust/js/docs/index.md +3 -3
- package/rules/rust/lib/docs/index.md +2 -2
- package/rules/rust/{js/lint.mjs → main.mjs} +27 -4
- package/rules/security/docs/fix.md +6 -6
- package/rules/security/docs/index.md +4 -3
- package/rules/security/docs/main.md +28 -0
- package/rules/security/js/docs/index.md +4 -4
- package/rules/security/main.mjs +45 -0
- package/rules/style-lint/docs/fix.md +3 -3
- package/rules/style-lint/docs/index.md +4 -3
- package/rules/style-lint/docs/main.md +29 -0
- package/rules/style-lint/js/docs/index.md +3 -3
- package/rules/style-lint/{js/lint.mjs → main.mjs} +19 -1
- package/rules/tauri/docs/fix.md +11 -11
- package/rules/tauri/docs/index.md +4 -3
- package/rules/tauri/docs/main.md +29 -0
- package/rules/tauri/js/docs/index.md +3 -3
- package/rules/tauri/main.mjs +20 -0
- package/rules/test/docs/fix.md +5 -5
- package/rules/test/docs/index.md +4 -3
- package/rules/test/docs/main.md +30 -0
- 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/test/main.mjs +20 -0
- package/rules/text/docs/fix.md +11 -11
- package/rules/text/docs/index.md +4 -3
- package/rules/text/docs/main.md +29 -0
- package/rules/text/{lint → js}/cspell-fix.mjs +7 -2
- package/rules/text/js/docs/cspell-fix.md +30 -0
- package/rules/text/js/docs/formatting.md +12 -45
- package/rules/text/js/docs/index.md +8 -4
- package/rules/text/js/docs/run-dotenv-linter.md +31 -0
- package/rules/text/js/docs/run-shellcheck.md +28 -0
- package/rules/text/js/docs/run-v8r.md +29 -0
- package/rules/text/{lint/lint.mjs → main.mjs} +41 -10
- package/rules/tool-surface/docs/index.md +4 -3
- package/rules/tool-surface/docs/main.md +29 -0
- package/rules/tool-surface/main.mjs +20 -0
- package/rules/tool-surface/meta.json +6 -1
- package/rules/vue/docs/fix.md +6 -6
- package/rules/vue/docs/index.md +4 -3
- package/rules/vue/docs/main.md +29 -0
- package/rules/vue/js/docs/index.md +2 -2
- package/rules/vue/lib/docs/index.md +2 -2
- package/rules/vue/main.mjs +20 -0
- package/rules/worktree/docs/fix.md +11 -11
- package/rules/worktree/docs/index.md +4 -3
- package/rules/worktree/docs/main.md +28 -0
- package/rules/worktree/main.mjs +20 -0
- package/scripts/coverage-classify/docs/index.md +6 -6
- package/scripts/dispatcher/docs/index.md +2 -2
- package/scripts/docs/index.md +16 -15
- package/scripts/docs/post-tool-use-check.md +29 -0
- package/scripts/docs/sync-claude-config.md +64 -92
- package/scripts/lib/adr/docs/normalize-cli.md +0 -3
- package/scripts/lib/adr/docs/normalize-pipeline.md +0 -3
- package/scripts/lib/docs/gha-workflow.md +25 -317
- package/scripts/lib/docs/index.md +36 -35
- package/scripts/lib/docs/list-project-rules-mdc.md +5 -4
- package/scripts/lib/docs/list-rule-ids.md +15 -148
- package/scripts/lib/docs/read-n-cursor-config-lite.md +12 -16
- package/scripts/lib/docs/run-lint-step.md +13 -13
- package/scripts/lib/docs/run-lint.md +30 -0
- package/scripts/lib/docs/run-rule-cli.md +14 -10
- package/scripts/lib/docs/run-standard-lint.md +29 -10
- package/scripts/lib/docs/run-standard-rule.md +12 -11
- package/scripts/lib/docs/timing-summary.md +11 -12
- package/scripts/lib/docs/worktree-notice.md +0 -3
- package/scripts/lib/fix/analyze-escalation.mjs +4 -1
- package/scripts/lib/fix/docs/index.md +11 -10
- package/scripts/lib/fix/docs/orchestrator.md +23 -18
- package/scripts/lib/fix/docs/run-conformance-check.md +33 -0
- package/scripts/lib/fix/docs/run-fix-check.md +3 -3
- package/scripts/lib/fix/docs/t0.md +10 -9
- package/scripts/lib/fix/orchestrator.mjs +31 -8
- package/scripts/lib/fix/{run-fix-check.mjs → run-conformance-check.mjs} +13 -13
- package/scripts/lib/fix/t0.mjs +6 -3
- package/scripts/lib/list-project-rules-mdc.mjs +1 -1
- package/scripts/lib/list-rule-ids.mjs +12 -3
- package/scripts/lib/read-n-cursor-config-lite.mjs +2 -2
- package/{rules/lint/js/orchestrate.mjs → scripts/lib/run-lint.mjs} +42 -22
- package/scripts/lib/run-rule-cli.mjs +4 -4
- package/scripts/lib/run-standard-lint.mjs +19 -6
- package/scripts/lib/run-standard-rule.mjs +4 -4
- package/scripts/lib/timing-summary.mjs +1 -1
- package/scripts/{post-tool-use-fix.mjs → post-tool-use-check.mjs} +9 -9
- package/scripts/sync-claude-config.mjs +2 -2
- 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/changelog/fix.mjs +0 -18
- package/rules/ci4/fix.mjs +0 -18
- package/rules/doc-files/fix.mjs +0 -19
- package/rules/doc-files/js/docs/lint.md +0 -34
- package/rules/doc-files/lint/docs/index.md +0 -11
- package/rules/doc-files/lint/docs/lint.md +0 -35
- package/rules/docker/fix.mjs +0 -18
- package/rules/docker/lint/docs/index.md +0 -11
- package/rules/docker/lint/docs/lint.md +0 -200
- package/rules/docker/lint/lint.mjs +0 -95
- package/rules/efes/fix.mjs +0 -18
- package/rules/feedback/fix.mjs +0 -18
- package/rules/ga/fix.mjs +0 -18
- package/rules/ga/js/docs/lint.md +0 -20
- package/rules/ga/js/lint.mjs +0 -12
- package/rules/ga/lint/docs/index.md +0 -11
- package/rules/ga/lint/docs/lint.md +0 -31
- package/rules/graphql/fix.mjs +0 -18
- package/rules/hasura/fix.mjs +0 -18
- package/rules/image-avif/fix.mjs +0 -18
- package/rules/image-compress/fix.mjs +0 -18
- package/rules/image-compress/js/docs/lint.md +0 -24
- package/rules/js-bun-db/fix.mjs +0 -18
- package/rules/js-bun-redis/fix.mjs +0 -18
- package/rules/js-lint/fix.mjs +0 -18
- package/rules/js-lint/js/docs/lint.md +0 -32
- package/rules/js-lint-ci/fix.mjs +0 -18
- package/rules/js-lint-ci/js/docs/lint.md +0 -22
- package/rules/js-lint-ci/js/lint.mjs +0 -15
- package/rules/js-mssql/fix.mjs +0 -18
- package/rules/js-run/fix.mjs +0 -18
- package/rules/k8s/fix.mjs +0 -18
- package/rules/k8s/js/lint.mjs +0 -14
- package/rules/k8s/lint/docs/index.md +0 -11
- package/rules/k8s/lint/docs/lint.md +0 -413
- package/rules/lint/docs/fix.md +0 -25
- package/rules/lint/docs/index.md +0 -11
- package/rules/lint/fix.mjs +0 -18
- package/rules/lint/js/docs/index.md +0 -11
- package/rules/lint/js/docs/orchestrate.md +0 -31
- package/rules/lint/meta.json +0 -1
- package/rules/nginx-default-tpl/fix.mjs +0 -18
- package/rules/npm-module/fix.mjs +0 -18
- package/rules/php/fix.mjs +0 -18
- package/rules/php/js/docs/lint.md +0 -20
- package/rules/php/js/lint.mjs +0 -15
- package/rules/php/lint/docs/index.md +0 -11
- package/rules/php/lint/docs/lint.md +0 -219
- package/rules/python/fix.mjs +0 -18
- package/rules/python/js/docs/lint.md +0 -21
- package/rules/python/js/lint.mjs +0 -14
- package/rules/python/lint/docs/index.md +0 -11
- package/rules/python/lint/docs/lint.md +0 -29
- package/rules/rego/fix.mjs +0 -18
- package/rules/rego/js/docs/lint.md +0 -21
- package/rules/rego/js/lint.mjs +0 -12
- package/rules/rego/lint/docs/index.md +0 -11
- package/rules/rego/lint/docs/lint.md +0 -208
- package/rules/rust/fix.mjs +0 -18
- package/rules/rust/js/docs/lint.md +0 -21
- package/rules/security/fix.mjs +0 -18
- package/rules/security/js/docs/lint.md +0 -175
- package/rules/security/js/lint.mjs +0 -26
- package/rules/style-lint/fix.mjs +0 -18
- package/rules/style-lint/js/docs/lint.md +0 -31
- package/rules/tauri/fix.mjs +0 -18
- package/rules/test/fix.mjs +0 -18
- package/rules/text/fix.mjs +0 -18
- package/rules/text/js/docs/lint.md +0 -23
- package/rules/text/js/lint.mjs +0 -15
- package/rules/text/lint/docs/cspell-fix.md +0 -32
- package/rules/text/lint/docs/index.md +0 -15
- package/rules/text/lint/docs/lint.md +0 -36
- package/rules/text/lint/docs/run-dotenv-linter.md +0 -161
- package/rules/text/lint/docs/run-shellcheck.md +0 -216
- package/rules/text/lint/docs/run-v8r.md +0 -201
- package/rules/tool-surface/fix.mjs +0 -18
- package/rules/vue/fix.mjs +0 -18
- package/rules/worktree/fix.mjs +0 -18
- /package/rules/release/{fix.mjs → main.mjs} +0 -0
- /package/rules/text/{lint → js}/run-dotenv-linter.mjs +0 -0
- /package/rules/text/{lint → js}/run-shellcheck.mjs +0 -0
- /package/rules/text/{lint → js}/run-v8r.mjs +0 -0
|
@@ -17,8 +17,8 @@ docgen:
|
|
|
17
17
|
4. Запис JSONL файлу. Запис серіалізованого тексту у тимчасову директорію.
|
|
18
18
|
5. Формування вхідного навантаження. Створення JSON об'єкта для передачі у башку.
|
|
19
19
|
6. Передача виконання скриптів. Паралельний запуск двох окремих скриптів.
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
а. Виконання хука capture.
|
|
21
|
+
б. Виконання хука normalize.
|
|
22
22
|
7. Обробка результатів. Очікування завершення обох виконання. Помилки обробляються у загальному режимі.
|
|
23
23
|
|
|
24
24
|
## Гарантії поведінки
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [12.8.0] - 2026-06-21
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- doc-files: orphan-detect і auto-purge — `lint-doc-files` і `fix-doc-files` тепер виявляють і видаляють `docs/<stem>.md` чиї source-файли більше не існують
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Переміщено логіку linting до `js` та оновив `n-cursor.js
|
|
12
|
+
|
|
13
|
+
## [12.7.0] - 2026-06-21
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- doc-files: orphan-detect і auto-purge — `lint-doc-files` і `fix-doc-files` тепер виявляють і видаляють `docs/<stem>.md` чиї source-файли більше не існують
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Переміщено логіку linting до `js` та оновив `n-cursor.js
|
|
22
|
+
|
|
3
23
|
## [12.6.1] - 2026-06-21
|
|
4
24
|
|
|
5
25
|
### Changed
|
|
@@ -139,7 +159,7 @@
|
|
|
139
159
|
|
|
140
160
|
### Changed
|
|
141
161
|
|
|
142
|
-
- Конформність-селекція: .n-cursor.json — єдине джерело правди. resolveCheckRuleIds бере активні правила прямо з конфіга (available ∩ enabled), .cursor/rules
|
|
162
|
+
- Конформність-селекція: .n-cursor.json — єдине джерело правди. resolveCheckRuleIds бере активні правила прямо з конфіга (available ∩ enabled), .cursor/rules/\*.mdc лишається лише fallback'ом коли конфіга нема. Прибрано дрейф «правило enabled, але .mdc нема → тихо пропущено». Per-rule whitelist-гейт у runRuleCli видалено як дубль — гейтинг живе виключно у селекції.
|
|
143
163
|
|
|
144
164
|
## [10.0.1] - 2026-06-14
|
|
145
165
|
|
|
@@ -151,7 +171,7 @@
|
|
|
151
171
|
|
|
152
172
|
### Changed
|
|
153
173
|
|
|
154
|
-
- Інлайн _fix-check/fix-t0 у прямі функції — видалено внутрішні subcommand'и. runFixCheck (scripts/lib/fix/run-fix-check) + listProjectRulesMdcFiles винесено з bin; orchestrator/t0/PostToolUse-хук/lint-конформність кличуть прямо (без subprocess-обгортки). Per-rule ізоляція збережена
|
|
174
|
+
- Інлайн \_fix-check/fix-t0 у прямі функції — видалено внутрішні subcommand'и. runFixCheck (scripts/lib/fix/run-fix-check) + listProjectRulesMdcFiles винесено з bin; orchestrator/t0/PostToolUse-хук/lint-конформність кличуть прямо (без subprocess-обгортки). Per-rule ізоляція збережена
|
|
155
175
|
|
|
156
176
|
## [9.4.0] - 2026-06-14
|
|
157
177
|
|
|
@@ -211,7 +231,7 @@
|
|
|
211
231
|
|
|
212
232
|
### Removed
|
|
213
233
|
|
|
214
|
-
- Видалено команди fix/check/fix-run; рух-движок конформності переміщено skills/fix/js→scripts/lib/fix і поглинуто в lint. PostToolUse-хук → read-only детект усіх правил (без роутингу). /n-fix → делегат на /n-lint. fix-t0
|
|
234
|
+
- Видалено команди fix/check/fix-run; рух-движок конформності переміщено skills/fix/js→scripts/lib/fix і поглинуто в lint. PostToolUse-хук → read-only детект усіх правил (без роутингу). /n-fix → делегат на /n-lint. fix-t0/\_fix-check лишаються внутрішніми фазами движка
|
|
215
235
|
|
|
216
236
|
## [6.0.0] - 2026-06-14
|
|
217
237
|
|
|
@@ -244,7 +264,7 @@
|
|
|
244
264
|
|
|
245
265
|
### Changed
|
|
246
266
|
|
|
247
|
-
- ✨ feat(npm/skills/doc-files): doc-files: підтримка Rust (.rs) —
|
|
267
|
+
- ✨ feat(npm/skills/doc-files): doc-files: підтримка Rust (.rs) — SOURCE\_…
|
|
248
268
|
|
|
249
269
|
## [5.3.2] - 2026-06-11
|
|
250
270
|
|
|
@@ -280,7 +300,7 @@
|
|
|
280
300
|
|
|
281
301
|
### Fixed
|
|
282
302
|
|
|
283
|
-
- lint: санація шарів, що ховалися за першим падінням oxlint — повний bun run lint доведено до lint-js/style зелених: JSDoc/regex/sonarjs фікси у ~25 файлах, slow-regex обмежено bounded-квантифікаторами, eslint ignore для згенерованих docs
|
|
303
|
+
- lint: санація шарів, що ховалися за першим падінням oxlint — повний bun run lint доведено до lint-js/style зелених: JSDoc/regex/sonarjs фікси у ~25 файлах, slow-regex обмежено bounded-квантифікаторами, eslint ignore для згенерованих docs/\*.md, jscpd ignore (.git, COVERAGE.md, docs, відомі легасі-клони), knip ignoreBinaries (pi/claude/fix-t0), stylelint/cspell ignore згенерованих артефактів; docgen-ignore у doc-aggregate став re-export з doc-files
|
|
284
304
|
|
|
285
305
|
## [5.1.0] - 2026-06-10
|
|
286
306
|
|
package/bin/docs/n-cursor.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
Файл `npm/bin/n-cursor.js` — це виконуваний скрипт (shebang `#!/usr/bin/env node`), що слугує єдиною точкою входу CLI пакета `@nitra/cursor`. Скрипт виконує дві ролі:
|
|
6
6
|
|
|
7
7
|
1. **Синхронізатор пакетних артефактів у проєкті-споживачі** — без аргументів копіює `.mdc`-правила, скіли, slash-команди, генерує `AGENTS.md`, `CLAUDE.md`, синхронізує `.claude/settings.json`, `.cursor/hooks.json`, composite GitHub Action `setup-bun-deps`, `.pi/skills`, а також `.gitignore` для `.worktrees/`.
|
|
8
|
-
2. **Маршрутизатор підкоманд** — диспатчить `fix`, `check`, `rename-yaml-extensions`, `post-tool-use-fix`, `lint`, `lint-ci`, `lint-
|
|
8
|
+
2. **Маршрутизатор підкоманд** — диспатчить `fix`, `check`, `rename-yaml-extensions`, `post-tool-use-fix`, `lint`, `lint-ci`, `lint-doc-files`, `fix-doc-files`, `coverage`, `coverage-fix`, `analyze-escalation`, `taze`, `start-check`, `change`, `release`, `skill`, `worktree`, `trace`, `doc-aggregate`, `adr-normalize-local` у відповідні внутрішні модулі пакета.
|
|
9
9
|
|
|
10
10
|
Скрипт — ES-модуль (`import` синтаксис). Виконує реальні файлові операції в `cwd()` і у каталогах пакету (`BUNDLED_PACKAGE_ROOT`). Усі шляхи відносно поточної робочої директорії проєкту-споживача.
|
|
11
11
|
|
|
@@ -17,13 +17,8 @@
|
|
|
17
17
|
- `npx @nitra/cursor check` — deprecated alias для `fix` (виводить попередження).
|
|
18
18
|
- `npx @nitra/cursor rename-yaml-extensions` — перейменування `*.yml`/`*.yaml` у k8s/.github (підтримує `--dry-run`, `--root=…`).
|
|
19
19
|
- `npx @nitra/cursor post-tool-use-fix` — entry point PostToolUse hook Claude Code: читає JSON зі stdin, маршрутизує `tool_input.file_path` у релевантні правила.
|
|
20
|
-
- `npx @nitra/cursor lint` — оркестратор
|
|
21
|
-
- `npx @nitra/cursor lint-ci` — те
|
|
22
|
-
- `npx @nitra/cursor lint-ga` — канонічний `lint-ga` (shellcheck preflight → `bunx github-actionlint` → `uvx zizmor --offline --collect=workflows .`).
|
|
23
|
-
- `npx @nitra/cursor lint-rego` — канонічний `lint-rego` (`opa check --strict` → `regal lint` → опційно `conftest verify`).
|
|
24
|
-
- `npx @nitra/cursor lint-k8s` — канонічний `lint-k8s` (`kubeconform` + `kubescape`).
|
|
25
|
-
- `npx @nitra/cursor lint-docker` — канонічний `lint-docker` (`hadolint`).
|
|
26
|
-
- `npx @nitra/cursor lint-text` — канонічний `lint-text` (`cspell` → `shellcheck` з auto-fix → `markdownlint-cli2 --fix` → `v8r`).
|
|
20
|
+
- `npx @nitra/cursor lint` — data-driven оркестратор lint+конформності: `--full` (весь репо, включно з `full`-правилами), `--read-only` (CI, нуль мутацій); без прапорів — per-file дельта vs origin.
|
|
21
|
+
- `npx @nitra/cursor lint-ci` — те саме у CI-режимі.
|
|
27
22
|
- `npx @nitra/cursor coverage [--fix] [--changed]` — оркестратор покриття та мутаційного тестування.
|
|
28
23
|
- `npx @nitra/cursor change` — створення change-файлу.
|
|
29
24
|
- `npx @nitra/cursor release` — реліз-команда.
|
|
@@ -60,7 +55,6 @@
|
|
|
60
55
|
- `discoverCheckRulesFromCursorRules` зі `scripts/lib/discover-check-rules-from-cursor.mjs`
|
|
61
56
|
- `listRuleIds` зі `scripts/lib/list-rule-ids.mjs`
|
|
62
57
|
- `ensureNitraCursorInRootDevDependencies` зі `scripts/ensure-nitra-cursor-dev-dependencies.mjs`
|
|
63
|
-
- `runLintDocker`, `runLintGaCli`, `runLintK8s`, `runLintRego`, `runLintTextCli` — з `rules/*/lint/lint.mjs`
|
|
64
58
|
- `syncClaudeConfig` зі `scripts/sync-claude-config.mjs`
|
|
65
59
|
- `syncGitignoreWorktree` зі `scripts/lib/sync-gitignore-worktree.mjs`
|
|
66
60
|
- `upgradeNitraCursorToLatestAndBunInstall` зі `scripts/upgrade-nitra-cursor-and-install.mjs`
|
|
@@ -465,13 +459,8 @@ try {
|
|
|
465
459
|
- `'check'` → друкує deprecated-попередження й виконує `runFixCommand(args)`.
|
|
466
460
|
- `'rename-yaml-extensions'` → `runRenameYamlExtensionsCli(args)`; якщо повернений код `!== 0`, `process.exitCode = 1`.
|
|
467
461
|
- `'post-tool-use-fix'` → `runPostToolUseFixCli()` (PostToolUse hook Claude Code, читає stdin); `process.exitCode` = повернений код.
|
|
468
|
-
- `'lint'` → `runLint({
|
|
462
|
+
- `'lint'` → `runLint({ full, readOnly, rules })` (прапори `--full`, `--read-only`; позиційні аргументи — фільтр правил конформності).
|
|
469
463
|
- `'lint-ci'` → `runLint({ ci: true })`.
|
|
470
|
-
- `'lint-ga'` → `runLintGaCli()` (`await` обовʼязковий — `check-ga` async).
|
|
471
|
-
- `'lint-rego'` → `runLintRego()`.
|
|
472
|
-
- `'lint-k8s'` → `runLintK8s()`.
|
|
473
|
-
- `'lint-docker'` → `runLintDocker()`.
|
|
474
|
-
- `'lint-text'` → `runLintTextCli()`.
|
|
475
464
|
- `'coverage'` → динамічний import `../rules/test/coverage/coverage.mjs`, виклик `runCoverageCli({ fix: args.includes('--fix'), changed: args.includes('--changed') })`.
|
|
476
465
|
- `'change'` → динамічний import `../rules/release/change.mjs` → `runChangeCli(args)`.
|
|
477
466
|
- `'release'` → динамічний import `../rules/release/release.mjs` → `runReleaseCli(args)`.
|
|
@@ -516,11 +505,6 @@ try {
|
|
|
516
505
|
- `../scripts/lib/discover-check-rules-from-cursor.mjs` — `discoverCheckRulesFromCursorRules`.
|
|
517
506
|
- `../scripts/lib/list-rule-ids.mjs` — `listRuleIds`.
|
|
518
507
|
- `../scripts/ensure-nitra-cursor-dev-dependencies.mjs` — `ensureNitraCursorInRootDevDependencies`.
|
|
519
|
-
- `../rules/docker/lint/lint.mjs` — `runLintDocker`.
|
|
520
|
-
- `../rules/ga/lint/lint.mjs` — `runLintGaCli`.
|
|
521
|
-
- `../rules/k8s/lint/lint.mjs` — `runLintK8s`.
|
|
522
|
-
- `../rules/rego/lint/lint.mjs` — `runLintRego`.
|
|
523
|
-
- `../rules/text/lint/lint.mjs` — `runLintTextCli`.
|
|
524
508
|
- `../scripts/sync-claude-config.mjs` — `syncClaudeConfig`.
|
|
525
509
|
- `../scripts/lib/sync-gitignore-worktree.mjs` — `syncGitignoreWorktree`.
|
|
526
510
|
- `../scripts/upgrade-nitra-cursor-and-install.mjs` — `upgradeNitraCursorToLatestAndBunInstall`.
|
package/bin/n-cursor.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* `npx \@nitra/cursor` — завантажити cursor-правила (синк); якщо в корені вже є `.n-cursor.json`,
|
|
8
8
|
* спочатку зчитується конфіг і за потреби дописується `$schema`
|
|
9
9
|
* `npx \@nitra/cursor rename-yaml-extensions` — k8s `*.yml` → `*.yaml`, `.github` `*.yaml` → `*.yml` (опції: `--dry-run`, `--root=…`; див. bin/rename-yaml-extensions.mjs)
|
|
10
|
-
* `npx \@nitra/cursor post-tool-use-
|
|
10
|
+
* `npx \@nitra/cursor post-tool-use-check` — точка входу PostToolUse hook Claude Code: читає stdin JSON,
|
|
11
11
|
* дістає `tool_input.file_path`, маршрутизує його у відповідні правила
|
|
12
12
|
* (`*.mjs` → `js-lint`, `*.vue` → `js-lint style-lint vue` тощо) і викликає
|
|
13
13
|
* `fix` лише з ними. Прописується автоматично в `.claude/settings.json`.
|
|
@@ -16,14 +16,6 @@
|
|
|
16
16
|
* весь репо (`per-file` ∪ `full`); `--read-only` = без мутацій/LLM (CI); позиційні
|
|
17
17
|
* (не-флаг) аргументи — фільтр правил конформності (мапить колишній `fix <rule>`).
|
|
18
18
|
* CI = `lint --read-only --full` (весь репо, нуль мутацій/LLM).
|
|
19
|
-
* `npx \@nitra/cursor lint-ga` — канонічний lint-ga (ga.mdc): preflight на `shellcheck` →
|
|
20
|
-
* `bunx github-actionlint` → `uvx zizmor --offline --collect=workflows .`
|
|
21
|
-
* `npx \@nitra/cursor lint-rego` — канонічний lint-rego (conftest.mdc + rego.mdc):
|
|
22
|
-
* preflight на `opa`/`regal` → `opa check --strict` → `regal lint` → опц. `conftest verify`
|
|
23
|
-
* `npx \@nitra/cursor lint-k8s` — канонічний lint-k8s (k8s.mdc): `kubeconform` + `kubescape` по `…/k8s/*.yaml`
|
|
24
|
-
* `npx \@nitra/cursor lint-docker` — канонічний lint-docker (docker.mdc): `hadolint` по `Dockerfile`/`*.Dockerfile`
|
|
25
|
-
* `npx \@nitra/cursor lint-text` — канонічний lint-text (text.mdc): `cspell` → `shellcheck` (з auto-fix) →
|
|
26
|
-
* `markdownlint-cli2 --fix` → `v8r` (json/json5/yaml/yml/toml)
|
|
27
19
|
* `npx \@nitra/cursor lint-doc-files` — детермінований детектор застарілості файлових док (`stale`: `missing`|`crc-mismatch`); правило doc-files (ignore-glob у `npm/rules/doc-files/js/docgen-ignore.mjs`; тека `docs/` поряд із джерелом). Режими: повний (exit 1), `--json` (exit 0), `--missing-only`, `--hook`/`--git` (hook-протокол, exit 2), `--degraded`
|
|
28
20
|
* `npx \@nitra/cursor fix-doc-files` — JS-оркестрована генерація файлових док (роутинг local/cloud) зі штампом CRC (`--limit`/`--from`/`--overwrite`); `--stamp` — детерміноване перештампування CRC без LLM
|
|
29
21
|
* `npx \@nitra/cursor doc-aggregate modules` — JSON-лістинг логічних модулів (межі за `package.json`) для Tier 2 скілу doc-aggregate
|
|
@@ -94,22 +86,17 @@ import { detectAutoSkills } from '../scripts/auto-skills.mjs'
|
|
|
94
86
|
import { readSkillMetaRaw } from '../scripts/lib/skill-meta.mjs'
|
|
95
87
|
import { injectWorktreeNotice } from '../scripts/lib/worktree-notice.mjs'
|
|
96
88
|
import { injectRootNotice } from '../scripts/lib/root-notice.mjs'
|
|
97
|
-
import {
|
|
89
|
+
import { runPostToolUseCheckCli } from '../scripts/post-tool-use-check.mjs'
|
|
98
90
|
import { listProjectRulesMdcFiles } from '../scripts/lib/list-project-rules-mdc.mjs'
|
|
99
91
|
import { ensureNitraCursorInRootDevDependencies } from '../scripts/ensure-nitra-cursor-dev-dependencies.mjs'
|
|
100
92
|
import { assertCwdIsProjectRoot } from '../scripts/lib/assert-project-root.mjs'
|
|
101
|
-
import { runLintDocker } from '../rules/docker/lint/lint.mjs'
|
|
102
|
-
import { runLintGaCli } from '../rules/ga/lint/lint.mjs'
|
|
103
|
-
import { runLintK8s } from '../rules/k8s/lint/lint.mjs'
|
|
104
|
-
import { runLintRego } from '../rules/rego/lint/lint.mjs'
|
|
105
|
-
import { runLintTextCli } from '../rules/text/lint/lint.mjs'
|
|
106
93
|
import { syncClaudeConfig } from '../scripts/sync-claude-config.mjs'
|
|
107
94
|
import { syncGitignoreWorktree } from '../scripts/lib/sync-gitignore-worktree.mjs'
|
|
108
95
|
import { upgradeNitraCursorToLatestAndBunInstall } from '../scripts/upgrade-nitra-cursor-and-install.mjs'
|
|
109
96
|
import { runRenameYamlExtensionsCli } from './rename-yaml-extensions.mjs'
|
|
110
97
|
import { runSkillsCli } from '../scripts/skills-cli.mjs'
|
|
111
98
|
import { syncSetupBunDepsAction } from '../scripts/sync-setup-bun-deps-action.mjs'
|
|
112
|
-
import { runLint } from '../
|
|
99
|
+
import { runLint } from '../scripts/lib/run-lint.mjs'
|
|
113
100
|
|
|
114
101
|
const PACKAGE_NAME = '@nitra/cursor'
|
|
115
102
|
const CONFIG_FILE = '.n-cursor.json'
|
|
@@ -636,7 +623,7 @@ function buildClaudeLintParallelismSectionLines() {
|
|
|
636
623
|
'',
|
|
637
624
|
'## Лінт і ESLint (паралелізм)',
|
|
638
625
|
'',
|
|
639
|
-
|
|
626
|
+
"Паралельний лінт по **різних** файлах — **дозволено**: диз'юнктні набори (per-file `lint` на змінених vs origin) не конфліктують і не перевантажують диск/CPU. Серіалізувати треба лише **whole-tree** прогони того самого корпусу (`bun run lint`, `n-cursor lint --full` по всьому репо) — щоб не дублювати важкий full-scan. Деталі: `.cursor/skills/n-lint/SKILL.md`.",
|
|
640
627
|
''
|
|
641
628
|
]
|
|
642
629
|
}
|
|
@@ -1527,10 +1514,10 @@ try {
|
|
|
1527
1514
|
|
|
1528
1515
|
break
|
|
1529
1516
|
}
|
|
1530
|
-
case 'post-tool-use-
|
|
1517
|
+
case 'post-tool-use-check': {
|
|
1531
1518
|
// Викликається з .claude/settings.json як PostToolUse hook Claude Code.
|
|
1532
1519
|
// Маршрутизує змінений файл у релевантні правила і прокидає `fix` лише з ними.
|
|
1533
|
-
const code = await
|
|
1520
|
+
const code = await runPostToolUseCheckCli()
|
|
1534
1521
|
process.exitCode = code
|
|
1535
1522
|
|
|
1536
1523
|
break
|
|
@@ -1548,39 +1535,6 @@ try {
|
|
|
1548
1535
|
|
|
1549
1536
|
break
|
|
1550
1537
|
}
|
|
1551
|
-
case 'lint-ga': {
|
|
1552
|
-
// Канонічний lint-ga з preflight на shellcheck → actionlint → zizmor → check-ga (ga.mdc).
|
|
1553
|
-
// Останній крок (check-ga) async — тому await обов'язковий, інакше process.exitCode буде Promise.
|
|
1554
|
-
process.exitCode = await runLintGaCli()
|
|
1555
|
-
|
|
1556
|
-
break
|
|
1557
|
-
}
|
|
1558
|
-
case 'lint-rego': {
|
|
1559
|
-
// Канонічний lint-rego: preflight opa/regal → opa check --strict → regal lint → conftest verify (опц.).
|
|
1560
|
-
process.exitCode = await runLintRego()
|
|
1561
|
-
|
|
1562
|
-
break
|
|
1563
|
-
}
|
|
1564
|
-
case 'lint-k8s': {
|
|
1565
|
-
// Канонічний lint-k8s: kubeconform + kubescape по знайдених деревах `…/k8s/*.yaml`.
|
|
1566
|
-
process.exitCode = await runLintK8s()
|
|
1567
|
-
|
|
1568
|
-
break
|
|
1569
|
-
}
|
|
1570
|
-
case 'lint-docker': {
|
|
1571
|
-
// Канонічний lint-docker: hadolint по Dockerfile та *.Dockerfile (docker.mdc).
|
|
1572
|
-
process.exitCode = await runLintDocker()
|
|
1573
|
-
|
|
1574
|
-
break
|
|
1575
|
-
}
|
|
1576
|
-
case 'lint-text': {
|
|
1577
|
-
// Канонічний lint-text: cspell → shellcheck → dotenv → markdownlint → v8r (text.mdc).
|
|
1578
|
-
// `--read-only` (CI): без авто-фіксу (markdownlint/shellcheck/dotenv) — нуль мутацій.
|
|
1579
|
-
// `llmFix:true` — text llmFix-capable, тож standalone lint-text робить omlx-класифікацію cspell.
|
|
1580
|
-
process.exitCode = await runLintTextCli({ readOnly: args.includes('--read-only'), llmFix: true })
|
|
1581
|
-
|
|
1582
|
-
break
|
|
1583
|
-
}
|
|
1584
1538
|
case 'coverage': {
|
|
1585
1539
|
// n-cursor coverage — оркестратор покриття + мутаційного тестування з discovery
|
|
1586
1540
|
// провайдерів через .n-cursor.json#rules (test.mdc). --changed звужує scope до
|
|
@@ -1655,7 +1609,7 @@ try {
|
|
|
1655
1609
|
// n-cursor lint-doc-files — детермінований детектор застарілості файлових док
|
|
1656
1610
|
// (missing ∪ crc-mismatch). Режими: (повний) exit 1, --json exit 0, --missing-only,
|
|
1657
1611
|
// --hook/--git/--degraded — hook-протокол (exit 2/0). Деталі — doc-files.mdc.
|
|
1658
|
-
const { runLintDocFilesCli } = await import('../rules/doc-files/
|
|
1612
|
+
const { runLintDocFilesCli } = await import('../rules/doc-files/main.mjs')
|
|
1659
1613
|
process.exitCode = await runLintDocFilesCli(args)
|
|
1660
1614
|
|
|
1661
1615
|
break
|
|
@@ -1706,7 +1660,7 @@ try {
|
|
|
1706
1660
|
default: {
|
|
1707
1661
|
console.error(`❌ Невідома команда: ${command}`)
|
|
1708
1662
|
console.error(
|
|
1709
|
-
` Очікується: (без аргументів) синхронізація правил, rename-yaml-extensions, post-tool-use-
|
|
1663
|
+
` Очікується: (без аргументів) синхронізація правил, rename-yaml-extensions, post-tool-use-check, adr-normalize-local, lint (включно зі scope: lint ga|rego|k8s|docker|text), lint-doc-files, fix-doc-files, coverage, coverage-fix, analyze-escalation, taze, start-check, change, release, skill, trace, doc-aggregate`
|
|
1710
1664
|
)
|
|
1711
1665
|
process.exitCode = 1
|
|
1712
1666
|
}
|
package/docs/index.md
CHANGED
|
@@ -6,7 +6,7 @@ resource: npm/
|
|
|
6
6
|
|
|
7
7
|
# npm
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| --------------------------------------- | --------- |
|
|
11
11
|
| [stryker.config.mjs](stryker.config.md) | JS Module |
|
|
12
|
-
| [vitest.config.js](vitest.config.md)
|
|
12
|
+
| [vitest.config.js](vitest.config.md) | JS Module |
|
package/docs/stryker.config.md
CHANGED
|
@@ -3,39 +3,31 @@ type: JS Module
|
|
|
3
3
|
title: stryker.config.mjs
|
|
4
4
|
resource: npm/stryker.config.mjs
|
|
5
5
|
docgen:
|
|
6
|
-
crc:
|
|
6
|
+
crc: 2f4ed270
|
|
7
|
+
model: omlx/gemma-4-e4b-it-OptiQ-4bit
|
|
8
|
+
score: 100
|
|
7
9
|
---
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
## Огляд
|
|
12
|
+
|
|
13
|
+
Цей файл конфігурує процес тестування та мутаційного аналізу, використовуючи Vitest як тестовий раннер. Він визначає, які файли підлягають мутації (у `scripts`, `rules`, `bin`) та які виключаються, спираючись на `mutation.json`. Конфігурація налаштовує Stryker для запуску лише тестів, що покривають мутовані рядки. Також конфігурація використовує `incremental.json` для збереження даних між запусками.
|
|
10
14
|
|
|
11
15
|
## Поведінка
|
|
12
16
|
|
|
13
|
-
1.
|
|
14
|
-
2.
|
|
15
|
-
3.
|
|
16
|
-
4.
|
|
17
|
-
5.
|
|
18
|
-
6.
|
|
19
|
-
7.
|
|
20
|
-
8.
|
|
21
|
-
|
|
17
|
+
1. Визначає тестовий раннер як Vitest.
|
|
18
|
+
2. Вказує конфігураційний файл для Vitest.
|
|
19
|
+
3. Налаштовує аналіз покриття так, що Stryker запускає лише тести, що покривають мутовану лінію.
|
|
20
|
+
4. Встановлює тимчасову директорію для звітів Stryker.
|
|
21
|
+
5. Визначає репортери для виводу результатів у форматі JSON та звичайному тексті.
|
|
22
|
+
6. Вказує ім'я файлу для JSON-звіту.
|
|
23
|
+
7. Вмикає функціонал збереження результатів між запусками, використовуючи файл `incremental.json`.
|
|
24
|
+
8. Визначає список файлів, які підлягають мутації:
|
|
25
|
+
- Файли у директорії `scripts`.
|
|
26
|
+
- Файли у директорії `rules`.
|
|
27
|
+
- Файли у директорії `bin`.
|
|
28
|
+
9. Виключає з мутації файли у директоріях `tests`, `__fixtures__`, `fixtures`, `data`, `template`, `templates`.
|
|
29
|
+
10. Виключає з мутації файли у директорії `data`, крім файлу `stryker-vue-macros-ignorer.mjs` у директорії `rules/test/js/data/stryker_config/`.
|
|
22
30
|
|
|
23
31
|
## Гарантії поведінки
|
|
24
32
|
|
|
25
|
-
-
|
|
26
|
-
- Зміна значення не впливає на інші частини коду.
|
|
27
|
-
- Зміна значення не призводить до помилок.
|
|
28
|
-
- Зміна значення не впливає на стан системи.
|
|
29
|
-
- Зміна значення не впливає на інші поточні операції.
|
|
30
|
-
- Зміна значення не впливає на будь-які дані, які можуть бути використані в майбутньому.
|
|
31
|
-
- Зміна значення не впливає на будь-які зовнішні системи.
|
|
32
|
-
- Зміна значення не призводить до непередбачуваної поведінки.
|
|
33
|
-
- Зміна значення не впливає на будь-які дані, які можуть бути використані в майбутньому.
|
|
34
|
-
- Зміна значення не впливає на будь-які зовнішні системи.
|
|
35
|
-
- Зміна значення не призводить до непередбачуваної поведінки.
|
|
36
|
-
- Зміна значення не впливає на будь-які дані, які можуть бути використані в майбутньому.
|
|
37
|
-
- Зміна значення не впливає на будь-які зовнішні системи.
|
|
38
|
-
- Зміна значення не призводить до непередбачуваної поведінки.
|
|
39
|
-
- Зміна значення не впливає на будь-які дані, які можуть бути використані в майбутньому.
|
|
40
|
-
- Зміна значення не впливає на будь-які зовнішні системи.
|
|
41
|
-
- Зміна
|
|
33
|
+
- (специфічних машинно-виведених гарантій немає)
|
package/lib/docs/index.md
CHANGED
|
@@ -6,9 +6,9 @@ resource: npm/lib/
|
|
|
6
6
|
|
|
7
7
|
# npm/lib
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [llm.mjs](llm.md)
|
|
12
|
-
| [models.mjs](models.md)
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| ------------------------------- | --------- |
|
|
11
|
+
| [llm.mjs](llm.md) | JS Module |
|
|
12
|
+
| [models.mjs](models.md) | JS Module |
|
|
13
13
|
| [omlx-trace.mjs](omlx-trace.md) | JS Module |
|
|
14
|
-
| [omlx.mjs](omlx.md)
|
|
14
|
+
| [omlx.mjs](omlx.md) | JS Module |
|
package/lib/docs/llm.md
CHANGED
|
@@ -25,10 +25,10 @@ omlxHealthCheck
|
|
|
25
25
|
pickBackend — Бекенд для model-id: `omlx` — прямий HTTP, `pi` — CLI.
|
|
26
26
|
callLlm — Універсальний виклик LLM з маршрутизацією за префіксом model-id і постійне відстеження (wire-trace) обох каналів.
|
|
27
27
|
omlxHealthCheck — Перевірка omlx перед масовим прогоном через мінімальний чат-виклик (`max_tokens: 1`). Розрізняє стани:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
down — Сервер не відповідає (не запущений / не той порт).
|
|
29
|
+
memory-guard — Модель не влазить у динамічну стелю пам'яті зайнятої машини — відкладає прогін.
|
|
30
|
+
auth — Сервер вимагає API-ключ — виставляє `N_CURSOR_OMLX_KEY`.
|
|
31
|
+
error — Інша помилка API.
|
|
32
32
|
Порожній контент відповіді — означає, що сервер живий і модель завантажена.
|
|
33
33
|
|
|
34
34
|
## Гарантії поведінки
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nitra/cursor",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.8.0",
|
|
4
4
|
"description": "CLI для завантаження cursor-правил (префікс n-) у локальний репозиторій",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -68,4 +68,4 @@
|
|
|
68
68
|
"skills": "skills",
|
|
69
69
|
"extensions": ".pi-template/extensions"
|
|
70
70
|
}
|
|
71
|
-
}
|
|
71
|
+
}
|
package/rules/abie/docs/fix.md
CHANGED
|
@@ -14,16 +14,16 @@ 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
|
-
|
|
24
|
+
- Виконується при запуску через CLI.
|
|
25
|
+
- Виконує повний еквівалент команди `npx @nitra/cursor fix <id>`.
|
|
26
|
+
- Повертає код виходу.
|
|
27
27
|
|
|
28
28
|
## Публічний API
|
|
29
29
|
|
package/rules/abie/docs/index.md
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: main.mjs
|
|
4
|
+
resource: npm/rules/abie/main.mjs
|
|
5
|
+
docgen:
|
|
6
|
+
crc: 762b6875
|
|
7
|
+
model: omlx/gemma-4-e4b-it-OptiQ-4bit
|
|
8
|
+
score: 100
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Огляд
|
|
12
|
+
|
|
13
|
+
Модуль застосовує політику до JS-запитів, посилаючись на MDC-ресурси відповідно до конфігурації `meta.json`. При запуску як окремий інструмент (CLI) він виконує повний цикл обробки, завантажує конфігурації та формує підсумковий звіт. Модуль є Read-only, тобто не здійснює записів у файлову систему чи бази даних. Кешування даних відбувається у межах одного прогону.
|
|
14
|
+
|
|
15
|
+
## Поведінка
|
|
16
|
+
|
|
17
|
+
1. Викликається функція `run` для виконання перевірки.
|
|
18
|
+
2. Виконання перевірки включає застосування політики, обробку JS-запитань та посилання на MDC-ресурси, використовуючи конфігурацію з `meta.json`.
|
|
19
|
+
3. Якщо код виконується як окремий інструмент (CLI), викликається логіка для повного виконання правила.
|
|
20
|
+
4. Виконання в режимі CLI забезпечує завантаження конфігурацій та підсумок.
|
|
21
|
+
|
|
22
|
+
## Публічний API
|
|
23
|
+
|
|
24
|
+
run — виконує основну логіку правила: застосовує перевірки JS-зацікавлень, політики та посилання на MDC.
|
|
25
|
+
|
|
26
|
+
## Гарантії поведінки
|
|
27
|
+
|
|
28
|
+
- Read-only: не виконує операцій запису (ФС/БД).
|
|
29
|
+
- Кешує результати в межах одного прогону.
|
|
@@ -6,11 +6,11 @@ resource: npm/rules/abie/js/
|
|
|
6
6
|
|
|
7
7
|
# npm/rules/abie/js
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [applies.mjs](applies.md)
|
|
12
|
-
| [env_dns.mjs](env_dns.md)
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| ------------------------------------------- | --------- |
|
|
11
|
+
| [applies.mjs](applies.md) | JS Module |
|
|
12
|
+
| [env_dns.mjs](env_dns.md) | JS Module |
|
|
13
13
|
| [firebase_hosting.mjs](firebase_hosting.md) | JS Module |
|
|
14
|
-
| [hc_pairing.mjs](hc_pairing.md)
|
|
15
|
-
| [ua_http_route.mjs](ua_http_route.md)
|
|
14
|
+
| [hc_pairing.mjs](hc_pairing.md) | JS Module |
|
|
15
|
+
| [ua_http_route.mjs](ua_http_route.md) | JS Module |
|
|
16
16
|
| [ua_node_selector.mjs](ua_node_selector.md) | JS Module |
|
|
@@ -6,13 +6,13 @@ resource: npm/rules/abie/lib/
|
|
|
6
6
|
|
|
7
7
|
# npm/rules/abie/lib
|
|
8
8
|
|
|
9
|
-
| Файл
|
|
10
|
-
|
|
11
|
-
| [enabled.mjs](enabled.md)
|
|
12
|
-
| [env-dns.mjs](env-dns.md)
|
|
13
|
-
| [hc-yaml.mjs](hc-yaml.md)
|
|
14
|
-
| [http-route.mjs](http-route.md)
|
|
15
|
-
| [k8s-tree.mjs](k8s-tree.md)
|
|
9
|
+
| Файл | Тип |
|
|
10
|
+
| ----------------------------------------------------- | --------- |
|
|
11
|
+
| [enabled.mjs](enabled.md) | JS Module |
|
|
12
|
+
| [env-dns.mjs](env-dns.md) | JS Module |
|
|
13
|
+
| [hc-yaml.mjs](hc-yaml.md) | JS Module |
|
|
14
|
+
| [http-route.mjs](http-route.md) | JS Module |
|
|
15
|
+
| [k8s-tree.mjs](k8s-tree.md) | JS Module |
|
|
16
16
|
| [kustomization-patches.mjs](kustomization-patches.md) | JS Module |
|
|
17
|
-
| [overlay-paths.mjs](overlay-paths.md)
|
|
18
|
-
| [yaml.mjs](yaml.md)
|
|
17
|
+
| [overlay-paths.mjs](overlay-paths.md) | JS Module |
|
|
18
|
+
| [yaml.mjs](yaml.md) | JS Module |
|
|
@@ -2,7 +2,9 @@ import { isRunAsCli, runRuleCli } from '../../scripts/lib/run-rule-cli.mjs'
|
|
|
2
2
|
import { runStandardRule } from '../../scripts/lib/run-standard-rule.mjs'
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Єдиний entrypoint правила (ADR 2026-06-21). `run()` — check-поверхня: applies →
|
|
6
|
+
* JS-concerns → policy → mdc-refs (через runStandardRule). Lint-поверхні правило не має
|
|
7
|
+
* (`meta.json` без `lint`), тож експорту `lint` тут немає.
|
|
6
8
|
* Library mode: викликається CLI orchestration через `import + run(ctx)`.
|
|
7
9
|
* @param {import('../../scripts/lib/run-standard-rule.mjs').RuleContext} [ctx] контекст прогону (walkCache тощо)
|
|
8
10
|
* @returns {Promise<number>} 0 — OK, 1 — порушення
|
|
@@ -12,7 +14,7 @@ export function run(ctx) {
|
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
if (isRunAsCli(import.meta.url)) {
|
|
15
|
-
// Standalone: bun rules/<id>/
|
|
16
|
-
// (config-loading + whitelist + summary)
|
|
17
|
+
// Standalone: bun rules/<id>/main.mjs — повний еквівалент `npx @nitra/cursor check <id>`
|
|
18
|
+
// (config-loading + whitelist + summary): library-роль (run) + standalone-роль (CLI-блок).
|
|
17
19
|
process.exitCode = await runRuleCli(import.meta.dirname)
|
|
18
20
|
}
|
package/rules/adr/docs/index.md
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: main.mjs
|
|
4
|
+
resource: npm/rules/adr/main.mjs
|
|
5
|
+
docgen:
|
|
6
|
+
crc: 762b6875
|
|
7
|
+
model: omlx/gemma-4-e4b-it-OptiQ-4bit
|
|
8
|
+
score: 100
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Огляд
|
|
12
|
+
|
|
13
|
+
Модуль виконує логіку перевірок, обробляючи JS-запити та звертаючись до MDC. При запуску як окремий інструмент, він ініціює повний цикл правил, включаючи завантаження конфігурацій з meta.json. Модуль має лише читачний доступ до файлової системи та баз даних. Під час виконання він використовує кешування у межах прогону для оптимізації.
|
|
14
|
+
|
|
15
|
+
## Поведінка
|
|
16
|
+
|
|
17
|
+
1. Викликається функція `run` для виконання перевірки.
|
|
18
|
+
2. Виконання перевірки включає застосування політики, обробку JS-запитань та посилання на MDC.
|
|
19
|
+
3. Якщо код виконується як окремий інструмент (CLI), ініціюється повний запуск правила.
|
|
20
|
+
4. Повний запуск правила включає завантаження конфігурацій, застосування білих списків та підбиття підсумків.
|
|
21
|
+
|
|
22
|
+
## Публічний API
|
|
23
|
+
|
|
24
|
+
run — єдиний вхідний пункт правила, що виконує перевірку: застосовує JS-занепокоєння, політики та посилання MDC.
|
|
25
|
+
|
|
26
|
+
## Гарантії поведінки
|
|
27
|
+
|
|
28
|
+
- Read-only: не виконує операцій запису (ФС/БД).
|
|
29
|
+
- Кешує результати в межах одного прогону.
|
|
@@ -2,7 +2,9 @@ import { isRunAsCli, runRuleCli } from '../../scripts/lib/run-rule-cli.mjs'
|
|
|
2
2
|
import { runStandardRule } from '../../scripts/lib/run-standard-rule.mjs'
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Єдиний entrypoint правила (ADR 2026-06-21). `run()` — check-поверхня: applies →
|
|
6
|
+
* JS-concerns → policy → mdc-refs (через runStandardRule). Lint-поверхні правило не має
|
|
7
|
+
* (`meta.json` без `lint`), тож експорту `lint` тут немає.
|
|
6
8
|
* Library mode: викликається CLI orchestration через `import + run(ctx)`.
|
|
7
9
|
* @param {import('../../scripts/lib/run-standard-rule.mjs').RuleContext} [ctx] контекст прогону (walkCache тощо)
|
|
8
10
|
* @returns {Promise<number>} 0 — OK, 1 — порушення
|
|
@@ -12,7 +14,7 @@ export function run(ctx) {
|
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
if (isRunAsCli(import.meta.url)) {
|
|
15
|
-
// Standalone: bun rules/<id>/
|
|
16
|
-
// (config-loading + whitelist + summary)
|
|
17
|
+
// Standalone: bun rules/<id>/main.mjs — повний еквівалент `npx @nitra/cursor check <id>`
|
|
18
|
+
// (config-loading + whitelist + summary): library-роль (run) + standalone-роль (CLI-блок).
|
|
17
19
|
process.exitCode = await runRuleCli(import.meta.dirname)
|
|
18
20
|
}
|