claude-harness/docs/superpowers/plans/2026-10-24-dsh-port-spike.md

68 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DSH port spike — план
Ветка: `feat/35-dsh-port-spike` (issue #35).
Спека/дизайн: `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` — 26 тестов зелёные.
- [x] `bash tests/run.sh` — 630 тестов зелёные (регрессий нет).
- [x] Живой `guard-main`: `write` и `bash` на main → `BLOCKED`.
- [x] Живой `require-plan`: `src/probe.ts` без `.bounded` → `BLOCKED`;
с `.bounded` → разрешено.
- [x] Bootstrap: marker `6b676dd9bb8a0234` пришёл в контекст сессии.
- [x] `/role dev` — команда работает (пользовательский вызов).
- [x] Acceptance superpowers в чистой сессии: bootstrap + `brainstorming` до кода.
- [x] `/compact` → повторный bootstrap.
- [ ] Решение по 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 и установленного бандла; текущий
прогон ограничен статическими тестами.
- `/role` — пользовательская команда; модель её не вызывает. Авто-загрузка
роли — #39.