@nitra/cursor 12.8.4 → 12.8.6

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 (35) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/bin/n-cursor.js +8 -7
  3. package/package.json +1 -1
  4. package/rules/abie/js/env_dns.mdc +33 -0
  5. package/rules/abie/js/firebase_hosting.mdc +3 -0
  6. package/rules/abie/js/hc_pairing.mdc +23 -0
  7. package/rules/abie/js/http_route_base.mdc +25 -0
  8. package/rules/abie/js/ua_http_route.mdc +47 -0
  9. package/rules/abie/js/ua_node_selector.mdc +27 -0
  10. package/rules/abie/main.mdc +11 -127
  11. package/rules/doc-files/js/docs/index.md +15 -15
  12. package/rules/js/docs/main.md +6 -6
  13. package/rules/js/js/docs/check.md +11 -10
  14. package/rules/js/js/docs/tooling.md +7 -7
  15. package/rules/js/js/docs/utils_imports.md +13 -12
  16. package/rules/test/js/docs/stryker_config.md +12 -12
  17. package/rules/test/js/docs/vitest-config-pool-forks.md +13 -7
  18. package/scripts/auto-rules.mjs +6 -6
  19. package/scripts/auto-skills.mjs +3 -3
  20. package/scripts/docs/auto-rules.md +17 -31
  21. package/scripts/docs/auto-skills.md +18 -163
  22. package/scripts/docs/sync-setup-bun-deps-action.md +6 -5
  23. package/scripts/lib/docs/inline-template-links.md +13 -293
  24. package/scripts/lib/docs/mirror-parity.md +9 -9
  25. package/scripts/lib/docs/rule-meta.md +12 -12
  26. package/scripts/lib/docs/skill-meta.md +9 -9
  27. package/scripts/lib/docs/timing-summary.md +6 -6
  28. package/scripts/lib/docs/worktree-notice.md +10 -8
  29. package/scripts/lib/inline-template-links.mjs +31 -0
  30. package/scripts/lib/mirror-parity.mjs +5 -3
  31. package/scripts/lib/rule-meta.mjs +6 -6
  32. package/scripts/lib/skill-meta.mjs +6 -6
  33. package/scripts/lib/worktree-notice.mjs +2 -2
  34. package/scripts/utils/docs/resolve-js-root.md +4 -4
  35. package/types/bin/n-cursor.d.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Парсер метаданих правила з `npm/rules/<id>/meta.json` (data-driven автодетект).
2
+ * Парсер метаданих правила з `npm/rules/<id>/main.json` (data-driven автодетект).
3
3
  *
4
- * `meta.json.auto` має один із чотирьох видів:
4
+ * `main.json.auto` має один із чотирьох видів:
5
5
  * - `"завжди"` → always-on;
6
6
  * - `["rule", …]` → активується, коли всі правила-залежності виявлені;
7
7
  * - `{ "glob": "<pat>" | [<pat>] }` → наявність файлів/каталогів за glob (OR);
@@ -20,7 +20,7 @@ export const RULE_ALWAYS = 'завжди'
20
20
  */
21
21
 
22
22
  /**
23
- * Нормалізує значення `meta.json.auto` у дискриміновану форму.
23
+ * Нормалізує значення `main.json.auto` у дискриміновану форму.
24
24
  * @param {unknown} value значення поля `auto`
25
25
  * @returns {RuleAutoSpec | null} `null` — формат не розпізнано (= opt-in)
26
26
  */
@@ -48,11 +48,11 @@ export function parseRuleAutoSpec(value) {
48
48
  return null
49
49
  }
50
50
 
51
- /** Допустимі значення `meta.json.lint` (вісь scope: чи детектор дробиться на changed-set). */
51
+ /** Допустимі значення `main.json.lint` (вісь scope: чи детектор дробиться на changed-set). */
52
52
  const LINT_SCOPES = new Set(['per-file', 'full'])
53
53
 
54
54
  /**
55
- * Нормалізує значення `meta.json.lint` у scope детектора.
55
+ * Нормалізує значення `main.json.lint` у scope детектора.
56
56
  * - `"per-file"` — детектор декомпозується на змінені файли (дельта vs origin);
57
57
  * - `"full"` — нероздільно крос-файловий (лише `--full` / CI).
58
58
  * Об'єктна форма `{scope, ci}` скасована: CI=`--read-only --full` ганяє все повністю,
@@ -65,7 +65,7 @@ export function parseRuleLintSpec(value) {
65
65
  }
66
66
 
67
67
  /**
68
- * Читає й парсить `meta.json` одного правила.
68
+ * Читає й парсить `main.json` одного правила.
69
69
  * @param {string} ruleDir абсолютний шлях до каталогу правила
70
70
  * @returns {Record<string, unknown> | null} обʼєкт або `null` (немає файлу / невалідний JSON / не-обʼєкт)
71
71
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Спільний парсер метаданих скіла з `npm/skills/<id>/meta.json`.
2
+ * Спільний парсер метаданих скіла з `npm/skills/<id>/main.json`.
3
3
  *
4
- * `meta.json` — єдине джерело правди для скіла замість колишнього `auto.md`:
4
+ * `main.json` — єдине джерело правди для скіла замість колишнього `auto.md`:
5
5
  * - `auto` — умова автоактивації (`"завжди"` | масив id правил), опційне;
6
6
  * - `worktree` — boolean: чи виконувати скіл в окремому git-worktree (один інстанс);
7
7
  * - `requireRoot` — boolean, опційне: чи скіл вимагає запуску з кореня репо.
@@ -24,8 +24,8 @@ export const SKILL_ALWAYS = 'завжди'
24
24
  */
