🏠 Главная › user guide › software development spike
{/ Эта страница автоматически создается на основе файла SKILL.md навыка с помощью сайта site/scripts/generate-skill-docs.py. Редактируйте исходный код SKILL.md, а не эту страницу. /}
Спайк
Одноразовые эксперименты для проверки идеи перед сборкой.
Метаданные навыков
Источник
В комплекте (устанавливается по умолчанию)
Путь
навыки/разработка программного обеспечения/спайк
Версия
1.0.0
Автор
Агент Гермеса (адаптировано из gsd-build/get-shit-done)
Ниже приведено полное определение навыка, которое Гермес загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навык активен.
Спайк
Используйте этот навык, когда пользователь хочет прочувствовать идею перед тем, как приступить к реальной сборке — проверить осуществимость, сравнить подходы или выявить неизвестные, на которые не ответит никакое исследование. Шипы по своей конструкции одноразовые. Выбросьте их, как только они выплатят свой долг.
Загрузите это, когда пользователь говорит что-то вроде «дайте мне попробовать это», «я хочу посмотреть, работает ли X», «выбросьте это», «прежде чем я перейду к Y», «быстрый прототип Z», «это вообще возможно?» или «сравните A и B».
Когда НЕ использовать это
Ответ можно узнать из документации или чтения кода — просто исследуйте, а не создавайте
Работа — это производственный путь — вместо этого используйте writing-plans/plan
Идея уже проверена — сразу приступайте к реализации.
Если у пользователя установлена полная система GSD
Если gsd-spike отображается как родственный навык (устанавливается через npx get-shit-done-cc --hermes), отдайте предпочтение gsd-spike, когда пользователю нужен полный рабочий процесс GSD: постоянное состояние .planning/spikes/, отслеживание MANIFEST между сеансами, формат вердикта «Дано/Когда/Тогда» и шаблоны фиксации, которые интегрируются с остальной частью GSD. Этот навык представляет собой облегченную автономную версию для пользователей, у которых нет (или не нужна) полная система.
Основной метод
Независимо от масштаба, каждый всплеск следует этому циклу:
decompose → research → build → verdict
↑__________________________________________↓
iterate on findings
1. Разложить
Разбейте идею пользователя на 2–5 независимых вопросов о осуществимости. Каждый вопрос — это один спайк. Представьте их в виде таблицы с рамкой «Дано/Когда/Тогда»:
#
Спайк
Проверяет (Дано/Когда/Тогда)
Риск
001
потоковая передача через веб-сокет
При подключении WS, когда LLM передает токены, клиент получает фрагменты < 100 мс
Высокий
002а
pdf-разбор-pdfjs
Учитывая многостраничный PDF-файл, при анализе с помощью pdfjs структурированный текст можно извлечь
Средний
002б
PDF-разбор-Камелот
Учитывая многостраничный PDF-файл, при анализе с помощью Camlot можно извлечь структурированный текст
Средний
Типы шипов:
- стандарт — один подход, отвечающий на один вопрос
- сравнение — один и тот же вопрос, разные подходы (общее число, буквенный суффикс a/b/c)
Хорошие вопросы о всплесках: конкретная осуществимость с наблюдаемым результатом.
Неудачные всплески вопросов: слишком общие вопросы, отсутствие заметных результатов или просто «прочитайте документацию об X».
Упорядочение по риску. Всплеск, который, скорее всего, уничтожит идею, запускается первым. Нет смысла создавать прототипы простых частей, если сложная часть не работает.
Пропускать декомпозицию только в том случае, если пользователь уже точно знает, что он хочет добавить, и говорит об этом. Тогда воспринимайте их идею как один шип.
2. Выравнивание (для идей с несколькими шипами)
Представьте таблицу спайков. Спросите: «Построить все в таком порядке или скорректировать?» Позвольте пользователю удалить, изменить порядок или перекомпоновать кадры, прежде чем писать какой-либо код.
3. Исследования (за шип, перед постройкой)
Шипы не обходятся без исследований: вы исследуете достаточно, чтобы выбрать правильный подход, а затем строите. На шип:
Коротко. 2–3 предложения: что это за всплеск, почему он важен, ключевой риск.
Поверхностные конкурирующие подходы, если есть реальный выбор:
Подход
Инструмент/Библиотека
Плюсы
Минусы
Статус
...
...
...
...
поддерживается / заброшен / бета-версия
Выберите один. Скажите, почему. Если 2+ заслуживают доверия, создайте быстрые варианты внутри шипа.
Пропускайте исследования для чистой логики без внешних зависимостей.
Используйте инструменты Hermes на этапе исследования:
web_search("Библиотеки потоковой передачи веб-сокетов Python 2025") — найти кандидатов
terminal("pip show websockets | grep Version") — проверьте, что установлено в venv проекта
Для библиотек без страниц документации клонируйте и прочитайте их README.md/examples/ через read_file. Context7 MCP (если он настроен пользователем) также является хорошим источником — mcp_*_resolve-library-id, затем mcp_*_query-docs.
Склонность к чему-то, с чем пользователь может взаимодействовать. Всплески терпят неудачу, когда единственным результатом является строка журнала, в которой говорится: «Это работает». Пользователь хочет почувствовать работу шипа. Варианты по умолчанию, в порядке предпочтения:
Работоспособный интерфейс командной строки, который принимает входные данные и выводит наблюдаемые выходные данные.
Минимальная HTML-страница, демонстрирующая поведение
Небольшой веб-сервер с одной конечной точкой.
Модульный тест, который проверяет вопрос с узнаваемыми утверждениями.
Глубина важнее скорости. Никогда не заявляйте, что «это работает» после одного удачного пробега. Тестируйте крайние случаи. Следите за удивительными открытиями. Приговор заслуживает доверия только тогда, когда расследование было честным.
Избегайте, если этого специально не требует всплеск: сложное управление пакетами, инструменты сборки/сборщики, Docker, файлы env, системы конфигурации. Все жестко закодировать — это спайк.
Создание одного шипа — типичная последовательность действий:
Всплески параллельного сравнения (002a / 002b) — делегирование. Когда два подхода могут работать параллельно и оба требуют реального проектирования (а не 10-строчных прототипов), разветвите их с помощью delegate_task:
Каждый субагент возвращает свой собственный вердикт; ты пишешь с глазу на глаз.
5. Вердикт
Файл README.md каждого спайка закрывается словами:
## Verdict: VALIDATED | PARTIAL | INVALIDATED### What worked
-...
### What didn't
-...
### Surprises
-...
### Recommendation for the real build
-...
ПОДТВЕРЖДЕНО = на основной вопрос был дан утвердительный ответ с доказательствами.
PARTIAL = работает при ограничениях X, Y, Z — задокументируйте их.
INVALIDATED = не работает по этой причине. Это успешный пик.
Шипы сравнения
Когда два подхода отвечают на один и тот же вопрос (002a/002b), постройте их спина к спине, а затем в конце проведите прямое сравнение:
## Head-to-head: pdfjs vs camelot
| Dimension | pdfjs (002a) | camelot (002b) |
|-----------|--------------|----------------|
| Extraction quality | 9/10 structured | 7/10 table-only |
| Setup complexity | npm install, 1 line | pip + ghostscript |
| Perf on 100-page PDF | 3s | 18s |
| Handles rotated text | no | yes |
**Winner:** pdfjs for our use case. Camelot if we need table-first extraction later.
Режим Frontier (выбор того, что добавить дальше)
Если пики уже существуют и пользователь спрашивает: «Что мне делать дальше?», пройдитесь по существующим каталогам и найдите:
Интеграционные риски — два проверенных всплеска, которые затрагивают один и тот же ресурс, но тестировались независимо.
Передача данных — выход шипа A считался совместимым с входом шипа B; никогда не доказано
Пробелы в видении — предполагаемые возможности, но не доказанные.
Альтернативные подходы — разные углы для ЧАСТИЧНЫХ или НЕДЕЙСТВИТЕЛЬНЫХ шипов.
Предложите 2–4 кандидата в формате «Дано/Когда/Тогда». Пусть пользователь выбирает.
Вывод
Создайте spikes/ (или .planning/spikes/, если пользователь использует соглашения GSD) в корне репо.
Один каталог на спайк: NNN-описательное-имя/
README.md для каждого спайка фиксирует вопрос, подход, результаты и вердикт.
Держите код под рукой: всплеск, на «очистку которого уходит 2 дня», был плохим всплеском.