@nitra/cursor 11.4.0 → 12.0.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 (358) hide show
  1. package/.claude-template/hooks/normalize-decisions.sh +34 -3
  2. package/.pi-template/extensions/n-cursor-adr/docs/index.md +3 -5
  3. package/CHANGELOG.md +12 -0
  4. package/bin/n-cursor.js +2 -8
  5. package/docs/index.md +12 -0
  6. package/docs/stryker.config.md +3 -5
  7. package/docs/vitest.config.md +3 -5
  8. package/lib/docs/index.md +14 -0
  9. package/lib/docs/llm.md +4 -6
  10. package/lib/docs/models.md +3 -5
  11. package/lib/docs/omlx-trace.md +3 -5
  12. package/lib/docs/omlx.md +4 -6
  13. package/package.json +2 -1
  14. package/rules/abie/docs/fix.md +3 -5
  15. package/rules/abie/docs/index.md +11 -0
  16. package/rules/abie/js/docs/applies.md +3 -5
  17. package/rules/abie/js/docs/env_dns.md +3 -5
  18. package/rules/abie/js/docs/firebase_hosting.md +3 -5
  19. package/rules/abie/js/docs/hc_pairing.md +3 -5
  20. package/rules/abie/js/docs/index.md +16 -0
  21. package/rules/abie/js/docs/ua_http_route.md +3 -5
  22. package/rules/abie/js/docs/ua_node_selector.md +3 -5
  23. package/rules/abie/lib/docs/enabled.md +3 -5
  24. package/rules/abie/lib/docs/env-dns.md +3 -5
  25. package/rules/abie/lib/docs/hc-yaml.md +3 -5
  26. package/rules/abie/lib/docs/http-route.md +3 -5
  27. package/rules/abie/lib/docs/index.md +18 -0
  28. package/rules/abie/lib/docs/k8s-tree.md +3 -5
  29. package/rules/abie/lib/docs/kustomization-patches.md +3 -5
  30. package/rules/abie/lib/docs/overlay-paths.md +3 -5
  31. package/rules/abie/lib/docs/yaml.md +3 -5
  32. package/rules/adr/adr.mdc +2 -2
  33. package/rules/adr/docs/fix.md +3 -5
  34. package/rules/adr/docs/index.md +11 -0
  35. package/rules/adr/js/docs/hooks.md +3 -5
  36. package/rules/adr/js/docs/index.md +11 -0
  37. package/rules/bun/docs/fix.md +3 -5
  38. package/rules/bun/docs/index.md +11 -0
  39. package/rules/bun/js/docs/index.md +11 -0
  40. package/rules/bun/js/docs/layout.md +3 -5
  41. package/rules/capacitor/docs/fix.md +3 -5
  42. package/rules/capacitor/docs/index.md +11 -0
  43. package/rules/capacitor/js/docs/index.md +11 -0
  44. package/rules/capacitor/js/docs/platforms.md +3 -5
  45. package/rules/changelog/docs/fix.md +3 -5
  46. package/rules/changelog/docs/index.md +11 -0
  47. package/rules/changelog/js/docs/consistency.md +3 -5
  48. package/rules/changelog/js/docs/index.md +11 -0
  49. package/rules/changelog/lib/docs/index.md +11 -0
  50. package/rules/changelog/lib/docs/package-manifest.md +3 -5
  51. package/rules/ci4/docs/fix.md +3 -5
  52. package/rules/ci4/docs/index.md +11 -0
  53. package/rules/ci4/js/docs/index.md +11 -0
  54. package/rules/ci4/js/docs/marksman_config.md +3 -5
  55. package/rules/doc-files/docs/fix.md +3 -5
  56. package/rules/doc-files/docs/index.md +11 -0
  57. package/rules/doc-files/js/docgen-crc.mjs +50 -14
  58. package/rules/doc-files/js/docgen-files-batch.mjs +73 -2
  59. package/rules/doc-files/js/docs/docgen-crc.md +4 -6
  60. package/rules/doc-files/js/docs/docgen-extract-anchors.md +3 -5
  61. package/rules/doc-files/js/docs/docgen-extract.md +3 -5
  62. package/rules/doc-files/js/docs/docgen-files-batch.md +4 -6
  63. package/rules/doc-files/js/docs/docgen-gen.md +4 -6
  64. package/rules/doc-files/js/docs/docgen-ignore.md +3 -5
  65. package/rules/doc-files/js/docs/docgen-judge-measure.md +3 -5
  66. package/rules/doc-files/js/docs/docgen-judge.md +3 -5
  67. package/rules/doc-files/js/docs/docgen-prompts.md +3 -5
  68. package/rules/doc-files/js/docs/docgen-scan.md +4 -6
  69. package/rules/doc-files/js/docs/index.md +24 -0
  70. package/rules/doc-files/js/docs/lint.md +4 -6
  71. package/rules/doc-files/js/docs/units-js.md +3 -5
  72. package/rules/doc-files/js/docs/units-rs.md +3 -5
  73. package/rules/doc-files/js/docs/units.md +3 -5
  74. package/rules/doc-files/lint/docs/index.md +11 -0
  75. package/rules/doc-files/lint/docs/lint.md +3 -5
  76. package/rules/docker/docs/fix.md +3 -5
  77. package/rules/docker/docs/index.md +11 -0
  78. package/rules/docker/js/docs/index.md +11 -0
  79. package/rules/docker/js/docs/lint.md +3 -5
  80. package/rules/docker/lib/docs/docker-hadolint.md +3 -5
  81. package/rules/docker/lib/docs/docker-mirror.md +3 -5
  82. package/rules/docker/lib/docs/docker-native-addon.md +3 -5
  83. package/rules/docker/lib/docs/docker-nginx-user.md +3 -5
  84. package/rules/docker/lib/docs/index.md +14 -0
  85. package/rules/docker/lint/docs/index.md +11 -0
  86. package/rules/docker/lint/docs/lint.md +3 -5
  87. package/rules/efes/docs/fix.md +3 -5
  88. package/rules/efes/docs/index.md +11 -0
  89. package/rules/feedback/docs/fix.md +3 -5
  90. package/rules/feedback/docs/index.md +11 -0
  91. package/rules/ga/docs/fix.md +3 -5
  92. package/rules/ga/docs/index.md +11 -0
  93. package/rules/ga/js/docs/index.md +12 -0
  94. package/rules/ga/js/docs/lint.md +3 -5
  95. package/rules/ga/js/docs/workflows.md +3 -5
  96. package/rules/ga/lint/docs/index.md +11 -0
  97. package/rules/ga/lint/docs/lint.md +3 -5
  98. package/rules/graphql/docs/fix.md +3 -5
  99. package/rules/graphql/docs/index.md +11 -0
  100. package/rules/graphql/js/docs/index.md +11 -0
  101. package/rules/graphql/js/docs/tooling.md +3 -5
  102. package/rules/graphql/lib/docs/graphql-gql-scan.md +3 -5
  103. package/rules/graphql/lib/docs/index.md +11 -0
  104. package/rules/hasura/docs/fix.md +3 -5
  105. package/rules/hasura/docs/index.md +11 -0
  106. package/rules/hasura/js/docs/index.md +11 -0
  107. package/rules/hasura/js/docs/internal_urls.md +3 -5
  108. package/rules/image-avif/docs/fix.md +3 -5
  109. package/rules/image-avif/docs/index.md +11 -0
  110. package/rules/image-avif/js/docs/avif_generation.md +3 -5
  111. package/rules/image-avif/js/docs/index.md +11 -0
  112. package/rules/image-compress/docs/fix.md +3 -5
  113. package/rules/image-compress/docs/index.md +11 -0
  114. package/rules/image-compress/js/docs/index.md +11 -0
  115. package/rules/image-compress/js/docs/package_setup.md +3 -5
  116. package/rules/js-bun-db/docs/fix.md +3 -5
  117. package/rules/js-bun-db/docs/index.md +11 -0
  118. package/rules/js-bun-db/js/docs/index.md +11 -0
  119. package/rules/js-bun-db/js/docs/safety.md +3 -5
  120. package/rules/js-bun-db/lib/docs/bun-sql-scan.md +3 -5
  121. package/rules/js-bun-db/lib/docs/index.md +11 -0
  122. package/rules/js-bun-redis/docs/fix.md +3 -5
  123. package/rules/js-bun-redis/docs/index.md +11 -0
  124. package/rules/js-bun-redis/js/docs/imports.md +3 -5
  125. package/rules/js-bun-redis/js/docs/index.md +11 -0
  126. package/rules/js-bun-redis/lib/docs/index.md +11 -0
  127. package/rules/js-bun-redis/lib/docs/redis-imports.md +3 -5
  128. package/rules/js-lint/docs/fix.md +3 -5
  129. package/rules/js-lint/docs/index.md +11 -0
  130. package/rules/js-lint/js/docs/index.md +14 -0
  131. package/rules/js-lint/js/docs/lint-findings.md +3 -5
  132. package/rules/js-lint/js/docs/lint.md +3 -5
  133. package/rules/js-lint/js/docs/tooling.md +3 -5
  134. package/rules/js-lint/js/docs/utils_imports.md +3 -5
  135. package/rules/js-lint-ci/docs/fix.md +3 -5
  136. package/rules/js-lint-ci/docs/index.md +11 -0
  137. package/rules/js-lint-ci/js/docs/index.md +11 -0
  138. package/rules/js-lint-ci/js/docs/lint.md +3 -5
  139. package/rules/js-mssql/docs/fix.md +3 -5
  140. package/rules/js-mssql/docs/index.md +11 -0
  141. package/rules/js-mssql/js/docs/deps.md +3 -5
  142. package/rules/js-mssql/js/docs/index.md +11 -0
  143. package/rules/js-mssql/lib/docs/index.md +11 -0
  144. package/rules/js-mssql/lib/docs/mssql-pool-scan.md +3 -5
  145. package/rules/js-run/docs/fix.md +3 -5
  146. package/rules/js-run/docs/index.md +11 -0
  147. package/rules/js-run/js/docs/index.md +11 -0
  148. package/rules/js-run/js/docs/runtime.md +3 -5
  149. package/rules/js-run/lib/docs/bunyan-imports.md +3 -5
  150. package/rules/js-run/lib/docs/check-env-scan.md +3 -5
  151. package/rules/js-run/lib/docs/conn-file-rules.md +3 -5
  152. package/rules/js-run/lib/docs/conn-imports-scan.md +3 -5
  153. package/rules/js-run/lib/docs/index.md +16 -0
  154. package/rules/js-run/lib/docs/promise-settimeout-scan.md +3 -5
  155. package/rules/js-run/lib/docs/temporal-scan.md +3 -5
  156. package/rules/k8s/docs/fix.md +3 -5
  157. package/rules/k8s/docs/index.md +11 -0
  158. package/rules/k8s/k8s.mdc +10 -0
  159. package/rules/k8s/lint/docs/index.md +11 -0
  160. package/rules/k8s/lint/docs/lint.md +3 -5
  161. package/rules/k8s/policy/manifest/manifest.rego +46 -0
  162. package/rules/lint/docs/fix.md +3 -5
  163. package/rules/lint/docs/index.md +11 -0
  164. package/rules/lint/js/docs/index.md +11 -0
  165. package/rules/lint/js/docs/orchestrate.md +4 -6
  166. package/rules/nginx-default-tpl/docs/fix.md +3 -5
  167. package/rules/nginx-default-tpl/docs/index.md +11 -0
  168. package/rules/nginx-default-tpl/js/docs/index.md +11 -0
  169. package/rules/nginx-default-tpl/js/docs/template.md +3 -5
  170. package/rules/npm-module/docs/fix.md +3 -5
  171. package/rules/npm-module/docs/index.md +11 -0
  172. package/rules/npm-module/js/docs/header_doc_pointer.md +3 -5
  173. package/rules/npm-module/js/docs/index.md +14 -0
  174. package/rules/npm-module/js/docs/package_structure.md +3 -5
  175. package/rules/npm-module/js/docs/rule_meta.md +3 -5
  176. package/rules/npm-module/js/docs/skill_meta.md +3 -5
  177. package/rules/php/docs/fix.md +3 -5
  178. package/rules/php/docs/index.md +11 -0
  179. package/rules/php/js/docs/index.md +11 -0
  180. package/rules/php/js/docs/tooling.md +3 -5
  181. package/rules/php/lint/docs/index.md +11 -0
  182. package/rules/php/lint/docs/lint.md +3 -5
  183. package/rules/python/docs/fix.md +3 -5
  184. package/rules/python/docs/index.md +11 -0
  185. package/rules/python/js/docs/applies.md +3 -5
  186. package/rules/python/js/docs/index.md +12 -0
  187. package/rules/python/js/docs/tooling.md +3 -5
  188. package/rules/python/lint/docs/index.md +11 -0
  189. package/rules/python/lint/docs/lint.md +3 -5
  190. package/rules/rego/docs/fix.md +3 -5
  191. package/rules/rego/docs/index.md +11 -0
  192. package/rules/rego/js/docs/applies.md +3 -5
  193. package/rules/rego/js/docs/index.md +12 -0
  194. package/rules/rego/js/docs/lint.md +3 -5
  195. package/rules/rego/lint/docs/index.md +11 -0
  196. package/rules/rego/lint/docs/lint.md +3 -5
  197. package/rules/release/docs/change.md +3 -5
  198. package/rules/release/docs/fix.md +3 -5
  199. package/rules/release/docs/index.md +13 -0
  200. package/rules/release/docs/release.md +4 -6
  201. package/rules/release/lib/docs/aggregate.md +3 -5
  202. package/rules/release/lib/docs/change-file.md +3 -3
  203. package/rules/release/lib/docs/fallback.md +3 -5
  204. package/rules/release/lib/docs/index.md +13 -0
  205. package/rules/release/release.mjs +40 -1
  206. package/rules/rust/docs/fix.md +3 -5
  207. package/rules/rust/docs/index.md +11 -0
  208. package/rules/rust/js/docs/applies.md +3 -5
  209. package/rules/rust/js/docs/index.md +11 -0
  210. package/rules/rust/lib/docs/has-cargo-toml.md +3 -5
  211. package/rules/rust/lib/docs/index.md +11 -0
  212. package/rules/security/docs/fix.md +3 -5
  213. package/rules/security/docs/index.md +11 -0
  214. package/rules/security/js/docs/index.md +13 -0
  215. package/rules/security/js/docs/lint.md +3 -5
  216. package/rules/security/js/docs/sample_secret.md +3 -5
  217. package/rules/security/js/docs/trufflehog.md +3 -5
  218. package/rules/style-lint/docs/fix.md +3 -5
  219. package/rules/style-lint/docs/index.md +11 -0
  220. package/rules/style-lint/js/docs/index.md +12 -0
  221. package/rules/style-lint/js/docs/lint.md +3 -5
  222. package/rules/style-lint/js/docs/tooling.md +3 -5
  223. package/rules/tauri/docs/fix.md +3 -5
  224. package/rules/tauri/docs/index.md +11 -0
  225. package/rules/tauri/js/docs/cargo_mutants_config.md +3 -5
  226. package/rules/tauri/js/docs/index.md +12 -0
  227. package/rules/tauri/js/docs/tooling.md +3 -5
  228. package/rules/test/docs/fix.md +3 -5
  229. package/rules/test/docs/index.md +11 -0
  230. package/rules/test/js/data/stryker_config/docs/index.md +13 -0
  231. package/rules/test/js/data/stryker_config/docs/stryker-vue-macros-ignorer.md +3 -5
  232. package/rules/test/js/data/stryker_config/docs/stryker.config.baseline.md +3 -5
  233. package/rules/test/js/data/stryker_config/docs/stryker.config.vue.baseline.md +3 -5
  234. package/rules/test/js/data/vitest_config/docs/index.md +11 -0
  235. package/rules/test/js/data/vitest_config/docs/vitest.config.baseline.md +3 -5
  236. package/rules/test/js/docs/cargo_mutants_config.md +3 -5
  237. package/rules/test/js/docs/index.md +16 -0
  238. package/rules/test/js/docs/location.md +3 -5
  239. package/rules/test/js/docs/no-process-chdir.md +3 -5
  240. package/rules/test/js/docs/no-relative-fs-path.md +3 -5
  241. package/rules/test/js/docs/stryker_config.md +3 -5
  242. package/rules/test/js/docs/vitest-config-pool-forks.md +3 -5
  243. package/rules/text/docs/fix.md +3 -5
  244. package/rules/text/docs/index.md +11 -0
  245. package/rules/text/js/docs/forbidden-prettier.md +3 -5
  246. package/rules/text/js/docs/formatting.md +4 -6
  247. package/rules/text/js/docs/index.md +13 -0
  248. package/rules/text/js/docs/lint.md +4 -6
  249. package/rules/text/lint/docs/cspell-fix.md +4 -6
  250. package/rules/text/lint/docs/index.md +15 -0
  251. package/rules/text/lint/docs/lint.md +4 -6
  252. package/rules/text/lint/docs/run-dotenv-linter.md +3 -5
  253. package/rules/text/lint/docs/run-shellcheck.md +3 -5
  254. package/rules/text/lint/docs/run-v8r.md +3 -5
  255. package/rules/vue/docs/fix.md +3 -5
  256. package/rules/vue/docs/index.md +11 -0
  257. package/rules/vue/js/docs/index.md +11 -0
  258. package/rules/vue/js/docs/packages.md +3 -5
  259. package/rules/vue/lib/docs/index.md +11 -0
  260. package/rules/vue/lib/docs/vue-forbidden-imports.md +3 -5
  261. package/rules/vue/vue.mdc +19 -1
  262. package/rules/worktree/docs/fix.md +3 -5
  263. package/rules/worktree/docs/index.md +11 -0
  264. package/rules/worktree/worktree.mdc +8 -8
  265. package/scripts/coverage-classify/docs/apply.md +3 -5
  266. package/scripts/coverage-classify/docs/cache.md +3 -5
  267. package/scripts/coverage-classify/docs/index.md +9 -27
  268. package/scripts/coverage-classify/docs/prompt.md +3 -5
  269. package/scripts/coverage-classify/docs/verdict-schema.md +3 -5
  270. package/scripts/dispatcher/docs/index.md +11 -0
  271. package/scripts/dispatcher/docs/trace.md +3 -5
  272. package/scripts/docs/auto-rules.md +3 -5
  273. package/scripts/docs/auto-skills.md +3 -5
  274. package/scripts/docs/build-agents-commands.md +3 -5
  275. package/scripts/docs/cli-entry.md +3 -5
  276. package/scripts/docs/coverage-fix-extract.md +3 -5
  277. package/scripts/docs/coverage-fix.md +3 -5
  278. package/scripts/docs/ensure-nitra-cursor-dev-dependencies.md +3 -5
  279. package/scripts/docs/index.md +24 -0
  280. package/scripts/docs/post-tool-use-fix.md +4 -6
  281. package/scripts/docs/rename-yaml-extensions.md +3 -5
  282. package/scripts/docs/skills-cli.md +3 -5
  283. package/scripts/docs/sync-claude-config.md +3 -5
  284. package/scripts/docs/sync-setup-bun-deps-action.md +3 -5
  285. package/scripts/docs/upgrade-nitra-cursor-and-install.md +3 -5
  286. package/scripts/docs/worktree-cli.md +3 -5
  287. package/scripts/lib/adr/docs/index.md +12 -0
  288. package/scripts/lib/adr/docs/normalize-cli.md +3 -5
  289. package/scripts/lib/adr/docs/normalize-pipeline.md +4 -6
  290. package/scripts/lib/adr/normalize-pipeline.mjs +140 -46
  291. package/scripts/lib/docs/assert-project-root.md +3 -5
  292. package/scripts/lib/docs/changed-files.md +3 -5
  293. package/scripts/lib/docs/check-mdc-template-refs.md +3 -5
  294. package/scripts/lib/docs/check-reporter.md +3 -5
  295. package/scripts/lib/docs/diff-added-lines.md +3 -5
  296. package/scripts/lib/docs/discover-check-rules-from-cursor.md +3 -5
  297. package/scripts/lib/docs/discover-checkable-rules.md +3 -5
  298. package/scripts/lib/docs/ensure-tool.md +3 -5
  299. package/scripts/lib/docs/generated-markdown.md +3 -5
  300. package/scripts/lib/docs/gha-workflow.md +3 -5
  301. package/scripts/lib/docs/index.md +44 -0
  302. package/scripts/lib/docs/inline-template-links.md +3 -5
  303. package/scripts/lib/docs/list-project-rules-mdc.md +3 -5
  304. package/scripts/lib/docs/list-rule-ids.md +3 -5
  305. package/scripts/lib/docs/load-cursor-config.md +3 -5
  306. package/scripts/lib/docs/mirror-parity.md +3 -3
  307. package/scripts/lib/docs/read-n-cursor-config-lite.md +3 -5
  308. package/scripts/lib/docs/resolve-target-files.md +3 -5
  309. package/scripts/lib/docs/root-notice.md +3 -5
  310. package/scripts/lib/docs/rule-meta-helpers.md +3 -5
  311. package/scripts/lib/docs/rule-meta.md +3 -5
  312. package/scripts/lib/docs/rule-predicates.md +3 -5
  313. package/scripts/lib/docs/run-conftest-batch.md +3 -5
  314. package/scripts/lib/docs/run-lint-step.md +3 -5
  315. package/scripts/lib/docs/run-rule-cli.md +3 -5
  316. package/scripts/lib/docs/run-rule.md +3 -5
  317. package/scripts/lib/docs/run-standard-lint.md +3 -5
  318. package/scripts/lib/docs/run-standard-rule.md +3 -5
  319. package/scripts/lib/docs/skill-meta.md +3 -5
  320. package/scripts/lib/docs/sync-gitignore-worktree.md +3 -5
  321. package/scripts/lib/docs/template.md +3 -5
  322. package/scripts/lib/docs/timing-summary.md +3 -5
  323. package/scripts/lib/docs/workspaces.md +3 -5
  324. package/scripts/lib/docs/worktree-notice.md +3 -5
  325. package/scripts/lib/docs/worktree.md +3 -5
  326. package/scripts/lib/fix/docs/index.md +16 -0
  327. package/scripts/lib/fix/docs/llm-fix-apply.md +3 -5
  328. package/scripts/lib/fix/docs/llm-lint-fix.md +3 -5
  329. package/scripts/lib/fix/docs/llm-worker.md +3 -5
  330. package/scripts/lib/fix/docs/orchestrator.md +3 -5
  331. package/scripts/lib/fix/docs/run-fix-check.md +3 -5
  332. package/scripts/lib/fix/docs/t0.md +3 -5
  333. package/scripts/lib/worktree-notice.mjs +3 -38
  334. package/scripts/utils/docs/ast-scan-utils.md +3 -5
  335. package/scripts/utils/docs/ensure-gitignore-entries.md +3 -5
  336. package/scripts/utils/docs/find-package-json-paths.md +3 -5
  337. package/scripts/utils/docs/index.md +23 -0
  338. package/scripts/utils/docs/lock-cache-dir.md +3 -5
  339. package/scripts/utils/docs/pass.md +3 -5
  340. package/scripts/utils/docs/resolve-cargo-manifest.md +3 -5
  341. package/scripts/utils/docs/resolve-cmd.md +3 -5
  342. package/scripts/utils/docs/resolve-js-root.md +3 -5
  343. package/scripts/utils/docs/test-helpers.md +3 -5
  344. package/scripts/utils/docs/walk-cache.md +3 -5
  345. package/scripts/utils/docs/walkDir.md +3 -5
  346. package/scripts/utils/docs/with-lock.md +3 -5
  347. package/scripts/utils/docs/worktree-fingerprint.md +3 -5
  348. package/skills/doc-aggregate/js/docs/docgen-ignore.md +3 -5
  349. package/skills/doc-aggregate/js/docs/docgen-scan.md +3 -5
  350. package/skills/doc-aggregate/js/docs/index.md +12 -0
  351. package/skills/start-check/js/docs/check.md +3 -5
  352. package/skills/start-check/js/docs/index.md +11 -0
  353. package/skills/taze/js/docs/diff.md +3 -5
  354. package/skills/taze/js/docs/index.md +11 -0
  355. package/scripts/lib/worktree.mjs +0 -126
  356. package/scripts/worktree-cli.mjs +0 -230
  357. package/skills/worktree/SKILL.md +0 -38
  358. package/skills/worktree/meta.json +0 -1
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: skill_meta.mjs
4
+ resource: npm/rules/npm-module/js/skill_meta.mjs
2
5
  docgen:
