rubenzarroca/sdd-plugin/sdd-init
- community
Checking that the SKILL.md file is still in the repository.
Initialize SDD (Specification-Driven Development) workflow in a project. Use when setting up SDD for the first time, when the user says 'start SDD', 'init project', 'initialize specs', or asks to add specification-driven development to an existing codebase. Generates CLAUDE.md, constitution.md, state.json, and project structure.
Install
npx vskill@latest install rubenzarroca/sdd-plugin/sdd-initSKILL.md
/sdd:init — Initialize SDD workflow for this project
You are setting up Specification-Driven Development for a project. Follow these steps exactly, in order. Do NOT skip steps. Do NOT read source code — only directory listing and package manifest.
Step 0: Orient the user
Before any detection or file creation, briefly explain what is about to happen — in plain language, not technical jargon:
"Before we write any code, we're going to set up two things: a project constitution (your non-negotiable rules — like which tools to use and how code should be organized) and a specifications workflow (a structured way to define features before building them). Without clear rules, an AI makes hundreds of small decisions on your behalf — naming conventions, folder structure, which libraries to use — and many will conflict with what you actually want. These two tools stop that. I'll ask you a few questions — there are no wrong answers, and we can always refine later."
Then ask: "Can you describe in one or two sentences what this project does?" Use the answer to ground all subsequent questions — refer back to the user's own words, use their terminology, and frame every technical concept through their business context throughout the entire init process.
Coaching Layer
Init is the user's first encounter with SDD. The coaching here focuses on the constitution interview (Step 5), where the user must articulate project principles they may never have formalized.
Scaffolding triggers during the constitution interview:
| What Claude detects | What Claude does | |
|---|---|---|
| User says "I don't know" to a category question | Propose based on detected stack: "Based on your package.json, you're using Next.js with App Router. That typically means file-based routing with colocated components. Does that sound right?" | |
| User gives an overly broad answer ("we test everything" / "standard security") | Narrow with specifics: "What do you test today? Unit tests on business logic? E2E on key flows? If nothing is set up yet, that's fine — we'll define it when you build your first feature." | |
| User provides a non-verifiable principle ("keep code clean", "follow best practices") | Reframe concretely: "'Clean code' means different things to different teams. For your project, could we say 'All functions under 50 lines' or 'No file exceeds 300 lines'? What does clean mean to you?" | |
| User defers all decisions ("whatever you think is best") | Anchor to their project: "I can suggest defaults based on your stack, but these rules are yours — they'll constrain everything I build later. Let me propose something and you tell me if it fits." |
Rules:
- Same scaffolding principles as other SDD skills: contextual, one intervention at a time, suggest (don't impose), use the user's project vocabulary.
- Seed the coaching_profile. For each constitution category, note whether the user needed scaffolding or provided strong answers independently. Populate the relevant categories in
coaching_profilewhen creating state.json in Step 6 — this gives downstream skills initial calibration data. - Ground every question in detections. Reference what was found in the package manifest and directory structure. "Your project uses Prisma — should we add 'All database access goes through Prisma, no raw SQL' as a principle?"
Step 1: Detect project stack
Run ls on the project root. Look for:
package.json→ Node/TypeScript/JavaScript (read it for framework, deps, scripts)requirements.txt/pyproject.toml/setup.py→ PythonCargo.toml→ Rustgo.mod→ Gopom.xml/build.gradle→ Java/KotlinGemfile→ Ruby
Read the manifest file to extract: project name, language, framework, key dependencies, test command, build command.
Step 2: Check for existing files
Check if any of these already exist: CLAUDE.md, constitution.md, .sdd/, specs/.
If any exist, list them and ask the user: "These SDD-related files already exist: [list]. Should I overwrite them, merge with them, or abort?" Wait for answer before continuing.
Step 3: Create folder structure
Create these directories if they don't exist:
specs/docs/(if not existing)docs/adr/(if not existing).sdd/.sdd/api-docs/
Add .sdd/api-docs/ to the project's .gitignore file (create the file if it doesn't exist, or append if it does). This directory contains cached external API documentation that should not be committed — it's fetched from live sources and may become stale.
Step 4: Generate CLAUDE.md
Generate CLAUDE.md in the project root. Must be under 60 lines and under 2,500 tokens. Use this structure, filling in detected values:
Adapt the description and tech stack to what you detected. Do NOT add sections beyond what's shown.
Step 5: Generate constitution.md
This is interactive. Guide the user through questions by category. For each category below, first explain in one sentence what the category means in practical terms, then ask the questions. If the user doesn't know the answer to a question, say: "That's fine — we can leave this open and refine it later as we build." Never pressure the user to answer questions they aren't ready for.
Architecture — _This is about how the different pieces of your application are organized and communicate with each other._
- "What architectural pattern does this project follow? (e.g., monolith, microservices, modular monolith, serverless)"
- "Are there folder structure rules? (e.g., features in src/features/, tests next to source)"
Testing — _This is about how you verify that your code works correctly before shipping._
- "What's your testing approach? (e.g., unit + integration, E2E only, no tests yet)"
- "Any minimum coverage target? Test framework preference?"
Security — _This is about how your application verifies who users are and protects their data._
- "How is authentication handled? Any security patterns required?"
- "Input validation approach? (e.g., zod schemas, manual, framework-provided)"
Dependencies — _These are the external libraries your project uses. Controlling them prevents surprises._
- List the currently installed dependencies from the manifest.
- "Are all of these approved? Any that should be removed? What's the process for adding new ones?"
Code Standards — _These are the formatting and naming rules that keep the codebase consistent._
- "Naming conventions? (e.g., camelCase functions, PascalCase components, snake_case files)"
- "Any formatting/linting tools already configured?"
After each answer, write the principle in verifiable form. Examples:
- GOOD: "All React components use PascalCase. Files use kebab-case."
- BAD: "Follow good naming practices."
- GOOD: "Allowed test frameworks: vitest, @testing-library/react. No jest."
- BAD: "Use appropriate testing tools."
Generate constitution.md with this structure:
Step 6: Create .sdd/state.json
Create .sdd/state.json with this exact schema (fill project name and timestamp):
Important: The coaching_profile values above are defaults. Before writing state.json, update them based on the constitution interview in Step 5: for each category where the user needed scaffolding, set scaffolded: 1. For each category where the user provided strong, specific answers without prompting, set unscaffolded: 1. This seeds the profile so downstream skills start with real calibration data instead of a blank slate.
Step 7: Create .sdd/hooks.json
Create .sdd/hooks.json:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/sdd-init/SKILL.md
Popularity
- Repository stars
- 6
- 7-day trend score
- 10
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/rubenzarroca/sdd-plugin/sdd-init)