@nitra/cursor 1.11.6 → 1.11.8
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 +17 -0
- package/bin/n-cursor.js +5 -0
- package/package.json +1 -1
- package/skills/fix/SKILL.md +6 -10
package/CHANGELOG.md
CHANGED
|
@@ -4,12 +4,29 @@
|
|
|
4
4
|
|
|
5
5
|
Формат — [Keep a Changelog](https://keepachangelog.com/uk/1.1.0/), нумерація — [SemVer](https://semver.org/lang/uk/).
|
|
6
6
|
|
|
7
|
+
## [1.11.8] - 2026-05-15
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **`npm/bin/n-cursor.js::syncSkills`** — файл `auto.md` зі скілу більше **не** копіюється у `.cursor/skills/n-<id>/`. `auto.md` — це службова мета для CLI-сторони (`scripts/auto-skills.mjs` читає його з пакета, щоб вирішити, чи автоматично активувати скіл у `.n-cursor.json`), у проєкті він зайвий і лише засмічує `.cursor/skills/`. Додатково: якщо у `.cursor/skills/n-<id>/auto.md` вже лежить старий артефакт минулих синків, він прибирається при наступному `npx @nitra/cursor` (через `unlink`). Каталог-приймач лишається без `auto.md` — тільки `SKILL.md` (і будь-які інші файли скілу, якщо зʼявляться). Заголовний коментар у `npm/bin/n-cursor.js` оновлено відповідно.
|
|
12
|
+
|
|
13
|
+
## [1.11.7] - 2026-05-15
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **`npm/skills/fix/SKILL.md`** (+`.cursor/skills/n-fix/SKILL.md` синк) — `/n-fix` більше **не запускає** `bun run lint` і **не делегує** до `/n-lint`. Крок 6 (`bun run lint` з делегуванням, доданий у 1.11.6) повністю видалено; замість нього на початку SKILL.md додано секцію **«Скоуп»**, де явно зафіксовано: `/n-fix` опікується лише структурою проєкту (правила `.cursor/rules/` + `npx @nitra/cursor check`), а лінт-порушення у самому коді (ESLint/oxlint/jscpd/cspell/knip/sonarjs/stylelint) — поза скоупом і виправляються винятково через `/n-lint`. Кроки 7→6 і 8→7 переномеровано; остаточний пункт 7 додатково нагадує, що лінт-помилки не входять у критерій успіху `/n-fix`. Мета — щоб агент, що виконує `/n-fix`, не плутав свою задачу з `/n-lint` і не запускав важкий `bun run lint` без потреби; те, що діагностує `/n-lint`, виправляється там же, а не дублюється тут.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **`npm/tests/check-rule-fixtures.test.mjs`** — `nginxFixDir` оновлено з `rules/nginx-default-tpl/js/fixtures` на `rules/nginx-default-tpl/js/template/fixtures`. Після phase 2 concern-split фікстура `default.conf.template` переїхала всередину концерну `template/`, тест падав з `ENOENT no such file or directory`.
|
|
22
|
+
|
|
7
23
|
## [1.11.6] - 2026-05-15
|
|
8
24
|
|
|
9
25
|
### Changed
|
|
10
26
|
|
|
11
27
|
- **`npm/rules/npm-module/npm-module.mdc`** — переформульовано вимогу про тести й фікстури. Раніше правило вимагало тримати їх **поза** будь-яким шляхом з `"files"` (канонічно — у `npm/tests/`). Тепер тести/фікстури можуть лежати **поруч з кодом** усередині `"files"`-шляхів, але `"files"` обовʼязково має містити **негативні glob-патерни**, що виключають їх із tarball (`!**/*.test.*`, `!**/*.spec.*`, `!**/test-helpers.*`, `!**/fixtures/**`, `!**/__tests__/**`, опційно `!**/*_test.rego`). Це краще відповідає реальному layout пакета (co-located test-файли у `rules/<id>/js/<concern>/`) і прибирає роз'їзд правила з фактичним `npm/package.json`. Версію `.mdc` піднято до `1.12`.
|
|
12
28
|
- **`npm/rules/npm-module/js/package_structure/check.mjs::checkNoTestsInPublishedFiles`** — текст fail-повідомлення тепер однозначно радить додати негативний glob у `"files"`, без альтернативи «винеси за межі шляхів з "files"». Логіка перевірки (walk positive ∖ negative + класифікація test-style) не змінилась — пере-кваліфіковано лише підказку для агента й людини.
|
|
29
|
+
- **`npm/skills/fix/SKILL.md`** (+`.cursor/skills/n-fix/SKILL.md` синк), **`npm/rules/style-lint/style-lint.mdc`** — розмежовано ролі скілів: `/n-fix` відповідає за **структуру** проєкту (правила `.cursor/rules/` + `npx @nitra/cursor check`), `/n-lint` — за **чистоту коду** (`bun run lint`). Крок 6 у `n-fix` (перебір `lint-js`/`lint-text`/`lint-style`) замінено на одиничний `bun run lint` з делегуванням до `/n-lint` — лінт-логіку (auto-fix, sonarjs-рефакторинг, заборона паралельних запусків ESLint) `n-fix` більше не дублює. У `style-lint.mdc` cross-reference «повний набір `lint-*` (навичка `n-fix`)» оновлено на «`bun run lint` (навичка `/n-lint`)».
|
|
13
30
|
|
|
14
31
|
## [1.11.5] - 2026-05-15
|
|
15
32
|
|
package/bin/n-cursor.js
CHANGED
|
@@ -46,6 +46,8 @@
|
|
|
46
46
|
* skills/<id>/ (без префікса); у проєкті — .cursor/skills/n-<id>/ (префікс n-, як n-*.mdc).
|
|
47
47
|
* Якщо ключа skills немає, за замовчуванням підтягуються всі підкаталоги skills/ (лише імена без префікса n-).
|
|
48
48
|
* Зайві каталоги n-* у .cursor/skills, яких немає у списку, видаляються.
|
|
49
|
+
* Файл `auto.md` у скілі — джерело правди для auto-skills у CLI (`scripts/auto-skills.mjs`)
|
|
50
|
+
* і у проєкт не копіюється; раніше синхронізовані `auto.md` прибираються при наступному синку.
|
|
49
51
|
*
|
|
50
52
|
* Якщо в корені є package.json і в ньому ще немає \@nitra/cursor у devDependencies (і не оголошено
|
|
51
53
|
* в dependencies), CLI дописує devDependencies з діапазоном ^<version> поточного пакету — зручно після npx.
|
|
@@ -771,9 +773,12 @@ async function syncSkills(configSkills, bundledSkillsDir = BUNDLED_SKILLS_DIR) {
|
|
|
771
773
|
await mkdir(destDir, { recursive: true })
|
|
772
774
|
const files = await readdir(srcDir)
|
|
773
775
|
for (const file of files) {
|
|
776
|
+
if (file === 'auto.md') continue
|
|
774
777
|
const content = await readFile(join(srcDir, file), 'utf8')
|
|
775
778
|
await writeFile(join(destDir, file), content, 'utf8')
|
|
776
779
|
}
|
|
780
|
+
const stalePath = join(destDir, 'auto.md')
|
|
781
|
+
if (existsSync(stalePath)) await unlink(stalePath)
|
|
777
782
|
console.log(`✅`)
|
|
778
783
|
success++
|
|
779
784
|
} catch (error) {
|
package/package.json
CHANGED
package/skills/fix/SKILL.md
CHANGED
|
@@ -6,6 +6,10 @@ description: >-
|
|
|
6
6
|
|
|
7
7
|
# n-fix — автоматичне виправлення проєкту
|
|
8
8
|
|
|
9
|
+
## Скоуп
|
|
10
|
+
|
|
11
|
+
Цей скіл відповідає **лише за структуру** проєкту: щоб `.cursor/rules/` + `npx @nitra/cursor check` були задоволені (наявність конфігів, залежностей, скриптів, GitHub workflows, відсутність заборонених файлів). **Лінт-порушення у самому коді** (ESLint, oxlint, jscpd, cspell, knip, sonarjs, stylelint тощо) — **поза скоупом**; їх діагностує й виправляє **`/n-lint`** (`bun run lint`). Не запускай `bun run lint` із цього скілу і не намагайся виправляти його порушення тут — це задача `/n-lint`. Якщо `npx @nitra/cursor check` чистий, а `bun run lint` лишився червоним — запусти `/n-lint` окремо.
|
|
12
|
+
|
|
9
13
|
## Workflow
|
|
10
14
|
|
|
11
15
|
1. **Діагностика** — запусти перевірку (за замовчуванням лише правила з `AGENTS.md`, для яких є `check-*.mjs`; повний набір — явні аргументи: `npx @nitra/cursor check bun ga …`):
|
|
@@ -36,18 +40,10 @@ bun i
|
|
|
36
40
|
oxfmt .
|
|
37
41
|
```
|
|
38
42
|
|
|
39
|
-
6.
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
bun run lint
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Лінт-логіку (auto-fix, рефакторинг під `sonarjs/cognitive-complexity`, обмеження `cspell`/`jscpd`/`knip`, заборона паралельних запусків ESLint) **не дублюй** тут — вона повністю у скілі **`/n-lint`**. Цей скіл (`/n-fix`) відповідає лише за **структуру** проєкту (правила `.cursor/rules/` + `npx @nitra/cursor check`); за **чистоту коду** відповідає **`/n-lint`**.
|
|
46
|
-
|
|
47
|
-
7. **Верифікація** — перевір що все виправлено:
|
|
43
|
+
6. **Верифікація** — перевір що все виправлено:
|
|
48
44
|
|
|
49
45
|
```bash
|
|
50
46
|
npx @nitra/cursor check
|
|
51
47
|
```
|
|
52
48
|
|
|
53
|
-
|
|
49
|
+
7. **Результат** — всі `❌` від `npx @nitra/cursor check` мають стати `✅`. Якщо залишились `❌` — повтори кроки 3-6. Лінт-помилки від `bun run lint` тут **не виправляй** — вони на скіл `/n-lint`.
|