Когда это нужноWhen to reach for itКоли це потрібно
/spec-check оставил тикет на Partial или Broken, а в блоке ## Last Audit лежат конкретные пункты FAIL, WARN или UNCHECKABLE./spec-check left a ticket at Partial or Broken, and the ## Last Audit block holds concrete FAIL, WARN or UNCHECKABLE action items./spec-check залишив тікет на Partial або Broken, а в блоці ## Last Audit лежать конкретні пункти FAIL, WARN чи UNCHECKABLE.
ТребованияRequirementsВимоги
- Где доступноAvailable inДе доступно
- Каждая загрузка kitEvery download of the kitКожне завантаження kit
- К чему обращаетсяWhat it touchesДо чого звертається
- Читает файлы проектаReads the files of your projectЧитає файли проєкту
- Правит файлы проектаEdits files in your projectЗмінює файли проєкту
- Запускает команды (проверки, git)Runs commands (checks, git)Запускає команди (перевірки, git)
- Работает с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-fix/SKILL.md
/spec-fix никогда не ставит Verified и никогда не угадывает. Неоднозначный или недоопределённый пункт, а также требующий проектного решения, нового публичного имени или вашего ответа, остаётся как есть; если он блокирует всё остальное, тикет получает BlockQuestions с пометкой. Зона только для чтения или внешняя система останавливают его до вашего явного разрешения./spec-fix never sets Verified and never guesses. An ambiguous or under-specified item, or one that needs a design decision, a new public name or your input, is left as it is; if it blocks everything else, the ticket is set to BlockQuestions with a one-line note. A read-only zone or an external system stops it until you give explicit permission./spec-fix ніколи не ставить Verified і ніколи не вгадує. Неоднозначний чи недовизначений пункт, а також пункт, що потребує проєктного рішення, нової публічної назви або вашої відповіді, лишається як є; якщо він блокує все решту, тікет отримує BlockQuestions з короткою приміткою. Зона лише для читання або зовнішня система зупиняють його до вашого явного дозволу.
ШагиStepsКроки
- Запустите
/spec-fix ID-or-slug. Флаг--dry-runпокажет, что изменилось бы, и ничего не запишет.Run/spec-fix ID-or-slug. Add--dry-runto list what would change and write nothing.Запустіть/spec-fix ID-or-slug. Прапорець--dry-runпокаже, що змінилося б, і нічого не запише. - Начинать ли, решает проверка статуса.
PartialилиBroken- продолжает;Verified- чинить нечего, он сообщает об этом и останавливается; любой другой статус - прерывание и отправка вас сначала к/spec-check. Он также прерывается, если блока## Last Auditнет или он устарел, то есть в этом цикле/spec-checkне запускался.The status gate decides whether it starts.PartialorBrokenproceed;Verifiedmeans nothing to fix, so it reports and stops; any other status aborts and sends you to/spec-checkfirst. It also aborts if the## Last Auditblock is missing or stale, meaning no/spec-checkran this cycle.Починати чи ні, вирішує перевірка статусу.PartialабоBroken- продовжує;Verified- лагодити нічого, він повідомляє про це й зупиняється; будь-який інший статус - переривання й відправлення вас спершу до/spec-check. Він також перериває роботу, якщо блока## Last Auditнемає або він застарів, тобто в цьому циклі/spec-checkне запускався. - Он классифицирует каждый пункт. Механический - полностью определён самим пунктом: недостающая запись в журнале изменений, устаревший проверочный тег для удаления, остаток балласта, ключевое слово пользовательской документации, которое требует спека, но его нет, переименованный или отсутствующий символ, названный в пункте точно, keep-правило для удалённого символа. Требует решения - выбор дизайна, новое имя, форма схемы или DI, ваш ответ; сюда же каждый
UNCHECKABLE: доступа правка не даёт.It classifies every action item. Mechanical means fully specified by the item itself: a missing changelog entry, a stale verification tag to delete, a dead-weight remnant, a user-doc keyword the spec requires but lacks, a renamed or missing symbol the item names exactly, a keep-rule for a deleted symbol. Needs a decision means a design choice, a new name, a schema or DI shape, or your input; so does everyUNCHECKABLEitem, because no edit supplies access.Він класифікує кожен пункт. Механічний - повністю визначений самим пунктом: бракує запису в журналі змін, застарілий перевірочний тег для видалення, залишок баласту, ключове слово користувацької документації, яке вимагає спека, але його немає, перейменований чи відсутній символ, названий у пункті точно, keep-правило для видаленого символу. Потребує рішення - вибір дизайну, нова назва, форма схеми чи DI, ваша відповідь; сюди ж коженUNCHECKABLE: правка доступу не дає. - Он применяет механические исправления, по одному на пункт, с дисциплиной правок
/spec-dev: строго в рамках пункта, без рефакторинга вокруг, без выдуманных имён, правила против мусора действуют. Пока проверка самого пункта (файл есть, символ на месте, слово найдено, запрещённых совпадений ноль) не прошла, пункт закрытым не считается.It applies the mechanical fixes, one per item, with the edit discipline of/spec-dev: scope strictly to the item, no surrounding refactor, no invented names, anti-slop rules apply. Each item's own check (file exists, symbol present, keyword found, zero forbidden hits) must pass before the item counts as closed.Він застосовує механічні виправлення, по одному на пункт, з дисципліною правок/spec-dev: строго в межах пункту, без рефакторингу довкола, без вигаданих назв, правила проти сміття діють. Доки перевірка самого пункту (файл є, символ на місці, слово знайдено, заборонених збігів нуль) не пройшла, пункт закритим не вважається. - Он дословно перечисляет каждый пункт, требующий решения, и не пытается угадывать. Если один из них блокирует весь прогресс, он ставит
BlockQuestionsс короткой пометкой.It lists every needs-a-decision item verbatim and stops short of guessing. If one of them blocks all progress, it setsBlockQuestionswith a one-line note.Він дослівно перелічує кожен пункт, що потребує рішення, і не намагається вгадувати. Якщо один із них блокує весь поступ, він ставитьBlockQuestionsз короткою приміткою. - Если удалось закрыть хотя бы один пункт, он передаёт ход
/spec-check ID, чтобы статус пересчитался по реальности, и добавляет изменённые файлы в единственную запись журнала изменений тикета (если журнал в проекте не ведётся, добавлять нечего). Новый статус решает только повторный аудит, он же удаляет проверочные теги, если тикет выходит изBlockNeedUserTest.If it fixed at least one item, it chains to/spec-check IDso the status is recomputed from reality, and adds the files it modified to the ticket's one changelog entry (none where the project keeps no change log). The re-audit alone decides the new status and removes verification tags if the ticket leavesBlockNeedUserTest.Якщо вдалося закрити хоча б один пункт, він передає хід/spec-check ID, щоб статус перерахувався за реальністю, і додає змінені файли до єдиного запису журналу змін тікета (якщо проєкт не веде журналу, додавати нічого). Новий статус вирішує лише повторний аудит, він же видаляє перевірочні теги, якщо тікет виходить ізBlockNeedUserTest. - Если не удалось закрыть ни одного пункта, он останавливается и дальше не идёт: повторный аудит, когда ничего не изменилось, вернул бы те же пункты и сразу отдал бы их обратно, а под
/backlogтакой цикл никто не видит. Если остались пункты, требующие решения, он ставитBlockQuestionsс их списком, и/spec-checkсохраняет этот статус, пока владелец не ответит.If it fixed nothing, it stops and does not chain: re-auditing an unchanged workspace returns the same action items and hands them straight back, a loop nobody watches under/backlog. Where decision items remain, it setsBlockQuestionslisting them, and/spec-checkkeeps that status until the owner answers.Якщо не вдалося закрити жодного пункту, він зупиняється й далі не йде: повторний аудит, коли нічого не змінилося, повернув би ті самі пункти й одразу віддав би їх назад, а під/backlogтакий цикл ніхто не бачить. Якщо лишилися пункти, що потребують рішення, він ставитьBlockQuestionsз їхнім переліком, і/spec-checkзберігає цей статус, доки власник не відповість.
Строка в чате ID: fixed N/M action items. Left for you: [decision items]. -> Running /spec-check.., затем свежий ## Last Audit и статус, пересчитанный аудитом. Если ничего не исправлено, строка заканчивается на -> stopped, nothing mechanical left. Пункты, которые он не смог решить, названы дословно, так что видно, что именно осталось вам.A chat line ID: fixed N/M action items. Left for you: [decision items]. -> Running /spec-check.., then a fresh ## Last Audit and a status recomputed by the audit. When nothing was fixed the line ends -> stopped, nothing mechanical left instead. The items it could not decide are named word for word, so you know exactly what is yours.Рядок у чаті ID: fixed N/M action items. Left for you: [decision items]. -> Running /spec-check.., потім свіжий ## Last Audit і статус, перерахований аудитом. Якщо нічого не виправлено, рядок закінчується на -> stopped, nothing mechanical left. Пункти, які він не зміг вирішити, названо дослівно, тож видно, що саме лишилося вам.
СоветыTipsПоради
- Он никогда не выдумывает исправление, которого аудит не называл: точный пункт (путь, символ, ключевое слово) закрывается здесь, а расплывчатый возвращается к вам.It never invents a fix the audit did not name, so an action item that is exact (a path, a symbol, a keyword) is closed here, and a vague one comes back to you.Він ніколи не вигадує виправлення, якого аудит не називав: точний пункт (шлях, символ, ключове слово) закривається тут, а розпливчастий повертається до вас.
- Команда идемпотентна: повторный запуск, когда аудит уже удовлетворён, ничего не меняет.It is idempotent: a second run with the audit already satisfied changes nothing.Команда ідемпотентна: повторний запуск, коли аудит уже задоволено, нічого не змінює.
- /spec-check сохраняет статус
BlockQuestionsилиBlockExternal, а не затирает его оценкой. Иначе аудит и его исправление гоняли бы одни и те же неисправимые пункты туда и обратно. Блокировка снимается, только когда устранена её причина, а заметка в одну строку остаётся в строке статуса, после-, пока этого не произошло./spec-check keeps aBlockQuestionsorBlockExternalstatus instead of overwriting it with a score. Otherwise an audit and its fix-up would hand the same unfixable items back and forth. A block clears only when its condition is removed, and its one-line note stays on the status line, after-, until then./spec-check зберігає статусBlockQuestionsабоBlockExternal, а не затирає його оцінкою. Інакше аудит і його виправлення ганяли б одні й ті самі невиправні пункти туди й назад. Блокування знімається, лише коли усунуто його причину, а примітка в один рядок лишається в рядку статусу, після-, доки цього не сталося.
Связанные функцииRelated functionsПов'язані функції
- Проверить реализацию по спеке и выставить статус тикета по фактуAudit a build against its spec and set the ticket status from realityПеревірити реалізацію за спекою й виставити статус тікета за фактомСверяет тикет с тем, что реально лежит в файлах, и выставляет статус: Verified, Partial или Broken, а пока открыта ручная проверка, BlockNeedUserTest.Audits a ticket against what the files really contain and sets its status: Verified, Partial or Broken, or BlockNeedUserTest while a manual check is open.Звіряє тікет із тим, що справді лежить у файлах, і виставляє статус: Verified, Partial чи Broken, а поки відкрита ручна перевірка, BlockNeedUserTest.
- Выполнить тактический план по одному проверенному шагуImplement a tactical plan one verified step at a timeВиконати тактичний план по одному перевіреному кроку
/spec-devидёт по плану шаг за шагом, проверяет каждый шаг до отметки о готовности и жёстко останавливается на первом сбое или неоднозначности, не угадывая./spec-devruns the plan step by step, checks each step before marking it done and hard-stops on the first failure or ambiguity instead of guessing forward./spec-devіде за планом крок за кроком, перевіряє кожен крок до позначки про готовність і жорстко зупиняється на першому збої чи неоднозначності, не вгадуючи. - Не дать сгенерированному коду сгнитьKeep generated code from rottingНе дати згенерованому коду згнитиСемь шаблонов, которые выглядят нормально и тихо гноят кодовую базу: не пишите их, отмечайте с первого взгляда и блокируйте только новые нарушения.Seven patterns that look fine and quietly rot a codebase: do not write them, flag them on sight, and gate only new violations.Сім шаблонів, що виглядають нормально й тихо гноять кодову базу: не пишіть їх, позначайте з першого погляду й блокуйте лише нові порушення.
- Провести тикет по жизненному циклу с проверкой на каждом шаге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-файл із рядком статусу. Кожна навичка вимагає вхідний статус і видає вихідний, тож етап не можна пропустити на око.