5.8 KiB
5.8 KiB
Proposal: DSH port v2 — доставка superpowers вариантом C и чистка трекера
Issue: #69. Источники: ревью обвязки 24.10.2026 (находки RV-1, RV-6, RV-11), LayneChai/superpowers-dsh (MIT), решение владельца 24.10.2026 «вариант C».
Статус: черновик — ждёт ответов владельца (раздел «Открытые вопросы»).
Why
Доставка superpowers-скиллов в DSH изобретена заново: dsh/install.sh --skills
копирует клонированный апстрим без пина и без адаптации текста (RV-1).
Следствия:
- установка невоспроизводима: семантика скиллов меняется между релизами obra/superpowers, у нас нет ни пина, ни сверки;
- текст скиллов не адаптирован под DSH: внутри остаются
superpowers:-префиксы и ссылки на чужие harness-ы, которые закрывает только наш runtime-appenddsh-tools.md; - нет compat-чека против установленного DSH SDK (RV-11): после апгрейда DSH перепроверка ручная;
- apстрим уже выпустил v7.0.1, а существующий готовый порт LayneChai/superpowers-dsh пинится на v7.0.0 — зависеть от его каденса значит застрять (замерено 24.10.2026: теги upstream — v7.0.1 свежий);
- трекер зарос: 23 открытых issue, 2 открытых PR, 4 worktree, из них 2 парковки без PR; roadmap #48 и хвосты #5/#13/#21/#28/#31 дублируют друг друга.
What Changes
Вариант C — взять машинерию готового порта как форк/вендор, но sync гонять самим по своему каденсу:
- В
dsh/sync/вендорятсяscripts/sync-from-upstream.mjs,scripts/verify-skills.mjs,scripts/check-dsh-compat.mjsиз LayneChai/superpowers-dsh (MIT) с адаптацией путей и transform-ов под нашdsh-tools.md. - Пин на тег obra/superpowers (v7.0.1 на момент плана) живёт в репозитории,
а не в голове:
DSH_SUPERPOWERS_REF, переменная вdsh/install.shи в sync-скрипте. #67 (авто-pull unpinned HEAD) отменяется — rejected. dsh/install.sh --skillsперестаёт копировать сырой апстрим: fetch пина → прогон sync с ассертами → копирование адаптированного дерева.--superpowers-fromостаётся для офлайна и разработки. Legacy-фолбэки~/.claude/*остаются до #66 и удаляются по нему.- Bootstrap-инъекция
using-superpowersостаётся в нашем бандле; источник текста — synced-копия$DSH_HOME/skills(единая точка, как сейчас). - Compat-чек (решение владельца): самопроверка бандла внутри DSH
(активация + команда; контракт guard/pre-step/commands/surface) +
терминальный verify synced-скиллов в
--check. Вендорный check-dsh-compat не берём (SDK в asar, терминал всегда SKIPPED). - Ритм: issue на каждый релиз upstream (sync → тесты → PR), самопроверка после каждого апгрейда DSH.
Чистка трекера (схема на подтверждение, issue #69):
- закрыть #48 (заменён #69), #67 (rejected), #47 (решение зафиксировано в design.md);
- свести follow-ups #5/#13/#21/#28/#31 в одну сводную issue «Сводка отложенных находок обвязки» (это же закрывает B16);
- #43–#46, #59, #62, #63, #66 становятся задачами плана; #63 — кандидат в bounded-задачу до старта плана;
- судьба PR #18/#8 и парковок
.wt/guard,.wt/aura-design,.wt/feature-pane,dsh-superpowers-git— за владельцем.
Impact
- Affected:
dsh/install.sh,dsh/sync/(новое),dsh/README.md,dsh/PORT.md,openspec/specs/dsh-install(дельта), трекер Gitea, бандл (аддитивно: активационный assert + команда самопроверки, существующее поведение не меняется). - CC-сторона хуков — вне скоупа, кроме #63 (bounded-задача до плана, решение владельца 24.10.2026).
- Breaking:
--skillsначинает требовать сеть для fetch пина (кроме--superpowers-from); #67 отменён. - Риски: см. design.md.
Открытые вопросы (к владельцу) — решены 24.10.2026
Что в DSH-сессии спотыкало сильнее всего— ответ «пока трудно сказать, идёт разработка только самого харнеса» → design.md D-8.Подтверждение схемы чистки трекера— подтверждено («чисти»), выполнено 24.10.2026: #70, закрыты #5/#13/#21/#28/#31/#48/#47/#67, парковки удалены.#63 bounded-задачей до плана— да → design.md D-10.