4.7 KiB
4.7 KiB
Proposal: OpenSpec в DSH
Issue: #42 (роадмап порта — #48). Источники:
dsh/PORT.md, разделы 1 (таблица слоёв: «Gitea, OpenSpec — CLI + skills, 1:1»), 3 (deferred), 8 (next phases);- спайк 24.10.2026 в temp-проекте:
openspec init --tools agents+ полный цикл CLI без Claude Code; - ответы владельца 24.10.2026: скиллы — в проект, слэш-команда не нужна.
Why
В Claude Code архитектурная задача идёт через OpenSpec: openspec/changes/<id>/
— proposal, дельта спеки, design, tasks; openspec validate и openspec archive
держат спеки в правде. В DSH этот слой сейчас отсутствует: CLI работает, но
скиллов нет, и агент либо правит спеку руками, либо не заводит change вовсе.
dsh/PORT.md при этом обещает «CLI + skills 1:1» — обещание не выполнено.
Роль dev уже требует спеки в openspec/changes/<id>/ для архитектурных задач.
Пока скиллов нет, это требование в DSH-сессии выполняется только «на память
модели»: формат proposal/дельты и порядок команд ничем не закреплены.
What Changes
- Скиллы OpenSpec в проекте.
openspec init --tools agentsсоздаёт.agents/skills/openspec-{propose,apply-change,archive-change,explore,sync-specs,update-change}/SKILL.md— ровно тот формат, который DSH читает как проектные скиллы. В репозиторий обвязки эти шесть скиллов добавляются (dogfooding: обвязка сама ведёт спеки через OpenSpec). Скиллы остаются генератором openspec:openspec updateобновляет их под версию CLI проекта. - Глобальной копии нет. В
~/.dsh/skillsскиллы OpenSpec не ставятся: копия стареет относительно CLI проекта, а в проектах с собственным.agents/skillsпоявляются два скилла с одним именем. dsh/install.sh:--checkсообщает версию CLIopenspecи наличие agents-скиллов в репозитории обвязки; новая опция--openspecдобавляет agents-адаптер в текущий проект (openspec init --tools agents), только еслиopenspec/уже существует, — идемпотентно,.claude/не трогает.dsh/PORT.mdиdsh/README.md: раздел про OpenSpec, путь.agents/skills, цикл проверки, снятие пункта из «Next phases».dsh/tests/openspec.test.mjs: проверки без DSH runtime — наличие и frontmatter скиллов в репозитории, поведение--checkи--openspecс подставным бинарёмopenspecвPATH.- Слэш-команд нет. В Claude Code есть
/opsx:*; в DSH вход — скиллы, которые модель вызывает по фразе «openspec propose» / «openspec archive»./roleи bootstrap не меняются.
Capabilities
New Capabilities
dsh-openspec: как DSH-адаптер обвязки ставит и проверяет скиллы OpenSpec, чем отличается от Claude Code и что обязано работать без Claude Code.
Modified Capabilities
Impact
- Claude Code не меняется:
.claude/skills/openspec-*и.claude/commands/opsx/*остаются как есть;roles/,hooks/,global/, корневойinstall.shне трогаются. - В репозитории появляется
.agents/skills/(6 каталогов +.openspec-target). Дублирование с.claude/skills/— цена поддержки двух клиентов одним генератором; расхождение версий ловитсяopenspec update. dsh/install.sh --openspecполучает право вызывать внешний CLI; в тестах он подменяется, в живом прогоне требуется установленныйopenspec≥ 1.13.- Роль dev не меняется: строка про
openspec/changes/<id>/уже есть; в DSH она начинает работать, потому что скиллы появились в проекте.