@7n/rules 1.29.3 → 1.31.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.
Files changed (70) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/package.json +1 -1
  3. package/rules/k8s/dremio_logging/dremio_logging.mdc +1 -0
  4. package/scripts/docs/index.md +15 -14
  5. package/scripts/docs/tool-pins-refresh.md +28 -0
  6. package/scripts/docs/upgrade-n-rules-and-install.md +2 -1
  7. package/scripts/lib/docs/ensure-tool.md +69 -25
  8. package/scripts/lib/ensure-tool.mjs +150 -12
  9. package/scripts/lib/lint-surface/detect.mjs +22 -0
  10. package/scripts/lib/lint-surface/docs/detect.md +4 -4
  11. package/scripts/lib/tool-pins.json +15 -0
  12. package/scripts/tool-pins-refresh.mjs +54 -0
  13. package/scripts/upgrade-n-rules-and-install.mjs +86 -19
  14. package/skills/taze/js/docs/orchestrate.md +1 -1
  15. package/rules/style/admin_table/admin_table.mdc +0 -88
  16. package/rules/style/admin_table/concern.json +0 -7
  17. package/rules/style/admin_table/docs/index.md +0 -9
  18. package/rules/style/admin_table/docs/main.md +0 -14
  19. package/rules/style/admin_table/main.mjs +0 -46
  20. package/rules/style/colors/colors.mdc +0 -21
  21. package/rules/style/colors/concern.json +0 -3
  22. package/rules/style/docs/index.md +0 -11
  23. package/rules/style/gap/concern.json +0 -7
  24. package/rules/style/gap/docs/index.md +0 -9
  25. package/rules/style/gap/docs/main.md +0 -15
  26. package/rules/style/gap/gap.mdc +0 -22
  27. package/rules/style/gap/main.mjs +0 -51
  28. package/rules/style/lint/concern.json +0 -7
  29. package/rules/style/lint/docs/fix-lint.md +0 -29
  30. package/rules/style/lint/docs/index.md +0 -11
  31. package/rules/style/lint/docs/main.md +0 -29
  32. package/rules/style/lint/fix-lint.mjs +0 -66
  33. package/rules/style/lint/main.mjs +0 -68
  34. package/rules/style/main.json +0 -1
  35. package/rules/style/main.mdc +0 -12
  36. package/rules/style/package_json/concern.json +0 -9
  37. package/rules/style/package_json/docs/fix-package_json.md +0 -27
  38. package/rules/style/package_json/docs/index.md +0 -9
  39. package/rules/style/package_json/fix-package_json.mjs +0 -3
  40. package/rules/style/package_json/package_json.mdc +0 -18
  41. package/rules/style/package_json/package_json.rego +0 -31
  42. package/rules/style/package_json/template/package.json.snippet.json +0 -5
  43. package/rules/style/quasar/concern.json +0 -3
  44. package/rules/style/quasar/quasar.mdc +0 -7
  45. package/rules/style/quasar_fixes/concern.json +0 -7
  46. package/rules/style/quasar_fixes/docs/index.md +0 -9
  47. package/rules/style/quasar_fixes/docs/main.md +0 -16
  48. package/rules/style/quasar_fixes/main.mjs +0 -57
  49. package/rules/style/quasar_fixes/quasar_fixes.mdc +0 -32
  50. package/rules/style/tooling/concern.json +0 -14
  51. package/rules/style/tooling/docs/fix-tooling.md +0 -29
  52. package/rules/style/tooling/docs/index.md +0 -12
  53. package/rules/style/tooling/docs/main.md +0 -34
  54. package/rules/style/tooling/fix-tooling.mjs +0 -58
  55. package/rules/style/tooling/main.mjs +0 -73
  56. package/rules/style/tooling/tooling.mdc +0 -85
  57. package/rules/style/vscode_extensions/concern.json +0 -9
  58. package/rules/style/vscode_extensions/docs/fix-vscode_extensions.md +0 -25
  59. package/rules/style/vscode_extensions/docs/index.md +0 -11
  60. package/rules/style/vscode_extensions/fix-vscode_extensions.mjs +0 -1
  61. package/rules/style/vscode_extensions/template/extensions.json.snippet.json +0 -1
  62. package/rules/style/vscode_extensions/vscode_extensions.mdc +0 -13
  63. package/rules/style/vscode_extensions/vscode_extensions.rego +0 -13
  64. package/rules/style/vscode_settings/concern.json +0 -9
  65. package/rules/style/vscode_settings/docs/fix-vscode_settings.md +0 -27
  66. package/rules/style/vscode_settings/docs/index.md +0 -9
  67. package/rules/style/vscode_settings/fix-vscode_settings.mjs +0 -5
  68. package/rules/style/vscode_settings/template/settings.json.snippet.json +0 -5
  69. package/rules/style/vscode_settings/vscode_settings.mdc +0 -19
  70. package/rules/style/vscode_settings/vscode_settings.rego +0 -15
@@ -1,85 +0,0 @@
1
- ## Генерація та редагування стилів (Cursor і інші агенти)
2
-
3
- - **Джерело правил:** перед тим як писати або суттєво змінювати **`.css`**, **`.scss`** або стилі в **`.vue`**, переглянь у корені проєкту (і в релевантних пакетах монорепо, якщо є) поле **`stylelint`** у **`package.json`** (зокрема `extends`), наявні **`.stylelintrc.*`**, **`stylelint.config.*`** та **`.stylelintignore`**. Не покладайся на «типові» правила stylelint з пам'яті — дотримуйся **проєктного** **`@nitra/stylelint-config`** і будь-яких локальних доповнень у репозиторії.
4
- - **Форматування** узгоджуй з **`n-text.mdc`** (oxfmt / `.oxfmtrc.json` для css, scss тощо), щоб форматер і stylelint не суперечили один одному.
5
- - **Запуск stylelint:** лише через **`n-rules lint style`** (локально — з auto-fix; у CI — `--no-fix`, нуль мутацій). Під капотом — `npx stylelint`; **не** використовуй **`bunx stylelint`**. Після змін запускай **`n-rules lint style`** і виправляй усе, що лишилось після auto-fix; за потреби — повний прогін `n-rules lint --full`.
6
- - **Не розширюй винятки:** не додавай зайві **`stylelint-disable`** без потреби; краще підлаштувати стилі під правила проєкту.
7
-
8
- ## Канон налаштувань
9
-
10
- ### `package.json`
11
-
12
- - `stylelint.extends`: [package.json.snippet.json](./policy/package_json/template/package.json.snippet.json)
13
-
14
- Окремого `lint-style` скрипта немає — запуск через **`n-rules lint style`** (CI — `--no-fix`).
15
-
16
- ```json title="package.json"
17
- "devDependencies": {
18
- "@nitra/stylelint-config": "^1.4.0"
19
- },
20
- "stylelint": {
21
- "extends": "@nitra/stylelint-config"
22
- },
23
- ```
24
-
25
- У корені проєкту має бути **`.stylelintignore`**:
26
-
27
- ```text title=".stylelintignore"
28
- dist/
29
- ```
30
-
31
- ### `.vscode/extensions.json`
32
-
33
- - Канон `recommendations`: [extensions.json.snippet.json](./policy/vscode_extensions/template/extensions.json.snippet.json)
34
-
35
- ### `.vscode/settings.json`
36
-
37
- - Вимкнення вбудованої CSS-валідації VS Code: [settings.json.snippet.json](./policy/vscode_settings/template/settings.json.snippet.json)
38
-
39
- ### CI: `.github/workflows/lint-style.yml`
40
-
41
- - Канон: [lint-style.yml.snippet.yml](./policy/lint_style_yml/template/lint-style.yml.snippet.yml)
42
-
43
- Додай **`.github/workflows/lint-style.yml`** (лише **`.yml`**, **`ga.mdc`**): після **`checkout`** — локальний composite **`setup-bun-deps`**, далі `n-rules lint style --no-fix` у кроці **`run`**. **Не** дублюй окремі кроки **`setup-node`** / **`oven-sh/setup-bun`** / кеш / **`npm install`**.
44
-
45
- ```yaml title=".github/workflows/lint-style.yml"
46
- name: StyleLint
47
-
48
- on:
49
- push:
50
- branches:
51
- - dev
52
- - main
53
- paths:
54
- - '**/*.css'
55
- - '**/*.scss'
56
- - '**/*.vue'
57
-
58
- pull_request:
59
- branches:
60
- - dev
61
- - main
62
- paths:
63
- - '**/*.css'
64
- - '**/*.scss'
65
- - '**/*.vue'
66
-
67
- concurrency:
68
- group: ${{ github.ref }}-${{ github.workflow }}
69
- cancel-in-progress: true
70
-
71
- jobs:
72
- stylelint:
73
- runs-on: ubuntu-latest
74
- permissions:
75
- contents: read
76
- steps:
77
- - uses: actions/checkout@v6
78
- with:
79
- persist-credentials: false
80
-
81
- - uses: ./.github/actions/setup-bun-deps
82
-
83
- - name: StyleLint
84
- run: npx stylelint '**/*.{css,scss,vue}'
85
- ```
@@ -1,9 +0,0 @@
1
- {
2
- "$schema": "https://unpkg.com/@7n/rules/schemas/concern.json",
3
- "fixability": "config",
4
- "policy": {
5
- "files": {
6
- "single": ".vscode/extensions.json"
7
- }
8
- }
9
- }
@@ -1,25 +0,0 @@
1
- ---
2
- type: JS Module
3
- title: fix-vscode_extensions.mjs
4
- resource: npm/rules/style/vscode_extensions/fix-vscode_extensions.mjs
5
- docgen:
6
- crc: 3353fe17
7
- model: omlx/gemma-4-e4b-it-OptiQ-4bit
8
- tier: local-min
9
- score: 100
10
- issues: judge:inaccurate:0.99
11
- judgeModel: openai-codex/gpt-5.4-mini
12
- ---
13
-
14
- ## Огляд
15
-
16
- Файл ініціює процес інтеграції визначених шаблонів у розширення VS Code шляхом запуску зовнішнього скрипта. Цей скрипт забезпечує впровадження архітектурних патернів у ці розширення.
17
-
18
- ## Поведінка
19
-
20
- 1. Ініціює процес застосування визначених шаблонів до розширень VS Code.
21
- 2. Використовує зовнішній скрипт для додавання необхідних патернів до розширень.
22
-
23
- ## Гарантії поведінки
24
-
25
- - Read-only: не виконує операцій запису (ФС/БД).
@@ -1,11 +0,0 @@
1
- ---
2
- type: Directory Index
3
- title: npm/rules/style/vscode_extensions
4
- resource: npm/rules/style/vscode_extensions/
5
- ---
6
-
7
- # npm/rules/style/vscode_extensions
8
-
9
- | Файл | Тип |
10
- | ----------------------------------------------------- | --------- |
11
- | [fix-vscode_extensions.mjs](fix-vscode_extensions.md) | JS Module |
@@ -1 +0,0 @@
1
- export { patterns } from '../../../scripts/lib/fix/vscode-ext-add.mjs'
@@ -1 +0,0 @@
1
- { "recommendations": ["stylelint.vscode-stylelint"] }
@@ -1,13 +0,0 @@
1
- ## .vscode/extensions.json: розширення для stylelint
2
-
3
- Rego-пакет: `style_lint.vscode_extensions`
4
-
5
- Цільовий файл: `.vscode/extensions.json`
6
-
7
- Перевіряє, що масив `recommendations` містить усі записи з канонічного template (subset-check). Додаткові розширення поза списком — дозволені.
8
-
9
- Канонічний template: [extensions.json.snippet.json](./template/extensions.json.snippet.json)
10
-
11
- **✓ Правильно** — `recommendations` містить `"stylelint.vscode-stylelint"` (може бути і більше елементів).
12
-
13
- **✗ Неправильно** — `recommendations` відсутній або не містить `"stylelint.vscode-stylelint"`.
@@ -1,13 +0,0 @@
1
- # Перевірка `.vscode/extensions.json` для style (style.mdc).
2
- #
3
- # Канон надходить через --data: { "template": { "snippet": ... } }
4
- # Структура --data сформована з template/extensions.json.snippet.json.
5
- package style.vscode_extensions
6
-
7
- import rego.v1
8
-
9
- deny contains msg if {
10
- some rec in data.template.snippet.recommendations
11
- not rec in {r | some r in object.get(input, "recommendations", [])}
12
- msg := sprintf(".vscode/extensions.json: recommendations має містити %q (style.mdc)", [rec])
13
- }
@@ -1,9 +0,0 @@
1
- {
2
- "$schema": "https://unpkg.com/@7n/rules/schemas/concern.json",
3
- "fixability": "config",
4
- "policy": {
5
- "files": {
6
- "single": ".vscode/settings.json"
7
- }
8
- }
9
- }
@@ -1,27 +0,0 @@
1
- ---
2
- type: JS Module
3
- title: fix-vscode_settings.mjs
4
- resource: npm/rules/style/vscode_settings/fix-vscode_settings.mjs
5
- docgen:
6
- crc: eee71672
7
- model: openai-codex/gpt-5.4-mini
8
- tier: cloud-min
9
- score: 100
10
- issues: judge:inaccurate:0.98
11
- judgeModel: openai-codex/gpt-5.4-mini
12
- ---
13
-
14
- ## Огляд
15
-
16
- `patterns` описує узгоджені шаблони для `settings.json` і визначає, які значення в ньому мають відповідати очікуваному формату. Це потрібно, щоб конфіг лишався передбачуваним і однаково трактувався в різних місцях, де його використовують.
17
-
18
- ## Поведінка
19
-
20
- 1. `patterns` описує набір правил для приведення `.vscode/settings.json` до узгодженого стану з шаблонним стилем проєкту.
21
- 2. На основі цього набору система знаходить конфігурацію `settings.json` і підтягує її в механізм виправлення, щоб зберігати єдиний формат налаштувань у робочому середовищі.
22
- 3. Результат роботи `patterns` використовується як джерело стандарту для перевірки та вирівнювання вмісту `settings.json` без ручного втручання.
23
- 4. Модуль не змінює файлову систему чи бази даних; він лише надає опис поведінки для подальшого застосування.
24
-
25
- ## Гарантії поведінки
26
-
27
- - Read-only: не виконує операцій запису (ФС/БД).
@@ -1,9 +0,0 @@
1
- ---
2
- type: Directory Index
3
- title: npm/rules/style/vscode_settings
4
- resource: npm/rules/style/vscode_settings/
5
- ---
6
-
7
- | Файл | Тип |
8
- | ------------------------------------------------- | --------- |
9
- | [fix-vscode_settings.mjs](fix-vscode_settings.md) | JS Module |
@@ -1,5 +0,0 @@
1
- import { createTemplateFixPattern } from '../../../scripts/lib/fix/template-deep-merge.mjs'
2
-
3
- export const patterns = [
4
- createTemplateFixPattern({ id: 'style-vscode_settings-template', targetPath: '.vscode/settings.json' })
5
- ]
@@ -1,5 +0,0 @@
1
- {
2
- "css.validate": false,
3
- "less.validate": false,
4
- "scss.validate": false
5
- }
@@ -1,19 +0,0 @@
1
- ## .vscode/settings.json: вимкнення вбудованих CSS/SCSS/Less валідаторів
2
-
3
- Rego-пакет: `style_lint.vscode_settings`
4
-
5
- Цільовий файл: `.vscode/settings.json`
6
-
7
- Leaf-by-leaf walker: перевіряє кожен ключ з template — його значення у `settings.json` має точно збігатися. Додаткові ключі у файлі — дозволені.
8
-
9
- Канонічний template: [settings.json.snippet.json](./template/settings.json.snippet.json)
10
-
11
- Обов'язкові значення:
12
-
13
- - `"css.validate": false`
14
- - `"less.validate": false`
15
- - `"scss.validate": false`
16
-
17
- **✓ Правильно** — усі три ключі присутні зі значенням `false`; можуть бути й інші ключі.
18
-
19
- **✗ Неправильно** — будь-який з ключів відсутній, має значення `true` або рядок (`"off"`).
@@ -1,15 +0,0 @@
1
- # Перевірка `.vscode/settings.json` для style (style.mdc).
2
- #
3
- # Канон надходить через --data: { "template": { "snippet": ... } }
4
- # Структура --data сформована з template/settings.json.snippet.json.
5
- # Top-level літеральні keys — leaf-by-leaf walker.
6
- package style.vscode_settings
7
-
8
- import rego.v1
9
-
10
- deny contains msg if {
11
- some key, expected_value in data.template.snippet
12
- actual := object.get(input, key, null)
13
- actual != expected_value
14
- msg := sprintf(".vscode/settings.json: \"%s\" має бути %v (style.mdc)", [key, expected_value])
15
- }