# Code Last Mile

> Достраивает «последние 20%» — слой опыта использования, который выпадает из плана, потому что план декомпозирует существительное, а не сцену. Разбирает один конкретный момент использования по шагам и специфицирует остаток на уровне сантехники. Используй, когда пользователь говорит «вроде работает, но пользоваться невозможно», «чего не хватает до готовности», «доведи до ума», «последние 20%», «почему это ощущается сырым».

- Skill: `jtprogru/code-last-mile` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add jtprogru/code-last-mile`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jtprogru/code-last-mile/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: jtprogru (https://skillmd.com/u/jtprogru)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jtprogru/code-last-mile

---


<!-- СГЕНЕРИРОВАНО bin/mirror.js. Не редактировать: правки затрёт следующая генерация.
     Источник правды — domains/<домен>/. -->

# code-last-mile — Последние 20%

## Почему этот слой всегда выпадает

Когда задачу декомпозируют, декомпозируют **существительное**. «Сделать вики» распадается на ingestion, поиск, хранилище, слой LLM. Каждая часть выглядит необходимой, все они действительно нужны — и, будучи сделанными, дают систему, которой невозможно пользоваться.

Опыт использования не появляется в декомпозиции существительного. Значит, не становится задачей. Значит, не делается — и обнаруживается в конце как «работает, но что-то не то».

Лекарство: декомпозировать **сцену**, а не объект.

## Шаг 1. Найди magic moment

Один конкретный момент, ради которого всё делается. Не «пользователь работает с системой», а сцена с деталями:

> Человек вставляет ссылку на статью, уходит за кофе, возвращается — и видит, что статья уже разобрана на заметки, они связаны с тем, что он читал в прошлом месяце, и одна из связей его удивляет.

Если такую сцену не получается описать — это и есть главная находка. Продукта пока нет, есть набор компонентов.

## Шаг 2. Разбери сцену по шагам

Пройди её как человек, а не как система. На каждом шаге отвечай:

- что он видит
- что он делает
- что он ждёт
- **что он видит, если пошло не так**

Последний вопрос вскрывает больше всего пропусков. В планах почти никогда нет ответа на «что показать, когда парсер не справился со статьёй».

Дополнительно по каждому шагу:

- сколько он ждёт и понимает ли, что идёт работа
- сколько действий нужно, чтобы дойти сюда с нуля
- что он делает **после** — magic moment редко последний шаг

## Шаг 3. Спецификация на уровне сантехники

То, что нашлось, описывается конкретно, а не пожеланиями. Не «улучшить обработку ошибок», а: «при таймауте парсера показать сообщение X, оставить ссылку в очереди, повторить через Y минут, при третьей неудаче написать в лог Z и показать пользователю кнопку W».

Уровень детализации такой, чтобы по описанию можно было реализовать, не додумывая. Формулировка, допускающая додумывание, будет додумана иначе, чем ты имел в виду.

## Шаг 4. Золотые артефакты — руками, до генератора

Прежде чем писать код, который что-то генерирует, напиши руками один-два образцовых результата. Идеальную заметку. Идеальный ответ. Идеальное письмо.

Это делается вручную по двум причинам. Пока образца нет, «хорошо» не определено, и генератор невозможно оценить. И написание образца само вскрывает требования, которых не было в плане: обычно выясняется, что для хорошего результата нужны данные, которые никто не собирался собирать.

Золотые артефакты становятся приёмочным критерием: генератор готов, когда его вывод сравним с ними.

## Шаг 5. Отдай результат списком

- сцена, разобранная по шагам
- что из неё уже есть
- чего нет, со спецификацией на уровне сантехники
- золотые артефакты
- что осознанно не делаем сейчас

## Чего не делать

- Не подменяй сцену списком фич. «Нужны уведомления» — это фича; «он не понимает, что обработка идёт, и уходит» — это сцена.
- Не бери сразу три сценария. Один, разобранный до конца, полезнее трёх поверхностных.
- Не описывай счастливый путь и на этом останавливайся: ошибочные ветки и есть последние 20%.
- Не считай генератор готовым, пока не с чем сравнить его вывод.
- Не превращай это в редизайн: скилл достраивает то, что задумано, а не придумывает другое.

