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

3.2 KiB
Raw Blame History

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

Задачи

  • Каркас 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 — 22 теста зелёные.
  • 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 и установленного бандла; текущий прогон ограничен статическими тестами.