3
- source: npm/rules/npm-module/js/skill_meta.mjs
4
6
  crc: a069397b
5
7
  score: 100
6
8
  ---
7
9
 
8
- # skill_meta.mjs
9
-
10
- ## Огляд
11
-
12
10
  Перевірка стану конфігурації. Файл перевіряє відповідність між полями worktree та requireRoot. Перевірка спирається на конфіги meta.json.
13
11
 
14
12
  ## Поведінка
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: fix.mjs
4
+ resource: npm/rules/php/fix.mjs
2
5
  docgen:
3
- source: npm/rules/php/fix.mjs
4
6
  crc: 38cf876b
5
7
  score: 100
6
8
  ---
7
9
 
8
- # fix.mjs
9
-
10
- ## Огляд
11
-
12
10
  Виконує застосування політики JS-занепокоєних до mdc-refs на вхідному контексті прогону та повертає результат.
13
11
 
14
12
  Виконується при запуску через командний рядок, виконуючи повний еквівалент команди `npx @nitra/cursor fix <id>` та повертає код виходу.
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/php
4
+ resource: npm/rules/php/
5
+ ---
6
+
7
+ # npm/rules/php
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [fix.mjs](fix.md) | JS Module |
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/php/js
4
+ resource: npm/rules/php/js/
5
+ ---
6
+
7
+ # npm/rules/php/js
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [tooling.mjs](tooling.md) | JS Module |
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: tooling.mjs
4
+ resource: npm/rules/php/js/tooling.mjs
2
5
  docgen:
