@nitra/cursor 12.8.9 → 12.10.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.
- package/.claude-template/settings.template.json +1 -23
- package/CHANGELOG.md +14 -1
- package/bin/n-cursor.js +21 -48
- package/docs/stryker.config.md +0 -2
- package/lib/docs/llm.md +16 -21
- package/lib/docs/omlx.md +20 -25
- package/lib/llm.mjs +25 -7
- package/lib/omlx.mjs +10 -3
- package/package.json +5 -5
- package/rules/abie/docs/index.md +0 -1
- package/rules/abie/docs/main.md +0 -2
- package/rules/abie/lib/docs/http-route.md +9 -12
- package/rules/abie/lib/http-route.mjs +3 -0
- package/rules/abie/main.mdc +0 -22
- package/rules/abie/policy/health_check_policy/health_check_policy.mdc +3 -1
- package/rules/abie/policy/health_check_policy/health_check_policy.rego +27 -0
- package/rules/adr/docs/index.md +0 -1
- package/rules/adr/docs/main.md +0 -2
- package/rules/adr/js/madr_format.mdc +13 -1
- package/rules/adr/main.mdc +0 -9
- package/rules/bun/docs/index.md +0 -1
- package/rules/bun/docs/main.md +0 -2
- package/rules/bun/main.mdc +1 -15
- package/rules/bun/policy/package_json/package_json.rego +12 -0
- package/rules/capacitor/docs/index.md +0 -1
- package/rules/capacitor/docs/main.md +0 -2
- package/rules/capacitor/main.mdc +0 -6
- package/rules/changelog/docs/index.md +0 -1
- package/rules/changelog/docs/main.md +0 -2
- package/rules/changelog/js/agent-workflow.mdc +1 -1
- package/rules/changelog/js/consistency.mjs +3 -3
- package/rules/changelog/js/docs/consistency.md +18 -23
- package/rules/changelog/main.mdc +0 -5
- package/rules/ci4/docs/index.md +0 -1
- package/rules/ci4/docs/main.md +0 -2
- package/rules/ci4/main.mdc +0 -5
- package/rules/doc-files/docs/index.md +0 -1
- package/rules/doc-files/docs/main.md +7 -11
- package/rules/doc-files/js/docs/docgen-crc.md +0 -2
- package/rules/doc-files/js/docs/docgen-extract.md +0 -2
- package/rules/doc-files/js/docs/docgen-files-batch.md +0 -2
- package/rules/doc-files/js/docs/docgen-gen.md +0 -2
- package/rules/doc-files/js/docs/docgen-judge-measure.md +0 -2
- package/rules/doc-files/js/docs/docgen-judge.md +0 -2
- package/rules/doc-files/js/docs/docgen-scan.md +0 -2
- package/rules/doc-files/js/docs/run-lint.md +0 -2
- package/rules/doc-files/main.mjs +2 -3
- package/rules/docker/docs/index.md +0 -1
- package/rules/docker/docs/main.md +0 -2
- package/rules/docker/js/docs/lint.md +0 -2
- package/rules/docker/lib/docs/docker-hadolint.md +0 -2
- package/rules/docker/main.mdc +1 -21
- package/rules/efes/docs/index.md +0 -1
- package/rules/efes/docs/main.md +0 -2
- package/rules/efes/main.mdc +0 -1
- package/rules/feedback/docs/index.md +0 -1
- package/rules/feedback/docs/main.md +0 -2
- package/rules/ga/docs/index.md +0 -1
- package/rules/ga/docs/main.md +0 -2
- package/rules/ga/js/docs/index.md +0 -1
- package/rules/ga/main.mdc +1 -31
- package/rules/graphql/docs/index.md +0 -1
- package/rules/graphql/docs/main.md +0 -2
- package/rules/graphql/main.mdc +0 -5
- package/rules/hasura/docs/index.md +0 -1
- package/rules/hasura/docs/main.md +0 -2
- package/rules/hasura/js/docs/index.md +1 -0
- package/rules/hasura/js/docs/migrations.md +28 -0
- package/rules/hasura/js/migrations.mjs +47 -0
- package/rules/hasura/main.mdc +1 -11
- package/rules/image-avif/docs/index.md +0 -1
- package/rules/image-avif/docs/main.md +0 -2
- package/rules/image-avif/main.mdc +1 -9
- package/rules/image-compress/docs/index.md +0 -1
- package/rules/image-compress/docs/main.md +0 -2
- package/rules/image-compress/js/docs/index.md +0 -1
- package/rules/image-compress/main.mdc +1 -9
- package/rules/js/docs/index.md +0 -1
- package/rules/js/docs/main.md +0 -2
- package/rules/js/js/dep-policy.mjs +91 -0
- package/rules/js/js/docs/check.md +0 -2
- package/rules/js/js/docs/dep-policy.md +34 -0
- package/rules/js/js/docs/index.md +5 -4
- package/rules/js/js/docs/tooling.md +0 -2
- package/rules/js/js/docs/utils_imports.md +0 -2
- package/rules/js/main.mdc +0 -31
- package/rules/js/policy/package_json/package_json.rego +16 -0
- package/rules/js-bun-db/docs/index.md +0 -1
- package/rules/js-bun-db/docs/main.md +0 -2
- package/rules/js-bun-db/js/docs/safety.md +18 -23
- package/rules/js-bun-db/js/safety.mjs +31 -3
- package/rules/js-bun-db/lib/bun-sql-scan.mjs +123 -0
- package/rules/js-bun-db/lib/docs/bun-sql-scan.md +37 -331
- package/rules/js-bun-db/main.mdc +1 -23
- package/rules/js-bun-redis/docs/index.md +0 -1
- package/rules/js-bun-redis/docs/main.md +0 -2
- package/rules/js-bun-redis/main.mdc +0 -5
- package/rules/js-mssql/docs/index.md +0 -1
- package/rules/js-mssql/docs/main.md +0 -2
- package/rules/js-mssql/main.mdc +0 -12
- package/rules/js-run/docs/index.md +0 -1
- package/rules/js-run/docs/main.md +0 -2
- package/rules/js-run/js/docs/runtime.md +15 -13
- package/rules/js-run/js/runtime.mjs +48 -4
- package/rules/js-run/main.mdc +0 -25
- package/rules/k8s/docs/index.md +0 -1
- package/rules/k8s/docs/main.md +0 -2
- package/rules/k8s/main.mdc +0 -45
- package/rules/nginx-default-tpl/docs/index.md +0 -1
- package/rules/nginx-default-tpl/docs/main.md +0 -2
- package/rules/nginx-default-tpl/main.mdc +0 -13
- package/rules/npm-module/docs/index.md +0 -1
- package/rules/npm-module/docs/main.md +0 -2
- package/rules/npm-module/js/docs/header_doc_pointer.md +0 -2
- package/rules/npm-module/js/docs/rule_meta.md +0 -2
- package/rules/npm-module/js/docs/skill_meta.md +0 -2
- package/rules/npm-module/main.mdc +1 -15
- package/rules/php/docs/index.md +0 -1
- package/rules/php/docs/main.md +0 -2
- package/rules/php/js/docs/index.md +0 -1
- package/rules/php/main.mdc +1 -9
- package/rules/python/docs/index.md +0 -1
- package/rules/python/docs/main.md +0 -2
- package/rules/python/js/docs/index.md +0 -1
- package/rules/python/main.mdc +1 -13
- package/rules/rego/docs/index.md +0 -1
- package/rules/rego/docs/main.md +0 -2
- package/rules/rego/js/docs/index.md +1 -1
- package/rules/rego/js/docs/tooling.md +26 -0
- package/rules/rego/js/tooling.mdc +14 -0
- package/rules/rego/js/tooling.mjs +24 -0
- package/rules/rego/main.mdc +0 -9
- package/rules/rego/policy/package_json/package_json.mdc +12 -0
- package/rules/rego/policy/package_json/package_json.rego +21 -0
- package/rules/rego/policy/package_json/target.json +4 -0
- package/rules/release/docs/index.md +0 -1
- package/rules/release/docs/main.md +0 -2
- package/rules/release/main.mdc +2 -2
- package/rules/rust/docs/index.md +0 -1
- package/rules/rust/docs/main.md +0 -2
- package/rules/rust/js/docs/index.md +0 -1
- package/rules/rust/main.mdc +1 -11
- package/rules/rust/policy/lint_rust_yml/lint_rust_yml.rego +24 -0
- package/rules/rust/policy/package_json/package_json.mdc +12 -0
- package/rules/rust/policy/package_json/package_json.rego +20 -0
- package/rules/rust/policy/package_json/target.json +4 -0
- package/rules/security/docs/index.md +0 -1
- package/rules/security/docs/main.md +0 -2
- package/rules/security/js/docs/index.md +0 -1
- package/rules/security/main.mdc +0 -13
- package/rules/style/docs/index.md +0 -1
- package/rules/style/docs/main.md +0 -2
- package/rules/style/js/docs/index.md +0 -1
- package/rules/style/js/docs/tooling.md +12 -10
- package/rules/style/js/tooling.mjs +8 -2
- package/rules/style/main.mdc +1 -23
- package/rules/style/policy/lint_style_yml/lint_style_yml.rego +5 -0
- package/rules/tauri/docs/index.md +0 -1
- package/rules/tauri/docs/main.md +0 -2
- package/rules/tauri/main.mdc +1 -11
- package/rules/test/docs/index.md +0 -1
- package/rules/test/docs/main.md +0 -2
- package/rules/test/js/docs/index.md +2 -0
- package/rules/test/js/docs/no-console-store-restore.md +30 -0
- package/rules/test/js/docs/sandbox-aware-test.md +30 -0
- package/rules/test/js/docs/stryker_config.md +0 -2
- package/rules/test/js/docs/vitest-config-pool-forks.md +0 -2
- package/rules/test/js/no-console-store-restore.mjs +88 -0
- package/rules/test/js/sandbox-aware-test.mjs +89 -0
- package/rules/test/main.mdc +1 -21
- package/rules/text/docs/index.md +0 -1
- package/rules/text/docs/main.md +0 -2
- package/rules/text/js/docs/cspell-fix.md +0 -2
- package/rules/text/js/docs/run-dotenv-linter.md +0 -2
- package/rules/text/js/docs/run-shellcheck.md +0 -2
- package/rules/text/js/docs/run-v8r.md +0 -2
- package/rules/text/main.mdc +0 -33
- package/rules/tool-surface/docs/index.md +0 -1
- package/rules/tool-surface/docs/main.md +0 -2
- package/rules/vue/docs/index.md +0 -1
- package/rules/vue/docs/main.md +0 -2
- package/rules/vue/main.mdc +0 -22
- package/rules/worktree/docs/index.md +0 -1
- package/rules/worktree/docs/main.md +0 -2
- package/scripts/docs/auto-rules.md +0 -2
- package/scripts/docs/auto-skills.md +0 -2
- package/scripts/docs/hook.md +30 -0
- package/scripts/docs/index.md +1 -2
- package/scripts/docs/post-tool-use-check.md +0 -2
- package/scripts/docs/sync-claude-config.md +1 -3
- package/scripts/docs/sync-setup-bun-deps-action.md +0 -2
- package/scripts/hook.mjs +71 -0
- package/scripts/lib/docs/check-mdc-template-refs.md +0 -2
- package/scripts/lib/docs/index.md +35 -36
- package/scripts/lib/docs/inline-template-links.md +6 -8
- package/scripts/lib/docs/list-project-rules-mdc.md +0 -2
- package/scripts/lib/docs/list-rule-ids.md +0 -2
- package/scripts/lib/docs/mirror-parity.md +8 -10
- package/scripts/lib/docs/read-n-cursor-config-lite.md +0 -2
- package/scripts/lib/docs/rule-meta.md +0 -2
- package/scripts/lib/docs/run-lint.md +9 -10
- package/scripts/lib/docs/run-rule-cli.md +0 -2
- package/scripts/lib/docs/run-rule.md +7 -9
- package/scripts/lib/docs/run-standard-lint.md +0 -2
- package/scripts/lib/docs/run-standard-rule.md +0 -2
- package/scripts/lib/docs/skill-meta.md +0 -2
- package/scripts/lib/docs/timing-summary.md +0 -2
- package/scripts/lib/docs/worktree-notice.md +0 -2
- package/scripts/lib/fix/docs/analyze-escalation.md +0 -2
- package/scripts/lib/fix/docs/index.md +10 -10
- package/scripts/lib/fix/docs/llm-worker.md +18 -8
- package/scripts/lib/fix/docs/orchestrator.md +44 -20
- package/scripts/lib/fix/docs/run-conformance-check.md +0 -2
- package/scripts/lib/fix/docs/t0.md +0 -2
- package/scripts/lib/fix/docs/verbose-block.md +27 -0
- package/scripts/lib/fix/llm-worker.mjs +75 -22
- package/scripts/lib/fix/orchestrator.mjs +13 -3
- package/scripts/lib/fix/verbose-block.mjs +82 -0
- package/scripts/lib/inline-template-links.mjs +32 -22
- package/scripts/lib/mirror-parity.mjs +2 -2
- package/scripts/lib/run-lint.mjs +15 -2
- package/scripts/lib/run-rule.mjs +1 -2
- package/scripts/sync-claude-config.mjs +7 -4
- package/scripts/utils/docs/resolve-js-root.md +0 -2
- package/skills/adr-normalize/SKILL.md +1 -0
- package/skills/coverage-fix/SKILL.md +1 -0
- package/skills/doc-aggregate/SKILL.md +1 -0
- package/skills/doc-files/SKILL.md +10 -24
- package/skills/lint/SKILL.md +24 -19
- package/skills/llm-patch/SKILL.md +5 -4
- package/skills/publish-telegram/SKILL.md +1 -0
- package/skills/start-check/SKILL.md +1 -0
- package/skills/taze/SKILL.md +3 -2
- package/types/bin/n-cursor.d.ts +1 -1
- package/rules/abie/docs/fix.md +0 -37
- package/rules/adr/docs/fix.md +0 -37
- package/rules/bun/docs/fix.md +0 -30
- package/rules/capacitor/docs/fix.md +0 -36
- package/rules/changelog/docs/fix.md +0 -37
- package/rules/ci4/docs/fix.md +0 -32
- package/rules/doc-files/docs/fix.md +0 -29
- package/rules/docker/docs/fix.md +0 -35
- package/rules/efes/docs/fix.md +0 -37
- package/rules/feedback/docs/fix.md +0 -30
- package/rules/ga/docs/fix.md +0 -30
- package/rules/graphql/docs/fix.md +0 -37
- package/rules/hasura/docs/fix.md +0 -39
- package/rules/image-avif/docs/fix.md +0 -28
- package/rules/image-compress/docs/fix.md +0 -27
- package/rules/js/docs/fix.md +0 -37
- package/rules/js-bun-db/docs/fix.md +0 -30
- package/rules/js-bun-redis/docs/fix.md +0 -32
- package/rules/js-mssql/docs/fix.md +0 -30
- package/rules/js-run/docs/fix.md +0 -36
- package/rules/k8s/docs/fix.md +0 -31
- package/rules/nginx-default-tpl/docs/fix.md +0 -35
- package/rules/npm-module/docs/fix.md +0 -34
- package/rules/php/docs/fix.md +0 -35
- package/rules/python/docs/fix.md +0 -38
- package/rules/rego/docs/fix.md +0 -31
- package/rules/release/docs/fix.md +0 -28
- package/rules/rust/docs/fix.md +0 -32
- package/rules/security/docs/fix.md +0 -33
- package/rules/style/docs/fix.md +0 -28
- package/rules/tauri/docs/fix.md +0 -39
- package/rules/test/docs/fix.md +0 -31
- package/rules/text/docs/fix.md +0 -37
- package/rules/tool-surface/docs/fix.md +0 -32
- package/rules/vue/docs/fix.md +0 -32
- package/rules/worktree/docs/fix.md +0 -40
- package/scripts/docs/post-tool-use-fix.md +0 -32
- package/scripts/docs/worktree-cli.md +0 -27
- package/scripts/lib/docs/worktree.md +0 -42
- package/scripts/lib/fix/docs/run-fix-check.md +0 -33
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { existsSync, readdirSync, readFileSync } from 'node:fs'
|
|
10
10
|
import { dirname, join } from 'node:path'
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import { appendDiscoveredMdcFiles, inlineTemplateLinks } from './inline-template-links.mjs'
|
|
13
13
|
|
|
14
14
|
const MIRROR_PREFIX = 'n-'
|
|
15
15
|
const MDC_EXT = '.mdc'
|
|
@@ -44,7 +44,7 @@ export function listManagedMirrors(repoRoot) {
|
|
|
44
44
|
export async function expectedMirrorContent(canonicalPath) {
|
|
45
45
|
const dir = dirname(canonicalPath)
|
|
46
46
|
const withTemplates = await inlineTemplateLinks(readFileSync(canonicalPath, 'utf8'), dir)
|
|
47
|
-
return
|
|
47
|
+
return appendDiscoveredMdcFiles(withTemplates, dir)
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
/**
|
package/scripts/lib/run-lint.mjs
CHANGED
|
@@ -237,16 +237,18 @@ async function runScopedRules(rules, ctx) {
|
|
|
237
237
|
|
|
238
238
|
/**
|
|
239
239
|
* Запускає lint-оркестрацію.
|
|
240
|
-
* @param {{ full?: boolean, readOnly?: boolean, rules?: string[], cwd?: string, rulesDir?: string, log?: (s: string) => void }} [opts] параметри
|
|
240
|
+
* @param {{ full?: boolean, readOnly?: boolean, rules?: string[], files?: string[], cwd?: string, rulesDir?: string, log?: (s: string) => void }} [opts] параметри
|
|
241
241
|
* - `full` — весь репо (`true`) проти дельти vs origin (`false`, default);
|
|
242
242
|
* - `readOnly` — лише детект без мутацій (`true`) проти fix (`false`, default);
|
|
243
|
-
* - `rules` — непорожній scope → повний прогін лише цих правил (лінтер + конформність, whole-repo)
|
|
243
|
+
* - `rules` — непорожній scope → повний прогін лише цих правил (лінтер + конформність, whole-repo);
|
|
244
|
+
* - `files` — явний список файлів (hook-режим): per-file правила без conformance/format/delta-full.
|
|
244
245
|
* @returns {Promise<number>} exit code
|
|
245
246
|
*/
|
|
246
247
|
export async function runLint(opts = {}) {
|
|
247
248
|
const full = opts.full === true
|
|
248
249
|
const readOnly = opts.readOnly === true
|
|
249
250
|
const rules = Array.isArray(opts.rules) ? opts.rules : []
|
|
251
|
+
const explicitFiles = Array.isArray(opts.files) ? opts.files : null
|
|
250
252
|
const cwd = opts.cwd ?? processCwd()
|
|
251
253
|
const rulesDir = opts.rulesDir ?? RULES_DIR
|
|
252
254
|
const log = opts.log ?? (s => process.stdout.write(s))
|
|
@@ -256,6 +258,17 @@ export async function runLint(opts = {}) {
|
|
|
256
258
|
return runScopedRules(rules, { cwd, readOnly, rulesDir, conformance: opts.rulesDir === undefined, log })
|
|
257
259
|
}
|
|
258
260
|
|
|
261
|
+
// Hook-режим (явний список файлів): per-file правила, без conformance/format/delta-full.
|
|
262
|
+
// Правила отримують точний список файлів; пусті files (Stop без змін) — правила однаково
|
|
263
|
+
// викликаються (orphan-детект у doc-files не залежить від списку джерел).
|
|
264
|
+
if (explicitFiles !== null) {
|
|
265
|
+
const metaById = readAllMeta(rulesDir)
|
|
266
|
+
const enabledRuleIds = await readEnabledLintRuleIds(metaById, cwd)
|
|
267
|
+
const ids = selectLintRules(metaById, false, enabledRuleIds)
|
|
268
|
+
const perFile = await runPerFileRules(ids, { rulesDir, changed: explicitFiles, cwd, readOnly, metaById, log })
|
|
269
|
+
return perFile.stop ? perFile.code : perFile.code
|
|
270
|
+
}
|
|
271
|
+
|
|
259
272
|
// Default scope — дельта vs origin (merge-base main/origin/main); `--full` — весь репо.
|
|
260
273
|
const changed = full ? undefined : collectChangedFilesSince(resolveChangedBase(cwd), cwd)
|
|
261
274
|
if (!full && changed.length === 0) {
|
package/scripts/lib/run-rule.mjs
CHANGED
|
@@ -117,8 +117,7 @@ async function runPolicyConcern(bundledRulesDir, ruleId, concernName, walkCache)
|
|
|
117
117
|
if (files.length === 0) {
|
|
118
118
|
if (target.files.required && target.files.single) {
|
|
119
119
|
const msg =
|
|
120
|
-
target.missingMessage ??
|
|
121
|
-
`${target.files.single} не існує — створи згідно main.mdc (${ruleId}.${concernName})`
|
|
120
|
+
target.missingMessage ?? `${target.files.single} не існує — створи згідно main.mdc (${ruleId}.${concernName})`
|
|
122
121
|
reporter.fail(msg)
|
|
123
122
|
}
|
|
124
123
|
return reporter.getExitCode()
|
|
@@ -30,11 +30,13 @@ import { existsSync } from 'node:fs'
|
|
|
30
30
|
import { chmod, mkdir, readFile, readdir, rm, writeFile } from 'node:fs/promises'
|
|
31
31
|
import { join } from 'node:path'
|
|
32
32
|
|
|
33
|
-
/** Маркер
|
|
34
|
-
export const MANAGED_HOOK_COMMAND_MARKER = '@nitra/cursor
|
|
35
|
-
/**
|
|
33
|
+
/** Маркер hook-ів пакета (`hook --post-tool-use`, `hook --stop`). */
|
|
34
|
+
export const MANAGED_HOOK_COMMAND_MARKER = '@nitra/cursor hook'
|
|
35
|
+
/** @deprecated — замінено на `hook --post-tool-use`; маркер лишається для cleanup наявних конфігів при ресинку. */
|
|
36
|
+
export const LEGACY_POST_TOOL_USE_HOOK_COMMAND_MARKER = '@nitra/cursor post-tool-use-check'
|
|
37
|
+
/** @deprecated — doc-files hook перенесено до `hook --post-tool-use`; маркер лишається для cleanup наявних конфігів при ресинку. */
|
|
36
38
|
export const DOC_FILES_HOOK_COMMAND_MARKER = '@nitra/cursor lint-doc-files'
|
|
37
|
-
/**
|
|
39
|
+
/** @deprecated — ще старіший legacy-маркер doc-files hook'ів (`doc-files check`) — cleanup при ресинку. */
|
|
38
40
|
export const LEGACY_DOC_FILES_HOOK_COMMAND_MARKER = '@nitra/cursor doc-files check'
|
|
39
41
|
/** Legacy-маркер старого Stop-hook'а — лишаємо для cleanup-у при оновленні існуючих інсталяцій. */
|
|
40
42
|
export const LEGACY_STOP_HOOK_COMMAND_MARKER = '@nitra/cursor stop-hook'
|
|
@@ -52,6 +54,7 @@ export const CURSOR_ADR_NORMALIZE_HOOK_COMMAND_MARKER = '.claude/hooks/normalize
|
|
|
52
54
|
*/
|
|
53
55
|
export const MANAGED_HOOK_COMMAND_MARKERS = Object.freeze([
|
|
54
56
|
MANAGED_HOOK_COMMAND_MARKER,
|
|
57
|
+
LEGACY_POST_TOOL_USE_HOOK_COMMAND_MARKER,
|
|
55
58
|
DOC_FILES_HOOK_COMMAND_MARKER,
|
|
56
59
|
LEGACY_DOC_FILES_HOOK_COMMAND_MARKER,
|
|
57
60
|
LEGACY_STOP_HOOK_COMMAND_MARKER,
|
|
@@ -8,8 +8,6 @@ docgen:
|
|
|
8
8
|
score: 100
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
## Огляд
|
|
12
|
-
|
|
13
11
|
Визначає корінь JS-коду в проєкті, відповідно до логіки для workspace-projects (перший workspace з підтримкою glob-патернів `cf/*`) або single-package (корінь cwd). Ця утиліта є спільною для coverage-провайдера JS та test-концерну `stryker_config` (DRY). Публічні функції дозволяють отримати один або повний список шляхів до всіх JS-коренів, при цьому свідомо виключаються каталоги `.git` та `node_modules`. Код спирається на конфігураційні файли `package.json` та `.n-cursor.json`.
|
|
14
12
|
|
|
15
13
|
## Поведінка
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: doc-aggregate
|
|
3
3
|
description: >-
|
|
4
4
|
Агрегуюча документація за запитом: module-summary на кожен логічний модуль (docs/ARCHITECTURE.md) і доменні доки бізнес-процесів у кореневій docs/ — синтез поверх готових файлових док (doc-files), батч-диспатч субагентів у worktree
|
|
5
|
+
version: '1.0'
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# doc-aggregate — агрегуюча документація (за запитом)
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: doc-files
|
|
3
3
|
description: >-
|
|
4
4
|
Обовʼязковий крок задачі (як lint): для кожного зміненого/нового кодового файлу (js/mjs/ts/vue/py) JS-оркестрована генерація лаконічної поведінкової української md-документації у теку docs/ поряд із кодом, зі звіркою застарілості за CRC у frontmatter
|
|
5
|
+
version: '1.0'
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# doc-files — файлова документація (обовʼязковий крок)
|
|
@@ -30,8 +31,8 @@ docgen:
|
|
|
30
31
|
|
|
31
32
|
## Оркестрацію веде JS, не модель; конвеєр — local-only
|
|
32
33
|
|
|
33
|
-
Уся важка робота — черга, батчинг, виклики LLM і штамп CRC — живе
|
|
34
|
-
`
|
|
34
|
+
Уся важка робота — черга, батчинг, виклики LLM і штамп CRC — живе у JS-оркестрації
|
|
35
|
+
`lint doc-files`. **Ти не диспатчиш субагентів і не тримаєш сотні файлів у контексті**
|
|
35
36
|
— тому навіть масовий перший прогін усього репо не «заморює». Цей скіл **тонкий**: твоє завдання —
|
|
36
37
|
запустити генерацію і прочитати підсумок.
|
|
37
38
|
|
|
@@ -50,34 +51,20 @@ docgen:
|
|
|
50
51
|
### Крок 1: Генерація застарілих/відсутніх док
|
|
51
52
|
|
|
52
53
|
```bash
|
|
53
|
-
npx @nitra/cursor
|
|
54
|
+
npx @nitra/cursor lint doc-files
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
Команда
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
- Для дуже великого прогону можна порціями: `--from N --limit M`.
|
|
62
|
-
- Перегенерувати **всі** доки (не лише застарілі): `--overwrite`.
|
|
63
|
-
- Перегенерувати лише degraded (свіжі за CRC, score < порогу): `--retry-degraded`.
|
|
57
|
+
Команда запускає doc-files лінтер у fix-режимі (весь репо): перевіряє omlx
|
|
58
|
+
(preflight: «сервер лежить» / «модель не влазить у пам'ять зайнятої машини» /
|
|
59
|
+
«потрібен API-ключ» → одна зрозуміла зупинка замість лавини «✗») → фільтрує застарілі
|
|
60
|
+
(`stale`) → генерує локальною моделлю → пише доку зі **свіжим CRC** (і degraded-маркером,
|
|
61
|
+
якщо не дотягнула) → друкує прогрес і підсумок.
|
|
64
62
|
|
|
65
63
|
### Крок 2: Підтвердження
|
|
66
64
|
|
|
67
65
|
Дочекайся підсумку `✓ OK: <N> ⚠ degraded: <D> ✗ Err: <E>`. Якщо є помилки — перелічи
|
|
68
66
|
проблемні файли. Exit-код `1` означає, що хоча б один файл не згенерувався (або не пройшов
|
|
69
|
-
preflight). Degraded — не помилка: дока існує,
|
|
70
|
-
|
|
71
|
-
### Крок 3 (за потреби): перевірка перед завершенням
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
npx @nitra/cursor lint-doc-files --git
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Перевіряє змінені у задачі джерела (`git diff --name-only HEAD`) проти CRC їхніх док.
|
|
78
|
-
Цю ж перевірку виконує **Stop-hook** як твердий гейт: завершити задачу зі застарілими
|
|
79
|
-
доками не можна (виняток — масовий прогін понад поріг `N_CURSOR_DOC_FILES_GATE_MAX`, дефолт 50).
|
|
80
|
-
Degraded-доки гейт **не** блокує (CRC свіжий); їх список — `lint-doc-files --degraded`.
|
|
67
|
+
preflight). Degraded — не помилка: дока існує, CRC свіжий.
|
|
81
68
|
|
|
82
69
|
## Правила стилю документа (за adr/ci4)
|
|
83
70
|
|
|
@@ -97,4 +84,3 @@ Degraded-доки гейт **не** блокує (CRC свіжий); їх спи
|
|
|
97
84
|
усі теки `docs/`, а також `*.test.*` / `*.spec.*` / `*.d.ts`. Кореневий repo `docs/` —
|
|
98
85
|
system-wide only: file-level docs туди не пишуться. Список glob-ів — `docgen-ignore.mjs`.
|
|
99
86
|
- Агрегуюча документація (module-summary, доменні доки) — окремий скіл `doc-aggregate`, за запитом.
|
|
100
|
-
- Для наявних док без CRC одноразово: `npx @nitra/cursor fix-doc-files --stamp` (штампує frontmatter без LLM).
|
package/skills/lint/SKILL.md
CHANGED
|
@@ -1,39 +1,42 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: n-lint
|
|
3
3
|
description: >-
|
|
4
|
-
Запустити
|
|
4
|
+
Запустити дельта-лінт (npx @nitra/cursor lint) по змінених файлах vs origin, виправити порушення й підтвердити чистий вихід
|
|
5
|
+
version: '1.0'
|
|
5
6
|
---
|
|
6
7
|
|
|
7
|
-
# n-lint — лінт проєкту
|
|
8
|
+
# n-lint — лінт проєкту по змінених файлах
|
|
8
9
|
|
|
9
10
|
## Мета
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
Прогнати **`npx @nitra/cursor lint`** (**дельта-режим**: лише файли, змінені vs `origin`), усунути порушення (авто- та вручну) і переконатися, що команда завершується з кодом **`0`**.
|
|
13
|
+
|
|
14
|
+
> **Чому дельта, не `--full`?** `--full` — CI-режим: сканує весь репо незалежно від змін. Під час задачі це зайво — перевіряємо лише те, що змінили. `lint --full` запускати **не треба**.
|
|
12
15
|
|
|
13
16
|
## Передумови
|
|
14
17
|
|
|
15
|
-
- Поточна робоча директорія — **корінь
|
|
18
|
+
- Поточна робоча директорія — **корінь репозиторію**.
|
|
16
19
|
- Залежності встановлені (**`bun i`**) — якщо після правок змінювався **`package.json`** / lockfile, знову виконай **`bun i`** перед наступним запуском лінту.
|
|
17
20
|
|
|
18
21
|
## Workflow
|
|
19
22
|
|
|
20
|
-
1. **Запуск** —
|
|
23
|
+
1. **Запуск** — дельта-лінт по змінених файлах:
|
|
21
24
|
|
|
22
25
|
```bash
|
|
23
|
-
|
|
26
|
+
npx @nitra/cursor lint
|
|
24
27
|
```
|
|
25
28
|
|
|
26
|
-
2. **Якщо exit code не 0** — проаналізуй
|
|
27
|
-
- Де
|
|
28
|
-
- Де auto-fix **немає** (наприклад, **jscpd**, **cspell**, **zizmor
|
|
29
|
+
2. **Якщо exit code не 0** — проаналізуй вивід:
|
|
30
|
+
- Де лінт уже робить **auto-fix** (**`--fix`**, **`oxfmt`** тощо) — перезапусти **`npx @nitra/cursor lint`** після змін файлів.
|
|
31
|
+
- Де auto-fix **немає** (наприклад, **jscpd**, **cspell**, **zizmor**) — **за замовчуванням рефактори код проєкту**, щоб усунути порушення. **Не** розширюй конфіги з винятками «мовчки» — див. блок **«Винятки в конфігурації»** нижче.
|
|
29
32
|
- Якщо спрацьовує **`sonarjs/cognitive-complexity`** — див. окремий блок нижче.
|
|
30
33
|
|
|
31
|
-
3. **Цикл** — повторюй кроки 1–2, доки **`
|
|
34
|
+
3. **Цикл** — повторюй кроки 1–2, доки **`npx @nitra/cursor lint`** не завершиться успішно.
|
|
32
35
|
|
|
33
|
-
4. **Верифікація** — фінальна перевірка (
|
|
36
|
+
4. **Верифікація** — фінальна перевірка (обов'язково з кодом **0**):
|
|
34
37
|
|
|
35
38
|
```bash
|
|
36
|
-
|
|
39
|
+
npx @nitra/cursor lint
|
|
37
40
|
```
|
|
38
41
|
|
|
39
42
|
5. **Результат** — коротко опиши, що саме виправлено; якщо щось блокує нульовий exit code — залиш чітке пояснення й наступні кроки для людини.
|
|
@@ -88,20 +91,20 @@ bun run lint
|
|
|
88
91
|
- **Перед будь-яким рефакторингом** перевір, чи є **тести**, які покривають змінювану поведінку:
|
|
89
92
|
- **unit** — **`bun test`** (або скрипт тестів у відповідному пакеті репозиторію);
|
|
90
93
|
- **e2e** — **Playwright**, якщо в проєкті він використовується для UI/потоків.
|
|
91
|
-
- Якщо тестів **немає** або вони **не покривають** блок, який змінюєш — **спочатку** додай/розшир тести, переконайся, що вони стабільно проходять, **потім** роби рефакторинг, **потім** знову прогони тести й **`
|
|
94
|
+
- Якщо тестів **немає** або вони **не покривають** блок, який змінюєш — **спочатку** додай/розшир тести, переконайся, що вони стабільно проходять, **потім** роби рефакторинг, **потім** знову прогони тести й **`npx @nitra/cursor lint`**, щоб підтвердити, що функціональність коректна й лінт чистий.
|
|
92
95
|
- Якщо після рефакторингу тести або лінт падають — **не** залишай «половинчастий» рефакторинг: відкотись або доведи зміни до зеленого стану.
|
|
93
96
|
|
|
94
97
|
## Паралелізм і навантаження на macOS
|
|
95
98
|
|
|
96
|
-
**Паралельно по різних файлах — дозволено.**
|
|
99
|
+
**Паралельно по різних файлах — дозволено.** Дельта-прогони на диз'юнктних наборах файлів не конфліктують.
|
|
97
100
|
|
|
98
|
-
|
|
101
|
+
Серіалізувати треба лише **`n-cursor lint --full`** (whole-tree CI-прогін) — запускати не більше одного за раз. Але цей скіл `--full` **не використовує**: `npx @nitra/cursor lint` (дельта) сам по собі не перевантажує репо.
|
|
99
102
|
|
|
100
103
|
### Що робити агенту під час виконання цього скілу
|
|
101
104
|
|
|
102
|
-
1.
|
|
103
|
-
2.
|
|
104
|
-
3. Якщо сесія/користувач уже запускає
|
|
105
|
+
1. **Дельта-лінт** (`npx @nitra/cursor lint`) — можна запускати повторно; паралелізм із субагентами по різних файлах — OK.
|
|
106
|
+
2. **`lint --full`** у цьому скілі **не запускати** — це CI-команда, не задачна.
|
|
107
|
+
3. Якщо сесія/користувач уже запускає `lint --full` — не дублювати; зачекати завершення.
|
|
105
108
|
|
|
106
109
|
**Що можна змінити у проєкті (локально або в `package.json`)**
|
|
107
110
|
|
|
@@ -113,4 +116,6 @@ bun run lint
|
|
|
113
116
|
|
|
114
117
|
## Примітка
|
|
115
118
|
|
|
116
|
-
Цей скіл **не** замінює **`npx @nitra/cursor fix`**: **`lint`** перевіряє лінтери/формат
|
|
119
|
+
Цей скіл **не** замінює **`npx @nitra/cursor fix`**: **`lint`** перевіряє лінтери/формат (eslint, oxlint, rego тощо), а **`check`** / **`fix`** — програмні правила пакета **`@nitra/cursor`**. За потреби запускай обидва.
|
|
120
|
+
|
|
121
|
+
Для CI або явного повного сканування всього репо незалежно від змін — `npx @nitra/cursor lint --full`. Але в рамках задачі це **зайво**.
|
|
@@ -3,6 +3,7 @@ name: n-llm-patch
|
|
|
3
3
|
description: >-
|
|
4
4
|
Підготовка самодостатнього текстового промпта для іншого Claude/Cursor-агента —
|
|
5
5
|
read-only аналіз CWD без жодних змін у поточному репо
|
|
6
|
+
version: '1.0'
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
<!-- markdownlint-disable-file MD024 MD025 -->
|
|
@@ -73,12 +74,12 @@ description: >-
|
|
|
73
74
|
inflight-міграції, breaking-change політика, зовнішні залежності.
|
|
74
75
|
- **Change-file flow,** якщо завдання змінює файли у пакетному workspace (код,
|
|
75
76
|
правила, скіли, конфіги, тести — не лише `docs/`): промпт має вимагати
|
|
76
|
-
`npx @
|
|
77
|
+
`npx @7n/n ch [--bump <major|minor|patch>] [--section <Added|Changed|Fixed|Removed>] [--message "<опис>"]`
|
|
77
78
|
і `npx @nitra/cursor fix changelog`. **Ніколи** не інструктуй ручне редагування
|
|
78
79
|
`CHANGELOG.md` чи bump `version` — це робить release flow / CI (деталь —
|
|
79
80
|
`.cursor/rules/n-changelog.mdc`, не дублюй її текст). Якщо потрібна реліз-нота —
|
|
80
81
|
це change-файл `<ws>/.changes/<timestamp>-<rand>.md` з `bump:` і `section:`,
|
|
81
|
-
який створює
|
|
82
|
+
який створює `@7n/n ch`, а не редагування файлу вручну.
|
|
82
83
|
- **Як перевірити** — конкретні команди й специфічні до завдання сигнали
|
|
83
84
|
успіху.
|
|
84
85
|
|
|
@@ -196,7 +197,7 @@ description: >-
|
|
|
196
197
|
- **Без ручного changelog/version у промпті:** не формулюй у виводі інструкції
|
|
197
198
|
на кшталт "додати запис у `CHANGELOG.md`", "bump `version` вручну" чи
|
|
198
199
|
"оновити `package.json#version`". Зміни у workspace фіксуються винятково
|
|
199
|
-
через change-file flow (`npx @
|
|
200
|
+
через change-file flow (`npx @7n/n ch` → `npx @nitra/cursor fix changelog`);
|
|
200
201
|
`version`/`CHANGELOG.md` формує CI.
|
|
201
202
|
- **Не вмикай у промпт:** секрети, `.env`, `node_modules`, бінарні файли,
|
|
202
203
|
довгі логи, дампи `tree`, повні JSON конфігів, цитати існуючих
|
|
@@ -238,7 +239,7 @@ description: >-
|
|
|
238
239
|
- Підняти `engines.node` до `>=25`; якщо peer `eslint ^9` несумісний —
|
|
239
240
|
підняти range.
|
|
240
241
|
- Зафіксувати зміну change-файлом (НЕ редагувати `CHANGELOG.md` чи `version`
|
|
241
|
-
вручну): `npx @
|
|
242
|
+
вручну): `npx @7n/n ch --bump minor --section Changed --message "engines.node >=25"`.
|
|
242
243
|
|
|
243
244
|
# Обмеження
|
|
244
245
|
|
|
@@ -3,6 +3,7 @@ name: n-start-check
|
|
|
3
3
|
description: >-
|
|
4
4
|
Smoke-перевірка bun-монорепо: зайти в кожен воркспейс зі `start`-скриптом, прогнати
|
|
5
5
|
`start` і зафіксувати, чи проєкт взагалі запускається без негайного краху
|
|
6
|
+
version: '1.0'
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# n-start-check — чи запускається кожен воркспейс
|
package/skills/taze/SKILL.md
CHANGED
|
@@ -3,6 +3,7 @@ name: n-taze
|
|
|
3
3
|
description: >-
|
|
4
4
|
Оновлення версій модулів проекту з аналізом major-змін і автоматичним
|
|
5
5
|
рефакторингом несумісного коду
|
|
6
|
+
version: '1.0'
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# n-taze — Оновлення версій проекту
|
|
@@ -81,7 +82,7 @@ rg -n "<імпорт|функція|опція>" --type ts --type js --type vue
|
|
|
81
82
|
Для кожного несумісного місця — застосувати міграцію згідно з changelog модуля (перейменувати імпорт, оновити сигнатуру виклику, замінити видалену опцію еквівалентом тощо). Після правок:
|
|
82
83
|
|
|
83
84
|
```bash
|
|
84
|
-
|
|
85
|
+
npx @nitra/cursor lint
|
|
85
86
|
bun run typecheck # якщо є
|
|
86
87
|
bun test # якщо є
|
|
87
88
|
```
|
|
@@ -108,6 +109,6 @@ rm package.json.taze-bak bun.lock.taze-bak
|
|
|
108
109
|
|
|
109
110
|
## Примітка
|
|
110
111
|
|
|
111
|
-
- Не запускати `
|
|
112
|
+
- Не запускати `npx @nitra/cursor lint` паралельно з іншими ESLint-задачами — діє правило з кореневого `CLAUDE.md`.
|
|
112
113
|
- Якщо проект — `npm/` пакет цього репо, після змін у `package.json` / коді треба підняти `version` і додати запис у `CHANGELOG.md` згідно з `npm/CLAUDE.md`.
|
|
113
114
|
- При великій кількості major-оновлень розбити PR по одному модулю на коміт — щоб `git bisect` залишався корисним.
|
package/types/bin/n-cursor.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export {}
|
|
2
|
+
export {}
|
package/rules/abie/docs/fix.md
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: JS Module
|
|
3
|
-
title: fix.mjs
|
|
4
|
-
resource: npm/rules/abie/fix.mjs
|
|
5
|
-
docgen:
|
|
6
|
-
crc: 38cf876b
|
|
7
|
-
score: 100
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
Запуск правила приймає контекст прогону, застосовує JS-занепокоєні та політику, генерує посилання MDC та повертає результат прогону.
|
|
11
|
-
|
|
12
|
-
Виконання у режимі CLI виконує повний еквівалент команди `npx @nitra/cursor fix <id>` та повертає код виходу.
|
|
13
|
-
|
|
14
|
-
## Поведінка
|
|
15
|
-
|
|
16
|
-
1. Запуск правила.
|
|
17
|
-
- Приймає контекст прогону.
|
|
18
|
-
- Виконує застосування JS-занепокоєних.
|
|
19
|
-
- Застосовує політику.
|
|
20
|
-
- Генерує посилання MDC.
|
|
21
|
-
- Повертає результат прогону.
|
|
22
|
-
|
|
23
|
-
2. Виконання у режимі CLI.
|
|
24
|
-
- Виконується при запуску через CLI.
|
|
25
|
-
- Виконує повний еквівалент команди `npx @nitra/cursor fix <id>`.
|
|
26
|
-
- Повертає код виходу.
|
|
27
|
-
|
|
28
|
-
## Публічний API
|
|
29
|
-
|
|
30
|
-
run — запускає правило: applies → JS-concerns → policy → mdc-refs (через runStandardRule).
|
|
31
|
-
Library mode — викликається CLI orchestration через `import + run`.
|
|
32
|
-
|
|
33
|
-
## Гарантії поведінки
|
|
34
|
-
|
|
35
|
-
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
36
|
-
- Кешує результати в межах одного прогону.
|
|
37
|
-
- Не звертається до мережі.
|
package/rules/adr/docs/fix.md
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: JS Module
|
|
3
|
-
title: fix.mjs
|
|
4
|
-
resource: npm/rules/adr/fix.mjs
|
|
5
|
-
docgen:
|
|
6
|
-
crc: 38cf876b
|
|
7
|
-
score: 100
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
Виконує обробку JS-занепокоєних та політики на наданому контексті прогону. Генерація посилання MDC та повернення результату прогону.
|
|
11
|
-
|
|
12
|
-
## Поведінка
|
|
13
|
-
|
|
14
|
-
1. Запуск правила.
|
|
15
|
-
* Приймає контекст прогону.
|
|
16
|
-
* Виконує застосування JS-занепокоєних.
|
|
17
|
-
* Застосовує політику.
|
|
18
|
-
* Генерує посилання MDC.
|
|
19
|
-
* Повертає результат прогону.
|
|
20
|
-
2. Виконання у режимі CLI.
|
|
21
|
-
* Виконується як автономний скрипт.
|
|
22
|
-
* Виконує повний еквівалент команди `npx @nitra/cursor fix <id>`.
|
|
23
|
-
* Виконує завантаження конфігурації.
|
|
24
|
-
* Виконує перевірку дозволених елементів.
|
|
25
|
-
* Генерує зведену інформацію.
|
|
26
|
-
* Визначає код виходу процесу.
|
|
27
|
-
|
|
28
|
-
## Публічний API
|
|
29
|
-
|
|
30
|
-
run — запускає правило: applies → JS-concerns → policy → mdc-refs (через runStandardRule).
|
|
31
|
-
Library mode — викликається CLI orchestration через `import + run`.
|
|
32
|
-
|
|
33
|
-
## Гарантії поведінки
|
|
34
|
-
|
|
35
|
-
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
36
|
-
- Кешує результати в межах одного прогону.
|
|
37
|
-
- Не звертається до мережі.
|
package/rules/bun/docs/fix.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: JS Module
|
|
3
|
-
title: fix.mjs
|
|
4
|
-
resource: npm/rules/bun/fix.mjs
|
|
5
|
-
docgen:
|
|
6
|
-
crc: 38cf876b
|
|
7
|
-
score: 100
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
Виконує обробку JS-занепокоєних даних у наданому контексті прогону. Застосовує визначену політику та генерує посилання MDC. Повертає результат прогону.
|
|
11
|
-
|
|
12
|
-
## Поведінка
|
|
13
|
-
|
|
14
|
-
1. Запуск правила.
|
|
15
|
-
- Приймає контекст прогону.
|
|
16
|
-
- Виконує застосування JS-занепокоєних.
|
|
17
|
-
- Застосовує політику.
|
|
18
|
-
- Генерує посилання MDC.
|
|
19
|
-
- Повертає результат прогону.
|
|
20
|
-
|
|
21
|
-
## Публічний API
|
|
22
|
-
|
|
23
|
-
run — запускає правило: applies → JS-concerns → policy → mdc-refs (через runStandardRule).
|
|
24
|
-
Library mode — викликається CLI orchestration через `import + run`.
|
|
25
|
-
|
|
26
|
-
## Гарантії поведінки
|
|
27
|
-
|
|
28
|
-
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
29
|
-
- Кешує результати в межах одного прогону.
|
|
30
|
-
- Не звертається до мережі.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: JS Module
|
|
3
|
-
title: fix.mjs
|
|
4
|
-
resource: npm/rules/capacitor/fix.mjs
|
|
5
|
-
docgen:
|
|
6
|
-
crc: 38cf876b
|
|
7
|
-
score: 100
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
Виконує застосування JS-занепокоєних на вхідний контекст прогону, застосовує визначену політику, генерує посилання MDC та повертає результат
|
|
11
|
-
|
|
12
|
-
## Поведінка
|
|
13
|
-
|
|
14
|
-
1. Запуск правила.
|
|
15
|
-
- Приймає контекст прогону.
|
|
16
|
-
- Виконує застосування JS-занепокоєних.
|
|
17
|
-
- Застосовує політику.
|
|
18
|
-
- Генерує посилання MDC.
|
|
19
|
-
- Повертає результат.
|
|
20
|
-
2. Запуск у режимі CLI.
|
|
21
|
-
- Виконується як повний еквівалент команди `npx @nitra/cursor fix <id>`.
|
|
22
|
-
- Виконує завантаження конфігурації.
|
|
23
|
-
- Виконує перевірку дозволених записів.
|
|
24
|
-
- Генерує зведену інформацію.
|
|
25
|
-
- Використовує `process.exitCode` для визначення виходу.
|
|
26
|
-
|
|
27
|
-
## Публічний API
|
|
28
|
-
|
|
29
|
-
run — запускає правило: applies → JS-concerns → policy → mdc-refs (через runStandardRule).
|
|
30
|
-
Library mode — викликається CLI orchestration через `import + run`.
|
|
31
|
-
|
|
32
|
-
## Гарантії поведінки
|
|
33
|
-
|
|
34
|
-
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
35
|
-
- Кешує результати в межах одного прогону.
|
|
36
|
-
- Не звертається до мережі.
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: JS Module
|
|
3
|
-
title: fix.mjs
|
|
4
|
-
resource: npm/rules/changelog/fix.mjs
|
|
5
|
-
docgen:
|
|
6
|
-
crc: 38cf876b
|
|
7
|
-
score: 100
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
Виконує застосування JS-занепокоєних на наданому контексті прогону. Застосовує визначену політику та генерує посилання MDC. Повертає результат прогону.
|
|
11
|
-
|
|
12
|
-
## Поведінка
|
|
13
|
-
|
|
14
|
-
1. Запуск правила.
|
|
15
|
-
- Приймає контекст прогону.
|
|
16
|
-
- Виконує застосування JS-занепокоєних.
|
|
17
|
-
- Застосовує політику.
|
|
18
|
-
- Генерує посилання MDC.
|
|
19
|
-
- Повертає результат прогону.
|
|
20
|
-
2. Виконання у режимі CLI.
|
|
21
|
-
- Виконується як окремий скрипт.
|
|
22
|
-
- Еквівалент команди `npx @nitra/cursor fix <id>`.
|
|
23
|
-
- Виконує завантаження конфігурації.
|
|
24
|
-
- Виконує перевірку дозволених елементів.
|
|
25
|
-
- Генерує зведену інформацію.
|
|
26
|
-
- Виконує повний еквівалент `fix.mjs`.
|
|
27
|
-
|
|
28
|
-
## Публічний API
|
|
29
|
-
|
|
30
|
-
run — запускає правило: applies → JS-concerns → policy → mdc-refs (через runStandardRule).
|
|
31
|
-
Library mode — викликається CLI orchestration через `import + run`.
|
|
32
|
-
|
|
33
|
-
## Гарантії поведінки
|
|
34
|
-
|
|
35
|
-
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
36
|
-
- Кешує результати в межах одного прогону.
|
|
37
|
-
- Не звертається до мережі.
|
package/rules/ci4/docs/fix.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: JS Module
|
|
3
|
-
title: fix.mjs
|
|
4
|
-
resource: npm/rules/ci4/fix.mjs
|
|
5
|
-
docgen:
|
|
6
|
-
crc: 38cf876b
|
|
7
|
-
score: 100
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
Огляд
|
|
11
|
-
Файл надає функціонал для виконання визначених правил. Публічні методи забезпечують запуск цих правил, повертаючи отримані результати. Дозволяє запускати правила у режимі командного рядка, керуючи виходом процесу на основі отриманих даних.
|
|
12
|
-
|
|
13
|
-
## Поведінка
|
|
14
|
-
|
|
15
|
-
1. Запуск правила.
|
|
16
|
-
- Виклик runStandardRule з контекстом.
|
|
17
|
-
- Повернення результату.
|
|
18
|
-
|
|
19
|
-
2. Запуск правила у режимі CLI.
|
|
20
|
-
- Виклик runRuleCli з директорією модуля.
|
|
21
|
-
- Вихід з процесом залежно від результату.
|
|
22
|
-
|
|
23
|
-
## Публічний API
|
|
24
|
-
|
|
25
|
-
run — запускає правило: applies → JS-concerns → policy → mdc-refs (через runStandardRule).
|
|
26
|
-
Library mode — викликається CLI orchestration через `import + run`.
|
|
27
|
-
|
|
28
|
-
## Гарантії поведінки
|
|
29
|
-
|
|
30
|
-
- Read-only: файл не виконує операцій запису у файлову систему.
|
|
31
|
-
- Кешує результати в межах одного прогону.
|
|
32
|
-
- Не звертається до мережі.
|