@nitra/cursor 12.8.8 → 12.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/bin/n-cursor.js +18 -10
  3. package/package.json +5 -5
  4. package/rules/abie/docs/index.md +0 -1
  5. package/rules/abie/lib/docs/http-route.md +11 -12
  6. package/rules/abie/lib/http-route.mjs +3 -0
  7. package/rules/abie/policy/health_check_policy/health_check_policy.mdc +3 -1
  8. package/rules/abie/policy/health_check_policy/health_check_policy.rego +27 -0
  9. package/rules/adr/docs/index.md +0 -1
  10. package/rules/adr/js/madr_format.mdc +13 -1
  11. package/rules/bun/docs/index.md +0 -1
  12. package/rules/bun/policy/package_json/package_json.rego +12 -0
  13. package/rules/capacitor/docs/index.md +0 -1
  14. package/rules/changelog/docs/index.md +0 -1
  15. package/rules/ci4/docs/index.md +0 -1
  16. package/rules/doc-files/docs/index.md +0 -1
  17. package/rules/doc-files/docs/main.md +7 -9
  18. package/rules/doc-files/main.mjs +2 -3
  19. package/rules/docker/docs/index.md +0 -1
  20. package/rules/efes/docs/index.md +0 -1
  21. package/rules/feedback/docs/index.md +0 -1
  22. package/rules/ga/docs/index.md +0 -1
  23. package/rules/graphql/docs/index.md +0 -1
  24. package/rules/hasura/docs/index.md +0 -1
  25. package/rules/hasura/js/docs/index.md +3 -2
  26. package/rules/hasura/js/docs/migrations.md +30 -0
  27. package/rules/hasura/js/migrations.mjs +47 -0
  28. package/rules/image-avif/docs/index.md +0 -1
  29. package/rules/image-compress/docs/index.md +0 -1
  30. package/rules/js/docs/index.md +0 -1
  31. package/rules/js/js/dep-policy.mjs +87 -0
  32. package/rules/js/js/docs/dep-policy.md +36 -0
  33. package/rules/js/js/docs/index.md +1 -0
  34. package/rules/js/policy/package_json/package_json.rego +16 -0
  35. package/rules/js-bun-db/docs/index.md +0 -1
  36. package/rules/js-bun-redis/docs/index.md +0 -1
  37. package/rules/js-mssql/docs/index.md +0 -1
  38. package/rules/js-run/docs/index.md +0 -1
  39. package/rules/k8s/docs/index.md +0 -1
  40. package/rules/nginx-default-tpl/docs/index.md +0 -1
  41. package/rules/npm-module/docs/index.md +0 -1
  42. package/rules/php/docs/index.md +0 -1
  43. package/rules/python/docs/index.md +0 -1
  44. package/rules/rego/docs/index.md +0 -1
  45. package/rules/rego/js/docs/index.md +3 -3
  46. package/rules/rego/js/docs/tooling.md +28 -0
  47. package/rules/rego/js/tooling.mjs +24 -0
  48. package/rules/rego/policy/package_json/package_json.rego +21 -0
  49. package/rules/rego/policy/package_json/target.json +4 -0
  50. package/rules/release/docs/index.md +0 -1
  51. package/rules/rust/docs/index.md +0 -1
  52. package/rules/rust/policy/lint_rust_yml/lint_rust_yml.rego +24 -0
  53. package/rules/rust/policy/package_json/package_json.rego +20 -0
  54. package/rules/rust/policy/package_json/target.json +4 -0
  55. package/rules/security/docs/index.md +0 -1
  56. package/rules/style/docs/index.md +0 -1
  57. package/rules/style/js/docs/index.md +2 -3
  58. package/rules/style/js/docs/tooling.md +14 -10
  59. package/rules/style/js/tooling.mjs +8 -2
  60. package/rules/style/policy/lint_style_yml/lint_style_yml.rego +5 -0
  61. package/rules/tauri/docs/index.md +0 -1
  62. package/rules/test/docs/index.md +0 -1
  63. package/rules/test/js/docs/index.md +2 -0
  64. package/rules/test/js/docs/no-console-store-restore.md +32 -0
  65. package/rules/test/js/docs/sandbox-aware-test.md +32 -0
  66. package/rules/test/js/no-console-store-restore.mjs +88 -0
  67. package/rules/test/js/sandbox-aware-test.mjs +89 -0
  68. package/rules/text/docs/index.md +0 -1
  69. package/rules/tool-surface/docs/index.md +0 -1
  70. package/rules/vue/docs/index.md +0 -1
  71. package/rules/worktree/docs/index.md +0 -1
  72. package/scripts/docs/hook.md +29 -0
  73. package/scripts/docs/index.md +1 -2
  74. package/scripts/hook.mjs +72 -0
  75. package/scripts/lib/docs/index.md +35 -36
  76. package/scripts/lib/docs/rule-meta.md +10 -9
  77. package/scripts/lib/docs/run-lint.md +9 -8
  78. package/scripts/lib/docs/run-rule.md +7 -7
  79. package/scripts/lib/fix/docs/index.md +0 -1
  80. package/scripts/lib/rule-meta.mjs +2 -1
  81. package/scripts/lib/run-lint.mjs +54 -3
  82. package/scripts/lib/run-rule.mjs +1 -2
  83. package/skills/adr-normalize/SKILL.md +1 -0
  84. package/skills/coverage-fix/SKILL.md +1 -0
  85. package/skills/doc-aggregate/SKILL.md +1 -0
  86. package/skills/doc-files/SKILL.md +1 -0
  87. package/skills/lint/SKILL.md +24 -19
  88. package/skills/llm-patch/SKILL.md +1 -0
  89. package/skills/publish-telegram/SKILL.md +1 -0
  90. package/skills/start-check/SKILL.md +1 -0
  91. package/skills/taze/SKILL.md +3 -2
  92. package/types/bin/n-cursor.d.ts +1 -1
  93. package/rules/abie/docs/fix.md +0 -37
  94. package/rules/adr/docs/fix.md +0 -37
  95. package/rules/bun/docs/fix.md +0 -30
  96. package/rules/capacitor/docs/fix.md +0 -36
  97. package/rules/changelog/docs/fix.md +0 -37
  98. package/rules/ci4/docs/fix.md +0 -32
  99. package/rules/doc-files/docs/fix.md +0 -29
  100. package/rules/docker/docs/fix.md +0 -35
  101. package/rules/efes/docs/fix.md +0 -37
  102. package/rules/feedback/docs/fix.md +0 -30
  103. package/rules/ga/docs/fix.md +0 -30
  104. package/rules/graphql/docs/fix.md +0 -37
  105. package/rules/hasura/docs/fix.md +0 -39
  106. package/rules/image-avif/docs/fix.md +0 -28
  107. package/rules/image-compress/docs/fix.md +0 -27
  108. package/rules/js/docs/fix.md +0 -37
  109. package/rules/js-bun-db/docs/fix.md +0 -30
  110. package/rules/js-bun-redis/docs/fix.md +0 -32
  111. package/rules/js-mssql/docs/fix.md +0 -30
  112. package/rules/js-run/docs/fix.md +0 -36
  113. package/rules/k8s/docs/fix.md +0 -31
  114. package/rules/nginx-default-tpl/docs/fix.md +0 -35
  115. package/rules/npm-module/docs/fix.md +0 -34
  116. package/rules/php/docs/fix.md +0 -35
  117. package/rules/python/docs/fix.md +0 -38
  118. package/rules/rego/docs/fix.md +0 -31
  119. package/rules/release/docs/fix.md +0 -28
  120. package/rules/rust/docs/fix.md +0 -32
  121. package/rules/security/docs/fix.md +0 -33
  122. package/rules/style/docs/fix.md +0 -28
  123. package/rules/tauri/docs/fix.md +0 -39
  124. package/rules/test/docs/fix.md +0 -31
  125. package/rules/text/docs/fix.md +0 -37
  126. package/rules/tool-surface/docs/fix.md +0 -32
  127. package/rules/vue/docs/fix.md +0 -32
  128. package/rules/worktree/docs/fix.md +0 -40
  129. package/scripts/docs/post-tool-use-fix.md +0 -32
  130. package/scripts/docs/worktree-cli.md +0 -27
  131. package/scripts/lib/docs/worktree.md +0 -42
  132. package/scripts/lib/fix/docs/run-fix-check.md +0 -33