3
- source: npm/rules/php/js/tooling.mjs
4
6
  crc: a3e6a475
5
7
  score: 95
6
8
  ---
7
9
 
8
- # tooling.mjs
9
-
10
- ## Огляд
11
-
12
10
  Огляд
13
11
  Файл перевіряє наявність конфігураційних файлів для визначення залежностей та робочих потоків. Файл використовується для встановлення наявності певних файлів у репозиторії.
14
12
 
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/php/lint
4
+ resource: npm/rules/php/lint/
5
+ ---
6
+
7
+ # npm/rules/php/lint
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [lint.mjs](lint.md) | JS Module |
@@ -1,13 +1,11 @@
1
1
  ---
2
+ type: JS Module
3
+ title: lint.mjs
4
+ resource: npm/rules/php/lint/lint.mjs
2
5
  docgen:
3
- source: npm/rules/php/lint/lint.mjs
4
6
  crc: cafd914f
5
7
  ---
6
8
 
7
- # lint.mjs — PHP lint runner
8
-
9
- ## Огляд
10
-
11
9
  Модуль `lint.mjs` реалізує крок `lint-php` згідно з правилом `php.mdc`. Він виконує статичний та безпековий аналіз PHP-проєкту, який лежить у поточному робочому каталозі (`process.cwd()`), послідовно прогоняючи такі інструменти:
