diff --git a/.changes/260722-1502.md b/.changes/260722-1502.md new file mode 100644 index 0000000..d63775f --- /dev/null +++ b/.changes/260722-1502.md @@ -0,0 +1,5 @@ +--- +bump: minor +section: Changed +--- +Максимально чистий spec-репо: прибрано layers/ (переїхав у nitra/mt-rust), тести, JS-лінт-тулінг і відповідні cursor-правила/скіли; залишились лише docs/ і md-лінт-тулінг. Виправлено md-борг (cspell/markdownlint) на docs/architecture, docs/overview, docs/roadmap.en.md. diff --git a/.claude/commands/n-doc-files.md b/.claude/commands/n-doc-files.md deleted file mode 100644 index de30bb4..0000000 --- a/.claude/commands/n-doc-files.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -description: >- - Обовʼязковий крок задачі (як lint): для кожного зміненого/нового кодового файлу (js/mjs/ts/vue/py) JS-оркестрована генерація лаконічної поведінкової української md-документації у теку docs/ поряд із кодом, зі звіркою застарілості за CRC у frontmatter ---- - -# n-doc-files - -Виконай інструкції зі скілу `.cursor/skills/n-doc-files/SKILL.md`. diff --git a/.cspell.json b/.cspell.json index 6977e6a..be1a66d 100644 --- a/.cspell.json +++ b/.cspell.json @@ -27,6 +27,8 @@ "chrono", "clippy", "CLIS", + "Crowdsourced", + "Daemonization", "dalek", "deadbe", "deadbeefdeadbeefdead", @@ -48,6 +50,7 @@ "Kratos", "libc", "libmt", + "lifecycles", "mktemp", "mktree", "msvc", @@ -63,8 +66,10 @@ "oneshot", "pubkeys", "refspec", + "reimplementation", "reqwest", "rescan", + "rescans", "rmcp", "roundtrips", "rsplit", @@ -73,9 +78,11 @@ "sanit", "schemars", "serde", + "sessionability", "sonarjs", "SPKI", "subdirs", + "subpackages", "subsec", "svkozak", "taskish", @@ -388,6 +395,7 @@ "платформозалежному", "побрейнштормимо", "поведі", + "поверхень", "портабельна", "пофайловий", "превʼю", @@ -427,6 +435,7 @@ "резолвнуту", "резолву", "реімплементації", + "реімплементацію", "реімплементовано", "реімплементує", "реімплементується", @@ -524,6 +533,7 @@ "хелпери", "хендшейк", "хендшейку", + "хешів", "чанки", "чекаутиться", "чекаючий", diff --git a/.cursor/rules/n-bun.mdc b/.cursor/rules/n-bun.mdc deleted file mode 100644 index 0b05078..0000000 --- a/.cursor/rules/n-bun.mdc +++ /dev/null @@ -1,113 +0,0 @@ ---- -description: Bun як єдиний package manager у монорепо -globs: "**/package.json,**/bunfig.toml,**/bun.lock,**/bun.lockb" -alwaysApply: false -version: '2.1' ---- - -Проект використовує тільки Bun для керування залежностями та запуску скриптів. - -- `package.json`: - -```json -{ - "packageManager": "видали поле — Bun не потребує packageManager (bun.mdc)", - "dependencies": "кореневий package.json не повинен містити dependencies — додай у workspace-пакети (bun.mdc)" -} -``` - -- `bunfig.toml`: - -```toml -[install] -linker = "hoisted" -``` - -## Rego-gate: відповідність bunfig.toml канонічному шаблону - -Rego-пакет: `bun.bunfig` - -Цільовий файл: `bunfig.toml` (корінь репо). - -Шаблон (leaf-значення, які gate порівнює): [bunfig.toml.snippet.toml](./template/bunfig.toml.snippet.toml) - -Gate порівнює кожен leaf-ключ у кожній секції шаблону з фактичним значенням у `bunfig.toml`. Зайві ключі та секції — ігноруються. Deny-повідомлення виникає, якщо: - -- секція відсутня або не є обʼєктом (`bunfig.toml: відсутня секція [install]`) -- leaf-ключ має інше значення (`bunfig.toml: у секції [install] має бути linker = "hoisted"`) - -## Структура lockfile та менеджер пакетів - -Проект використовує **тільки Bun** для керування залежностями та запуску скриптів. - -**Заборонені lockfile / директорії** (мають бути відсутні у репозиторії): - -- `package-lock.json` -- `yarn.lock` -- `pnpm-lock.yaml` -- `.yarnrc.yml` -- `.yarn/` - -Якщо якийсь із цих файлів чи директорій існує — **видали** його. - -**Обовʼязковий lockfile:** `bun.lock` (має бути присутній у корені). - -**Заборонені команди менеджерів пакетів:** - -- `npm install`, `yarn`, `pnpm` і їх відповідники lockfile (крім `bun.lock`) - -**Дозволені команди:** - -- `bun i` -- `bun run