Adopt OpenSpec as the change workflow #45

Open
opened 2026-08-10 13:10:11 +00:00 by claude · 0 comments
Collaborator

Summary

Перевести работу над изменениями репозитория на OpenSpec: изменение начинается
со спеки, спека называет тест-кейсы, кейсы становятся Red/Green тестами, и вся
цепочка живёт одной веткой в отдельном worktree.

Spec

none

Motivation

Сейчас изменение начинается с кода, а issue пишется постфактум. Требование,
тест и реализация не связаны ничем, кроме памяти автора: по коду нельзя сказать,
какое требование он закрывает, а по issue — какой тест это доказывает.

OpenSpec даёт разделённые артефакты и жёсткий порядок между ними, но стоковая
цепочка (proposal → specs → design → tasks) обрывается на задачах: тест-кейсам
в ней места нет. Проектная схема spec-tdd довешивает недостающее звено —
tests.md прозой между спекой и задачами, — а хук довешивает изоляцию ветки.

Что репа получает на выходе:

Свойство Чем обеспечено
спека и её реализация ревьюятся одним PR worktree с первого артефакта
по требованию видно, какой тест его доказывает буллет **TEST** TC-… в сценарии
тест-кейс читается человеком, а не только раннером артефакт tests.md прозой
задачи ложатся парами Red/Green шаблон tasks.md схемы spec-tdd
связка не разваливается молча линтер, потому что openspec её не проверяет

Issues

  • commit-the-openspec-scaffold — завести openspec/ в git, иначе worktree пустой
  • fork-a-spec-tdd-workflow-schema — проектная схема с артефактом тест-кейсов
  • lint-the-spec-to-test-linkage — линтер связки спека ↔ кейс ↔ тест
  • gate-openspec-changes-onto-a-worktree — хук на ветку и разрешение worktree
  • state-the-repo-layers-as-openspec-context — правило слоёв в config.yaml
  • test-the-spec-guard-and-the-linkage-linter — тесты на хук и линтер

Acceptance criteria

  • все дочерние issues закрыты
  • один реальный change прошёл по схеме spec-tdd целиком: propose → apply →
    archive
  • у этого change worktree создался хуком, а не руками, и ветка ушла одним PR
  • линтер связки зелёный на репозитории после архивации этого change
  • AGENTS.md описывает получившийся процесс наравне с остальными слоями
<!-- tea:id adopt-openspec-as-the-change-workflow --> ## Summary Перевести работу над изменениями репозитория на OpenSpec: изменение начинается со спеки, спека называет тест-кейсы, кейсы становятся Red/Green тестами, и вся цепочка живёт одной веткой в отдельном worktree. ## Spec none ## Motivation Сейчас изменение начинается с кода, а issue пишется постфактум. Требование, тест и реализация не связаны ничем, кроме памяти автора: по коду нельзя сказать, какое требование он закрывает, а по issue — какой тест это доказывает. OpenSpec даёт разделённые артефакты и жёсткий порядок между ними, но стоковая цепочка (`proposal → specs → design → tasks`) обрывается на задачах: тест-кейсам в ней места нет. Проектная схема `spec-tdd` довешивает недостающее звено — `tests.md` прозой между спекой и задачами, — а хук довешивает изоляцию ветки. Что репа получает на выходе: | Свойство | Чем обеспечено | |---|---| | спека и её реализация ревьюятся одним PR | worktree с первого артефакта | | по требованию видно, какой тест его доказывает | буллет `**TEST** TC-…` в сценарии | | тест-кейс читается человеком, а не только раннером | артефакт `tests.md` прозой | | задачи ложатся парами Red/Green | шаблон `tasks.md` схемы `spec-tdd` | | связка не разваливается молча | линтер, потому что openspec её не проверяет | ## Issues - [ ] commit-the-openspec-scaffold — завести `openspec/` в git, иначе worktree пустой - [ ] fork-a-spec-tdd-workflow-schema — проектная схема с артефактом тест-кейсов - [ ] lint-the-spec-to-test-linkage — линтер связки спека ↔ кейс ↔ тест - [ ] gate-openspec-changes-onto-a-worktree — хук на ветку и разрешение worktree - [ ] state-the-repo-layers-as-openspec-context — правило слоёв в `config.yaml` - [ ] test-the-spec-guard-and-the-linkage-linter — тесты на хук и линтер ## Acceptance criteria - [ ] все дочерние issues закрыты - [ ] один реальный change прошёл по схеме `spec-tdd` целиком: propose → apply → archive - [ ] у этого change worktree создался хуком, а не руками, и ветка ушла одним PR - [ ] линтер связки зелёный на репозитории после архивации этого change - [ ] `AGENTS.md` описывает получившийся процесс наравне с остальными слоями
claude added this to the openspec integration milestone 2026-08-10 13:10:11 +00:00
claude added the
type
feature
comp/openspec
labels 2026-08-10 13:10:11 +00:00
claude added a new dependency 2026-08-10 13:10:12 +00:00
claude added a new dependency 2026-08-10 13:10:12 +00:00
claude added a new dependency 2026-08-10 13:10:12 +00:00
claude added a new dependency 2026-08-10 13:10:12 +00:00
claude added a new dependency 2026-08-10 13:10:13 +00:00
claude added a new dependency 2026-08-10 13:10:13 +00:00
Sign in to join this conversation.