This repository was archived by the owner on Sep 11, 2026. It is now read-only.
Repository navigation
feat(plugins): фаза 5c lang-плагінів — JS-сімʼя lint-правил у @7n/rules-lang-js - #145
Merged
Merged
Conversation
…es-lang-js - переїзд 9 правил з ядра: js, bun, vue, js-run, js-bun-db, js-bun-redis, js-mssql, npm-module, tool-surface (lang-js тепер contributes.rules) - рушій auto-rules без імпортів із правил: globToRegex і js-source-signals (textHasBunSqlImport, contentForVueImportScan) винесені в scripts/lib ядра, плагін імпортує їх назад через @7n/rules/scripts і ре-експортує для сумісності API - залежності інструментів (eslint, knip, jscpd, oxlint) переїхали з ядра у плагін; oxc-parser/globby/ignore — власні deps плагіна - js-run/jsconfig rego резолвиться через policyDirAbs від модуля плагіна (як у ci-github) - тести: contract 25 правил ядра + ownership js-сімʼї; auto-rules з RULES_DIRS усіх lang-плагінів; фікстури service_deploy у ci-github/ci-azure лінкують реальний lang-js Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
vitaliytv
force-pushed
the
claude/lang-plugins-phase5c
branch
from
July 19, 2026 12:46
c33c6cf to
53af080
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Що зроблено (фаза 5c spec lang-plugins-extraction)
Фінальний великий інкремент фази 5: JS-сімʼя lint-правил їде з ядра у
@7n/rules-lang-js. Після 5a (taze) і 5b (doc-files) це закриває lint-поверхню.Переїхали 9 правил (~14k рядків, 326 файлів)
js,bun,vue,js-run,js-bun-db,js-bun-redis,js-mssql,npm-module,tool-surface→plugins/lang-js/rules/. Плагін теперcontributes.rules: true; дзеркала.cursor/rules/n-js.mdcтощо генеруються з плагінного джерела без зміни контенту (діф дзеркал порожній).Рушій ядра без імпортів із правил (інверсія залежностей)
auto-rules.mjsімпортував три хелпери з js-правил. Тепер вони в ядрі, а плагін імпортує їх назад через@7n/rules/scripts/…і ре-експортує (публічний API правил не змінився):scripts/lib/glob-to-regex.mjs—globToRegex(спільний дляauto.glob-матчингу і перевіркиfiles);scripts/lib/js-source-signals.mjs—textHasBunSqlImport,extractVueScriptBlocks,contentForVueImportScan(fact-збір авто-детекту).Реєстр предикатів (
jsBunDbSignal,depInAnyPackageJson, …) лишився в ядрі свідомо — це диспетчер рушія, деклараціїmain.json:auto.predicateплагінних правил резолвляться ним же.Залежності
eslint,knip,jscpd,oxlint(у ядрі нуль споживачів).oxc-parser,globby,ignore(спільні з ядром, але імпортуються напряму).@7n/rules >=1.27.0.Дрібне
js-run/jsconfigrego тепер ізpolicyDirAbsвід модуля плагіна (патерн ci-github).service_deployу ci-github/ci-azure симлінкують реальний lang-js — доменjsдляrelevantDomainsприходить із плагіна.Верифікація
lint --base origin/main— exit 0 (лише non-blocking v8r-нотиси про*-canonical.jsondata-файли, схеми в них ніколи не було).doc-files/tests/extractors.test.mjsімпортував неіснуючий../main.mjs(vitest include його тоді не підхопив).Behavior note
У репо без установленого lang-js JS-правила не активні (як і решта мовних правил без своїх плагінів) — автодетект за package.json ставить плагін першим запуском
npx @7n/rules.Що лишилось у ядрі свідомо (хвіст, окремі рішення)
test— змішане правило (vitest/stryker + cargo-mutants): чекає рішення Д (плагін-до-плагіна композиція) зі спеки.style— CSS/stylelint, не JS-мова.🤖 Generated with Claude Code