Lines 48-88javascript
49 * Composite GitHub Action `.github/actions/setup-bun-deps/action.yml` копіюється з каталогу
50 * `github-actions/` пакету при кожному успішному синку (workflows з правил ga / js-lint / text).
52 * Skills копіюються з npm/skills пакету лише для id з масиву «skills» у .n-rules.json
53 * (у JSON — без префікса, як імена каталогів у rules/ без n-). У пакеті джерело — каталоги
54 * skills/<id>/ (без префікса); у проєкті — .cursor/skills/n-<id>/ (префікс n-, як n-*.mdc).
55 * Якщо ключа skills немає, за замовчуванням підтягуються всі підкаталоги skills/ (лише імена без префікса n-).
56 * Зайві каталоги n-* у .cursor/skills, яких немає у списку, видаляються.
57 * Файл `auto.md` у скілі — джерело правди для auto-skills у CLI (`scripts/auto-skills.mjs`)
58 * і у проєкт не копіюється; раніше синхронізовані `auto.md` у `.cursor/skills/n-<id>/` CLI
59 * не чіпає — їх потрібно прибрати вручну.
61 * Якщо в корені є package.json і в ньому ще немає \@7n/rules у devDependencies (і не оголошено
62 * в dependencies), CLI дописує devDependencies з діапазоном ^<version> поточного пакету — зручно після npx.
64 * Перед копіюванням правил (режим без підкоманди): оновлення \@7n/rules у package.json до
65 * останньої версії з npm (крім workspace:/file:/link: тощо), `bun i`, далі файли беруться з
66 * `node_modules/@7n/rules`, якщо пакет з’явився після встановлення.
69import { spawnSync } from 'node:child_process'
70import { existsSync } from 'node:fs'
HighChild Process
Package source references child process execution.
bin/n-rules.jsView on unpkg · L68 71import { mkdir, readdir, readFile, rename, rm, unlink, writeFile } from 'node:fs/promises'
72import { basename, dirname, join, resolve } from 'node:path'
73import { cwd, env } from 'node:process'
74import { fileURLToPath } from 'node:url'
76import { buildAgentsCommandBulletItems } from '../scripts/build-agents-commands.mjs'
77import { formatGeneratedMarkdownLines, renderAgentsTemplate } from '../scripts/lib/generated-markdown.mjs'
78import { appendDiscoveredMdcFiles, inlineTemplateLinks } from '../scripts/lib/inline-template-links.mjs'
82 mergeConfigWithAutoDetected,
85} from '../scripts/auto-rules.mjs'
86import { detectAutoSkills } from '../scripts/auto-skills.mjs'
88 bringChangesBackToOriginal,