holix-sdd-propose
Create Spec-Driven Development changes (OpenSpec-style) — multi-project openspec, understanding gate, assigned tasks before coding
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create Spec-Driven Development changes (OpenSpec-style) — multi-project openspec, understanding gate, assigned tasks before coding
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Implement an SDD change from tasks.md — always ask self vs subagents first, then execute only after apply mode is set
Archive a completed SDD change — merge delta specs into main openspec/specs and move change to archive
Run frontend (and FE+BE) apps in Holix Studio: always bind 0.0.0.0, always open Studio preview links in chat, always prefer docker-compose with an nginx reverse proxy that joins frontend and backend. Use when starting Vite/Next/Nuxt/React, SPA+API monorepos, or any web app the user should open in Studio Browser. Invoke via /holix-studio-frontend-backend.
Author and manage Holix agent drop-in extensions so the agent can extend itself without editing Holix core. Use when the user asks to write an extension, add tools, register slash commands, list extensions, disable a broken extension, or self-modify agent capabilities. Invoke via /holix-extensions.
Full Holix sub-agent lifecycle: spawn, monitor, collect results, answer ask_user questions, approve tool confirmations, and delegate to external CLIs (holix launch). Use when the user asks about subagents, /subagent-spawn, delegate_to_subagent, background workers, sub-agent questions, /subagent-reply, holix launch + coder, or running tasks without blocking the main chat. Invoke via /holix-subagents.
Optional guide for web_researcher sub-agent. Use only when the user explicitly asks to delegate web research (e.g. /subagent-spawn web_researcher, "запусти web_researcher").
| name | holix-sdd-propose |
| description | Create Spec-Driven Development changes (OpenSpec-style) — multi-project openspec, understanding gate, assigned tasks before coding |
| tags | ["sdd","openspec","propose","specs","holix"] |
| user-invocable | true |
User wants a non-trivial feature, API, schema, or product change. Work starts with a specification, not code.
Match the user's Studio UI language (ru or en only):
sdd_write_artifact (proposal, design, specs, tasks) — that language onlysdd_update_understanding summary / questions — that language only## ADDED Requirements, GIVEN/WHEN/THEN), but narrative text, requirement titles, scenarios, and task descriptions must be in the selected localeIf the Studio prompt states locale=ru or locale=en, treat that as authoritative.
A workspace may contain several projects, each with its own openspec/.
sdd_list_projects — pick the project path (empty string = workspace root)project=<path> to every subsequent sdd_* tool for that worksdd_status with project= — if not initialized → sdd_init with the same project=
sdd_list_specs + sdd_read_spec for relevant domains
sdd_list_changes — avoid duplicate open changes
sdd_create_change with slug id and request= (user request text)
Understanding gate (if enabled in user prefs — see create_change response).
Before any clarifying questions to the user, complete this order:
sdd_list_specs + sdd_read_spec for relevant domains (openspec/specs/)sdd_list_changes with include_archive=trueopenspec/changes/archive/
(proposal, specs, design, tasks) and any overlapping open changes/init if needed
.holix/HOLIX.md (and project-local notes if any)/init for the project path (scan layout +
key files; update HOLIX.md via update_holix_section, or ask the user once
to run /init <path> if you cannot write). Do not skip when the codebase
is unknown.sdd_update_understanding with honest score (0–100) and summary
of what you learned from main specs, archives, and HOLIX — before
dumping questions at the usersdd_update_understanding again with user_answer and
updated score / questionsscore < threshold → keep clarifying (status clarifying)score ≥ threshold → status ready: offer proceed or more questionsscore below threshold → new clarifying cyclesdd_confirm_understandingskipped)Fill artifacts via sdd_write_artifact only (not write_file / inventing paths):
openspec/changes/<id>/proposal.mdopenspec/changes/<id>/design.mdopenspec/changes/<id>/tasks.mdopenspec/changes/<id>/specs/<domain>/spec.md (pass domain= or omit)openspec/changes/<id>/specs.md — do not read_file that pathsdd_status(change_id=…) → artifact_paths before reading anything## ADDED|MODIFIED|REMOVED Requirements and GIVEN/WHEN/THENlist_subagent_types first.coder, reviewer, researcher, analyst, writer, web_researcher) that fits each task.main: shared / risky / merge-conflict work that must stay on the main agent.type-1, type-2, …Studio and sdd_* tools parse only checkbox lines. Free-form sections are rejected.
Before writing tasks.md, estimate volume and split large work.
| size | Meaning | Typical sub-agent steps |
|---|---|---|
xs | One file / one function / stub | ~40 |
s | One slice, 1–3 files, one deliverable | ~60 |
m | Focused module feature | ~90 |
l / xl | Too big — sdd_write_artifact rejects for subagent assignees | — |
Rules for volume:
- **size:** \s`(orxs/m`) on every task. Holix also estimates missing sizes.depends_on before write.depends_on) so waves stay short.Correct (required):
# Tasks: <change-id>
## 1. Backend
- [ ] 1.1 Add OAuth token endpoint only
- **assignee:** `coder`
- **size:** `s`
- **reason:** isolated API surface
- **depends_on:**
- [ ] 1.2 Persist session store
- **assignee:** `coder`
- **size:** `s`
- **reason:** needs 1.1
- **depends_on:** `1.1`
## 2. Frontend
- [ ] 2.1 Login button + redirect (UI only)
- **assignee:** `coder`
- **size:** `s`
- **reason:** needs API from 1.1
- **depends_on:** `1.1`
- [ ] 1.3 Shared auth config
- **assignee:** `main`
- **size:** `m`
- **reason:** conflict-prone shared code
- **depends_on:** `1.1`
Wrong (rejected — too large / free-form):
- [ ] 1.1 Implement full OAuth (backend, frontend, tests, docs)
- **assignee:** `coder`
## 1. Add OAuth endpoints
- **Описание:** …
- **Исполнитель:** coder
Rules:
- [ ] <id> <title> (or - [x] when done) - **assignee:** \type` is mandatory structure (main, subagent type, or unassigned`) - **size:** \xs|s|m`` — required for good dispatch budgets - **reason:** … - **depends_on:** \1.1, 1.2`` — execution graph (empty = no explicit deps)depends_on is emptydepends_on onlysdd_write_artifact(artifact=tasks, …) only — never invent another schematasks.md with smaller checklist items (do not force L/XL)Assignees: main or a type name from list_subagent_types (custom or built-in).
sdd_status with change_id until apply_ready: trueunassigned is OK for mode self (runs on main), but blocks apply-ready for pure subagentsconfirmed/skippedru or en)