Przejdź do treści
Biblioteka skilli
Programowanie · Planowanie

spec-driven-development

/spec-driven-development

Pracuje w trybie specyfikacji: prowadzi osobne repozytorium specyfikacji, dzienniki decyzji i problemów oraz łączy je z commitami kodu.

Repozytorium
spec-workflow ↗
Licencja
MIT
Ostatnia zmiana repozytorium
13.11.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
4
Skrypty
2
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 13.11.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co sprawdzić przed instalacją
  • 2 skrypty w paczce. Przejrzyj je przed instalacją, bo Claude może je uruchomić.

Skrypty: scripts/spec_check.py, scripts/test_spec_check.py

Co robi i kiedy

Pracuje w trybie specyfikacji: prowadzi osobne repozytorium specyfikacji, dzienniki decyzji i problemów oraz łączy je z commitami kodu.

Oryginalny opis (EN)

Use when the user explicitly asks to work in spec-driven mode (spec-driven, «по спекам», «заведи спеку», «ведём спеку»), or asks where the spec, plan, decisions or known problems for a task live. Covers a separate specs repository rooted at SPECS_ROOT — work-unit folders, stage epics, living decision and problem journals, sketch notes and work items, and linking specs to code commits. Opt-in — never apply to ordinary tasks unless the user asked.

Jak działa

  1. Когда включать
  2. Когда не включать
  3. Где что лежит
  4. Перед работой: что прочитать
  5. По ходу работы: что писать
  6. Связь с кодом
  7. Коммиты в репозитории спек
  8. Закрытие
  9. Антипаттерны
  10. Гейт
Sekcje z nagłówków SKILL.md, w oryginale · 126 linii, 1 137 słów
Podgląd SKILL.md
---
name: spec-driven-development
description: Use when the user explicitly asks to work in spec-driven mode (spec-driven, «по спекам», «заведи спеку», «ведём спеку»), or asks where the spec, plan, decisions or known problems for a task live. Covers a separate specs repository rooted at SPECS_ROOT — work-unit folders, stage epics, living decision and problem journals, sketch notes and work items, and linking specs to code commits. Opt-in — never apply to ordinary tasks unless the user asked.
---

# Spec-driven: спеки, планы и журналы решений

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

**Корень репозитория спек — переменная `SPECS_ROOT`.** Не задана — спроси путь один раз и держи его на сессию. Путь в тексты и конфиги не хардкодить.

**Структура каталогов — дерево в разделе «Где что лежит» ниже** (шаблон для нового репозитория — `templates/specs-repo` в корне библиотеки, из base dir скилла это `../../templates/specs-repo`; локальные дополнения описывает README репозитория спек). **Правила ведения записей — `references/formats.md`** рядом с этим файлом. Скилл самодостаточен: ни структура, ни форматы не требуют чтения документов репозитория спек.

## Когда включать

Только по явной просьбе: «работаем по спекам», «spec-driven», «заведи спеку», «где спека по …». Режим держится до конца задачи или до явной отмены.

Можно **один раз предложить**, если задача совпала хотя бы по одному критерию:

- затрагивает 2+ кодовых репозитория;
- это проект с этапами или несколько эпиков, а не один тикет;
- работа рассчитана больше чем на неделю;
- есть архитектурные альтернативы, которые придётся обосновывать;
- результат нужен другим командам.

Предложить — не начать. Без согласия режим не включать и папку не заводить.

## Когда не включать

Правка на час, разовый багфикс, рутинный рефакторинг, задача с готовым решением. Спека в таких случаях стоит дороже, чем экономит. Если сомневаешься — спроси, а не заводи папку.

## Где что лежит

