@nitra/cursor 8.0.0 → 9.1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [9.1.0] - 2026-06-14
4
+
5
+ ### Changed
6
+
7
+ - rules/lint/ home: оркестратор lint-cli.mjs → npm/rules/lint/js/orchestrate.mjs, rules/lint зареєстровано як правило (meta.json + no-op fix.mjs); движок лишається в scripts/lib/fix (spec consolidation §7)
8
+
9
+ ## [9.0.0] - 2026-06-14
10
+
11
+ ### Removed
12
+
13
+ - Повністю видалено скіл /n-fix (раніше делегат): функціонал у /n-lint. Прибрано npm/skills/fix, дзеркала .cursor/skills/n-fix + .claude/commands/n-fix.md, запис у CLAUDE.md; auto-skills тести оновлено
14
+
3
15
  ## [8.0.0] - 2026-06-14
4
16
 
5
17
  ### Changed
package/bin/n-cursor.js CHANGED
@@ -113,7 +113,7 @@ import { runRenameYamlExtensionsCli } from './rename-yaml-extensions.mjs'
113
113
  import { runSkillsCli } from '../scripts/skills-cli.mjs'
114
114
  import { runWorktreeCli } from '../scripts/worktree-cli.mjs'
115
115
  import { syncSetupBunDepsAction } from '../scripts/sync-setup-bun-deps-action.mjs'
116
- import { runLint } from '../scripts/lint-cli.mjs'
116
+ import { runLint } from '../rules/lint/js/orchestrate.mjs'
117
117
  import { formatTimingSummary } from '../scripts/lib/timing-summary.mjs'
118
118
  import { ensureHkInstall, ensureTool } from '../scripts/lib/ensure-tool.mjs'
119
119
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nitra/cursor",
3
- "version": "8.0.0",
3
+ "version": "9.1.0",
4
4
  "description": "CLI для завантаження cursor-правил (префікс n-) у локальний репозиторій",
5
5
  "keywords": [
6
6
  "cli",
@@ -0,0 +1,18 @@
1
+ import { isRunAsCli, runRuleCli } from '../../scripts/lib/run-rule-cli.mjs'
2
+ import { runStandardRule } from '../../scripts/lib/run-standard-rule.mjs'
3
+
4
+ /**
5
+ * Правило `lint` — дім lint-оркестратора (`js/orchestrate.mjs`). Самого по собі правила
6
+ * для перевірки немає (немає check-concern-ів/policy), тож `run` — no-op (повертає 0
7
+ * через runStandardRule, який не знаходить жодного concern). fix.mjs обов'язковий за
8
+ * контрактом усіх правил (`tests/fix-mjs-contract.test.mjs`).
9
+ * @param {import('../../scripts/lib/run-standard-rule.mjs').RuleContext} [ctx] контекст прогону
10
+ * @returns {Promise<number>} 0 — OK
11
+ */
12
+ export function run(ctx) {
13
+ return runStandardRule(import.meta.dirname, ctx)
14
+ }
15
+
16
+ if (isRunAsCli(import.meta.url)) {
17
+ process.exitCode = await runRuleCli(import.meta.dirname)
18
+ }
@@ -17,10 +17,11 @@ import { fileURLToPath } from 'node:url'
17
17
  import { spawnSync } from 'node:child_process'
18
18
  import { cwd as processCwd } from 'node:process'
19
19
 
20
- import { parseRuleLintSpec, readRuleMetaRaw } from './lib/rule-meta.mjs'
21
- import { collectChangedFilesSince, resolveChangedBase } from './lib/changed-files.mjs'
20
+ import { parseRuleLintSpec, readRuleMetaRaw } from '../../../scripts/lib/rule-meta.mjs'
21
+ import { collectChangedFilesSince, resolveChangedBase } from '../../../scripts/lib/changed-files.mjs'
22
22
 
23
- const PACKAGE_ROOT = dirname(dirname(fileURLToPath(import.meta.url)))
23
+ // Цей файл: npm/rules/lint/js/orchestrate.mjs → PACKAGE_ROOT = npm (чотири dirname угору).
24
+ const PACKAGE_ROOT = dirname(dirname(dirname(dirname(fileURLToPath(import.meta.url)))))
24
25
  const RULES_DIR = join(PACKAGE_ROOT, 'rules')
25
26
  const N_CURSOR_BIN = join(PACKAGE_ROOT, 'bin', 'n-cursor.js')
26
27
 
@@ -37,7 +38,7 @@ const N_CURSOR_BIN = join(PACKAGE_ROOT, 'bin', 'n-cursor.js')
37
38
  */
38
39
  async function runConformance(cwd, readOnly, log, filter = []) {
39
40
  if (!readOnly) {
40
- const { runOrchestratorCli } = await import('./lib/fix/orchestrator.mjs')
41
+ const { runOrchestratorCli } = await import('../../../scripts/lib/fix/orchestrator.mjs')
41
42
  return runOrchestratorCli(filter, cwd)
42
43
  }
43
44
  const r = spawnSync('bun', [N_CURSOR_BIN, '_fix-check', ...filter], { cwd, encoding: 'utf8', timeout: 600_000 })
@@ -0,0 +1 @@
1
+ { "auto": "завжди" }
@@ -1,22 +0,0 @@
1
- ---
2
- name: n-fix
3
- description: >-
4
- DEPRECATED — використовуй /n-lint. fix злито в lint: `n-cursor lint` тепер і
5
- детектить, і виправляє (конформність + лінтери) за один прохід.
6
- ---
7
-
8
- # n-fix — DEPRECATED (делегат на /n-lint)
9
-
10
- Команду `n-cursor fix` **видалено**: рух-движок конформності (convergence-loop /
11
- check-gate / Tier0 / LLM) поглинуто в `lint` (спека
12
- `docs/specs/2026-06-14-lint-orchestrator-fix-readonly-unification-design.md`).
13
-
14
- **Використовуй `/n-lint`** замість цього скіла:
15
-
16
- - `n-cursor lint` — дельта vs origin, **fix за замовчуванням** (лінтери на змінених файлах);
17
- - `n-cursor lint --full` — весь репо + **конформність** (колишній `fix`: конфіги/файли/воркфлоу
18
- через convergence-движок);
19
- - `n-cursor lint --read-only [--full]` — лише детект, нуль мутацій (CI / pre-commit);
20
- - `n-cursor lint <rule>` — конформність одного правила (колишній `fix <rule>`).
21
-
22
- Цей скіл лишено як тонкий делегат до наступного major; уся логіка — у `/n-lint`.
@@ -1 +0,0 @@
1
- { "auto": "завжди", "worktree": true, "orchestrator": true }