Skip to content
Back to skills

Competitors

ASecurity

- Репозиторий: 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, блокирует новая находка на изменённой...

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 24, 2026
ai-agentsnodegit

Works with

  • claude code

Security analysis

A100/100

Pro scans all 12 files and shows the line behind each finding

Scanned September 24, 2026

npx -y skills add arsen-ask-lx/Agent_Quality_Kit --skill competitors --agent claude-code

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.

Security grade badge for Competitors
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/arsen-ask-lx-competitors/badge)](https://www.skillsdirectory.com/skills/arsen-ask-lx-competitors)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# 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` не опознаётся;
   воспроизведение — четыре строки выше.

Files in this skill

  • agentlint-0xmariowu.md11.7 KB
  • agentlint.md13.1 KB
  • agentlinter-seojoonkim.md9.4 KB
  • agents-shipgate.md6.1 KB
  • agnix.md5 KB
  • cliare.md3.6 KB
  • code-quality-skill.md8.2 KB
  • exadel-agentic-readiness.md7.2 KB
  • factory-agent-readiness.md5 KB
  • glint.md34.3 KB
  • twins.sh2.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.