```none
<SPECS_ROOT>/
├── TASKS.md      # индекс: папка → ID → статус
├── README.md     # правила структуры: единица работы, этапы, форматы файлов
├── AGENTS.md     # те же правила языком агента
└── tasks/<папка>/
    ├── index.md       # обязателен всегда: статус, ID, ветки, PR, скоуп
    ├── decisions.md   # журнал решений, текущая редакция
    ├── problems.md    # журнал проблем, текущая редакция
    ├── notes.md       # черновики: мысль в работе, не история
    ├── todo.md        # действия вне этапов, не история
    ├── spec.md        # требования (когда их надо согласовывать)
    ├── plan.md        # карта этапов (когда порядок неочевиден)
    ├── analysis/      # собранные данные: замеры, дампы, разбор кода, чек-листы
    ├── sources/       # внешние документы: снапшот на дату, не канон
    ├── archive/       # карточки закрытых шагов, по умолчанию не читаются
    └── stages/NN-*.md # этапы проекта, если их несколько
```

`analysis/` и `sources/` — не спека: вывод переезжает в `spec.md` или `decisions.md`, решение читается без артефакта. `archive/` — история закрытых шагов: в неё заходят по ссылке и только за конкретикой.

## Перед работой: что прочитать

1. `TASKS.md` — если известен только ID задачи.
2. `tasks/<папка>/index.md` — вид работы (`project` / `problem` / `research`), статус, все ID, репозитории, ветки, PR, скоуп.
3. `decisions.md` — сводка `## Действующие решения` в начале, дальше заголовки. Полный текст — по номеру (`grep '^## D43'`). Это ответ на «почему так». Журнал целиком не читать: он растёт.
4. `problems.md` — до того, как чинить в затронутой области: возможно, уже наступали.
5. `spec.md` / `plan.md` / `stages/*` — по необходимости.
6. `analysis/` / `sources/` — по ссылке из `index.md` или журнала и только нужный кусок: факты оттуда, а не канон.
7. `notes.md` — черновики, если есть: не решение, не цитировать.
8. `todo.md` — действия вне этапов, если он есть: не решения, не история.
9. `archive/` — назначенная история: **по умолчанию не читать**, открывать только по ссылке из этапа или журнала.
10. Шапка `decisions.md`: `**Последняя ревизия:**`. Прошло больше недели (при активной работе — 2–3 дня) или набежало >8 записей — предложи ревизию.

Нет файлов кроме `index.md` — это lite-режим, вся суть в карточке. Не считать это незаполненной спекой.

## По ходу работы: что писать

Куда идёт решение, проблема, требование и черновик — в `references/formats.md`, абзац «Перед записью». Здесь только то, что не про запись:

- Закрыл этап или поменял статус → `index.md` и `TASKS.md` одним коммитом.
- Измерил, снял дамп, разобрал код → файл в `analysis/`: одна тема, шапка с датой и коммитом. Вывод переезжает в решение или требование, подробности остаются в артефакте.
- Документы, на которых стоит спека → `sources/`: снапшот на дату, не поддерживаемая копия.
- Мысль, которую рано фиксировать решением → `notes.md`, без номеров.
- Шаг закрыт → его карточка из `notes.md` переносится в `archive/<шаг>.md`, в этапе остаётся ссылка. Остальные блоки `notes.md` не трогаются.

**Перед любой записью в `decisions.md` прочитай `references/formats.md`**: там формат полей, бюджет строк, тест «если завтра запись исчезнет — кто-нибудь сделает иначе?», правила ревизии и запрет переписывать историю. Без этой сверки запись почти всегда уезжает в эссе.

## Связь с кодом

- Ветка: `<фактический TASK-ID>-<kebab-slug>`.
- Заголовок коммита: `[<фактический TASK-ID>] <English summary>`. Подзадача подписывается своим ID, а не ID проекта.
- В теле коммита или PR: `Spec: <SPECS_ROOT>/tasks/<папка>/`.
- Хеши значимых коммитов — в `index.md` или в записи журнала.

## Коммиты в репозитории спек

- Один коммит — одно изменение: новое решение, новая проблема, закрытый этап, смена статуса.
- Заголовок на английском, тело по-русски, по существу.
- Без `--amend`, rebase и squash: путь к решению — тоже артефакт.
- Не коммитить обрывки «чтобы не забыть» — для этого есть «Открытые вопросы» в `index.md`.

## Закрытие

- `index.md`: статус `done`, заполнен «Итог» — что сделали, чем закончилось, что осталось.
- Журналы отражают реальность: новые записи дописаны, статусы старых обновлены.
- `TASKS.md` обновлён.
- Если из спеки есть вывод, полезный команде, — он перенесён в вики. Каталог вики берётся из `WIKI_ROOT`, если переменная задана, иначе спроси, нужно ли переносить и куда.

