/ai / claude

prompting-checklist

Особистий чекліст промптингу: що зробити до першого повідомлення, як формулювати задачу, як прив'язати перевірку, і коли треба не переписувати промпт, а стирати сесію.

Чекліст промптингу

Особистий, вистражданий, без «будьте ласкаві, шановна модель». Порядок пунктів — це порядок, у якому вони економлять час.


0. До першого повідомлення

Найдорожчі помилки трапляються до того, як щось написано.

Питання собі Якщо відповідь «ні»
Я сам розумію, який результат вважатиму правильним? Спершу сформулювати критерій приймання. Інакше й модель не вгадає.
Це нова задача чи продовження старої? Нова → новий контекст. Змішувати дешевше тільки на вигляд.
Модель має чим себе перевірити (тест, лінтер, exit code, скрін)? Додати перевірку до початку роботи, а не після.
Це взагалі задача для агента, чи швидше зробити руками? Дві команди в термміналі не варті промпта.

1. Формулювання

Спочатку результат, потім контекст. Перше речення — що має бути на виході. Далі — обмеження. Історія питання, якщо потрібна, — у кінці.

Погано: «Ми тут переїжджаємо на новий пейментний провайдер, і в нас є легасі-сервіс, і взагалі там усе складно, і от треба щось зробити з вебхуками.»

Добре: «Додати обробник вебхука payment.refunded у App\Http\Webhooks\StripeController. Ідемпотентність — по event_id через таблицю webhook_events. Тести — у стилі наявного ChargeSucceededTest. Не чіпати роутинг.»

Конкретика замість прикметників. Не «зроби надійніше» — а «додай ретрай з експоненційним бекофом, 3 спроби, лог кожної». Прикметник модель інтерпретує, число — виконує.

Явні межі. Що НЕ чіпати — так само важливо, як що чіпати. Без цього агент «заодно» відрефакторить сусідній клас.

Один запит — одна задача. Три задачі в одному повідомленні дають три половинчасті результати й контекст, у якому вже не розібратись.


2. Формат відповіді

Якщо потрібен короткий вивід — сказати прямо і числом: «до 150 слів», «тільки дифф», «тільки список файлів». За замовчуванням повертається розлоге.

Якщо потрібна структура — описати її. Таблиця з такими колонками. JSON із такими ключами. Список рівно з п'яти пунктів.

Якщо потрібен файл — сказати, що це файл, і де він має лежати. Інакше вивалиться в чат і загубиться.


3. Прив'язати перевірку

Головне питання: хто скаже, що зроблено правильно? Якщо відповідь «я, очима, потім» — виграшу в швидкості нема, роль тест-раннера просто переїхала на людину.

Робочі варіанти:

І окремо: вимагати доказ, а не заяву. «Готово, працює» — не результат. Команда + її вивід — результат.


4. Ітерація


5. Що не працює (перевірено)


6. Гігієна контексту


Сам чекліст

Перед:

У промпті:

Після:

P.S. — стадії прийняття промпта
   ┌───────────────────────────────────────────────┐
   │  1. ЗАПЕРЕЧЕННЯ                               │
   │     "я ж чітко написав"                       │
   └───────────────────┬───────────────────────────┘
                       ▼
   ┌───────────────────────────────────────────────┐
   │  2. ГНІВ                                      │
   │     "НІ. НЕ ТАК. Я Ж СКАЗАВ."                 │
   └───────────────────┬───────────────────────────┘
                       ▼
   ┌───────────────────────────────────────────────┐
   │  3. ТОРГИ                                     │
   │     "давай ще раз, але уважніше"              │
   │     "подумай крок за кроком"                  │
   │     "від цього залежить моя карʼєра"          │
   └───────────────────┬───────────────────────────┘
                       ▼
   ┌───────────────────────────────────────────────┐
   │  4. ДЕПРЕСІЯ                                  │
   │     скролить контекст на 40 повідомлень назад │
   └───────────────────┬───────────────────────────┘
                       ▼
   ┌───────────────────────────────────────────────┐
   │  5. ПРИЙНЯТТЯ                                 │
   │     /clear                                    │
   │     і з першого разу все виходить             │
   └───────────────────────────────────────────────┘

   середня тривалість шляху: 45 хв
   тривалість кроку 5: 90 сек

Єдина оптимізація, яка тут можлива — перестрибнути одразу на п'ятий крок. Ніхто ще не навчився.