61 lines
3.2 KiB
Markdown
61 lines
3.2 KiB
Markdown
# DSH port spike — план
|
||
|
||
Ветка: `feat/dsh-port-spike`.
|
||
Спека/дизайн: `dsh/PORT.md`.
|
||
|
||
## Цель
|
||
|
||
Проверить, что `claude-harness` переносится на DeepSeek Harness без потери
|
||
жёстких правил, и получить работающий каркас адаптера в `dsh/`.
|
||
|
||
## Scope
|
||
|
||
1. Cordis-бандл `dsh/bundle`:
|
||
- `ctx.tools.guard` → существующие `hooks/guard-main.sh` и
|
||
`hooks/require-plan.sh` (переиспользовать Python-ядро, не переписывать);
|
||
- `agent/pre-step` → bootstrap `using-superpowers` + `dsh-tools.md`;
|
||
- `ctx.commands.register('role')` → оба слоя ролей, без auto-memory.
|
||
2. Установка: `dsh/install.sh` (`--check`, `--global`, `--skills`), бандл —
|
||
через `plugin_manager`.
|
||
3. Опциональный CodeGraph MCP overlay.
|
||
4. Тесты на чистом Node + документация (`dsh/README.md`, `dsh/PORT.md`).
|
||
|
||
## Non-goals
|
||
|
||
- SDD: DSH `subagent` асинхронный; нужна отдельная семантика.
|
||
- `briefing`, `harness-check`, `role-hint`, `harness-doctor`, auto-memory,
|
||
caveman.
|
||
- Публикация бандла и отдельный репозиторий.
|
||
|
||
## Задачи
|
||
|
||
- [x] Каркас `dsh/bundle` (package.json, cordis.patch.yml, locale, icon).
|
||
- [x] Адаптер guard-main/require-plan + тесты на временном git-репозитории.
|
||
- [x] Bootstrap `using-superpowers`: резолв версии, marker, dedupe, compaction.
|
||
- [x] `/role`: парсинг, два слоя, инъекция, followup.
|
||
- [x] `dsh/install.sh`, `mcp.codegraph.yml`, README/PORT.
|
||
- [x] `bash dsh/tests/run.sh` — 22 теста зелёные.
|
||
- [x] `bash tests/run.sh` — 630 тестов зелёные (регрессий нет).
|
||
- [ ] Живая проверка в DSH: маркер, guard на main, `/role`, acceptance
|
||
superpowers.
|
||
- [ ] Решение по SDD (async controller vs workflow).
|
||
|
||
## Acceptance
|
||
|
||
- На `main` `write`/`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 и установленного бандла; текущий
|
||
прогон ограничен статическими тестами.
|