25
25
 
26
26
  /**
27
- * Перетворює значення поля `auto` з `meta.json` у `SkillAutoSpec`.
28
- * @param {unknown} value значення `meta.json.auto`
27
+ * Перетворює значення поля `auto` з `main.json` у `SkillAutoSpec`.
28
+ * @param {unknown} value значення `main.json.auto`
29
29
  * @returns {SkillAutoSpec | null} `null` — формат не розпізнано (= opt-in)
30
30
  */
31
31
  export function parseSkillAutoSpec(value) {
@@ -43,7 +43,7 @@ export function parseSkillAutoSpec(value) {
43
43
  /**
44
44
  * Чи вимагає скіл запуску з кореня репо («активовано root-захист»). Єдина похідна
45
45
  * ознака: `worktree:true` (корінь гарантує worktree) АБО явний `requireRoot:true`.
46
- * @param {Record<string, unknown> | null} meta розпарсений `meta.json` (або null)
46
+ * @param {Record<string, unknown> | null} meta розпарсений `main.json` (або null)
47
47
  * @returns {boolean} true — скіл мутує проєкт і має стартувати з кореня
48
48
  */
49
49
  export function skillRequiresRoot(meta) {
@@ -51,7 +51,7 @@ export function skillRequiresRoot(meta) {
51
51
  }
52
52
 
53
53
  /**
54
- * Читає й парсить `meta.json` одного скіла.
54
+ * Читає й парсить `main.json` одного скіла.
55
55
  * @param {string} skillDir абсолютний шлях до каталогу скіла
56
56
  * @returns {Record<string, unknown> | null} розпарсений обʼєкт або `null` (немає файлу / невалідний JSON / не-обʼєкт)
57
57
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Вшивання worktree-інструкції у синкнутий `SKILL.md` (рішення D2 зі spec).
3
3
  *
4
- * Коли `meta.json.worktree === true`, скіл має виконуватись в окремому git-worktree
4
+ * Коли `main.json.worktree === true`, скіл має виконуватись в окремому git-worktree
5
5
  * і не паралелитись. Підказка адресована агенту, який читає `SKILL.md`, тож
6
6
  * вставляється в текст між стабільними маркерами — ре-синк ідемпотентний:
7
7
  * наявний блок замінюється, при `worktree:false` — видаляється.
@@ -159,7 +159,7 @@ function buildBlock(content) {
159
159
  /**
160
160
  * Вставляє / оновлює / видаляє worktree-блок у вмісті `SKILL.md`.
161
161
  * @param {string} content вміст `SKILL.md`
162
- * @param {boolean} enabled чи має бути блок (значення `meta.json.worktree`)
162
+ * @param {boolean} enabled чи має бути блок (значення `main.json.worktree`)
163
163
  * @returns {string} оновлений вміст (ідемпотентно)
164
164
  */
165
165
  export function injectWorktreeNotice(content, enabled) {
@@ -10,17 +10,17 @@ docgen:
10
10
 
11
11
  ## Огляд
12
12
 
13
- Визначає корінь JS-коду для проєктів, використовуючи `package.json` та `.n-cursor.json` як конфігураційні файли. Функція `resolveJsRoot` знаходить перший workspace (з підтримкою glob-патернів типу `cf/*`) для workspace-проєктів або корінь поточної директорії для single-package. Функція `resolveAllJsRoots` знаходить усі відповідні шляхи. Код свідомо ігнорує шляхи `.git` та `node_modules`. Ця утиліта є спільною для coverage-провайдера JS та test-концерну stryker_config (DRY).
13
+ Визначає корінь JS-коду в проєкті, відповідно до логіки для workspace-projects (перший workspace з підтримкою glob-патернів `cf/*`) або single-package (корінь cwd). Ця утиліта є спільною для coverage-провайдера JS та test-концерну `stryker_config` (DRY). Публічні функції дозволяють отримати один або повний список шляхів до всіх JS-коренів, при цьому свідомо виключаються каталоги `.git` та `node_modules`. Код спирається на конфігураційні файли `package.json` та `.n-cursor.json`.
14
14
 
15
15
  ## Поведінка
16
16
 
17
- resolveJsRoot повертає абсолютний шлях до першого JS-кореня проєкту, якщо він існує, або null, якщо кореневий package.json відсутній.
18
- resolveAllJsRoots повертає масив абсолютних шляхів до всіх JS-коренів проєкту, враховуючи визначення `workspaces` у кореневому package.json, ігноруючи каталоги `.git` та `node_modules`.
17
+ resolveJsRoot повертає абсолютний шлях до першого JS-кореня проєкту. Якщо кореневий `package.json` відсутній, повертає null.
18
+ resolveAllJsRoots повертає масив абсолютних шляхів до всіх JS-коренів проєкту. Ігнорує каталоги `.git` та `node_modules`.
19
19
 
20
20
  ## Публічний API
21
21
 
22
22
  resolveJsRoot — знаходить кореневий каталог JavaScript-проєкту.
23
- resolveAllJsRoots — повертає шляхи до коренів усіх JavaScript-проєктів у робочому просторі.
23
+ resolveAllJsRoots — повертає всі каталоги JavaScript-проєктів у робочому просторі.
24
24
 
25
25
  ## Гарантії поведінки
26
26
 
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- export {}
2
+ export {};