3.8 KiB
3.8 KiB
DSH port spike — план
Ветка: feat/35-dsh-port-spike (issue #35).
Спека/дизайн: dsh/PORT.md.
Цель
Проверить, что claude-harness переносится на DeepSeek Harness без потери
жёстких правил, и получить работающий каркас адаптера в dsh/.
Scope
- Cordis-бандл
dsh/bundle:ctx.tools.guard→ существующиеhooks/guard-main.shиhooks/require-plan.sh(переиспользовать Python-ядро, не переписывать);agent/pre-step→ bootstrapusing-superpowers+dsh-tools.md;ctx.commands.register('role')→ оба слоя ролей, без auto-memory.
- Установка:
dsh/install.sh(--check,--global,--skills), бандл — черезplugin_manager. - Опциональный CodeGraph MCP overlay.
- Тесты на чистом Node + документация (
dsh/README.md,dsh/PORT.md).
Non-goals
- SDD: DSH
subagentасинхронный; нужна отдельная семантика. briefing,harness-check,role-hint,harness-doctor, auto-memory, caveman.- Публикация бандла и отдельный репозиторий.
Задачи
- Каркас
dsh/bundle(package.json, cordis.patch.yml, locale, icon). - Адаптер guard-main/require-plan + тесты на временном git-репозитории.
- Bootstrap
using-superpowers: резолв версии, marker, dedupe, compaction. /role: парсинг, два слоя, инъекция, followup.dsh/install.sh,mcp.codegraph.yml, README/PORT.bash dsh/tests/run.sh— 26 тестов зелёные.bash tests/run.sh— 630 тестов зелёные (регрессий нет).- Живой
guard-main:writeиbashна main →BLOCKED. - Живой
require-plan:src/probe.tsбез.bounded→BLOCKED; с.bounded→ разрешено. - Bootstrap: marker
6b676dd9bb8a0234пришёл в контекст сессии. /role dev— команда работает (пользовательский вызов).- Acceptance superpowers в чистой сессии: bootstrap +
brainstormingдо кода. /compact→ повторный bootstrap.- Решение по SDD (async controller vs workflow).
Acceptance
- На
mainwrite/edit/bash-запись →BLOCKED [guard-main]. - На ветке
src/...без плана →BLOCKED [require-plan];.boundedили план для ветки → разрешено. - Bootstrap-маркер
<!-- DSH-HARNESS-BOOTSTRAP:<hash> -->виден один раз; после compaction появляется снова. /role devчитает~/.claude/roles/dev.mdи<cwd>/.claude/roles/dev.md.- «Let's make a react todo list» → сначала
brainstorming, до кода.
Замечания
dsh/bundle/hooks— симлинк на../../hooksдля локальной установки; для публикации бандла нужна реальная копия (уже вpackage.json.files).install.shне устанавливает бандл в профиль: Desktop-профиль управляется Electron-приложением, установка идёт через Plugins/plugin_manager.- Живая проверка требует новой сессии DSH и установленного бандла; текущий прогон ограничен статическими тестами.
/role— пользовательская команда; модель её не вызывает. Авто-загрузка роли — #39.