Skip to content

Максимально чистий spec-репо — тільки md протоколу і md-лінти - #59

Merged
vitaliytv merged 1 commit into
mainfrom
claude/spec-md-only
Jul 22, 2026
Merged

Максимально чистий spec-репо — тільки md протоколу і md-лінти#59
vitaliytv merged 1 commit into
mainfrom
claude/spec-md-only

Conversation

@vitaliytv

Copy link
Copy Markdown
Member

Що зроблено

Репозиторій зведено до мінімуму: специфікація протоколу (docs/) + тулінг для лінту markdown. Усе інше — прибрано.

Видалено

  • layers/ — рушій шарової документації переїхав у nitra/mt-rust; docs/layers.json лишається в цьому репо як конфіг + CRC-маркери (дані для рушія), $schema вказує на новий канонічний shema-URL у mt-rust.
  • tests/, vitest.config.mjs, stryker.config.mjs, eslint.config.js, knip.json, .oxlintrc.json, .oxfmtrc.json→ повернуто (канон вимагає, див. нижче), .jscpd.json, .licensee.json, .v8rignore → повернуто (канон вимагає), hk.pkl.
  • Відповідні cursor-правила/скіли: n-bun, n-js, n-js-run, n-test, n-doc-files (правило + скіл + дзеркальні команди в .claude/commands/ і .pi/skills/) — коду для документування не лишилось.
  • .github/workflows/lint-js.yml — JS-лінт більше не потрібен.
  • package.json звужено до мінімального публікованого @7n/mt: лише docs/README.md/CHANGELOG.md у files, devDependencies — тільки @7n/rules, @7n/rules-ci-github, @nitra/cspell-dict (потрібні для md-лінту). bun.lock перегенеровано.

Виправлено (md-борг з main)

  • cspell (11 знахідок → 10 унікальних слів): усі — легітимні терміни/англіцизми (Crowdsourced, Daemonization, lifecycles, reimplementation, rescans, sessionability, subpackages, хешів, поверхень, реімплементацію), не помилки — додано у словник .cspell.json, контент не чіпав.
  • MD025 (дублікат H1) у docs/overview/direction.md і docs/overview/index.md: причина — зайве поле title у YAML-frontmatter, якого немає в жодному з інших ~28 layered-документів; прибрано поле (мінімальна content-правка, CRC цих layers-джерел стає застарілим — очікувано).
  • MD051 (непрацююче посилання) у docs/roadmap.en.md: якір #m3--dashboard-і-поверхні лишився невідредагованим при перекладі заголовка на ## M3 — Dashboard and surfaces; виправлено на #m3--dashboard-and-surfaces.

Канон ga/text/worktree (виявлено емпірично прогоном лінту)

  • .github/workflows/lint-repo.yml — обов'язковий для будь-якого github-консюмера @7n/rules-ci-github (repo-wide перевірки без path-фільтра) — створено зі snippet.
  • .v8rignore і .oxfmtrc.json — text-канон вимагає їх незалежно від наявності JS; лишились (не видалені, попри початковий намір).
  • .vscode/settings.json — worktree-канон вимагає search.exclude/files.exclude як обʼєкти — приведено у відповідність.
  • git-ai.yml — обов'язковий workflow за каноном ga/workflows, лишився без змін.

