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

3.8 KiB
Raw Blame History

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.
  • Публикация бандла и отдельный репозиторий.

Задачи

  • Каркас 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

  • На 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.