Sdd system
Project Manager: Initialization, Status Tracking, and High-Level Coordination.From its SKILL.md
npx -y skills add leoheart0125/sdd-skills --skill sdd-systemAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.4 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
SDD System
This skill is the entry point for the Compounding Engineering framework. It handles initialization, feature lifecycle management, and global status.
Core Responsibilities
- Project Initialization: Setup
.sdd/directory,project_rules.md, and Knowledge Base directories. - Feature Lifecycle: Manage features from creation through request → design → plan → impl → complete → learn.
- Global Status: Display the "Big Picture" (Current Stage + Active Feature + Velocity + Knowledge Stats).
- Coordination: Verify
.sdd/directory structure integrity (all required subdirectories andcontext.jsonexist and are well-formed).
Commands
/sdd-init [project principles]: Initialize a new Compounding Engineering project. Optional args define the project's guiding principles (e.g.,/sdd-init product should be testable, high-quality and implement by MVP never overdesign)./sdd-status: Display current project health, active stage, active feature, and recent lessons learned./sdd-nuke: (Dangerous) Reset internal state but keep learned patterns and lessons.
Initialization Logic
When /sdd-init is called:
Step 1: Create Directory Structure
Check for .sdd/ directory and create the full structure:
context/—context.json,project_rules.mdspec/— Feature-scoped spec subdirectoriesplan/— Feature-scoped plan subdirectoriesfeatures/— Feature snapshot archive (spec + plan per feature)knowledge/index.json— Lightweight knowledge index (initialize as{ "patterns": {}, "lessons": {} })knowledge/patterns/— Reusable design/code patternsknowledge/lessons/— Lessons learned from past workdata/,logs/,temp/
Step 2: Project Discovery
Before generating config files, gather project context. This information is critical — downstream skills (design, planning, guardrails, implementation) all depend on context.json and project_rules.md to make informed decisions.
a) Auto-detect from codebase — scan the working directory for project markers:
- Package/dependency files (
package.json,Cargo.toml,go.mod,pyproject.toml,Gemfile,pom.xml,build.gradle,*.csproj, etc.) → infer language, framework, build tools - Existing directory structure → infer architecture style and conventions
- Config files (
.eslintrc,tsconfig.json,Makefile,Dockerfile, etc.) → infer tooling - Test directories/files → infer testing framework and strategy
b) Present findings and ask the user to confirm or adjust:
- Tech stack: Language(s), framework(s), build tool(s), package manager — "I detected X. Is this correct?"
- Architecture style: Inferred from directory structure, or ask if unclear — "How is your project organized?" (e.g., feature-first, layer-first, module-based, monorepo, flat, etc.)
- Directory conventions: Where source code, tests, configs live — "Your source appears to be in
src/, tests intests/. Correct?" - Testing strategy (if applicable): Detected test framework and approach — "I see Jest/pytest/etc. What types of tests does this project use?" If no test framework is detected, ask whether the user plans to have tests — don't assume.
- Verify commands (if applicable): Only ask about commands that are relevant to the project. A Python script might have no build step; a prototype might have no tests. Only document commands that actually exist.
If auto-detection finds nothing (empty or new project), ask the user directly. Keep the conversation concise — ask all questions in one message, not one at a time.
CRITICAL INSTRUCTION: DO NOT PROCEED TO STEP 3 YET. Stop your response here and wait for the user to answer your questions. Only proceed to Step 3 in your next response after the user has confirmed or adjusted the project discovery findings.
c) If user provided args (e.g., /sdd-init MVP-first, testable, no overdesign): Remember to incorporate them as the "General Principles" section in project_rules.md when you generate it later.
Step 3: Generate Configuration (Only AFTER User Confirmation)
- Generate
context.jsonfrom template, populated with the discovered values:- JSON Writing Rule: All string values MUST have special characters properly escaped (
\",\\,\n,\t, control chars). Validate JSON is well-formed before writing to disk.
- JSON Writing Rule: All string values MUST have special characters properly escaped (
- Generate
project_rules.mdtailored to the project:- Tech Stack: Fill the Tech Stack section with confirmed languages, frameworks, runtimes, databases, and tooling. For multi-stack projects, group by service/component (e.g.,
frontend,backend,infra). This is the single source of truth for tech stack — do NOT store incontext.json. - Architecture: Based on confirmed architecture style and directory conventions — this is where the full architecture rules live; do NOT duplicate in
context.json - Coding Standards: Based on detected language/framework conventions
- Testing: Based on detected test framework and confirmed strategy
- Verify Commands (if any): Document whatever build/test/lint commands exist so
sdd-implementercan run per-task verification. Omit this section entirely if the project has no such commands. - Start from the template in
templates/project_rules.md, then fill in project-specific details
- Tech Stack: Fill the Tech Stack section with confirmed languages, frameworks, runtimes, databases, and tooling. For multi-stack projects, group by service/component (e.g.,
Step 4: Report
Report: "Project initialized. Here's what I configured:" — show a summary of the Tech Stack section from project_rules.md and key sections (Architecture, Testing, Verify Commands). Then: "Ready for /sdd-request."
Feature Lifecycle
Each feature follows this lifecycle, tracked via context.json.current_stage:
init → request → request-complete → design → design-complete → plan → plan-complete → impl → impl-complete
Starting a Feature
Executed by
sdd-request-engine— seesdd-request-engine/SKILL.mdStep 2 for the canonical implementation.
- User provides feature name/intent via
/sdd-request. sdd-request-enginereadscontext.json.feature_counter, generates the feature ID, creates directories, and setscurrent_stageto"request".
Completing a Feature
- All tasks in
tasks.jsonreach"done"or"verified"status. /sdd-impl-finishtriggers mandatory knowledge extraction (reads.sdd/logs/session.mdfor cross-session history).- MOVE (not copy)
.sdd/spec/<feature-id>/and.sdd/plan/<feature-id>/into.sdd/features/<feature-id>/. - Move feature ID from
current_featuretocompleted_features. - Reset
current_stageto"init"andcurrent_featuretonull. - Clear
.sdd/logs/session.md.
Status Display
When /sdd-status is called, display:
- Active Feature:
context.json.current_feature(or "None") - Current Stage:
context.json.current_stage - Completed Features: Count of
context.json.completed_features - Knowledge Stats: Number of patterns in
knowledge/patterns/, lessons inknowledge/lessons/ - Active Patterns:
context.json.active_patterns - Applied Lessons:
context.json.applied_lessons
Integration
- Consumes:
sdd-knowledge-base(for status and knowledge stats). - Directs: Users to
/sdd-designor/sdd-planbased oncurrent_stage.
What ships with it: 3 files
3.2 KB alongside SKILL.md, 1 of them executable
scripts/
- init.shruns1.5 KB
templates/
- context.json385 B
- project_rules.md1.4 KB