12
10
 
13
11
  1. `composer audit --no-interaction` — обовʼязковий аудит залежностей через Composer.
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: fix.mjs
4
+ resource: npm/rules/python/fix.mjs
2
5
  docgen:
3
- source: npm/rules/python/fix.mjs
4
6
  crc: 38cf876b
5
7
  score: 100
6
8
  ---
7
9
 
8
- # fix.mjs
9
-
10
- ## Огляд
11
-
12
10
  Виконує застосування JS-занепокоєних на вхідному контексті, застосовує визначену політику, генерує посилання на MDC та повертає результат прогону
13
11
 
14
12
  ## Поведінка
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/python
4
+ resource: npm/rules/python/
5
+ ---
6
+
7
+ # npm/rules/python
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [fix.mjs](fix.md) | JS Module |
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: applies.mjs
4
+ resource: npm/rules/python/js/applies.mjs
2
5
  docgen:
3
- source: npm/rules/python/js/applies.mjs
4
6
  crc: ed79bd71
5
7
  score: 100
6
8
  ---
7
9
 
8
- # applies.mjs
9
-
10
- ## Огляд
11
-
12
10
  Файл перевіряє наявність файлу pyproject.toml у корені репозиторію.
13
11
 
14
12
  ## Поведінка
@@ -0,0 +1,12 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/python/js
4
+ resource: npm/rules/python/js/
5
+ ---
6
+
7
+ # npm/rules/python/js
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [applies.mjs](applies.md) | JS Module |
12
+ | [tooling.mjs](tooling.md) | JS Module |
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: tooling.mjs
4
+ resource: npm/rules/python/js/tooling.mjs
2
5
  docgen:
