Конфигуратор харнеса: стек → инструменты и DoD
Интерактивный инструмент серии Harness Engineering: выбираешь стек (JS/TS, Python, Java/Kotlin, Go, PHP) — получаешь персональный сетап. Таблица роль → инструмент (boundary-линтер, мёртвый код, строгие типы, циклы, security, pre-commit), чек-лист Definition of Done по всем фазам rollout (0→8) и готовые копируемые/скачиваемые артефакты под стек: скелет AGENTS.md, конфиг pre-commit и шаблон ExecPlan. Роль универсальна, инструмент — пример на выбор, который ты фиксируешь один раз в ADR. Стек-агностично.
Роль универсальна, инструмент — под стек
🟦 Роль (универсальна)
- Линтер границ модулей
- Поиск мёртвого кода
- Строгие типы
- Одна и та же на любом стеке
🟩 Инструмент (под стек, в ADR)
- dependency-cruiser · import-linter · ArchUnit · deptrac
- knip · vulture · deadcode · Psalm
- tsc · mypy · PHPStan · компилятор
- Выбираешь один и фиксируешь в ADR
Собери сетап: выбери стек
Конфигуратор харнеса
СТЕК → СЕТАПВыбери стек — получи персональный сетап: таблицу роль → инструмент, чек-лист Definition of Done по фазам и готовые артефакты (AGENTS.md, pre-commit, ExecPlan), которые можно скопировать или скачать. Роль универсальна, инструмент — пример на выбор; фиксируешь его один раз в ADR.
| Роль | Инструмент | Фаза |
|---|---|---|
Форматтер единый стиль, ноль споров на ревью | Prettier · Biome | Фаза 3 · барьеры |
Линтер общего назначения типовые баги и анти-паттерны | ESLint · Biome | Фаза 3 · барьеры |
Линтер границ модулей направление зависимостей, запрет обхода публичного API | dependency-cruiser · eslint-plugin-boundaries | Фаза 3 · барьеры |
Строгие типы легибельность среды — агент меньше додумывает | tsc --strict | Фаза 3 · барьеры |
Циклы зависимостей циклы размывают границы, на которых стоит архитектура | madge | Фаза 3 · барьеры |
Поиск мёртвого кода orphan-код, который агент начнёт «чинить» | knip · ts-prune | Фаза 5 · GC |
Security / scanner зависимостей CVE и дрейф зависимостей | npm audit · osv-scanner | Фаза 5 · GC |
Pre-commit оркестратор точка форса барьеров до коммита (CI повторяет на full) | husky + lint-staged | Фаза 3 · барьеры |
Инструменты — это примеры на выбор, а не закон. Выбери один в роли под свой проект и зафиксируй в ADR 0001-tool-selection. lefthook и pre-commit (framework) — стек-агностичны и годятся как оркестратор где угодно.
Не ищи «один инструмент на всё»
Дисциплина выбора инструмента
Артефакты: скелеты, которые форсятся
# AGENTS.md — sensors section (auto-filled from the matrix for your stack)
## Sensors (Definition of Done — all must be green)
- boundaries: <module-boundary linter> # e.g. dependency-cruiser / import-linter
- types: <strict type checker> # e.g. tsc --strict / mypy --strict
- dead code: <dead-code finder> # e.g. knip / vulture
- tests green; test-integrity — do NOT weaken / delete / skip existing tests
(checked by diff in CI). Coverage is a SIGNAL, not a target.
Enforcement: <pre-commit orchestrator> on commit (diff), CI on the full base.Воронка: режим → стек → сетап
Результат
Конфигуратор превращает абстрактные роли харнеса в конкретный сетап под твой стек: таблицу роль → инструмент, чек-лист Definition of Done по всем фазам и копируемые/скачиваемые артефакты (AGENTS.md, pre-commit, ExecPlan). Ты понимаешь, что роль универсальна, а инструмент выбирается под стек и фиксируется в ADR; что барьеры должны форситься механически (pre-commit + CI), а тесты держатся на test-integrity, а не на мандате покрытия. Это последнее звено воронки серии: режим → стек → сетап. Дальше — фазы 0→8 по рецептам из хаба.