code-writing
TDD-цикл разработки: план -> тесты -> код -> ревью. Сначала пишем тесты (RED), потом код (GREEN), потом рефакторим.
Описание
Простым языком
Попросил Claude написать код — а он придумал функции которых нет, или подключил библиотеки которые не установлены. Этот скилл учит Claude писать код аккуратно: проверять каждую деталь перед тем как писать.
Раньше код падал и нужно было разбираться почему. Теперь Claude сначала смотрит что уже есть в проекте, потом пишет — и код работает с первого раза.
Что делает
Скилл code-writing — стандарты написания кода для всех проектов: именование, размеры функций и файлов, типизация TypeScript, паттерны избегания дублирования. Claude применяет их автоматически при написании любого кода.
Включает anti-mirage check: перед написанием Claude проверяет, что все импорты, функции и переменные окружения существуют. Галлюцинации исключены.
Когда использовать
- Пишешь новый модуль или компонент
- Рефакторишь существующий код
- Ревьюишь pull request
- Хочешь убедиться, что код соответствует стандартам
- Генерируешь boilerplate (хендлеры, сервисы, утилиты)
Как работает — пошагово
- Claude читает связанные файлы перед написанием кода
- Грепает usages изменяемых функций — кто их использует?
- Проверяет наличие похожего кода — не пишет с нуля если есть переиспользуемое
- Пишет код по стандартам: DRY, KISS, YAGNI, функции <50 строк
- Выполняет anti-mirage check: все импорты реальны, env vars в .env.example
- При необходимости разбивает файлы >500 строк на модули
Стандарты кода
// ✅ Хорошо: русские имена, типизация, JSDoc
/**
* Получает пользователя по Telegram ID
* @param телеграмId — числовой ID пользователя
*/
async function получитьПользователяПоTg(
телеграмId: number
): Promise<Пользователь | null> {
return db.user.findUnique({
where: { telegramId: телеграмId },
})
}
// ❌ Плохо: any, magic numbers, нет типов
function getUser(id: any) {
return db.query(`SELECT * FROM users WHERE id = ${id} LIMIT 10`)
}Anti-mirage чеклист
После написания каждого блока кода Claude молча проверяет:
- Импорты — каждый
importссылается на существующий файл - Функции — каждая вызываемая функция существует в импортируемом модуле
- Env vars — каждая
process.env.VARесть в.env.example - Зависимости — каждый пакет указан в
package.json
Автоматизация
Хук автоформатирования срабатывает после каждого Write/Edit:
// .claude/settings.json
{
"hooks": {
"PostToolUse": [{
"matcher": "Write|Edit",
"hooks": [{
"type": "command",
"command": "npx prettier --write $FILE 2>/dev/null || true"
}]
}]
}
}Частые вопросы
Нужно ли всегда писать на русском?
Да, для этого проекта: переменные, комментарии, docstrings — на русском. Исключение: технические термины (API, URL, JWT), внешние библиотеки и их методы.
Как Claude узнаёт о стандартах?
Из CLAUDE.md проекта и глобальных правил в ~/.claude/CLAUDE.md. Чем подробнее описаны правила — тем лучше соблюдаются.
> Пока нет комментариев
Связанный контент
Похожие инструменты
/typecheck
Проверка типов: tsc для TypeScript, pyright для Python. Показывает ошибки с пояснениями.
Открыть →/autoformat
Форматирование кода: Prettier для JS/TS, ruff для Python. Весь проект или конкретные файлы.
Открыть →/cleanup
Удаление debug-кода: console.log, debugger, print(), закомментированный код. Чистка перед коммитом.
Открыть →/code-review
Запуск ревью кода через субагента code-reviewer. Проверяет DRY, KISS, безопасность, именование.
Открыть →