@@ -1,32 +0,0 @@
1
- ---
2
- type: JS Module
3
- title: fix.mjs
4
- resource: npm/rules/tool-surface/fix.mjs
5
- docgen:
6
- crc: 38cf876b
7
- model: omlx/gemma-4-e4b-it-OptiQ-4bit
8
- score: 100
9
- issues: judge:inaccurate:0.93
10
- judgeModel: openai-codex/gpt-5.4-mini
11
- ---
12
-
13
- ## Огляд
14
-
15
- Цей файл запускає логіку перевірки відповідності політики через функцію `run`, використовуючи контекст прогону, який містить дані, кешовані у межах цього прогону. При самостійному запуску скрипт ініціює повний цикл: завантажує конфігурацію, перевіряє білий список та формує підсумок. Результат виконання визначається кодом виходу, що сигналізує про успішне виконання або виявлені порушення.
16
-
17
- ## Поведінка
18
-
19
- 1. Викликається функція `run` для запуску правила.
20
- 2. Правило виконується, використовуючи контекст прогону, що може містити кеш.
21
- 3. Якщо скрипт виконується як окрема програма (standalone), запускається оркестрація правила.
22
- 4. Оркестрація виконує завантаження конфігурації, перевірку білого списку та підсумок.
23
- 5. Код завершує роботу з кодом виходу, який вказує на успіх або наявність порушень.
24
-
25
- ## Публічний API
26
-
27
- run — виконує послідовність перевірок: застосовує правила, аналізує JS-занепокоєння, перевіряє політику та посилання MDC.
28
-
29
- ## Гарантії поведінки
30
-
31
- - Read-only: не виконує операцій запису (ФС/БД).
32
- - Кешує результати в межах одного прогону.
@@ -1,32 +0,0 @@
1
- ---
2
- type: JS Module
3
- title: fix.mjs
4
- resource: npm/rules/vue/fix.mjs
5
- docgen:
6
- crc: 38cf876b
7
- score: 90
8
- ---
9
-
10
- Файл застосовує правило `runStandardRule` до наданого контексту прогону через функцію `runStandardRule` і повертає отриманий результат. У режимі CLI він виконує команду `npx @nitra/cursor fix <id>` та визначає вихідний код процесу на основі отриманого результату.
11
-
12
- ## Поведінка
13
-
14
- 1. Запуск правила.
15
- - Приймає контекст прогону.
16
- - Використовує runStandardRule для застосування політики.
17
- - Повертає результат прогону.
18
- 2. Запуск у режимі CLI.
19
- - Викликається через `import + run`.
20
- - Виконує повний еквівалент `npx @nitra/cursor fix <id>`.
21
- - Визначає вихідний код процесу на основі результату.
22
-
23
- ## Публічний API
24
-
25
- run — запускає правило: applies → JS-concerns → policy → mdc-refs (через runStandardRule).
26
- Library mode — викликається CLI orchestration через `import + run`.
27
-
28
- ## Гарантії поведінки
29
-
30
- - Read-only: файл не виконує операцій запису у файлову систему.
31
- - Кешує результати в межах одного прогону.
32
- - Не звертається до мережі.
@@ -1,40 +0,0 @@
1
- ---
2
- type: JS Module
3
- title: fix.mjs
4
- resource: npm/rules/worktree/fix.mjs
5
- docgen:
6
- crc: 38cf876b
7
- score: 100
8
- ---
9
-
10
- Виконує застосування політики JS-занепокоєних та конфігурації на наданому контексті прогону, генеруючи посилання MDC та повертаючи результат.
11
-
12
- Виконується при запуску через командний рядок, виконуючи повний еквівалент команди `npx @nitra/cursor fix <id>`, завантажуючи конфігурацію, перевіряючи дозволені елементи та генеруючи зведену інформацію з виходом з процесу залежно від результату.
13
-
14
- ## Поведінка
15
-
16
- 1. Запуск правила.
17
- - Приймає контекст прогону.
18
- - Виконує застосування JS-занепокоєних.
19
- - Застосовує політику.
20
- - Генерує посилання MDC.
21
- - Повертає результат прогону.
22
-
23
- 2. Запуск у режимі CLI.
24
- - Виконується при запуску через CLI.
25
- - Виконує повний еквівалент команди `npx @nitra/cursor fix <id>`.
26
- - Виконує завантаження конфігурації.
27
- - Виконує перевірку дозволених елементів.
28
- - Генерує зведену інформацію.
29
- - Виконує вихід з процесу залежно від результату.
30
-
31
- ## Публічний API
32
-
33
- run — запускає правило: applies → JS-concerns → policy → mdc-refs (через runStandardRule).
34
- Library mode — викликається CLI orchestration через `import + run`.
35
-
36
- ## Гарантії поведінки
37
-
38
- - Read-only: файл не виконує операцій запису у файлову систему.
39
- - Кешує результати в межах одного прогону.
40
- - Не звертається до мережі.
@@ -1,32 +0,0 @@
1
- ---
2
- type: JS Module
3
- title: post-tool-use-fix.mjs
4
- resource: npm/scripts/post-tool-use-fix.mjs
5
- docgen:
6
- crc: 9f313f04
7
- score: 95
8
- ---
9
-
10
- Файл забезпечує точкова маршрутизацію шляху до правил для виправлення коду через хук PostToolUse. Він ініціює запуск команди `npx @nitra/cursor fix` для виправлення коду після зміни файлу.
11
-
12
- ## Поведінка
13
-
14
- routeFilePathToRules
15
- Визначає список правил для пропугу на основі шляху до файлу
16
-
17
- runPostToolUseFixCli
18
- Виконує маршрутизацію шляху до правил та запускає команду для виправлення коду
19
-
20
- ## Публічний API
21
-
22
- routeFilePathToRules — повертає список правил для обробки зміненого шляху. Перший збіг із ROUTES — переможець; невідомі шляхи або некоректні входи повертають порожній масив.
23
-
24
- runPostToolUseFixCli — точка входу. Викликається з `bin/n-cursor.js` при передачі аргументу `post-tool-use-fix`. Параметри доступні для ін'єкції для тестування: `stdinJson` замінює зчитування з `process.stdin`, `spawnFn` замінює `node:child_process.spawn` на об'єкт, сумісний з EventEmitter.
25
-
26
- ## Гарантії поведінки
27
-
28
- - Read-only: файл не виконує операцій запису у файлову систему.
29
- - Перехоплює помилки і не пропускає винятків назовні (fail-safe).
30
- - За невдачі повертає значення помилки (`false`/`null`/`Err`) замість генерування винятку чи паніки.
31
- - Свідомо пропускає шляхи: `.github`, `.git`.
32
- - Не звертається до мережі.
@@ -1,27 +0,0 @@
1
- ---
2
- type: JS Module
3
- title: worktree-cli.mjs
4
- resource: npm/scripts/worktree-cli.mjs
5
- docgen:
6
- crc: 4fb54376
7
- score: 100
8
- ---
9
-
10
- Файл є CLI-оркестратором `worktree-tool` для керування конвенцією `.worktrees/`. Він забезпечує виконання Git-операцій для додавання, видалення, перегляду та прибирання робочих просторів.
11
-
12
- ## Поведінка
13
-
14
- 1. Запуск підкоманди add. Перевіряється наявність необхідного імені гілки та опису. Перевіряється унікальність назви для створення нового worktree. Збирається нагадування про незакомічені зміни основного дерева. Виконується git команда для створення worktree. Якщо команда не успішна, повертається помилка. Створюється та записується опис у файлі `.worktrees/`. Повертається код виходу.
15
- 2. Запуск підкоманди remove. Перевіряється наявність імені гілки. Перевіряється наявність необхідного імені гілки. Визначається шлях до worktree. Виконується git команда для видалення checkout. Якщо команда не успішна, повертається помилка. Якщо вказано прапорець --force, використовується примусовий режим. Видаляється відповідний файл опису. Повертається код виходу.
16
- 3. Запуск підкоманди list. Виконується git команда для отримання списку worktree. Виводиться результат. Для кожного зареєстрованого файлу опису з директорії `.worktrees/` зчитується вміст файлу та виводиться. Повертається код виходу.
17
- 4. Запуск підкоманди prune. Виконується git команда для прибирання worktree. Визначається список осиротілих файлів опису. Виконується git команда для прибирання worktree. Для кожного осиротілого файлу опису видаляється відповідний файл. Повертається код виходу.
18
-
19
- ## Публічний API
20
-
21
- runWorktreeCli — Запускає команду для роботи з підкомандою worktree.
22
-
23
- ## Гарантії поведінки
24
-
25
- - Перехоплює помилки і не пропускає винятків назовні (fail-safe).
26
- - За невдачі повертає значення помилки (`false`/`null`/`Err`) замість генерування винятку чи паніки.
27
- - Не звертається до мережі.
@@ -1,42 +0,0 @@
1
- ---
2
- type: JS Module
3
- title: worktree.mjs
4
- resource: npm/scripts/lib/worktree.mjs
5
- docgen:
6
- crc: ffcdbca5
7
- ---
8
-
9
- Файл містить детерміновану логіку для обробки гілок у `worktree-tool`, забезпечуючи безпечне перетворення імен гілок та створення описових файлів для `worktree`. Він використовується для генерації структури `.worktrees/` та ідентифікації неактивних описових файлів, що необхідно для операцій з видаленням. Це ключовий компонент для забезпечення консистентності та зручності роботи з `worktree-tool` безпосередньо з файловою системою.
10
-
11
- ## Поведінка
12
-
13
- sanitizeBranch: Перетворює ім’я git-гілки на безпечне ім’я каталогу/файла для `.worktrees/`, замінюючи небезпечні символи на дефіс.
14
- firstFreeBranch: Знаходить першу вільну назву гілки, починаючи з заданої, і повертає її.
15
- worktreePaths: Створює абсолютні шляхи до checkout і файла-опису для заданої гілки.
16
- buildDescription: Генерує markdown-вміст файла-опису `.worktrees/<name>.md` на основі наданих параметрів.
17
- buildDirtyNotice: Створює повідомлення про незакомічені зміни основного дерева, якщо їх є, обмежуючи кількість відображених файлів.
18
- findOrphanDescFiles: Знаходить `.md`-описи, які не мають відповідного зареєстрованого worktree-checkout.
19
-
20
- ## Публічний API
21
-
22
- - sanitizeBranch — Перетворює ім'я гілки на безпечне ім'я для каталогу/файлу.
23
- - firstFreeBranch — Знаходить першу вільну назву гілки, використовуючи суфікси `base`, `base2`, `base3` тощо.
24
- - worktreePaths — Визначає шляхи для checkout гілки та файлу опису.
25
- - buildDescription — Генерує текст опису для файлу опису worktree.
26
- - buildDirtyNotice — Виводить повідомлення про незакомічені зміни, які не включені у worktree.
27
- - findOrphanDescFiles — Знаходить `.md`-описи, що не мають відповідного worktree-checkout.
28
-
29
- ## Гарантії поведінки
30
-
31
- - `sanitizeBranch` повертає строку, безпечну для використання в шляхах файлової системи.
32
- - `sanitizeBranch` не змінює вхідну строку.
33
- - `worktreePaths` повертає масив з двох строк, що представляють шлях до checkout та файлу опису.
34
- - `worktreePaths` гарантує, що обидва шляхи є дійсними.
35
- - `buildDescription` повертає строку, що відповідає конвенції `worktree.mdc`.
36
- - `buildDescription` не змінює вхідну строку.
37
- - `findOrphanDescFiles` повертає масив з рядків, що представляють шляхи до файлів опису.
38
- - `findOrphanDescFiles` гарантує, що всі рядки в масиві є дійсними шляхами файлів.
39
- - Функції не викликають жодних побічних ефектів, що впливають на стан файлової системи.
40
- - Функції не взаємодіють з Git або будь-якими іншими системами контролю версій.
41
- - Результат роботи функцій не залежить від будь-яких зовнішніх факторів.
42
- - Функції не використовують жодного кешу.
@@ -1,33 +0,0 @@
1
- ---
2
- type: JS Module
3
- title: run-fix-check.mjs
4
- resource: npm/scripts/lib/fix/run-fix-check.mjs
5
- docgen:
6
- crc: 76874730
7
- model: omlx/gemma-4-e4b-it-OptiQ-4bit
8
- score: 100
9
- ---
10
-
11
- Викликає конформність-фазу `lint` (read-only), движок (`orchestrator.mjs`, `t0.mjs`) та PostToolUse-хук. Перевірка конформності виконується як пряма функція, без зовнішньої обгортки через `subprocess`. Ізоляція на рівні кожного правила зберігається: кожен файл `rules/<id>/fix.mjs` все ще запускається окремим процесом `bun` (crash-isolation). Селекція активних правил — єдине джерело: `resolveCheckRuleIds` за `.n-cursor.json`; per-rule whitelist у спавнених процесах прибрано як дубль.
12
-
13
- ## Поведінка
14
-
15
- 1. Визначається наявність інструменту `conftest`.
16
- 2. Отримується список усіх доступних ідентифікаторів правил з каталогу правил.
17
- 3. Визначається список ідентифікаторів правил для прогону (`resolveCheckRuleIds`), де `.n-cursor.json` — єдине джерело правди:
18
- а. Якщо надано явний список правил — він валідується проти доступних і звужується до активних (вимкнене правило не вмикається навіть на явний запит).
19
- б. Якщо явного списку нема й конфіг є — беруться активні правила конфіга (`available ∩ enabled`); `.cursor/rules/*.mdc` ігнорується (фікс дрейфу «enabled, але .mdc нема»).
20
- в. Якщо конфіга нема (open-by-default debug) — fallback на скан `.cursor/rules/*.mdc`.
21
- 4. Якщо визначено ідентифікатори правил для прогону, для кожного ідентифікатора запускається окремий процес `bun` з файлом `fix.mjs` відповідного правила.
22
- 5. Захоплюється вивід кожного процесу.
23
- 6. Підраховується загальна кількість правил, що не пройшли перевірку.
24
- 7. Повертається результат, що містить загальну кількість перевірених правил, кількість невдалих перевірок та детальний список результатів для кожного правила.
25
-
26
- ## Публічний API
27
-
28
- runFixCheck — Визначає відповідність коду заданим правилам, виконуючи перевірку без внесення змін.
29
-
30
- ## Гарантії поведінки
31
-
32
- - Read-only: файл не виконує операцій запису у файлову систему.
33
- - Не звертається до мережі.