@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.
|
|
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 або
|
|
118
|
+
- Винятки: **`# hadolint ignore=DL3008`** (або інший код) у Dockerfile або **`ignored`** у **`.hadolint.yaml`** (наприклад **DL3007** для **`:latest`** — див. вище).
|
|
114
119
|
- Образи на базі Bun — див. **`n-bun.mdc`**.
|
|
115
120
|
|
|
116
121
|
## Редактор
|
package/mdc/style-lint.mdc
CHANGED
|
@@ -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`** (
|
|
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`**, далі
|
|
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:
|
|
88
|
+
run: npx stylelint '**/*.{css,scss,vue}' --fix
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
У корені проєкту має бути **`.stylelintignore`**:
|
package/package.json
CHANGED
|
@@ -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
|
|
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
|
|
65
|
+
pass('lint-style.yml містить npx stylelint у кроці run')
|
|
68
66
|
} else {
|
|
69
|
-
fail(
|
|
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
|
|
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')
|
|
349
|
+
return anyRunStepIncludes(root, 'npx stylelint')
|
|
351
350
|
}
|