3
- source: npm/rules/python/js/tooling.mjs
4
6
  crc: f4dc22e2
5
7
  score: 95
6
8
  ---
7
9
 
8
- # tooling.mjs
9
-
10
- ## Огляд
11
-
12
10
  Файл виконує перевірку наявності конфігураційних та залежностей у кореневому каталозі репозиторію. Він перевіряє структуру проекту відповідно до вимог, визначених у package.json.
13
11
 
14
12
  ## Поведінка
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/python/lint
4
+ resource: npm/rules/python/lint/
5
+ ---
6
+
7
+ # npm/rules/python/lint
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [lint.mjs](lint.md) | JS Module |
@@ -1,13 +1,11 @@
1
1
  ---
2
+ type: JS Module
3
+ title: lint.mjs
4
+ resource: npm/rules/python/lint/lint.mjs
2
5
  docgen:
3
- source: npm/rules/python/lint/lint.mjs
4
6
  crc: 92c8f115
5
7
  ---
6
8
 
7
- # `lint.mjs` — лінт-крок `lint-python`
8
-
9
- ## Огляд
10
-
11
9
  Модуль `npm/rules/python/lint/lint.mjs` реалізує крок `lint-python` — частину
12
10
  загального лінт-пайплайну монорепозиторію. Крок виконує перевірку Python-частини
