Skip to content

chore: дочистка інфраструктури — тільки лінт-механізми для документації - #60

Merged
vitaliytv merged 1 commit into
mainfrom
claude/docs-lint-only
Jul 23, 2026
Merged

Conversation

@vitaliytv

Copy link
Copy Markdown
Member

Що зроблено

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

Видалено

  • Правила worktree і image-compress (.n-rules.json: rulesdisable-rules). Обидва безпечно вимикаються — lint --no-fix і lint ga --no-fix проходять чисто без них. Причина: 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 — прибрано @-імпорти/пункти на видалені файли вище. Обидва файли позначені як згенеровані через npx @7n/rules (bare-sync навмисно не запускався — там є ризик небажаних auto-detect/upgrade дій поза скоупом задачі); без нього вони не самосинхронізуються, тож ручна правка — єдиний спосіб уникнути 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/ цього репо). Додано source-command-n-brainstorming/SKILL.md — єдиний скіл, якого бракувало в .agents-дзеркалі порівняно з рештою трьох локацій. Тепер усі чотири мірори симетричні: adr-normalize, brainstorming, lint, llm-patch, publish-telegram, taze.
  • .codex/hooks/capture-decisions.log, normalize-decisions.log, .normalize-state — рантайм лог/стейт-файли, помилково закомічені; вміст логів посилається на шляхи стороннього локального проекту, що підтверджує випадковість коміту. Додано .gitignore-записи за аналогією з наявними .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 або перезапише її назад, або дасть непередбачуваний результат — тому лишено як є з явним застереженням тут.

Верифікація

  • npx @7n/rules lint --no-fix — exit 0
  • npx @7n/rules lint ga --no-fix — exit 0
  • npx @7n/rules lint --full --no-fix — exit 0
  • git grep sweep на мертві посилання (npx @7n/mt worktree, mt scan, crates/, cargo) — єдині залишки: npx @7n/mt worktree у 3 preflight-блоках вище (задокументовано), cargo/crates/ — виключно в узагальненій умовній Rust-гілці n-taze.

Test plan

  • npx @7n/rules lint --no-fix чистий
  • npx @7n/rules lint ga --no-fix чистий
  • npx @7n/rules lint --full --no-fix чистий
  • git grep sweep на мертві посилання виконано, результати задокументовані вище

🤖 Generated with Claude Code

Продовження #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>
@vitaliytv
vitaliytv merged commit 2c13910 into main Jul 23, 2026
4 checks passed
vitaliytv added a commit that referenced this pull request Jul 23, 2026
Ручна курація виводу "голого" npx @7n/rules (без застосування автодетекту):

Прийнято:
- @7n/rules ^1.43.1→^1.44.1, @7n/rules-ci-github ^1.9.0→^1.9.2
- n-changelog.mdc, n-security.mdc — точкові покращення контенту (лінт чистий)
- n-adr-normalize/SKILL.md, n-lint/SKILL.md — краще розпізнавання "вже в
  worktree" (.worktrees/ і .claude/worktrees/) + ідемпотентний bun install
  у worktree-блоці
- .gitignore: .claude/scheduled_tasks.lock (з правила adr)

Відкинуто (scope creep — автодетект правил, яких цей docs-only репо не
потребує):
- нові правила bun/doc-files/js/local-ai/test, skill doc-files,
  plugin @7n/rules-lang-js (тягнув eslint/oxlint/jscpd/knip/stylelint
  назад — саме те, що прибрано в PR #60)
- rtk-хуки (.claude/settings.json, .cursor/hooks.json, .pi/extensions/rtk.ts)
- переписані CLAUDE.md/AGENTS.md і n-taze-файли під multi-ecosystem
  lang-plugin архітектуру

Відкинуто n-ga.mdc/n-text.mdc/n-adr.mdc — контентні покращення там
приносили новий лінт-борг (cspell unknown words, MD031/032/038); не
варті рефлоу заради формулювань.

Не вирішено (винесено окремо в /n-llm-patch): застарілий
`npx @7n/mt worktree create` у 3 skill-файлах — зашитий у шаблоні
@7n/rules (skills/{taze,lint,adr-normalize}/main.json → worktree:true),
не контролюється через .n-rules.json.

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