@nitra/cursor 3.18.0 → 3.18.1
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 +6 -0
- package/package.json +1 -1
- package/rules/python/js/applies.mjs +30 -0
- package/rules/python/js/tooling.mjs +4 -3
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies-гейт правила `python` (python.mdc): правило застосовне, лише якщо в корені є
|
|
3
|
+
* `pyproject.toml`. Інакше CLI пропускає всі concerns (JS і policy) — інакше rego
|
|
4
|
+
* `python/package_json` хибно вимагає `scripts.lint-python` навіть для не-Python репо.
|
|
5
|
+
*
|
|
6
|
+
* JS тут — гейт на наявність кореневого `pyproject.toml`. Подальші FS-перевірки
|
|
7
|
+
* (`uv.lock`, `package.json`, `lint-python.yml`, заборона Poetry) — у `tooling.mjs`.
|
|
8
|
+
*/
|
|
9
|
+
import { existsSync } from 'node:fs'
|
|
10
|
+
import { join } from 'node:path'
|
|
11
|
+
|
|
12
|
+
import { createCheckReporter } from '../../../scripts/lib/check-reporter.mjs'
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @param {string} [cwd] корінь репозиторію (`process.cwd()` у звичайному прогоні)
|
|
16
|
+
* @returns {Promise<boolean>} `true` — правило застосовне; `false` — пропустити
|
|
17
|
+
*/
|
|
18
|
+
export function applies(cwd = process.cwd()) {
|
|
19
|
+
return Promise.resolve(existsSync(join(cwd, 'pyproject.toml')))
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Друкує короткий context-pass — самі перевірки виконують інші concerns.
|
|
24
|
+
* @returns {number} 0 — все ок (фактичні порушення повертають інші концерни)
|
|
25
|
+
*/
|
|
26
|
+
export function check() {
|
|
27
|
+
const reporter = createCheckReporter()
|
|
28
|
+
reporter.pass('pyproject.toml знайдено в корені — застосовую python.mdc')
|
|
29
|
+
return reporter.getExitCode()
|
|
30
|
+
}
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
* Перевіряє FS-вимоги правила python.mdc для Python-проєктів на uv.
|
|
3
3
|
*
|
|
4
4
|
* **Що тут лишилося** (FS-existence — не покривається conftest):
|
|
5
|
-
* - наявність `pyproject.toml` у корені (тригер правила);
|
|
6
5
|
* - наявність `uv.lock` поруч (uv-проєкт коммітить lock-файл);
|
|
7
6
|
* - наявність кореневого `package.json` (для `bun run lint-python`);
|
|
8
7
|
* - наявність `.github/workflows/lint-python.yml`;
|
|
9
8
|
* - заборона Poetry-артефактів `poetry.lock` / `poetry.toml` (міграція на uv).
|
|
10
9
|
*
|
|
10
|
+
* Гейт на `pyproject.toml` робить `applies.mjs` — CLI пропускає правило цілком
|
|
11
|
+
* без нього. Захисний early-return лишається тут лише для прямого виклику
|
|
12
|
+
* `check()` (тести/standalone) без `applies.mjs`-гейту.
|
|
13
|
+
*
|
|
11
14
|
* **Що покрила Rego** (`npx \@nitra/cursor fix python`):
|
|
12
15
|
* - `python/pyproject_toml/` — заборона `[tool.poetry]` + вимога PEP 621 `[project].name/version`;
|
|
13
16
|
* - `python/package_json/` — наявність скрипта `lint-python` у `package.json`;
|
|
@@ -31,10 +34,8 @@ export function check(cwd = process.cwd()) {
|
|
|
31
34
|
const { pass, fail } = reporter
|
|
32
35
|
|
|
33
36
|
if (!existsSync(join(cwd, 'pyproject.toml'))) {
|
|
34
|
-
pass('pyproject.toml не знайдено в корені — правило python не застосовне')
|
|
35
37
|
return reporter.getExitCode()
|
|
36
38
|
}
|
|
37
|
-
pass('pyproject.toml існує — застосовую python.mdc')
|
|
38
39
|
|
|
39
40
|
if (existsSync(join(cwd, 'uv.lock'))) {
|
|
40
41
|
pass('uv.lock є')
|