13
11
  проєкту відповідно до правила `python.mdc` і базується на пакетному менеджері
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: fix.mjs
4
+ resource: npm/rules/rego/fix.mjs
2
5
  docgen:
3
- source: npm/rules/rego/fix.mjs
4
6
  crc: 38cf876b
5
7
  score: 100
6
8
  ---
7
9
 
8
- # fix.mjs
9
-
10
- ## Огляд
11
-
12
10
  Огляд: Функція run виконує перевірку правила. Повертає число, що інформує про успішність або порушення. Виконання правила через командний рядок повертає код виходу, який встановлює статус процесу.
13
11
 
14
12
  ## Поведінка
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/rego
4
+ resource: npm/rules/rego/
5
+ ---
6
+
7
+ # npm/rules/rego
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [fix.mjs](fix.md) | JS Module |
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: applies.mjs
4
+ resource: npm/rules/rego/js/applies.mjs
2
5
  docgen:
3
- source: npm/rules/rego/js/applies.mjs
4
6
  crc: 059e378c
5
7
  score: 100
6
8
  ---
7
9
 
8
- # applies.mjs
9
-
10
- ## Огляд
11
-
12
10
  Файл виконує перевірку наявності файлів із розширенням `.rego` у визначеній директорії. Функція видає повідомлення про старт перевірки та повертає код виходу.
13
11
 
14
12
  ## Поведінка
@@ -0,0 +1,12 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/rego/js
4
+ resource: npm/rules/rego/js/
5
+ ---
6
+
7
+ # npm/rules/rego/js
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [applies.mjs](applies.md) | JS Module |
12
+ | [lint.mjs](lint.md) | JS Module |
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: lint.mjs
4
+ resource: npm/rules/rego/js/lint.mjs
2
5
  docgen:
3
- source: npm/rules/rego/js/lint.mjs
4
6
  crc: 8c033173
5
7
  score: 100
6
8
  ---
7
9
 
8
- # lint.mjs
9
-
10
- ## Огляд
11
-
12
10
  Файл виконує передачу перевірок у наявні CLI правила. Функція повертає Promise з кодом виходу.
13
11
 
14
12
  ## Поведінка
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/rego/lint
4
+ resource: npm/rules/rego/lint/
5
+ ---
6
+
7
+ # npm/rules/rego/lint
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [lint.mjs](lint.md) | JS Module |
@@ -1,13 +1,11 @@
1
1
  ---
2
+ type: JS Module
3
+ title: lint.mjs
4
+ resource: npm/rules/rego/lint/lint.mjs
2
5
  docgen:
3
- source: npm/rules/rego/lint/lint.mjs
4
6
  crc: 1059537a
5
7
  ---
6
8
 
7
- # lint.mjs — Лінт Rego-полісі (`opa` + `regal` + опційний `conftest`)
8
-
9
- ## Огляд
10
-
11
9
  Модуль реалізує лінт-крок для Rego-полісі пакета `@nitra/cursor`, який живуть у каталозі
12
10
  `npm/rules/<id>/policy/<concern>/`. Він послідовно запускає три інструменти й повертає код
13
11
  виходу першого, що впав:
@@ -1,13 +1,11 @@
1
1
  ---
2
+ type: JS Module
3
+ title: change.mjs
4
+ resource: npm/rules/release/change.mjs
2
5
  docgen:
3
- source: npm/rules/release/change.mjs
4
6
  crc: 1ff4f816
5
7
  ---
6
8
 
7
- # `change.mjs` — створення одного change-файлу
8
-
9
- ## Огляд
10
-
11
9
  Модуль реалізує CLI-команду `n-cursor change`, яка створює **один** change-файл у каталозі `<ws>/.changes/<timestamp>-<rand>.md` усередині конкретного workspace монорепо. Файл містить мінімальний YAML-frontmatter (`bump`, `section`) та текст опису зміни.
12
10
 
13
11
  Призначення — замінити ручне редагування `CHANGELOG.md` під час feature-флоу: розробник (або агент) додає декларативний запис про зміну, а агрегація у фінальний `CHANGELOG.md` відбувається пізніше в CI (відповідно до правила `n-changelog.mdc` v3.0).
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: fix.mjs
4
+ resource: npm/rules/release/fix.mjs
2
5
  docgen:
3
- source: npm/rules/release/fix.mjs
4
6
  crc: 22936815
5
7
  score: 100
6
8
  ---
7
9
 
8
- # fix.mjs
9
-
10
- ## Огляд
11
-
12
10
  Файл ініціює виконання визначеного правила. Правило виконує необхідні дії з наданим контекстом. Виконане правило повертає отриманий результат.
13
11
 
14
12
  ## Поведінка
@@ -0,0 +1,13 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/release
4
+ resource: npm/rules/release/
5
+ ---
6
+
7
+ # npm/rules/release
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [change.mjs](change.md) | JS Module |
12
+ | [fix.mjs](fix.md) | JS Module |
13
+ | [release.mjs](release.md) | JS Module |
@@ -1,13 +1,11 @@
1
1
  ---
2
+ type: JS Module
3
+ title: release.mjs
4
+ resource: npm/rules/release/release.mjs
2
5
  docgen:
3
- source: npm/rules/release/release.mjs
4
- crc: b2b02de4
6
+ crc: 9aa2796b
5
7
  ---
6
8
 
7
- # `release.mjs` — оркестратор реліз-процесу `n-cursor release`
8
-
9
- ## Огляд
10
-
11
9
  Модуль `npm/rules/release/release.mjs` — це ядро команди `n-cursor release`. Він агрегує per-workspace change-файли (накопичені у `CHANGES_DIR` кожного воркспейсу) у:
12
10
 
13
11
  1. version-bump у маніфесті пакета (`package.json` для npm-пакетів або `pyproject.toml` для Python),
@@ -1,13 +1,11 @@
1
1
  ---
2
+ type: JS Module
3
+ title: aggregate.mjs
4
+ resource: npm/rules/release/lib/aggregate.mjs
2
5
  docgen:
3
- source: npm/rules/release/lib/aggregate.mjs
4
6
  crc: 1f78a0fe
5
7
  ---
6
8
 
7
- # aggregate.mjs
8
-
9
- ## Огляд
10
-
11
9
  Модуль `aggregate.mjs` забезпечує **агрегацію change-файлів одного workspace** у дві основні сутності:
12
10
 
13
11
  1. Новий рядок версії згідно semver-правил (`x.y.z` → бамп `major|minor|patch`).
@@ -1,11 +1,11 @@
1
1
  ---
2
+ type: JS Module
3
+ title: change-file.mjs
4
+ resource: npm/rules/release/lib/change-file.mjs
2
5
  docgen:
3
- source: npm/rules/release/lib/change-file.mjs
4
6
  crc: 9284bc96
5
7
  ---
6
8
 
7
- # `change-file.mjs`
8
-
9
9
  Модуль для роботи з одиничним **change-файлом** релізного процесу — невеликою markdown-нотаткою, що описує одну зміну в межах workspace і агрегується пізніше при формуванні CHANGELOG / bump версії.
10
10
 
11
11
  ## Огляд
@@ -1,13 +1,11 @@
1
1
  ---
2
+ type: JS Module
3
+ title: fallback.mjs
4
+ resource: npm/rules/release/lib/fallback.mjs
2
5
  docgen:
3
- source: npm/rules/release/lib/fallback.mjs
4
6
  crc: 99eb10bc
5
7
  ---
6
8
 
7
- # fallback.mjs
8
-
9
- ## Огляд
10
-
11
9
  Модуль `fallback.mjs` реалізує **третє рішення** з ADR `n-cursor-release-design`: коли в певному workspace монорепо виявлено релевантні зміни, але **жодного change-файлу** від розробника не з’явилося, релізний пайплайн все одно повинен мати запис у CHANGELOG. Для цього модуль **синтезує** один штучний запис `change` із commit-subject-ів, які з’явилися від моменту останнього релізного тегу формату `<name>@*` до `HEAD`, обмежуючи журнал git pathspec-ом самого workspace.
12
10
 
13
11
  Файл експортує дві функції:
@@ -0,0 +1,13 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/release/lib
4
+ resource: npm/rules/release/lib/
5
+ ---
6
+
7
+ # npm/rules/release/lib
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [aggregate.mjs](aggregate.md) | JS Module |
12
+ | [change-file.mjs](change-file.md) | JS Module |
13
+ | [fallback.mjs](fallback.md) | JS Module |
@@ -64,6 +64,45 @@ async function collectChangeFiles(cwd, manifest, runGit) {
64
64
  return [{ file: null, entry: synthesized }]
65
65
  }
66
66
 
