원클릭으로
sspec-design
Assess scale, create change, fill spec.md + design.md, align with user. Use after clarify when ready to define the solution.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Assess scale, create change, fill spec.md + design.md, align with user. Use after clarify when ready to define the solution.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Pre-scan Markdown files before reading. Use `sspec tool mdtoc` to get file size + heading structure with line numbers (L<n> format) before reading long docs, SKILLs, or spec-docs. Eliminates blind reads.
Execute tasks from tasks.md. Implement code changes, update progress. Use after plan approval.
Break design into concrete tasks. Fill tasks.md with file-level execution plan. Use after design alignment.
User acceptance and feedback loop. Handle argue-improve cycles until user is satisfied.
Build shared understanding through dialogue and investigation. Produces Problem Statement + direction sketch. Reusable posture, not rigid phase.
Structured, efficient agent-user synchronization at decision points. Formalized exchange over prose.
| name | sspec-design |
| description | Assess scale, create change, fill spec.md + design.md, align with user. Use after clarify when ready to define the solution. |
| metadata | {"author":"frostime","version":"5.1.0"} |
Define the problem, design the solution, create the change. The user MUST confirm the design before planning — never auto-advance without align.
1. Assess scale → micro / single / multi
2. Explore solutions with user (if approach not predetermined)
3. Create change (CLI)
4. Fill spec.md (+ design.md if needed)
5. @align user (gate)
Use .sspec/SSPEC.rule.md Change Scale. Fallback: Micro (≤3 files, ≤30min) | Multi (>15 files OR >20 tasks OR >1 week) | else Single.
Uncertain → default Single, @align whether to split.
Clarify phase should have produced a Problem Statement + direction sketch.
The goal is to converge on a single approach before formalizing into spec.md.
sspec change new <name> # default: spec.md + tasks.md + memory.md
sspec change new <name> --scaffold design # also create design.md
sspec change new --from <request> # create + link request
sspec change new <name> --root # root coordinator
Follow the template comment constraints (BCP 14 keywords). Key sections:
BC-* labels when multiple contracts exist.type(scope): title label, such as feat(cli): Add tag filter or refactor(service): Extract cache adapter. Each item states which BC-* it serves.XS / S / M / L as a rough design-stage estimate.Create design.md when the change involves new interface definitions, data model changes, or architectural logic changes. Simple bugfixes and text changes don't need it.
sspec change scaffold design <change> # create design.md from template
spec + design is a prediction contract: the user reads it and predicts the resulting code. Choose the dimensions that make that prediction possible for this specific change.
Common dimensions (examples, not checklist — pick what serves prediction):
| Dimension | User's question | Useful when | Format constraint |
|---|---|---|---|
| Interface Contract | "What are the signatures / APIs?" | New or changed function/class/endpoint | Typed code block (MUST) |
| Behavioral Spec | "How does it behave at runtime?" | Call chains, state transitions, algorithms | ASCII diagram (MUST) |
| Structural Blueprint | "How is it organized?" | Module splits, file trees, component hierarchy | ASCII diagram (MUST) |
| Data Architecture | "What does the data look like?" | Schemas, storage, data pipelines | Typed code block (MUST) |
| Outcome Preview | "What will I see?" | CLI output, UI, before/after | Example output block |
| Content Outline | "What's the content structure?" | Documents, templates, specs | Heading tree / outline |
| Migration Path | "How do we get from here to there?" | Compatibility, rollback, versioning | Step list + constraints |
Custom dimensions are fine.
Minimum quality bar: design.md MUST contain at least one structured artifact (code block, diagram, table, or labeled items). Show, don't describe — def process(x: Input) -> Output beats "a function that accepts X and returns Y".
| Content | Where |
|---|---|
| What problem, why it matters | spec.md Problem Statement |
| Core approach + rationale | spec.md Approach |
| Externally observable behavior boundaries | spec.md Behavior Contract |
| Implementation items and changelog-style labels | spec.md Implementation Changes |
| Which files affected + rough effort | spec.md Scope Summary |
| How it works technically (interfaces, data models, algorithms) | design.md |
spec.md/design.md = how it should work (design). tasks.md = what to do (execution) and how to verify it.
Tasks reference BC-* behavior labels and type(scope): title implementation labels. They MUST NOT redefine behavior contracts or copy design logic.
Root spec.md = overall problem scope + phase decomposition. Root Behavior Contract stays phase-level and final-outcome focused. No file-level details — those belong in sub-change specs.
After defining phases: sspec change new <phase-name> for each sub-change.
Ensure bidirectional references:
type: root-change pointing to roottype: sub-change pointing to sub| Pitfall | Fix |
|---|---|
| File-level tasks in root tasks.md | Root = milestones only; file tasks → sub-change |
| Skip root, jump to sub-changes | Root provides phase vision and coordination |
| Forget bidirectional references | Always link root ↔ sub in both spec.md |
📚 Examples: examples-feature.md | examples-refactor.md | examples-docs.md | examples-root.md
Hard gate — the user MUST confirm before planning proceeds.
Present: problem summary, approach + rationale, Behavior Contract, implementation labels, scope/effort, key risks. Use question-like tool if available, otherwise present clearly and stop.
After confirmation → proceed to sspec-plan.
During Design: user-requested changes → edit spec.md/design.md directly, no revision.
Once the change enters Plan (tasks.md created), spec.md/design.md become immutable. Any subsequent scope or design change MUST go through the revision protocol:
revisions/NNN-description.md recording what changed and why→ sspec howto handle-review-scope-change