
sdd-init
Initialize Spec-Driven Development context — detects tech stack, conventions, architecture patterns, and bootstraps persistence backends. Triggers on 'sdd-init', 'init sdd', 'setup sdd', 'initialize sdd', 'setup project', 'initialize project context'. Creates/updates docs/specs/architecture.md & ontology.md (Constitution), and populates knowledge-graph.json.
- Installs
- 874
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/giuseppe-trisciuoglio/developer-kit --skill sdd-init- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads sdd-init automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
SDD Init Skill
Initialize Spec-Driven Development (SDD) in the current project. Detects tech stack, conventions, architecture patterns, and bootstraps all persistence backends (Constitution + Knowledge Graph).
When to Use
Trigger phrases:
- "sdd-init", "init sdd", "setup sdd"
- "initialize sdd", "setup project", "initialize project context"
- "bootstrap sdd", "start sdd"
- "detect project stack", "detect tech stack"
Workflow
1. Detect Project Context
├── Scan tech stack (languages, frameworks, tools)
├── Identify conventions (folder structure, patterns, configs)
└── Detect architecture (monolith, microservices, serverless)
2. Bootstrap Constitution
├── Check if docs/specs/architecture.md exists
├── If missing → ask user to create with constitution skill
└── If exists → show current state
3. Bootstrap Knowledge Graph
├── Check if docs/specs/knowledge-graph.json exists
├── Create with initial discoveries (stack, patterns, conventions)
└── Link to Constitution
4. Return Structured Result
└── status, executive_summary, artifacts, next_recommended
Phase 1: Detect Project Context
1.1 Scan Tech Stack
Detect the primary language and framework:
# Detect language (priority order)
ls *.go *.rs *.ts *.js *.py *.java *.cs *.rb *.php *.cpp *.c 2>/dev/null | head -1
# Detect framework/type
ls package.json pyproject.toml Cargo.toml go.mod pom.xml *.csproj Gemfile composer.json 2>/dev/null
# Detect project type
ls -la src/ lib/ app/ cmd/ internal/ pkg/ services/ 2>/dev/null
1.2 Identify Conventions
Scan for existing patterns:
# Folder structure
find . -maxdepth 2 -type d -name "src" -o -name "lib" -o -name "app" -o -name "cmd" | head -10
# Config files
ls -la *.yaml *.yml *.toml *.json *.env* Makefile 2>/dev/null
# Testing patterns
find . -name "*_test.*" -o -name "test_*.py" -o -name "*_test.go" -o -name "*.spec.ts" 2>/dev/null | head -10
# Build system
ls Makefile Dockerfile docker-compose*.yml *.mk 2>/dev/null
# CI/CD
ls .github/workflows/ .gitlab-ci.yml .circleci/ 2>/dev/null
1.3 Detect Architecture Style
Analyze project structure for architectural patterns:
# Microservices vs Monolith
ls services/ microservices/ cmd/ api/ internal/ 2>/dev/null
# Serverless
ls functions/ lambda/ handlers/ 2>/dev/null
# Layered architecture
ls controllers/ services/ repositories/ models/ 2>/dev/null
# Hexagonal/Ports & Adapters
ls ports/ adapters/ domain/ infrastructure/ 2>/dev/null
Phase 2: Bootstrap Constitution
2.1 Check Existence
# Check if Constitution files exist
[ -f docs/specs/architecture.md ] && echo "architecture:exists" || echo "architecture:missing"
[ -f docs/specs/ontology.md ] && echo "ontology:exists" || echo "ontology:missing"
2.2 If Missing → Ask User
Use AskUserQuestion to prompt:
The Constitution files (architecture.md, ontology.md) don't exist yet.
Option 1: Create both (Recommended) - Sets up architectural DNA and domain language Option 2: Create architecture.md only Option 3: Create ontology.md only
Option 4: Skip for now - I'll detect context but skip Constitution
If user chooses option 1-3, delegate to /developer-kit-specs:constitution create with the detected context.
2.3 If Exists → Show Current State
Read and display current Constitution files with detected context as comparison.
Phase 3: Bootstrap Knowledge Graph
3.1 Check Existence
# Check if KG exists
ls docs/specs/knowledge-graph.json 2>/dev/null
3.2 Create/Update KG
Create or update docs/specs/knowledge-graph.json with initial discoveries:
{
"metadata": {
"spec_id": "project-init",
"version": "1.0.0",
"created": "{{ISO_DATE}}",
"project": "{{PROJECT_NAME}}",
"type": "initial-discovery"
},
"context": {
"workingDirectory": "{{PWD}}",
"projectName": "{{PROJECT_NAME}}"
},
"stack": {
"primaryLanguage": "{{DETECTED_LANGUAGE}}",
"framework": "{{DETECTED_FRAMEWORK}}",
"buildSystem": "{{DETECTED_BUILD_SYSTEM}}"
},
"conventions": {
"folderStructure": ["{{FOLDERS}}"],
"namingPatterns": ["{{PATTERNS}}"],
"configFiles": ["{{CONFIGS}}"],
"testingPattern": "{{TESTING_PATTERN}}"
},
"architecture": {
"style": "{{MONOLITH|MICROSERVICE|SERVERLESS|LAYERED|HEXAGONAL}}",
"layers": ["{{LAYERS}}"],
"patterns": ["{{ARCHITECTURAL_PATTERNS}}"]
},
"references": {
"constitution": "docs/specs/architecture.md",
"ontology": "docs/specs/ontology.md"
},
"source": "sdd-init"
}
3.3 Validation
After creating KG, validate it exists and has valid JSON:
# Validate KG
cat docs/specs/knowledge-graph.json | python3 -m json.tool > /dev/null && echo "KG:valid" || echo "KG:invalid"
Phase 4: Return Structured Result
Return a JSON object with:
{
"status": "success|partial|skipped",
"executive_summary": "Brief description of what was detected and initialized",
"artifacts": [
{
"path": "docs/specs/architecture.md",
"action": "created|existing|skipped",
"summary": "What this file contains"
},
{
"path": "docs/specs/ontology.md",
"action": "created|existing|skipped",
"summary": "What this file contains"
},
{
"path": "docs/specs/knowledge-graph.json",
"action": "created|updated",
"summary": "What was discovered and stored"
}
],
"next_recommended": [
"Review Constitution if just created",
"Run brainstorm to start first spec",
"Check knowledge-graph.json for detected patterns"
]
}
Output Format
Display result in a structured format:
══════════════════════════════════════════════════
SDD Init — {{PROJECT_NAME}}
══════════════════════════════════════════════════
STATUS: {{status}}
TECH STACK DETECTED:
Language: {{language}}
Framework: {{framework}}
Build: {{build_system}}
ARCHITECTURE:
Style: {{architecture_style}}
Patterns: {{patterns}}
ARTIFACTS:
✓ Constitution (architecture.md) — {{status}}
✓ Constitution (ontology.md) — {{status}}
✓ Knowledge Graph — {{status}}
NEXT STEPS:
{{next_recommended}}
══════════════════════════════════════════════════
Integration with Other Skills
| Skill | Integration Point |
|---|---|
constitution | Created/updated by sdd-init if missing |
knowledge-graph | Populated by sdd-init with initial discoveries |
brainstorm | Should read Constitution before starting |
spec-to-tasks | Should validate against KG and Constitution |
task-implementation | Should check KG for existing patterns |
Constraints and Warnings
- Read-only detection — Does NOT modify source code
- Non-destructive — Only creates new files, never overwrites existing content
- Permission check — Warn if docs/specs/ cannot be created
- Backup KG — If updating existing KG, preserve existing data
Error Handling
| Error | Recovery |
|---|---|
| Cannot create docs/specs/ | Ask user to create directory manually |
| KG JSON invalid | Show error, keep raw file, suggest validation |
| Constitution delegate fails | Fall back to inline creation with template |
FAQ
What does the sdd-init skill do?
Initialize Spec-Driven Development context — detects tech stack, conventions, architecture patterns, and bootstraps persistence backends. Triggers on 'sdd-init', 'init sdd', 'setup sdd', 'initialize sdd', 'setup project', 'initialize project context'. Creates/updates docs/specs/architecture.md & ontology.md (Constitution), and populates knowledge-graph.json.
How do I install sdd-init?
Run npx skills add https://github.com/giuseppe-trisciuoglio/developer-kit --skill sdd-init in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/sdd-init/ (personal) or .claude/skills/sdd-init/ (project).
Which AI agents can use sdd-init?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is sdd-init safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains sdd-init?
It is published by giuseppe-trisciuoglio in giuseppe-trisciuoglio/developer-kit. It has 874 recorded installs.
More from giuseppe-trisciuoglio/developer-kit
shadcn-ui
giuseppe-trisciuoglio/developer-kit
Provides complete shadcn/ui component library patterns including installation, configuration, and implementation of accessible React components. Use when setting up shadcn/ui, installing components, building forms with React Hook Form and Zod, customizing themes with Tailwind CSS, or implementing UI patterns like buttons, dialogs, dropdowns, tables, and complex form layouts.
tailwind-css-patterns
giuseppe-trisciuoglio/developer-kit
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.
drizzle-orm-patterns
giuseppe-trisciuoglio/developer-kit
Provides comprehensive Drizzle ORM patterns for schema definition, CRUD operations, relations, queries, transactions, and migrations. Proactively use for any Drizzle ORM development including defining database schemas, writing type-safe queries, implementing relations, managing transactions, and setting up migrations with Drizzle Kit. Supports PostgreSQL, MySQL, SQLite, MSSQL, and CockroachDB.
unit-test-bean-validation
giuseppe-trisciuoglio/developer-kit
Provides patterns for unit testing Jakarta Bean Validation (JSR-380), including @Valid, @NotNull, @Min, @Max, @Email constraints with Hibernate Validator. Generates custom validator tests, constraint violation assertions, validation groups, and parameterized validation tests. Validates data integrity logic without Spring context. Use when writing validation tests, bean validation tests, or testing custom constraint validators.
nextjs-performance
giuseppe-trisciuoglio/developer-kit
Expert Next.js performance optimization skill covering Core Web Vitals, image/font optimization, caching strategies, streaming, bundle optimization, and Server Components best practices. Use when optimizing Next.js applications for Core Web Vitals (LCP, INP, CLS), implementing next/image and next/font, configuring caching with unstablecache and revalidateTag, converting Client Components to Server Components, implementing Suspense streaming, or analyzing and reducing bundle size. Supports Next.js 16 + React 19 patterns.
react-patterns
giuseppe-trisciuoglio/developer-kit
Provides comprehensive React 19 patterns for Server Components, Server Actions, useOptimistic, useActionState, useTransition, concurrent features, Suspense boundaries, and TypeScript integration. Generates executable code patterns, validates security for public endpoints, and optimizes performance with React Compiler or manual memoization. Proactively use when building React 19 applications with Next.js App Router, implementing optimistic UI, or optimizing concurrent rendering.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.