67
+ /**
68
+ * Пушить release-коміт (із тегами) у апстрім, переживаючи паралельні push у ту саму гілку.
69
+ * `runGit` — ТИХИЙ раннер (повертає null при помилці), тож non-fast-forward push не кидає, а
70
+ * повертає null; цей хелпер ЯВНО перевіряє результат, щоб реліз не «вдався» без приземленого
71
+ * commit-back (саме така мовчазна поразка лишала npm попереду git). За відмовою push:
72
+ * fetch + rebase release-коміту на свіжий апстрім, пересунути теги на новий HEAD і повторити
73
+ * (до `attempts` разів). Без апстріму або при rebase-конфлікті — кидаємо, а не маскуємо.
74
+ * @param {(args: string[]) => Promise<string | null>} runGit git-раннер
75
+ * @param {string[]} tags теги релізу (вже створені на поточному HEAD)
76
+ * @param {number} [attempts] максимум спроб push
77
+ * @returns {Promise<void>} результат; кидає, якщо push так і не приземлився
78
+ */
79
+ async function pushReleaseWithRetry(runGit, tags, attempts = 5) {
80
+ for (let attempt = 1; attempt <= attempts; attempt++) {
81
+ const pushed = await runGit(['push', '--follow-tags'])
82
+ if (pushed !== null) return
83
+ if (attempt === attempts) break
84
+ // push відхилено (найімовірніше non-fast-forward — апстрім пішов уперед) → інтегруємо й пробуємо ще
85
+ const upstream = (await runGit(['rev-parse', '--abbrev-ref', '--symbolic-full-name', '@{u}']))?.trim()
86
+ if (!upstream) {
87
+ throw new Error('release: git push відхилено, а upstream для rebase немає — commit-back не приземлився')
88
+ }
89
+ const remote = upstream.includes('/') ? upstream.slice(0, upstream.indexOf('/')) : 'origin'
90
+ await runGit(['fetch', remote])
91
+ const rebased = await runGit(['rebase', upstream])
92
+ if (rebased === null) {
93
+ await runGit(['rebase', '--abort'])
94
+ throw new Error(`release: push відхилено і rebase на ${upstream} дав конфлікт — розв'яжи вручну`)
95
+ }
96
+ // після rebase хеш release-коміту змінився → пересуваємо теги на новий HEAD
97
+ for (const tag of tags) {
98
+ await runGit(['tag', '-f', tag])
99
+ }
100
+ }
101
+ throw new Error(
102
+ `release: git push не вдався після ${attempts} спроб (non-fast-forward?) — commit-back не приземлився, реліз неуспішний`
103
+ )
104
+ }
105
+
67
106
  /**
68
107
  * @param {object} [opts] опції
69
108
  * @param {string} [opts.cwd] корінь
@@ -112,7 +151,7 @@ export async function release(opts = {}) {
112
151
  for (const tag of tags) {
113
152
  await runGit(['tag', tag])
114
153
  }
115
- await runGit(['push', '--follow-tags'])
154
+ await pushReleaseWithRetry(runGit, tags)
116
155
  }
117
156
  return released
118
157
  }
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: fix.mjs
4
+ resource: npm/rules/rust/fix.mjs
2
5
  docgen:
3
- source: npm/rules/rust/fix.mjs
4
6
  crc: 38cf876b
5
7
  score: 100
6
8
  ---
7
9
 
8
- # fix.mjs
9
-
10
- ## Огляд
11
-
12
10
  Огляд
13
11
  Файл надає механізм для виконання стандартних правил. Використовується для запуску правил через функцію runStandardRule та для запуску правил у режимі командного рядка через runRuleCli.
14
12
 
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/rust
4
+ resource: npm/rules/rust/
5
+ ---
6
+
7
+ # npm/rules/rust
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [fix.mjs](fix.md) | JS Module |
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: applies.mjs
4
+ resource: npm/rules/rust/js/applies.mjs
2
5
  docgen:
3
- source: npm/rules/rust/js/applies.mjs
4
6
  crc: 4cc601f5
5
7
  score: 100
6
8
  ---
7
9
 
8
- # applies.mjs
9
-
10
- ## Огляд
11
-
12
10
  Огляд
13
11
  Файл виконує перевірку наявності файлу Cargo.toml у кореневому репозиторії та підкаталогах. Функція check генерує звіт про порушення конфігураційних правил.
14
12
 
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/rust/js
4
+ resource: npm/rules/rust/js/
5
+ ---
6
+
7
+ # npm/rules/rust/js
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [applies.mjs](applies.md) | JS Module |
@@ -1,13 +1,11 @@
1
1
  ---
2
+ type: JS Module
3
+ title: has-cargo-toml.mjs
4
+ resource: npm/rules/rust/lib/has-cargo-toml.mjs
2
5
  docgen:
3
- source: npm/rules/rust/lib/has-cargo-toml.mjs
4
6
  crc: f55fc57e
5
7
  ---
6
8
 
7
- # has-cargo-toml.mjs
8
-
9
- ## Огляд
10
-
11
9
  Модуль `has-cargo-toml.mjs` — rule-local утиліта для правил Rust, що визначає наявність маніфесту Cargo (`Cargo.toml`) у дереві файлової системи, починаючи з заданого кореневого каталогу. Використовується як applies-walker на рівні правила: дозволяє правилу Rust динамічно вирішувати, чи варто застосовуватися до конкретного workspace/cwd, шукаючи `Cargo.toml` у поточному каталозі або в будь-якому з підкаталогів.
12
10
 
13
11
  Реалізація — синхронний рекурсивний обхід каталогів з раннім поверненням (`early return`) при першому ж знайденому `Cargo.toml`, без читання вмісту файлів. Імена директорій, у які заходити не треба (наприклад, `node_modules`, `.git`, `.next`, `.turbo`), передаються ззовні через `Set<string>` — модуль свідомо не містить власного списку, щоб список ігнорувань був єдиним з тим, що в `npm/scripts/auto-rules.mjs` (на рівні виклику).
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/rust/lib
4
+ resource: npm/rules/rust/lib/
5
+ ---
6
+
7
+ # npm/rules/rust/lib
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [has-cargo-toml.mjs](has-cargo-toml.md) | JS Module |
@@ -1,14 +1,12 @@
1
1
  ---
2
+ type: JS Module
3
+ title: fix.mjs
4
+ resource: npm/rules/security/fix.mjs
2
5
  docgen:
3
- source: npm/rules/security/fix.mjs
4
6
  crc: 38cf876b
5
7
  score: 70
6
8
  ---
7
9
 
8
- # fix.mjs
9
-
10
- ## Огляд
11
-
12
10
  Файл ініціює виконання визначеного правила. Правило виконує операцію `applies` з використанням `JS-concerns` для отримання `policy` з `mdc-refs`. При завершенні роботи, якщо виконання відбувається через командний рядок, повертається код виходу для встановлення статусу завершення процесу.
13
11
 
14
12
  ## Поведінка
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: Directory Index
3
+ title: npm/rules/security
4
+ resource: npm/rules/security/
5
+ ---
6
+
7
+ # npm/rules/security
8
+
9
+ | Файл | Тип |
10
+ |---|---|
11
+ | [fix.mjs](fix.md) | JS Module |