Best use case
Skill: sdd-init is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
## Invocation
Teams using Skill: sdd-init should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/sdd-init/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Skill: sdd-init Compares
| Feature / Agent | Skill: sdd-init | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
## Invocation
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Skill: sdd-init ## Invocation ``` /sdd-init <slug> [notion-url] [--mode standard|auto] ``` **Arguments:** - `<slug>` — kebab-case identifier for the feature (e.g. `user-invitation`, `supplier-csv-import`) - `[notion-url]` — optional Notion page URL to fetch and archive as source material - `[--mode standard|auto]` — workflow mode (default: `standard`) - `standard`: engineer-led — AI assists, human drives decisions - `auto`: AI-led — suitable for non-engineers; AI asks questions and makes decisions autonomously --- ## Purpose Initialize a spec directory for a new feature under `.claude/specs/<slug>/`. This is always the first step in the SDD workflow. It creates the directory structure, optionally fetches a Notion page as source material, and records the chosen mode in `progress.md`. --- ## Execution Steps ### Step 1: Validate inputs - Confirm `<slug>` is kebab-case (lowercase letters, digits, hyphens only). - If `--mode` is not provided, default to `standard`. - Announce to the user: "Initializing spec for `<slug>` in `--mode <mode>`." ### Step 2: Create directory structure Create the following empty directories and files under `.claude/specs/<slug>/`: ``` .claude/specs/<slug>/ ├── progress.md ← created in this step ├── requirements.md ← placeholder (created by sdd-requirements) ├── design.md ← placeholder (created by sdd-design) ├── tasks.md ← placeholder (created by sdd-tasks) └── review.md ← placeholder (created by review skills) ``` Write placeholder files with a single comment line: ``` <!-- Artifact not yet generated. Run the corresponding sdd-* skill. --> ``` ### Step 3: Fetch Notion page (if notion-url provided) If a Notion URL is given: 1. Extract the page ID from the URL (last 32-character hex segment, with or without hyphens). 2. Call `mcp__claude_ai_Notion__notion-fetch` with the page ID. 3. Write the raw Markdown content to `.claude/specs/<slug>/source-notion.md`. 4. If the fetch fails, warn the user and continue without the source file. If no Notion URL is given, skip this step. ### Step 4: Write progress.md Write `.claude/specs/<slug>/progress.md` with the following structure: ```markdown # Spec Progress: <slug> **Mode**: <standard|auto> **Initialized**: <YYYY-MM-DD> **Notion source**: <notion-url or "none"> ## Phase Status | Phase | Skill | Status | | ----- | ----------------------- | -------------- | | 1 | sdd-requirements | ⬜ not started | | 2 | sdd-review-requirements | ⬜ not started | | 3 | sdd-design | ⬜ not started | | 4 | sdd-tasks | ⬜ not started | | 5 | sdd-review-plan | ⬜ not started | | 6 | sdd-impl | ⬜ not started | | 7 | sdd-review | ⬜ not started | | 8 | sdd-pr | ⬜ not started | ## Change Log | Date | Phase | Note | | ------------ | ----- | -------------------------- | | <YYYY-MM-DD> | init | Initialized spec directory | ``` ### Step 5: Print confirmation Print a summary of what was created, including: - Directory path - Mode recorded - Whether a Notion source was fetched - The next step to take --- ## Mode Behavior Summary | Aspect | `--mode standard` | `--mode auto` | | ------------ | -------------------------- | -------------------------- | | Who drives | Engineer | AI | | AI role | Assist + review | Ask + decide | | Notion fetch | Optional | Optional | | Next skill | `/sdd-requirements <slug>` | `/sdd-requirements <slug>` | --- ## Notes - The `progress.md` file is the single source of truth for the mode. Subsequent skills MUST read mode from `progress.md` rather than accepting a `--mode` flag themselves. - If `.claude/specs/<slug>/` already exists, warn the user and ask whether to overwrite or abort. Do NOT silently overwrite. - The `slug` is used as-is in all file paths. Choose descriptive, stable slugs. --- == PHASE COMPLETE: sdd-init == Artifact: .claude/specs/<slug>/progress.md Summary: - Created spec directory structure under .claude/specs/<slug>/ - Recorded mode (standard|auto) in progress.md - Fetched Notion source (if URL provided) → source-notion.md - All placeholder artifacts initialized ⏸ WAITING FOR CONFIRMATION Type `CONFIRM sdd-requirements` to proceed. Or describe changes needed.
Related Skills
test
Advanced test implementation command with unit/E2E support, auto-execution, and smart fixing capabilities
serena
Token-efficient Serena MCP command for structured app development and problem-solving
project-guidelines-example
Example project-specific skill template based on a real production application.
notion-bug-pr
Skill that pulls bug tickets (titles containing 「不具合」) from a Notion database, investigates root cause in a GitHub repo, applies fixes, and opens draft PRs. Supports three modes — daily recurring schedule, one-shot at a specific time, or immediate on-demand run. Takes three or four args: Notion database URL, repo path or name, and either HH:MM (daily), "once HH:MM" (one-shot), or "now" (immediate).
graphify
any input (code, docs, papers, images, videos) to knowledge graph. Use when user asks any question about a codebase, documents, or project content - especially if graphify-out/ exists, treat the question as a /graphify query.
chrome
Comprehensive Chrome DevTools development system with native Chrome capabilities for debugging, E2E testing, performance analysis, and browser automation
webapp-testing
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
typescript-advanced-types
Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications. Use when implementing complex type logic, creating reusable type utilities, or ensuring compile-time type safety in TypeScript projects.
tanstack-start
Full-stack React framework powered by TanStack Router with SSR, streaming, server functions, and deployment to any hosting provider.
tanstack-start-server-fn-testing
Unit-test TanStack Start createServerFn handlers via a global vi.mock that combines two patterns from Discussion #2701
tailwind-css-patterns
Provides comprehensive Tailwind CSS utility-first styling patterns including responsive design, layout utilities, flexbox, grid, spacing, typography, colors, and modern CSS best practices. Use when styling React/Vue/Svelte components, building responsive layouts, implementing design systems, or optimizing CSS workflow.