@nitra/cursor 1.8.75 → 1.8.79

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/mdc/docker.mdc CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Dockerfile — lint-docker / hadolint; перевірка check-docker
3
- version: '1.6'
3
+ version: '1.7'
4
4
  globs: "**/Dockerfile*"
5
5
  alwaysApply: false
6
6
  ---
@@ -103,14 +103,19 @@ jobs:
103
103
 
104
104
  1. **`bun run lint-docker`** — **`run-docker.mjs`**: **`Dockerfile`** та **`*.Dockerfile`** (див. **`lint-docker`**); у CI встанови hadolint (приклад у workflow).
105
105
  2. **`npx @nitra/cursor check docker`** — **`check-docker.mjs`**, виклик hadolint як у **`docker-hadolint.mjs`** (**`PATH`** або **`docker run`** з **`hadolint/hadolint:v2.12.0`**).
106
- 3. Кореневий **`.hadolint.yaml`**: вимкнення правил, trusted registries — [документація](https://github.com/hadolint/hadolint#configure).
106
+ 3. Кореневий **`.hadolint.yaml`**: вимкнення правил, trusted registries — [документація](https://github.com/hadolint/hadolint#configure). Щоб не додавати **`# hadolint ignore=DL3007`** у кожному **`FROM`** з **`:latest`**, у корені репозиторію задати глобально:
107
+
108
+ ```yaml title=".hadolint.yaml"
109
+ ignored:
110
+ - DL3007
111
+ ```
107
112
 
108
113
  Якщо немає файлів у межах відповідного набору (**`lint-docker`** або **`check docker`**) — перевірка пропускається (exit 0).
109
114
 
110
115
  ## Агентам
111
116
 
112
117
  - Після правок у Dockerfile проганяй **`bun run lint-docker`** і/або **`check docker`**.
113
- - Винятки: **`# hadolint ignore=DL3008`** (або інший код) у Dockerfile або правила в **`.hadolint.yaml`**.
118
+ - Винятки: **`# hadolint ignore=DL3008`** (або інший код) у Dockerfile або **`ignored`** у **`.hadolint.yaml`** (наприклад **DL3007** для **`:latest`** — див. вище).
114
119
  - Образи на базі Bun — див. **`n-bun.mdc`**.
115
120
 
116
121
  ## Редактор
@@ -8,7 +8,7 @@ version: '1.2'
8
8
 
9
9
  - **Джерело правил:** перед тим як писати або суттєво змінювати **`.css`**, **`.scss`** або стилі в **`.vue`**, переглянь у корені проєкту (і в релевантних пакетах монорепо, якщо є) поле **`stylelint`** у **`package.json`** (зокрема `extends`), наявні **`.stylelintrc.*`**, **`stylelint.config.*`** та **`.stylelintignore`**. Не покладайся на «типові» правила stylelint з пам’яті — дотримуйся **проєктного** **`@nitra/stylelint-config`** і будь-яких локальних доповнень у репозиторії.
10
10
  - **Форматування** узгоджуй з **`n-js-format.mdc`** (oxfmt / `.oxfmtrc.json` для css, scss тощо), щоб форматер і stylelint не суперечили один одному.
11
- - **Запуск stylelint:** лише **`npx stylelint`** (у **`lint-style`**, у CI, вручну). Не використовуй **`bunx stylelint`** і не запускай **stylelint** напряму без **`npx`**. Після змін запускай **`bun run lint-style`** і виправляй усе, що лишилось після auto-fix; за потреби — повний набір `lint-*` (навичка **`n-fix`**).
11
+ - **Запуск stylelint:** лише **`npx stylelint`**. Локально — через скрипт **`lint-style`** (`bun run lint-style`); у **GitHub Actions** у кроці **`run`** викликай `npx stylelint '**/*.{css,scss,vue}' --fix` напряму (не через **`bun run lint-style`**). Не використовуй **`bunx stylelint`**. Після змін запускай **`bun run lint-style`** і виправляй усе, що лишилось після auto-fix; за потреби — повний набір `lint-*` (навичка **`n-fix`**).
12
12
  - **Не розширюй винятки:** не додавай зайві **`stylelint-disable`** без потреби; краще підлаштувати стилі під правила проєкту.
13
13
 
14
14
  **VSCode:** у **`.vscode/extensions.json`** рекомендуй **`stylelint.vscode-stylelint`**. У **`.vscode/settings.json`** вимкни вбудовану валідацію CSS/SCSS/Less і увімкни явні code actions:
@@ -44,7 +44,7 @@ version: '1.2'
44
44
  },
45
45
  ```
46
46
 
47
- Додай **`.github/workflows/lint-style.yml`** (лише **`.yml`**, **`ga.mdc`**): після **`checkout`** — локальний composite **`setup-bun-deps`**, далі **`bun run lint-style`** (у скрипті вже **`npx stylelint`**). **Не** дублюй окремі кроки **`setup-node`** / **`oven-sh/setup-bun`** / кеш / **`npm install`**.
47
+ Додай **`.github/workflows/lint-style.yml`** (лише **`.yml`**, **`ga.mdc`**): після **`checkout`** — локальний composite **`setup-bun-deps`**, далі `npx stylelint '**/*.{css,scss,vue}' --fix` у кроці **`run`**. **Не** дублюй окремі кроки **`setup-node`** / **`oven-sh/setup-bun`** / кеш / **`npm install`**.
48
48
 
49
49
  ```yaml title=".github/workflows/lint-style.yml"
50
50
  name: StyleLint
@@ -85,7 +85,7 @@ jobs:
85
85
  - uses: ./.github/actions/setup-bun-deps
86
86
 
87
87
  - name: StyleLint
88
- run: bun run lint-style
88
+ run: npx stylelint '**/*.{css,scss,vue}' --fix
89
89
  ```
90
90
 
91
91
  У корені проєкту має бути **`.stylelintignore`**:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nitra/cursor",
3
- "version": "1.8.75",
3
+ "version": "1.8.79",
4
4
  "description": "CLI для завантаження cursor-правил (префікс n-) у локальний репозиторій",
5
5
  "keywords": [
6
6
  "cli",
@@ -2,7 +2,7 @@
2
2
  * Перевіряє CSS/SCSS лінт за правилом style-lint.mdc.
3
3
  *
4
4
  * Очікування: `@nitra/stylelint-config`, `lint-style` через `npx stylelint`, `.stylelintignore`,
5
- * workflow `lint-style.yml` (у `run` — `npx stylelint` або `bun run lint-style`), VSCode stylelint,
5
+ * workflow `lint-style.yml` (у `run` — лише `npx stylelint`, не `bun run lint-style`), VSCode stylelint,
6
6
  * `css.validate` / `scss.validate` / `less.validate`: false.
7
7
  */
8
8
  import { existsSync } from 'node:fs'
@@ -60,13 +60,13 @@ export async function check() {
60
60
  const content = await readFile('.github/workflows/lint-style.yml', 'utf8')
61
61
  pass('lint-style.yml існує')
62
62
  const root = parseWorkflowYaml(content)
63
- const ok = root
64
- ? anyRunStepIncludesStylelint(root)
65
- : content.includes('npx stylelint') || content.includes('bun run lint-style')
63
+ const ok = root ? anyRunStepIncludesStylelint(root) : content.includes('npx stylelint')
66
64
  if (ok) {
67
- pass('lint-style.yml містить npx stylelint або bun run lint-style у кроці run')
65
+ pass('lint-style.yml містить npx stylelint у кроці run')
68
66
  } else {
69
- fail('lint-style.yml має містити npx stylelint або bun run lint-style у кроці run')
67
+ fail(
68
+ "lint-style.yml має викликати stylelint у CI через npx — наприклад: npx stylelint '**/*.{css,scss,vue}' --fix"
69
+ )
70
70
  }
71
71
  } else {
72
72
  fail('.github/workflows/lint-style.yml не існує — створи його')
@@ -341,11 +341,10 @@ export function anyRunStepIncludes(root, needle) {
341
341
  }
342
342
 
343
343
  /**
344
- * Чи викликається stylelint коректно: `npx stylelint` у run або `bun run lint-style`
345
- * (скрипт `lint-style` у package.json має містити `npx stylelint`).
344
+ * Чи викликається stylelint у workflow через `npx stylelint` у кроці `run` (вимога для CI).
346
345
  * @param {Record<string, unknown>} root корінь workflow
347
346
  * @returns {boolean} `true`, якщо умова виконана
348
347
  */
349
348
  export function anyRunStepIncludesStylelint(root) {
350
- return anyRunStepIncludes(root, 'npx stylelint') || anyRunStepIncludes(root, 'bun run lint-style')
349
+ return anyRunStepIncludes(root, 'npx stylelint')
351
350
  }