Верифікація

  • npx @7n/rules lint --no-fix (delta) і --full --no-fix — exit 0, нуль порушень.
  • npx @7n/rules lint ga --no-fix — exit 0.
  • npm pack --dry-run — тарбол = docs/** + README.md + CHANGELOG.md + package.json, 45 файлів.
  • git grep на layers/lib|vitest|eslint|oxlint|knip|stryker — без живих згадок (лишились тільки generic-документація інструмента @7n/rules у SKILL.md/mdc-файлах і один dead ignore-glob у .cspell.json).
  • git ls-files '*.mjs' '*.js' '*.ts' — єдиний виняток: .pi/extensions/n-rules-adr/index.ts — адаптер для Stop-хука правила adr (яке лишається), не код застосунку.

Мердж у main тригерне npm-publish.yml → наступний реліз @7n/mt.

🤖 Generated with Claude Code

…ти; layers переїхав у mt-rust

Прибрано layers/ (рушій шарової документації переїхав у nitra/mt-rust, docs/layers.json
лишається як конфіг+CRC-дані з новим $schema на mt-rust), tests/, весь JS-лінт/тест-тулінг
(vitest, stryker, eslint, oxlint, jscpd, knip, licensee) і відповідні cursor-правила/скіли
(n-bun, n-js, n-js-run, n-test, n-doc-files). package.json звужено до мінімального
публікованого @7n/mt (лише devDeps, потрібні для md-лінту). .n-rules.json/CLAUDE.md/AGENTS.md
синхронізовано з новим набором правил і скілів.

Виправлено md-борг: 10 легітимних термінів/англіцизмів додано у .cspell.json (без правок
контенту), MD025 (дублікат H1 через зайве поле title у frontmatter) прибрано у
docs/overview/{direction,index}.md, MD051 (застаріле посилання на розділ M3 у перекладі)
виправлено в docs/roadmap.en.md. Канон ga вимагав .github/workflows/lint-repo.yml (repo-wide
lint) і worktree-канон .vscode/settings.json — додано/приведено у відповідність; .v8rignore
і .oxfmtrc.json лишились (text-канон вимагає їх незалежно від JS).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vitaliytv
vitaliytv merged commit cd5f614 into main Jul 22, 2026
4 checks passed
vitaliytv added a commit that referenced this pull request Jul 23, 2026
…ії (#60)

Продовження #58/#59: репо вже spec-only, тепер прибрано інфраструктурні
хвости, що лишилися неузгодженими після переїзду.

Видалення:
- .n-rules.json: rules worktree/image-compress → disable-rules (обидва
  безпечно вимикаються — `lint --no-fix`/`lint ga --no-fix` пройшли чисто
  без них; підтверджено офіційним полем схеми `disable-rules`, а не просто
  вилученням з `rules`). Причина: `n-worktree.mdc` документує
  `npx @7n/mt worktree create/list/remove/prune` — цієї команди в
  spec-пакеті `@7n/mt` більше нема (CLI переїхав у nitra/mt-js,
  непублікований); `image-compress` — у docs/ немає жодного растрового
  чи SVG-файлу, канон з нульовим застосуванням.
- .cursor/rules/n-worktree.mdc, .cursor/rules/n-image-compress.mdc —
  видалені як канонічні файли вимкнених правил (орфановані, ніде більше
  не застосовуються).
- CLAUDE.md, AGENTS.md — прибрано `@`-імпорти/пункти на видалені
  n-worktree.mdc/n-image-compress.mdc (обидва файли позначені
  "генерується автоматично через npx @7n/rules, не редагуй вручну";
  bare-sync навмисно не запускався за умовами задачі — без нього
  ці два файли не самосинхронізуються, тож ручна правка тут єдиний спосіб
  уникнути dangling-імпорту на видалений файл; наступний реальний sync
  дасть еквівалентний результат).
- .agents/skills/source-command-{n-coverage-fix,n-fix-tests,n-fix,
  n-start-check,n-worktree}/SKILL.md — застарілі дзеркала, що вказували
  на неіснуючі `.cursor/skills/n-*/SKILL.md` (ці скіли ніколи не існували
  в .cursor/skills/, .claude/commands/, .pi/skills/ цього репо; n-worktree
  теж вказував на неіснуючий `.cursor/skills/n-worktree/SKILL.md` —
  окремо від рішення про правило "worktree", сам скіл-мірор був мертвий).
  Додано source-command-n-brainstorming/SKILL.md — єдиний скіл, якого
  бракувало в .agents-дзеркалі порівняно з .claude/commands, .cursor/skills,
  .pi/skills (тепер усі чотири локації симетричні: adr-normalize,
  brainstorming, lint, llm-patch, publish-telegram, taze).
- .codex/hooks/capture-decisions.log, normalize-decisions.log,
  .normalize-state — рантайм лог/стейт-файли, помилково закомічені;
  вміст логів посилається на шляхи іншого локального проекту
  (/Users/vitaliytv/www/vitaliytv/7n/...), що підтверджує випадковість
  коміту. Додано .gitignore-записи для .codex/hooks/*.log,
  .normalize-state, .normalize.lock (за аналогією з уже наявними
  .claude/hooks/-записами).

Залишено:
- Скіл `taze` — оновлює npm/bun-залежності репо (включно з @7n/rules,
  на якому тримається сам лінт), тобто підтримує інструмент лінтування,
  а не є "функціональністю коду" поза межами документації. Опційна
  Rust/cargo-гілка в n-taze/SKILL.md — узагальнена, умовна ("якщо є
  Cargo.toml"), не прив'язана до конкретного видаленого коду цього репо.

Невирішена невідповідність (звіт, без правки):
- .cursor/skills/{n-adr-normalize,n-lint,n-taze}/SKILL.md досі містять
  у preflight-блоці `<!-- n-rules:worktree:start/end -->` команду
  `npx @7n/mt worktree create ...`. Це package-шаблонований контент
  (worktree-only skills, main.json → worktree: true, поза контролем
  .n-rules.json цього репо) — регенерується лише bare `npx @7n/rules`,
  який заборонено запускати за умовами задачі. Ручна правка цього блоку
  ризикована: наступний реальний sync або перезапише її назад, або дасть
  непередбачуваний результат — тому лишено як є з explicit флагом
  тут і в PR.

Верифікація: `npx @7n/rules lint --no-fix`, `lint ga --no-fix`,
`lint --full --no-fix` — усі exit 0.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant