Skip to content
Back to skills

Test First

ASecurity

Use when about to fix a bug or add new logic - a function, a branch of behaviour, an input check, a calculation - before writing the implementation code. Not for configuration, documentation, layout or a prototype the user called throwaway.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
ai-agentsdocumentation

Security analysis

A100/100

Scanned November 11, 2026

npx -y skills add sergvss/agents-best-teams --skill test-first --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Test First?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Test First
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sergvss-test-first/badge)](https://www.skillsdirectory.com/skills/sergvss-test-first)

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
---
name: test-first
description: Use when about to fix a bug or add new logic - a function, a branch of behaviour, an input check, a calculation - before writing the implementation code. Not for configuration, documentation, layout or a prototype the user called throwaway.
---

# Тест сначала

1. **Красный.** Один тест на одно поведение; имя называет поломку, которую он ловит.
2. **Проверь красный — обязательно.** Запусти: тест падает на проверке и по ожидаемой причине, а не ошибкой импорта или опечаткой. Упал не так — чини тест.
3. **Зелёный.** Минимальный код, после которого тест проходит.
4. **Весь набор проекта зелёный** — не один свой файл.
5. **Рефакторинг** — только при зелёных тестах.

**Баг** — первым делом тест, который воспроизводит его и падает на текущем коде. Исправление без такого теста не принимается.

**Код уже написан до теста** — не удаляй. Напиши тест, затем сломай проверяемое поведение (откати исправление): тест обязан покраснеть. Не покраснел — он ничего не проверяет. Верни код.

**Хороший тест** проверяет поведение, а не текст файла; настоящий код, а не мок; ожидаемое значение не вычисляется тем же кодом.

**В отчёте** — команда и вывод красного прогона и итог зелёного прогона всего набора.

**Оправдания, которые не отменяют красный тест:**

| Мысль | Как на деле |
|---|---|
| «Срочно, нет времени» | Красный тест — минута. Неудачная правка без теста стоит отката и второго захода |
| «Правка в одну строку, тут нечего проверять» | Однострочный баг и возвращается одной строкой — тест держит его навсегда |
| «Пользователь сказал без формальностей» | Это про длину ответа, а не про отказ от теста. Пропустить тест можно только по явной просьбе «без тестов» |


Полный текст: `${CLAUDE_PLUGIN_ROOT}/checklists/test-first.md`

Если методология установлена копированием — файл лежит в `checklists/test-first.md` репозитория.

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.

View all in ai-agents →

Comments

Loading comments…

Newsletter

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