Holix sdd propose
Skill javded-itres/Holix/core/skills/bundled/holix-sdd-propose
Create Spec-Driven Development changes (OpenSpec-style) — multi-project openspec, understanding gate, assigned tasks before codingFrom its SKILL.md
npx -y skills add javded-itres/Holix --skill holix-sdd-proposeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.9 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it
When to use
User wants a non-trivial feature, API, schema, or product change. Work starts with a specification, not code.
Language (Studio locale)
Match the user's Studio UI language (ru or en only):
- Chat (questions, summaries, progress) — that language only
- All SDD artifacts via
sdd_write_artifact(proposal, design, specs, tasks) — that language only sdd_update_understandingsummary/questions— that language only- Do not mix languages; do not write specs in the other language
- Structural OpenSpec markers may stay English (
## ADDED Requirements,GIVEN/WHEN/THEN), but narrative text, requirement titles, scenarios, and task descriptions must be in the selected locale
If the Studio prompt states locale=ru or locale=en, treat that as authoritative.
Multi-project workspaces
A workspace may contain several projects, each with its own openspec/.
sdd_list_projects— pick the projectpath(empty string = workspace root)- Pass
project=<path>to every subsequentsdd_*tool for that work
Workflow (propose)
-
sdd_statuswithproject=— if not initialized →sdd_initwith the sameproject= -
sdd_list_specs+sdd_read_specfor relevant domains -
sdd_list_changes— avoid duplicate open changes -
sdd_create_changewith slug id andrequest=(user request text) -
Understanding gate (if enabled in user prefs — see create_change response).
Before any clarifying questions to the user, complete this order:
- Existing SDD knowledge
sdd_list_specs+sdd_read_specfor relevant domains (openspec/specs/)sdd_list_changeswithinclude_archive=true- Read related archived change artifacts under
openspec/changes/archive/(proposal, specs, design, tasks) and any overlapping open changes
- Project context /
/initif needed- Read
.holix/HOLIX.md(and project-local notes if any) - If missing, empty, or insufficient for this request/domain: run project
onboarding equivalent to
/initfor the project path (scan layout + key files; update HOLIX.md viaupdate_holix_section, or ask the user once to run/init <path>if you cannot write). Do not skip when the codebase is unknown.
- Read
- Assess understanding
- Call
sdd_update_understandingwith honestscore(0–100) andsummaryof what you learned from main specs, archives, and HOLIX — before dumping questions at the user
- Call
- Only then ask residual clarifying questions in chat
- After each answer:
sdd_update_understandingagain withuser_answerand updatedscore/questions - If
score < threshold→ keep clarifying (statusclarifying) - If
score ≥ threshold→ statusready: offer proceed or more questions - If later answers drop
scorebelow threshold → new clarifying cycle
- After each answer:
- Only after user agrees to proceed:
sdd_confirm_understanding
- Do not fill full proposal/specs/tasks until confirmed (or gate disabled/
skipped) - Do not open with a long questionnaire before steps 1–3
- Existing SDD knowledge
-
Fill artifacts via
sdd_write_artifactonly (notwrite_file/ inventing paths):- proposal →
openspec/changes/<id>/proposal.md - design →
openspec/changes/<id>/design.md - tasks →
openspec/changes/<id>/tasks.md - specs →
openspec/changes/<id>/specs/<domain>/spec.md(passdomain=or omit) - There is no
openspec/changes/<id>/specs.md— do notread_filethat path - Prefer
sdd_status(change_id=…)→artifact_pathsbefore reading anything - proposal content — Why / What / Impact
- specs content — delta with
## ADDED|MODIFIED|REMOVED Requirementsand GIVEN/WHEN/THEN - design content — approach + task→assignee table
- tasks content — checklist with assignees (see below)
- proposal →
Assignees (you choose who does the work)
- Call
list_subagent_typesfirst. - Custom types (user-created Agents tab): prefer matching custom agents by role.
- No custom types: pick a built-in (
coder,reviewer,researcher,analyst,writer,web_researcher) that fits each task. main: shared / risky / merge-conflict work that must stay on the main agent.- Apply mode is chosen later by the user:
- self — assignees are ignored; main does everything (no need to over-optimize assignees).
- subagents / hybrid — assignees drive dispatch; task graph controls order:
only ready tasks spawn (deps done); later waves auto-dispatch after completion.
Same type on many ready tasks → parallel jobs
type-1,type-2, …
tasks.md format (required — OpenSpec Holix checklist only)
Studio and sdd_* tools parse only checkbox lines. Free-form sections are rejected.
Correct (required):
# Tasks: <change-id>
## 1. Implementation
- [ ] 1.1 Add OAuth endpoints
- **assignee:** `coder`
- **reason:** isolated API surface
- **depends_on:**
- [ ] 1.2 Wire UI to OAuth (after API)
- **assignee:** `coder`
- **reason:** needs 1.1
- **depends_on:** `1.1`
- [ ] 1.3 Shared auth config
- **assignee:** `main`
- **reason:** conflict-prone shared code
- **depends_on:** `1.1`
Wrong (not visible in UI — do not use):
## 1. Add OAuth endpoints
- **Описание:** …
- **Исполнитель:** coder
- **Результат:** …
Rules:
- Every task is
- [ ] <id> <title>(or- [x]when done) - Nested
- **assignee:** \type`is mandatory structure (main, subagent type, orunassigned`) - Optional
- **reason:** … - Optional
- **depends_on:** \1.1, 1.2`` — execution graph (empty = no explicit deps) - Same-section order (1.1 before 1.2) is inferred when
depends_onis empty - Parallel work: independent sections (1.x vs 2.x) or shared
depends_ononly - Use
sdd_write_artifact(artifact=tasks, …)only — never invent another schema
Assignees: main or a type name from list_subagent_types (custom or built-in).
sdd_statuswithchange_iduntilapply_ready: true- Stop and let the user review. Do not implement until apply skill / user asks.
Do NOT
- Do not write product code during propose
- Prefer real type names for subagents/hybrid;
unassignedis OK for modeself(runs on main), but blocks apply-ready for puresubagents - Do not skip reading main specs for brownfield work
- Do not skip understanding gate when it is enabled and status is not
confirmed/skipped - Do not write SDD artifacts or clarifying questions in a language other than the user's Studio locale (
ruoren)
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.