sample/harness/next-js-pages/skills/sdd-design/SKILL.md
# sdd-design **Slash command**: `/sdd-design <slug>` **Purpose**: Create `design.md` by delegating to the `/ecc:plan` skill for architecture and step planning, then merging output into the project's design template. --- ## Prerequisites - `.claude/specs/<slug>/requirements.md` must exist (run `/sdd-requirements` first) - `.claude/specs/<slug>/source-notion.md` may optionally be present for additional context --- ## Steps ### 1. Read spec inputs ``` .claude/specs/<slug>/requirements.md
npx skillsauth add sc30gsw/claude-code-customes sample/harness/next-js-pages/skills/sdd-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Slash command: /sdd-design <slug>
Purpose: Create design.md by delegating to the /ecc:plan skill for architecture and step planning, then merging output into the project's design template.
.claude/specs/<slug>/requirements.md must exist (run /sdd-requirements first).claude/specs/<slug>/source-notion.md may optionally be present for additional context.claude/specs/<slug>/requirements.md (required)
.claude/specs/<slug>/source-notion.md (optional)
Extract:
/ecc:planCall the /ecc:plan skill with the feature context derived from requirements.md.
Prompt framing for /ecc:plan:
Feature: <feature name from requirements.md>
Context: Next.js 16 / React 19 / TypeScript frontend.
- UI: Mantine 9 + Tailwind CSS
- Server state: SWR via useAspidaSWR
- Client state: Jotai atoms
- URL state: nuqs
- API client: aspida + up-fetch wrapped in features/*/api/
- Validation: Valibot schemas in features/*/schemas/
- Testing: Vitest + MSW (integration-first), Playwright (E2E)
- Linting: oxlint (no interface, no relative imports, no default export outside pages/)
Requirements summary:
<paste REQ list>
Produce: architecture decisions, file structure, component hierarchy, state management plan, API integration plan, test strategy.
--mode standard: Present the /ecc:plan output to the user. Allow the user to review, comment, and guide design interactively before proceeding. Incorporate feedback before scaffolding.
--mode auto: Run /plan autonomously. Produce design.md directly, then append a plain-language "Auto-Design Summary" section at the top of the file for non-engineer reviewers to confirm before implementation starts.
design.md from templateCopy the template at .claude/skills/sdd-design/templates/design.md to:
.claude/specs/<slug>/design.md
/plan output into design sectionsFill every section of the template using the /plan output and your own analysis:
| Template section | Source | | ----------------------- | --------------------------------------------------------------- | | Overview | requirements.md § Scope + /plan summary | | Architecture diagram | /plan architecture decisions → Mermaid | | File Structure Plan | /plan file list → mapped to features/ layout | | State Management | /plan decisions → cross-checked with state responsibility table | | API layer | /plan API plan → aspida endpoint patterns | | Component hierarchy | /plan component breakdown → Mermaid diagram | | Error handling strategy | /plan error handling + better-result patterns | | Test strategy | /plan test plan → cross-checked with Testing Trophy targets |
Every section must end with:
Satisfies: REQ-XXX, REQ-YYY
If a section satisfies no requirements directly, write:
Satisfies: <!-- cross-cutting concern, no direct REQ -->
Use the following table from .claude/rules/web/swr-jotai.md when making state decisions:
| State type | Tool | Location |
| ------------ | ------------------ | --------------------------------------- |
| Server state | SWR (useAspidaSWR) | features/*/hooks/use-*.ts |
| Client state | Jotai | features/*/stores/*.ts |
| URL state | nuqs | features/*/hooks/use-*-query-state.ts |
| Form state | @mantine/form | features/*/components/*-form.tsx |
Do not duplicate server state in Jotai.
Endpoint calls follow the aspida pattern from .claude/rules/web/api-client-aspida.md:
// GET /api/v1/resource
apiClient.api.v1.resource.$get({ query: { page: 1 } })
// POST /api/v1/resource
apiClient.api.v1.resource.$post({ body: { resource: {...} } })
// DELETE /api/v1/resource/:id
apiClient.api.v1.resource._id(id).$delete()
Mutations must be wrapped in Result.tryPromise with catch: toApiError (alphabetical key order).
.claude/specs/<slug>/design.md
Next skill after design is always sdd-tasks, never sdd-review-plan.
sdd-review-plan requires tasks.md and runs only after /sdd-tasks.
Use the same gate for the initial write and for any later revision to design.md.
== PHASE COMPLETE: sdd-design ==
Artifact: .claude/specs/<slug>/design.md
Summary:
- Architecture decisions recorded with Mermaid diagrams
- File structure mapped to features/ layout
- State management decisions documented per SWR/Jotai/nuqs table
- API layer patterns specified using aspida conventions
- All sections include Satisfies: REQ-XXX traceability links
⏸ WAITING FOR CONFIRMATION
Next: CONFIRM sdd-tasks (run /sdd-tasks <slug> — task breakdown)
Or: describe further design changes
When the user asks to change sections of an existing design.md (do not treat this as plan review):
== DESIGN REVISED ==
Artifact: .claude/specs/<slug>/design.md(更新箇所: <list sections>)
Summary:
- <bullet: what changed and why>
⏸ WAITING FOR CONFIRMATION
Next (recommended): CONFIRM sdd-tasks → /sdd-tasks <slug>
- Required if tasks.md is still empty or predates this revision
- Re-run tasks when file structure / API / component plan changed materially
Optional: CONFIRM sdd-review-plan → only after tasks.md exists AND user wants plan review without regenerating tasks
Or: describe further design changes
Do NOT recommend CONFIRM sdd-review-plan as the default next step after design-only work.
tasks.md already existsIf design changed materially and tasks.md was generated from the old design:
CONFIRM sdd-tasks to regenerate (or /sdd-tasks <slug> after confirm).tasks.md exists, CONFIRM sdd-review-plan is valid.tools
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
testing
# sdd-workflow — Workflow Status Dashboard ## Slash Command ``` /sdd-workflow [slug] ``` ## Purpose Read-only meta skill. Displays the current state of the SDD workflow — which phases are complete, which is next, and any blockers. Does NOT modify any files. --- ## This Skill is Read-Only `sdd-workflow` never writes to or modifies any file. It only reads spec files and git history to report status. There is no approval gate for this skill. --- ## Usage: Specific Feature ``` /sdd-workflo
content-media
# sdd-tasks **Slash command**: `/sdd-tasks <slug>` **Purpose**: Generate `tasks.md` (TASK-001..N) and `progress.md` from `requirements.md` and `design.md`. --- ## Prerequisites - `.claude/specs/<slug>/requirements.md` must exist - `.claude/specs/<slug>/design.md` must exist (run `/sdd-design` first) --- ## Steps ### 1. Read spec inputs ``` .claude/specs/<slug>/requirements.md .claude/specs/<slug>/design.md ``` Extract: - Every REQ-XXX ID with its acceptance criteria - Every design sect
development
# sdd-review — Post-Implementation Code Review ## Slash Command ``` /sdd-review <slug> ``` ## Purpose Run code review and security review on all changes introduced by the feature branch. Append structured findings to `review.md`. Does NOT auto-apply fixes — only proposes them. --- ## Prerequisites - `sdd-impl` has completed: all tasks in `progress.md` are `done` (or at least one is `done`; partial reviews are allowed). - The feature branch must have at least one commit ahead of `main`. -