diff --git a/dsh/PORT.md b/dsh/PORT.md index 70d9909..db4d5f6 100644 --- a/dsh/PORT.md +++ b/dsh/PORT.md @@ -18,7 +18,8 @@ This is a port, not a copy. Three layers map differently: | Hard rules | `PreToolUse` shell hooks | `ctx.tools.guard` Cordis guard | logic reused, wrapper new | | Superpowers | plugin + `SessionStart` hook | skills + `agent/pre-step` bootstrap | content 1:1, bootstrap new | | SDD | `Task` (synchronous) | `subagent` (asynchronous) / `workflow` | semantics differ | -| Gitea, OpenSpec | CLI + skills | `bash` + skills | 1:1 | +| Gitea | CLI + skills | `bash` + skills | 1:1 | +| OpenSpec | CLI + `.claude/skills` + `/opsx:*` | CLI + проектные `.agents/skills` | close: нет слэш-команд | | codegraph | MCP | MCP (`mcp__codegraph__*`) | 1:1 with names | | auto-memory | Claude Code feature | none | dropped/replaced with files | | install | `install.sh` + `settings.json` | bundle + profile manager | new | @@ -53,6 +54,13 @@ file has to be installed as `$DSH_HOME/AGENTS.md` because DSH does not read 4. **Display metadata and an optional CodeGraph MCP overlay** so the bundle can be installed through the Plugins page and codegraph stays available. +5. **OpenSpec** — воркфлоу идут проектными скиллами `.agents/skills/openspec-*`, + которые пишет `openspec init --tools agents`. DSH читает этот каталог нативно; + проверено сабагентом с cwd в проекте — все шесть имён в каталоге скиллов. + Глобальной копии в `~/.dsh/skills` нет: генератор обновляется вместе с CLI + проекта, а копия старела бы молча. Слэш-команд нет — только скиллы. + Установка в проект — `bash dsh/install.sh --openspec`; проверка — `--check`. + ## 3. What is deliberately deferred - **`harness-check` and `role-hint`**: non-blocking SessionStart hooks. They can @@ -194,6 +202,31 @@ with "requires ... in the Host scope". `~/.claude/skills`. The DSH copy wins because `dsh/install.sh --skills` copies real files there; the Claude cache is only a fallback. +### OpenSpec skills + +Воркфлоу OpenSpec ставит генератор CLI, а не обвязка: + +```bash +cd +openspec init --tools agents # или: bash /dsh/install.sh --openspec +openspec update # обновить скиллы после апгрейда CLI +``` + +Скиллы лежат в `.agents/skills/openspec-{propose,apply-change,archive-change,explore,sync-specs,update-change}/SKILL.md` +и перезаписываются генератором: править их руками нельзя. Команды адаптер +`agents` не ставит, поэтому `/openspec` в DSH нет — модель вызывает скилл по +фразе «openspec propose» / «openspec archive». + +Цикл без Claude Code: + +```bash +openspec new change +openspec status --change --json +openspec instructions proposal --change --json +openspec validate --strict +openspec archive -y +``` + ## 6. Install and verify Prerequisites: the `claude-harness` checkout, a superpowers source, DSH @@ -224,6 +257,11 @@ bash dsh/install.sh --global --skills --roles # mcp__codegraph__codegraph_explore. ``` +`--openspec` добавляет agents-адаптер в текущий проект (`$PWD`) и требует +существующий `openspec/`: без него скрипт отказывается и печатает готовую +команду. В живой сессии проверка такая: в проекте с `.agents/skills` +спросить «what skills do you have?» — должны быть шесть `openspec-*`. + `--roles` also appends the DSH SDD note to `~/.dsh/roles/dev.md` (the bullet that points `dev` at the `sdd` skill). The note lives only in the installed copy: the shared `roles/dev.md` stays Claude Code-compatible, so a Claude session never @@ -334,3 +372,5 @@ profile was removed; the real `desktop` profile was not touched. 7. Decide the long-term home: keep `dsh/` in this repository while it shares hooks/roles/skills, then extract a `dsh-harness` repository when the bundle gets its own release cadence. +8. OpenSpec — **done** (change `dsh-openspec`): проектные скиллы, `--openspec`, + `--check`; приёмка — в дизайне change. diff --git a/dsh/README.md b/dsh/README.md index a24d3dc..4e98899 100644 --- a/dsh/README.md +++ b/dsh/README.md @@ -19,6 +19,9 @@ separate Cordis bundle plus a thin install helper. dispatches (report files, task review, fix loop, ledger), with controller modes for one plan and for several parallel plans; the optional overlay enables model routes and depth 2. +- OpenSpec — воркфлоу идут проектными скиллами `.agents/skills/openspec-*` + (ставит `openspec init --tools agents`); глобальной копии нет, слэш-команд + нет. Установка в проект: `bash dsh/install.sh --openspec`. **Not yet:** `briefing`, `harness-check`, `role-hint`, `harness-doctor`, auto-memory, caveman. See [PORT.md](PORT.md) for the design, mapping table, and @@ -36,6 +39,9 @@ bash dsh/install.sh --global bash dsh/install.sh --skills bash dsh/install.sh --roles +# В корне проекта, где уже есть openspec/: добавить agents-скиллы +bash /dsh/install.sh --openspec + # Install the bundle in DSH: # Plugins -> install a bundle from dsh/bundle # or ask the agent to call plugin_manager install_bundle with that target. @@ -57,6 +63,8 @@ manager owns those writes. user-facing command with the same file. Expect the five-line role summary. 5. Prompt `Let's make a react todo list` — `brainstorming` must trigger before any code. +6. In a project with `.agents/skills`, ask `what skills do you have?` — the six + `openspec-*` skills must be listed. The injected bootstrap starts with a marker: @@ -96,6 +104,7 @@ dsh/ tests/ install.sh skills/{role,sdd}/SKILL.md model-invocable skills installed into ~/.dsh + .agents/skills/openspec-* проектные скиллы OpenSpec (генерирует CLI) subagent-models.yml opt-in overlay: model routes + maxDepth 2 mcp.codegraph.yml optional CodeGraph MCP overlay PORT.md design, mapping, risks, next phases @@ -142,3 +151,5 @@ repository layout: session model. - SDD on DSH is asynchronous, not a copy of Claude's `Task`. See the `sdd` skill and `openspec/changes/dsh-sdd/`. +- OpenSpec-скиллы проект получает сам (`openspec init --tools agents` или + `--openspec`); обвязка ставит их только в проект, не в `~/.dsh`.