- Репозиторий: https://github.com/smixs/code-quality-skill · изучен коммит `cf706b0` (2026-09-21, день публикации) · MIT · 0 звёзд · автор Сергей Шима (доклад «AI-кодинг, не вайб-кодинг», 2026-09-19, слайды https://agent-coding-talk.pages.dev — там же правило «пайп запрещён») - Форма: **скилл + один скрипт на bun** (`scripts/quality.ts`) за git-хуками и Stop-хуками Claude Code, Codex и pi. Смотрит **изменение**, а не репозиторий: старый долг — в baseline, блокирует новая находка на изменённой...
Installs into .claude/skills of the current project.
Are you the author of Competitors?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/arsen-ask-lx-competitors)
# code-quality — `smixs/code-quality-skill`
- Репозиторий: https://github.com/smixs/code-quality-skill · изучен коммит `cf706b0` (2026-09-21,
день публикации) · MIT · 0 звёзд · автор Сергей Шима (доклад «AI-кодинг, не вайб-кодинг»,
2026-09-19, слайды https://agent-coding-talk.pages.dev — там же правило «пайп запрещён»)
- Форма: **скилл + один скрипт на bun** (`scripts/quality.ts`) за git-хуками и Stop-хуками
Claude Code, Codex и pi. Смотрит **изменение**, а не репозиторий: старый долг — в baseline,
блокирует новая находка на изменённой строке
- Разбор 2026-09-21: README, `SKILL.md`, `references/*` прочитаны; скилл **запущен** (bun 1.4.2 в
`node:22`) на близнецах `research/competitors/twins.sh` и на восьми подменах-коммитах; AQK
прогнан на тех же восьми
## Вывод одной строкой
**Ближайший сосед по вопросу «агент починил код или тесты?» — и дополнение к AQK, а не замена.**
Он лучше нас ловит подмену ТЕСТА в правке; мы лучше ловим подмену ОБВЯЗКИ — конвейер, скрипт
`test`, хуки. Правка, которая выключает все тесты разом (`"test": "node --test || true"`), для него
«scope: docs-only» и проходит.
## Близнецы
`check --all` (весь репозиторий, без baseline): «настоящий» — GATE PASS, код 0; «поддельный» —
GATE PASS, код 0. Ни одно из четырёх отличий не названо. Это ожидаемо и не упрёк: скилл меряет
правку, а не способность проверки провалиться, — у близнецов нет правки. Но ответ «всё хорошо» на
проект, где тест без утверждения и провал погашен в трёх местах, стоит знать тому, кто его ставит.
## Восемь подмен — голова к голове
Одна база (близнец «настоящий»), каждый вариант — ОДИН коммит поверх. Скилл:
`check --repo <v> --since HEAD~1`. AQK: `init`, `add` четырёх записей (`test-has-assertion`,
`test-not-adjusted`, `ci-actually-fails`, `gate-not-weakened`), потом `doctor --run`.
| подмена | code-quality | AQK |
|---|---|---|
| контроль: комментарий в `src/` | pass | pass |
| `test(` → `test.skip(` | **FAIL** `tamper/test-skipped` | **FAIL** `test-has-assertion`, `test-not-adjusted` |
| `assert.equal(sum(2, 2), 4)` → `assert.ok(sum(2, 2))` | **FAIL** `tamper/assertion-weakened` | **пропуск** — см. ниже |
| тест-файл удалён | **FAIL** `tamper/test-deleted` | **FAIL** `test-not-adjusted` |
| `"test": "node --test"` → `"node --test \|\| true"` | **пропуск**: «scope: docs-only» | заметил `doctor` (✘ «cannot fail: the verdict is swallowed right in the script»), но код 0 — это совет, не гейт |
| `continue-on-error: true` на шаге с `npm test` | **пропуск**: docs-only | **FAIL** `ci-actually-fails` |
| `run: npm test \| tee test.log` | **пропуск**: docs-only | **FAIL** `ci-actually-fails` (форма добавлена сегодня, PR #120) |
| `.husky/pre-commit`: `npm test \|\| true` | пропуск | **пропуск** |
Счёт: он — 3 из 7, мы — 4 из 7 гейтом и ещё 1 советом. Пересекаемся на двух. Вместе — 6 из 7;
не ловит никто `|| true` в хуке husky (его назвал только Exadel, `exadel-agentic-readiness.md`).
## Что нашлось про нас
**`test-not-adjusted` не видит ослабления в стиле `node:assert`.** Запись опирается на готовый
`checkwash` 0.3.4, и дыра — в нём. Проверено на четырёх минимальных репозиториях, одна правка
теста в коммите:
| было → стало | checkwash |
|---|---|
| jest: `expect(sum(2, 2)).toBe(4)` → `.toBeTruthy()` | `ASSERT_WEAKENED`, HIGH, block |
| pytest: `assert add(2, 2) == 4` → `assert add(2, 2)` | `ASSERT_WEAKENED`, HIGH, block |
| node:test: `assert.equal(sum(2, 2), 4)` → `assert.ok(sum(2, 2))` | **pass** |
| node:test: `assert.strictEqual(…, 4)` → `assert.ok(…)` | **pass** |
По правилу «сперва готовое» чинить это надо у них, а не обходом у нас: письмо в `checkwash` с
этими четырьмя строками. До починки — строка в «Чего НЕ ловит» записи `test-not-adjusted`.
## Что нашлось про них
**Правка скрипта `test` в `package.json` считается документацией.** Правило скилла: изменение
только `.md`, `.toml`, `.json`, `.yml` вне `project.src` — «scope: docs-only», проверки кода не
идут (`SKILL.md`, раздел Overview; `scripts/lib/hooks.ts:30`). Следствие проверено прогоном: коммит
`"node --test"` → `"node --test || true"` даёт GATE PASS, хотя выключает все тесты проекта разом, а
его же `tamper/test-skipped` на пропуске ОДНОГО теста блокирует. То же с конвейером: шаг с тестами
под `continue-on-error` и `| tee` — docs-only. Кандидат в письмо — беда, воспроизведение в один
коммит, и она совпадает с их же вопросом «Did it fix the code, or the tests?».
## Что берём
- **Список подмен теста как эталон для `test-not-adjusted`.** Их `tamper/*` различает семь форм
(удалён, пропущен, ослаблен, заменён на truthy, мок модуля под тестом, baseline вместе с кодом,
тесты не запускались). Наша запись берёт отбор у `checkwash`; сверить, какие из семи он видит, —
отдельная работа, первая дыра уже найдена выше.
- **Их оценку как форму доказательства:** шесть подсаженных подмен, два настоящих дефекта и
честная сдача, два исполнителя (`references/evaluation.md`). Это наш `probe`, только для правки,
а не для файла.
## Чего не берём
- **CRAP, покрытие изменённых строк, циклы, мёртвый код в правке** — планка качества кода, а не
проверка обвязки; расширение вширь заморожено (`PROJECT.md` §9а). Честно: у нас этих записей нет.
- **Jev** — классификатор-модель, только заметки. Наш свод прямо запрещает считать мнение модели
доказательством, и автор скилла пришёл к тому же: «Reviewers never block».
## Письма
Отправлены 2026-09-22 по канону `research/outreach/LETTER.md` — `smixs/code-quality-skill#12` и
`taipei49314/checkwash#164` (перепроверено на 0.4.0):
1. `smixs/code-quality-skill` — «docs-only» пропускает выключение тестов в `package.json` и в
конвейере; воспроизведение — один коммит.
2. `checkwash` — ослабление `assert.equal`/`assert.strictEqual` → `assert.ok` не опознаётся;
воспроизведение — четыре строки выше.