claude-harness/docs/superpowers/plans/2026-10-24-dsh-role-loader.md
2026-10-24 16:30:25 +04:00

3.0 KiB
Raw Blame History

DSH role loader — план

Ветка: feat/39-dsh-role-loader (issue #39). Спека/дизайн: dsh/PORT.md.

Цель

Дать модели DSH штатный способ загрузить роль: skill role, который читает ~/.dsh/roles/<r>.md. /role остаётся пользовательской командой; глобальные инструкции больше не требуют от модели вызвать slash-команду.

Scope

  1. dsh/skills/role/SKILL.md — model-invocable инструкция: определить роль, прочитать файл, объявить роль, следовать процессу.
  2. dsh/install.sh --skills: копировать локальные dsh/skills/* в $DSH_HOME/skills вместе с superpowers.
  3. install_global: adapter-строка «модель использует skill role; /role — пользовательская команда».
  4. Тесты: наличие/содержимое skill, install-копирование, --check.
  5. README/PORT.

Non-goals

  • Кастомный ctx.tools.register('role') — отдельный вариант, если skill окажется недостаточно.
  • Автоматическая инъекция роли в agent/pre-step — возможный следующий шаг.
  • Изменение global/CLAUDE.md (он общий с Claude Code и ограничен 3 КБ).

Задачи

  • Task 1: skill role
    • Create: dsh/skills/role/SKILL.md
    • Frontmatter: name: role, description для каталога.
    • Body: роль из первого сообщения; пути ~/.dsh/roles, ~/.claude/roles, repo roles/; прочитать файл; объявить «Роль: ; если не так — скажи».
    • Не вызывать /role; это команда пользователя.
  • Task 2: install.sh
    • Modify: dsh/install.sh
    • install_local_skills() копирует $ROOT/dsh/skills/* в $DSH_HOME/skills.
    • --skills вызывает superpowers + local; --all уже включает.
    • check проверяет $DSH_HOME/skills/role/SKILL.md.
    • install_global добавляет adapter-строку про skill role.
  • Task 3: тесты
    • Modify: dsh/tests/install.test.mjs — role skill скопирован.
    • Add: dsh/tests/role-skill.test.mjs — frontmatter, пути, запрет /role.
  • Task 4: docs
    • Modify: dsh/README.md, dsh/PORT.md — skill role vs /role.
  • Task 5: проверки и коммит
    • bash dsh/tests/run.sh
    • bash tests/run.sh
    • Commit, push, PR #40 (base main).

Acceptance

Свежая сессия DSH, «Let's make a react todo list»:

  • модель вызывает skill({name:"role"});
  • читает ~/.dsh/roles/dev.md;
  • объявляет роль и следует процессу, без ручного /role.