Когда это нужноWhen to reach for itКоли це потрібно
В задаче есть настоящие проектные решения: такую задачу вы назвали бы словами «напиши спеку», «заведи тикет на» или «нам нужен план для». Или заглушка Draft, отложенная раньше, теперь стоит работы. Маленькую детерминированную задачу эта же команда делает на месте.A task carries real design decisions, the kind where you would say 'write a spec', 'create a ticket for' or 'we need a plan for'. Or a Draft stub parked earlier is now worth working on. A task that is small and deterministic is handled in place by the same command.У задачі є справжні проєктні рішення: таку задачу ви назвали б словами «напиши спеку», «заведи тікет на» або «нам потрібен план для». Або заглушка Draft, відкладена раніше, тепер варта роботи. Маленьку детерміновану задачу ця сама команда робить на місці.
ТребованияRequirementsВимоги
- Где доступноAvailable inДе доступно
- Каждая загрузка kitEvery download of the kitКожне завантаження kit
- К чему обращаетсяWhat it touchesДо чого звертається
- Читает файлы проектаReads the files of your projectЧитає файли проєкту
- Правит файлы проектаEdits files in your projectЗмінює файли проєкту
- Работает сWorks withПрацює з
- Сделано для Claude Code; другие агенты адаптируютBuilt for Claude Code; other agents adapt itЗроблено для Claude Code; інші агенти адаптують
- Где выполняются шагиWhere the steps happenДе виконуються кроки
- Чат вашего агента и ваши собственные файлы. Ни то ни другое не интерфейс этого сайта, поэтому шаги описаны текстом, а не скриншотами.Your agent's chat and your own files. Neither is an interface of this site, so the steps are text and not screenshots.Чат вашого агента і ваші власні файли. Ні те, ні інше не є інтерфейсом цього сайту, тому кроки описано текстом, а не скриншотами.
- Где это лежит в kitWhere it lives in the kitДе це лежить у kit
.claude/skills/spec/SKILL.md,.claude/skills/spec/references/TEMPLATE.md
На непригодный ввод, пустую строку или один пустой по смыслу токен вроде ? или help, команда отвечает короткой подсказкой по использованию и больше ничем. Всё, что похоже на описание фичи, она не отклоняет. Если пункт исследования в §6 в статусе Open и нужен до реализации, /spec дальше по цепочке не идёт: он перечисляет эти пункты и спрашивает, продолжать ли.Unusable input, an empty line or one content-free token such as ? or help, gets a short usage hint and nothing else. Anything recognizable as a feature description is never refused. When a §6 research item is Open and required before implementation, /spec does not chain on: it lists those items and asks whether to proceed.На непридатне введення, порожній рядок чи один порожній за змістом токен на кшталт ? або help, команда відповідає короткою підказкою щодо використання і більше нічим. Усе, що схоже на опис фічі, вона не відхиляє. Якщо пункт дослідження в §6 у статусі Open і потрібен до реалізації, /spec далі за ланцюжком не йде: він перелічує ці пункти й питає, чи продовжувати.
ШагиStepsКроки
- Опишите фичу свободными словами:
/spec add CSV export to the monthly report. Или назовите её сами:/spec csv-export --priority 70, где--priority Nпринимает значения 0..100. Агент выводит из вашей формулировки короткий слаг в kebab-case (префиксbugfix-для слов про исправление или падение,hotfix-для слов про срочное или блокирующее), выбирает один сам, не прося вас выбирать между вариантами, и подтверждает его в ответе.Describe the feature in free-form words:/spec add CSV export to the monthly report. Or name it yourself:/spec csv-export --priority 70, where--priority Ntakes 0..100. The agent derives a short kebab-case slug from your wording (prefixbugfix-for fix or crash wording,hotfix-for urgent or blocker wording), picks one without asking you to choose between candidates and confirms it in the output.Опишіть фічу вільними словами:/spec add CSV export to the monthly report. Або назвіть її самі:/spec csv-export --priority 70, де--priority Nприймає значення 0..100. Агент виводить із вашого формулювання короткий слаг у kebab-case (префіксbugfix-для слів про виправлення чи падіння,hotfix-для слів про термінове чи блокувальне), обирає один сам, не просячи вас вибирати між варіантами, і підтверджує його у відповіді. - Чтобы развернуть уже существующий тикет, передайте его идентификатор:
/spec T0042, гдеT0042стоит наDraft, например однострочная заглушка от/parkили черновик, выбранный/backlog. Агент сохраняет его идентификатор, слаг, приоритет и токены шапки, берёт однострочный симптом заглушки как формулировку проблемы и проходит шаги ниже начиная с чтения контекста, в том же файле. Второй идентификатор он не выдаёт никогда.To expand a ticket that already exists, pass its id:/spec T0042, whereT0042stands atDraft, such as a one-line/parkstub or a rough draft that/backlogselected. The agent keeps its id, slug, priority and header tokens, reads the stub's one-line symptom as the problem statement and runs the steps below from reading the context, in the same file. It never allocates a second id.Щоб розгорнути вже наявний тікет, передайте його ідентифікатор:/spec T0042, деT0042стоїть наDraft, наприклад однорядкова заглушка від/parkабо чернетка, яку вибрав/backlog. Агент зберігає його ідентифікатор, слаг, пріоритет і токени шапки, бере однорядковий симптом заглушки як формулювання проблеми й проходить кроки нижче, починаючи з читання контексту, в тому самому файлі. Другого ідентифікатора він не видає ніколи. - Он читает карту репозитория, документы об архитектуре и сборке и список фич, достаточно, чтобы точно описать проблему и не дублировать существующее. Затем оценивает задачу: не больше 3 существующих файлов и нет новых; нет новых классов, интерфейсов и публичных типов; нет изменения схемы или миграции; нет нового внедрения зависимостей или модуля; нет нового экрана, маршрута или пункта навигации; всё детерминировано; дельта меньше примерно 100 строк. Всё выполнено - PRIMITIVE, иначе COMPLEX.It reads the repo map, the architecture and build docs and the feature list, enough to state the problem accurately and not duplicate a capability. Then it scores the task: at most 3 existing files and none new; no new classes, interfaces or public types; no schema or migration change; no new dependency-injection wiring or module; no new screen, route or navigation destination; mechanically deterministic; delta under about 100 lines. All pass is PRIMITIVE, any failure is COMPLEX.Він читає мапу репозиторію, документи про архітектуру та збірку і список фіч, достатньо, щоб точно описати проблему й не дублювати наявне. Потім оцінює задачу: не більше 3 наявних файлів і немає нових; немає нових класів, інтерфейсів і публічних типів; немає зміни схеми чи міграції; немає нового впровадження залежностей чи модуля; немає нового екрана, маршруту чи пункту навігації; усе детерміновано; дельта менша за приблизно 100 рядків. Усе виконано - PRIMITIVE, інакше COMPLEX.
- Путь PRIMITIVE: выдаётся идентификатор и пишется минимальная спека (шапка шаблона с
Blocked-byиCarried-to,## Problem,## Approachс пунктом на файл,## Done criteriaс проверкой на файл) соStatus: In Progress. Затем реализация и самая узкая осмысленная проверка изdocs/VALIDATION.md; красная или незапущенная проверкаImplementedне даёт. Если приёмка включает ручное тестирование, добавляются теги проверки и раздел## Manual checks, и статусBlockNeedUserTest.PRIMITIVE path: it allocates the id and writes a minimal spec (the header withBlocked-byandCarried-to,## Problem,## Approachwith a bullet per file,## Done criteriawith a check per file) atStatus: In Progress. It implements, then runs the narrowest meaningful check fromdocs/VALIDATION.md; a red or unrun check never becomesImplemented. If acceptance needs manual testing it adds the verification tags and a## Manual checkssection, and setsBlockNeedUserTest.Шлях PRIMITIVE: видається ідентифікатор і пишеться мінімальна спека (шапка із шаблону зBlocked-byтаCarried-to,## Problem,## Approachз пунктом на файл,## Done criteriaз перевіркою на файл) зіStatus: In Progress. Далі йде реалізація й найвужча змістовна перевірка зdocs/VALIDATION.md; червона чи незапущена перевіркаImplementedне дає. Якщо приймання включає ручне тестування, додаються теги перевірки й розділ## Manual checks, а статус стаєBlockNeedUserTest. - Путь COMPLEX: выбирается примерная метка уровня (
Quick Win,Easy,Moderate,Strategic,Security/Compliance (urgent)), только подсказка для сортировки, потому что/backlogвыбирает поPriority. Перед записью любого файла выдаётся идентификатор по схеме вашего репозитория: найти в каталоге планов наибольший и прибавить единицу (T0041вT0042) либо взять из трекера (JIRA-123) или дату со слагом.COMPLEX path: it picks a rough tier label (Quick Win,Easy,Moderate,Strategic,Security/Compliance (urgent)), a triage hint only, since/backlogselects byPriority. Before any file is written it allocates the id by your repo's scheme: scan the plan directory for the highest id and increment it (T0041toT0042), or take the id from your tracker (JIRA-123) or a date-slug.Шлях COMPLEX: обирається приблизна мітка рівня (Quick Win,Easy,Moderate,Strategic,Security/Compliance (urgent)), лише підказка для сортування, бо/backlogобирає заPriority. Перед записом будь-якого файлу видається ідентифікатор за схемою вашого репозиторію: знайти в каталозі планів найбільший і додати одиницю (T0041доT0042) або взяти з трекера (JIRA-123) чи дату зі слагом. - Он пишет файл тикета,
PLAN_DIR/ID_slug.md, по шаблону изreferences/TEMPLATE.mdнавыка: шапка сStatus: Draft, приоритетом, датой, уровнем,Blocked-by,Carried-toи ссылкой на план, затем 12 разделов от Problem до Next step. В §5 только архитектурные роли, в §11 только наблюдаемые результаты. §6, §7 и оба токена обязательны: вместо пропуска пишется явное «none», ведь отсутствующая строка значением не считается.It writes the ticket file,PLAN_DIR/ID_slug.md, from the template in the skill'sreferences/TEMPLATE.md: a header withStatus: Draft, priority, date, tier,Blocked-by,Carried-toand the plan link, then 12 sections from Problem to Next step. §5 names architectural roles only and §11 observable outcomes. §6, §7 and both tokens are mandatory: write an explicit 'none' rather than omit them, since an absent line is not a value.Він пише файл тікета,PLAN_DIR/ID_slug.md, за шаблоном ізreferences/TEMPLATE.mdнавички: шапка зіStatus: Draft, пріоритетом, датою, рівнем,Blocked-by,Carried-toі посиланням на план, потім 12 розділів від Problem до Next step. У §5 лише архітектурні ролі, у §11 лише спостережувані результати. §6, §7 і обидва токени обов'язкові: замість пропуску пишеться явне «none», адже відсутній рядок значенням не вважається. - Он заполняет §3.3, Owner inputs, только пунктами по реальному объёму, без заполнителей
n/a. Обязателен один пункт, Related tickets: проза для человека. Зависимость, на которую реагирует навык, пишется ещё и вBlocked-by, а статус становитсяBlockByOtherTask, блокер назван после дефиса на строке статуса. Триггер (формулировки для пользователя, данные, производительность, платформа, локализация) добавляет свой пункт, а любое совпадение ещё Validation level и Owner sign-off.It fills §3.3, Owner inputs, with only the bullets that match the real scope, non/apadding. Related tickets is the one required bullet, prose for a human. A dependency a skill must act on also goes in theBlocked-bytoken, and the status becomesBlockByOtherTask, with the blocker named after a hyphen on the status line. A trigger (user-facing wording, data, performance, platform, localization) adds its bullet; any match also adds Validation level and Owner sign-off.Він заповнює §3.3, Owner inputs, лише пунктами за реальним обсягом, без заповнювачівn/a. Обов'язковий один пункт, Related tickets, і це проза для людини. Залежність, на яку має реагувати навичка, пишеться ще й у токенBlocked-by, а статус стаєBlockByOtherTask, із нотаткою про блокер після дефіса на рядку статусу. Тригер (формулювання для користувача, дані, продуктивність, платформа, локалізація) додає свій пункт, а будь-який збіг ще Validation level і Owner sign-off. - Он меняет
Status: DraftнаApproved. Стилевая проверка (списки вместо таблиц, одна мысль на пункт, без резюме разделов) выполняется именно здесь, при утверждении; черновик может оставаться сырым. Затем сразу запускается/spec-techна этом тикете, если не сработала остановка из-за исследования, описанная выше.It flipsStatus: DrafttoApproved. The style gate (lists over tables, one idea per bullet, no section summaries) is enforced here, at approval; a Draft may stay rough. Then it runs/spec-techon the ticket at once, unless the research stop from the warning applies.Він міняєStatus: DraftнаApproved. Стильова перевірка (списки замість таблиць, одна думка на пункт, без резюме розділів) виконується саме тут, при затвердженні; чернетка може лишатися сирою. Потім одразу запускається/spec-techна цьому тікеті, якщо не спрацювала зупинка через дослідження, описана вище.
Файл тикета с идентификатором и слагом в имени в вашем каталоге планов, со Status: Approved, с заполненными Blocked-by и Carried-to, и /spec-tech уже работает над ним. Для развёрнутого Draft это тот же файл под тем же идентификатором. Для мелкой задачи результат другой: готовое изменение со статусом Implemented или BlockNeedUserTest.A ticket file named by id and slug in your plan directory, at Status: Approved, with Blocked-by and Carried-to filled in, and /spec-tech already running on it. For an expanded Draft it is the same file under the same id. For a small task the result is instead a finished change, at Implemented or BlockNeedUserTest.Файл тікета з ідентифікатором і слагом у назві у вашому каталозі планів, зі Status: Approved, із заповненими Blocked-by і Carried-to, і /spec-tech уже працює над ним. Для розгорнутого Draft це той самий файл під тим самим ідентифікатором. Для дрібної задачі результат інший: готова зміна зі статусом Implemented або BlockNeedUserTest.
СоветыTipsПоради
- Держите стратегию стратегической: в §5 никаких имён классов, путей к файлам, бюджетов строк, версий схемы и модулей внедрения зависимостей, в §11 только то, что человек может наблюдать. Тактический каталог из шапки создаст позже
/spec-tech.Keep strategy strategic: no class names, file paths, line budgets, schema versions or dependency-injection modules in §5, and outcomes a person can observe in §11. The tactical folder named in the header is created later, by/spec-tech.Тримайте стратегію стратегічною: у §5 жодних назв класів, шляхів до файлів, бюджетів рядків, версій схеми та модулів впровадження залежностей, у §11 лише те, що людина може спостерігати. Тактичний каталог із шапки створить пізніше/spec-tech. - Идентификатор в прозе - упоминание, идентификатор в токене
Blocked-by- утверждение./backlogчитает этот токен, а/spec-checkчитаетCarried-to, решая, закрыт ли §6; ни тот ни другой ничего не выводят из прозы §3.3 или §10.An id in prose is a mention, an id in theBlocked-bytoken is a claim./backlogreads that token and/spec-checkreadsCarried-towhen it decides whether §6 is closed; neither infers anything from the prose of §3.3 or §10.Ідентифікатор у прозі - згадка, ідентифікатор у токеніBlocked-by- твердження./backlogчитає цей токен, а/spec-checkчитаєCarried-to, вирішуючи, чи закрито §6; жоден із них нічого не виводить із прози §3.3 чи §10. - Проверка, которую может сделать только человек, попадает в раздел
## Manual checks: по одной строке[ ]на всё, что человек должен увидеть. Спека PRIMITIVE пишет его при входе вBlockNeedUserTest, а/spec-checkможет дописать позже. Отметки агенты не ставят, их ставит человек.A check only a human can make goes in a## Manual checkssection, one[ ]line per thing a person must see. A PRIMITIVE spec writes it when it entersBlockNeedUserTest;/spec-checkcan append it later. Agents never tick a box, the human does.Перевірка, яку може зробити лише людина, потрапляє в розділ## Manual checks: по одному рядку[ ]на все, що людина має побачити. Спека PRIMITIVE пише його, входячи вBlockNeedUserTest, а/spec-checkможе дописати пізніше. Позначок агенти не ставлять, їх ставить людина. - Каждый переход в статус
Block*сопровождается заметкой в одну строку на самой строке статуса, после дефиса: что нужно проверить либо в чём блокер и что его снимает. Полная таблица переходов живёт в одном месте, в жизненном цикле, а эта команда повторяет только свою строку.Every move into aBlock*status carries a one-line note on the status line itself, after a hyphen: what must be tested, or what the blocker is and what resolves it. The full gate table lives once, in the lifecycle, and this command restates only its own row.Кожен перехід у статусBlock*супроводжується нотаткою в один рядок на самому рядку статусу, після дефіса: що треба перевірити або в чому блокер і що його знімає. Повна таблиця переходів живе в одному місці, у життєвому циклі, а ця команда повторює лише свій рядок. - В §3.2 Hard constraints есть две строки, которые легко пропустить: Accessibility (если функция видна пользователю, режимы ввода и классы раскладки, в которых она должна работать) и Shared boundary (формат, данные или поведение, которые читает другой проект и которых касается изменение; поправка к контракту - первая фаза плана; либо 'none').§3.2 Hard constraints has two lines that are easy to skip: Accessibility (if the feature is user-facing, the input modes and layout classes it must work in) and Shared boundary (a format, payload or behaviour another project reads that this change touches; the contract amendment is the plan's first phase; or 'none').У §3.2 Hard constraints є два рядки, які легко пропустити: Accessibility (якщо функція видима користувачеві, режими введення й класи розкладки, у яких вона має працювати) і Shared boundary (формат, дані чи поведінка, які читає інший проєкт і яких стосується зміна; поправка до контракту - перша фаза плану; або 'none').
- Приоритет по умолчанию - 50: 90 для слага
bugfix-и 95 дляhotfix-, а--priority Nего переопределяет./backlogвыбирает поPriority, поэтому метка уровня остаётся приблизительной подсказкой. Пока/spec-techне запущен, §12 Next step указывает на/spec-tech <ID>; потом его заменяет ссылка на план.Priority defaults to 50: 90 for abugfix-slug and 95 for ahotfix-one, and--priority Noverrides it./backlogselects byPriority, which is why the tier label stays a rough hint. Until/spec-techruns, §12 Next step points at/spec-tech <ID>; then it is replaced by the link to the plan.Пріоритет за замовчуванням - 50: 90 для слагаbugfix-і 95 дляhotfix-, а--priority Nйого перевизначає./backlogобирає заPriority, тому мітка рівня лишається приблизною підказкою. Доки/spec-techне запущено, §12 Next step вказує на/spec-tech <ID>; потім його замінює посилання на план.
Связанные функцииRelated functionsПов'язані функції
- Разбить утверждённую спеку на поэтапный план с проверкой каждого шагаTurn an approved spec into a phased plan with a check on every stepРозбити затверджену спеку на поетапний план із перевіркою кожного кроку
/spec-techпишет тактический план: индекс и файлы фаз, каждый шаг кончается статической проверкой, а порядок фаз сам проверяется до смены статуса./spec-techwrites the tactical plan: an index and phase files, each step ending in a static check, with the phase order self-reviewed before the status flips./spec-techпише тактичний план: індекс і файли фаз, кожен крок закінчується статичною перевіркою, а порядок фаз сам перевіряється до зміни статусу. - Провести тикет по жизненному циклу с проверкой на каждом шагеMove a ticket through the lifecycle with a gate at every stepПровести тікет життєвим циклом із перевіркою на кожному кроціТикет - это один Markdown-файл со строкой статуса. Каждый навык требует входной статус и выдаёт выходной, поэтому этап нельзя пропустить на глаз.A ticket is one Markdown file with a status line. Each skill requires an entry status and produces an exit status, so no stage is skipped on a hunch.Тікет - це один Markdown-файл із рядком статусу. Кожна навичка вимагає вхідний статус і видає вихідний, тож етап не можна пропустити на око.
- Изучить область, прежде чем её менятьInvestigate an area before you change itВивчити ділянку, перш ніж її змінюватиОдин продуманный проход чтения оставляет черновое досье и, для тикета, долговечные выводы, чтобы никто не искал одно и то же пять раз.One deliberate reading pass leaves a scratch dossier and, for a ticket, durable findings, so nobody greps the same things five times.Один продуманий прохід читання лишає чорнове досьє і, для тікета, довговічні висновки, щоб ніхто не шукав те саме п'ять разів.
- Разобрать очередь тикетов без вашего участия и получить один отчёт в концеDrain the ticket queue unattended and get one report at the endРозібрати чергу тікетів без вашої участі й отримати один звіт наприкінціБерёт тикет с наивысшим приоритетом из тех, что агент может двигать сам, прогоняет конвейер, повторяет, а всё, что требует человека, откладывает в один отчёт.Picks the highest-priority ticket the agent can move alone, runs the pipeline on it, repeats, and defers everything that needs a human to one report.Бере тікет із найвищим пріоритетом серед тих, що агент може рухати сам, проганяє конвеєр, повторює, а все, що потребує людини, відкладає в один звіт.
- Отложить находку вне задачи и продолжить работуPark an out-of-scope finding and keep workingВідкласти знахідку поза задачею й продовжити роботуНастоящая проблема, замеченная по ходу дела, становится минимальной заготовкой со статусом Draft за одну строку, и вы сразу возвращаетесь к своему делу.A real problem found mid-task becomes a minimal Draft stub in one line, and you go straight back to what you were doing.Справжню проблему, помічену по ходу діла, перетворено на мінімальну заготовку зі статусом Draft за один рядок, і ви одразу повертаєтеся до своєї справи.