## Антипаттерны

- Пересказывать описание задачи из трекера вместо ссылки на ID.
- Заводить пять файлов «по шаблону» на задачу без содержания.
- Писать спеку после релиза для отчётности — ценности нет, только вид работы.
- Складывать в спеку секреты, пароли, внутренние адреса с доступами.
- Разносить этапы одного проекта по отдельным папкам: теряется связь «прототип → кодогенерация → внедрение».
- Включать режим самовольно на любой крупной задаче.
- Писать запись-эссе на 30–50 строк: это либо несколько решений, либо не решение.
- Доливать в `Контекст` пересказ кода, замеры и дампы: через месяц это врёт, для данных есть `analysis/`.
- Ссылаться на лог или документ со своего диска либо тащить в папку гигабайтное сырьё: читателю нужны цифры и способ их получить.
- Сочинять альтернативы, которых не рассматривали, — фальшивый след мысли.
- Оформлять набросок сразу решением и потом «охранять» его от правок.

## Гейт

Детерминированная проверка формы — `scripts/spec_check.py` рядом с этим файлом. Запуск из base dir скилла:

```sh
python3 <base>/scripts/spec_check.py --spec <SPECS_ROOT>/tasks/<папка>
```

На Windows вместо `python3` подойдёт `py`. Гейт берёт репозитории из `repos:` в `index.md` и ищет их под `PROJECTS_ROOT` (по умолчанию родитель `SPECS_ROOT`, иначе `~/projects`). Проверяет, что отмеченный пункт ссылается на коммит, файл или тест, что имена из отмеченных пунктов встречаются в коде, что `repo@hash` и `файл:строка` резолвятся, что номера `D`/`P` и сводка сходятся. Имена сравниваются как текст, а не разрешаются как символы; вендорные и build-каталоги не читаются.

**Тесты гейт не запускает.** Прогон — работа исполнителя, результат живёт в карточке шага.

Что именно читается, какие флаги есть (`--strict`, `--index`, `--repo`, `--file-root`, `--projects-root`) и чем `--index strict` отличается от `summary` — в `--help` и докстринге скрипта.
Pliki w paczce (4)
  • SKILL.md 13 KB
  • references/formats.md 16 KB
  • scripts/spec_check.py 30 KB
  • scripts/test_spec_check.py 17 KB

Wersje

RepozytoriumWynikLicencja
Ta strona · DanielCryer/spec-workflow100MIT
magnus919/agent-skills100MIT
lucasouzadev/agent-kit-skill100MIT
FrancoStino/opencode-skills-collection100MIT
ctoforaday/special-circumstances100MIT
krzysztofsurdy/code-virtuoso100MIT
rafidone/agent-skills100MIT
sickn33/agentic-awesome-skills100MIT
andreibesleaga/gabbe100CC-BY-4.0

Migawka bazy z 13.11.2026 · wersja paczki c8b54b4eee97 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 90spec-driven
    Prowadzi proces spec-driven development (wymagania, projekt, zadania, implementacja) z bramkami akceptacji między fazami.
  • 100spec-driven-workflow
    Pomaga pisać specyfikacje przed kodem, definiować kryteria akceptacji, planować funkcje, generować testy ze specyfikacji i stosować praktyki spec-first.
  • 100execute-specs
    Pomaga wdrożyć zatwierdzoną specyfikację SPEC SDD metodą test-driven development, czyli od testów do działającego kodu.
  • 100specops
    Prowadzi development oparty na specyfikacji jako źródle prawdy i planach zadań w katalogu plans.
  • 100spec-coder
    Prowadzi spec-first workflow z bramkami przeglądu przez ekspertów: doprecyzowanie wymagań, dokumenty requirements, design i tasks, generowanie kodu ze specyfikacji, testy i synchronizację spec z kodem.
  • 100spec-driven
    Stosuje konwencje pracy ze specyfikacjami: przepływ spec, plan i zadania, formaty plików, statusy i zasadę dryfu.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.