docs(dsh): OpenSpec — проектные скиллы, --openspec, проверка (#42)
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
This commit is contained in:
parent
56bbfbac5f
commit
cd5ef4f765
42
dsh/PORT.md
42
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 |
|
| 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 |
|
| Superpowers | plugin + `SessionStart` hook | skills + `agent/pre-step` bootstrap | content 1:1, bootstrap new |
|
||||||
| SDD | `Task` (synchronous) | `subagent` (asynchronous) / `workflow` | semantics differ |
|
| 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 |
|
| codegraph | MCP | MCP (`mcp__codegraph__*`) | 1:1 with names |
|
||||||
| auto-memory | Claude Code feature | none | dropped/replaced with files |
|
| auto-memory | Claude Code feature | none | dropped/replaced with files |
|
||||||
| install | `install.sh` + `settings.json` | bundle + profile manager | new |
|
| 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
|
4. **Display metadata and an optional CodeGraph MCP overlay** so the bundle can
|
||||||
be installed through the Plugins page and codegraph stays available.
|
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
|
## 3. What is deliberately deferred
|
||||||
|
|
||||||
- **`harness-check` and `role-hint`**: non-blocking SessionStart hooks. They can
|
- **`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
|
`~/.claude/skills`. The DSH copy wins because `dsh/install.sh --skills` copies
|
||||||
real files there; the Claude cache is only a fallback.
|
real files there; the Claude cache is only a fallback.
|
||||||
|
|
||||||
|
### OpenSpec skills
|
||||||
|
|
||||||
|
Воркфлоу OpenSpec ставит генератор CLI, а не обвязка:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd <project>
|
||||||
|
openspec init --tools agents # или: bash <harness>/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 <id>
|
||||||
|
openspec status --change <id> --json
|
||||||
|
openspec instructions proposal --change <id> --json
|
||||||
|
openspec validate <id> --strict
|
||||||
|
openspec archive <id> -y
|
||||||
|
```
|
||||||
|
|
||||||
## 6. Install and verify
|
## 6. Install and verify
|
||||||
|
|
||||||
Prerequisites: the `claude-harness` checkout, a superpowers source, DSH
|
Prerequisites: the `claude-harness` checkout, a superpowers source, DSH
|
||||||
@ -224,6 +257,11 @@ bash dsh/install.sh --global --skills --roles
|
|||||||
# mcp__codegraph__codegraph_explore.
|
# 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
|
`--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
|
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
|
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
|
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
|
hooks/roles/skills, then extract a `dsh-harness` repository when the bundle
|
||||||
gets its own release cadence.
|
gets its own release cadence.
|
||||||
|
8. OpenSpec — **done** (change `dsh-openspec`): проектные скиллы, `--openspec`,
|
||||||
|
`--check`; приёмка — в дизайне change.
|
||||||
|
|||||||
@ -19,6 +19,9 @@ separate Cordis bundle plus a thin install helper.
|
|||||||
dispatches (report files, task review, fix loop, ledger), with controller
|
dispatches (report files, task review, fix loop, ledger), with controller
|
||||||
modes for one plan and for several parallel plans; the optional overlay
|
modes for one plan and for several parallel plans; the optional overlay
|
||||||
enables model routes and depth 2.
|
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`,
|
**Not yet:** `briefing`, `harness-check`, `role-hint`, `harness-doctor`,
|
||||||
auto-memory, caveman. See [PORT.md](PORT.md) for the design, mapping table, and
|
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 --skills
|
||||||
bash dsh/install.sh --roles
|
bash dsh/install.sh --roles
|
||||||
|
|
||||||
|
# В корне проекта, где уже есть openspec/: добавить agents-скиллы
|
||||||
|
bash <harness>/dsh/install.sh --openspec
|
||||||
|
|
||||||
# Install the bundle in DSH:
|
# Install the bundle in DSH:
|
||||||
# Plugins -> install a bundle from dsh/bundle
|
# Plugins -> install a bundle from dsh/bundle
|
||||||
# or ask the agent to call plugin_manager install_bundle with that target.
|
# 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.
|
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
|
5. Prompt `Let's make a react todo list` — `brainstorming` must trigger before
|
||||||
any code.
|
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:
|
The injected bootstrap starts with a marker:
|
||||||
|
|
||||||
@ -96,6 +104,7 @@ dsh/
|
|||||||
tests/
|
tests/
|
||||||
install.sh
|
install.sh
|
||||||
skills/{role,sdd}/SKILL.md model-invocable skills installed into ~/.dsh
|
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
|
subagent-models.yml opt-in overlay: model routes + maxDepth 2
|
||||||
mcp.codegraph.yml optional CodeGraph MCP overlay
|
mcp.codegraph.yml optional CodeGraph MCP overlay
|
||||||
PORT.md design, mapping, risks, next phases
|
PORT.md design, mapping, risks, next phases
|
||||||
@ -142,3 +151,5 @@ repository layout:
|
|||||||
session model.
|
session model.
|
||||||
- SDD on DSH is asynchronous, not a copy of Claude's `Task`. See the `sdd`
|
- SDD on DSH is asynchronous, not a copy of Claude's `Task`. See the `sdd`
|
||||||
skill and `openspec/changes/dsh-sdd/`.
|
skill and `openspec/changes/dsh-sdd/`.
|
||||||
|
- OpenSpec-скиллы проект получает сам (`openspec init --tools agents` или
|
||||||
|
`--openspec`); обвязка ставит их только в проект, не в `~/.dsh`.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user