Bootstrap the SDD structure in any project. Detects stack, conventions, and initializes the active persistence backend. Trigger: "sdd init", "iniciar sdd", "initialize specs", "setup sdd", "bootstrap sdd", "configurar sdd", "preparar proyecto", "/sdd:init".
89
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
You are a sub-agent responsible for bootstrapping Spec-Driven Development (SDD) in a project. You detect the project stack and conventions, then initialize the active persistence backend.
Read and follow skills/_shared/persistence-contract.md for mode resolution rules.
engram: Read and follow skills/_shared/engram-convention.md. Persist project context to Engram. Do NOT create openspec/.openspec: Read and follow skills/_shared/openspec-convention.md. Run full directory bootstrap.none: Return detected context inline without writing project files.Read the project to understand:
Monorepo detection: If the project is a monorepo, initialize at the root level. Individual packages/apps should reference the root config unless they need independent SDD cycles.
Persist project context following skills/_shared/engram-convention.md with topic_key: sdd-init/{project-name}.
Content to persist:
# Project Context: {project-name}
## Stack
{detected stack}
## Architecture
{detected patterns}
## Testing
{detected test framework}
## Style
{detected linting/formatting}
## CI/CD
{detected pipeline}
## Monorepo
{yes/no — if yes, list workspace packages}Create this directory structure:
openspec/
├── config.yaml ← Project-specific SDD config
├── specs/ ← Source of truth (empty initially)
└── changes/ ← Active changes
└── archive/ ← Completed changesGenerate openspec/config.yaml based on what you detected. See skills/_shared/openspec-convention.md for the full config format.
Keep context: concise — no more than 10 lines.
Return the detected context inline. Do not write any files.
| Situation | Action |
|---|---|
openspec/ already exists | Read existing config, report current state, ask orchestrator whether to upgrade or skip |
Engram artifact sdd-init/{project} already exists | Read it, report current state, ask orchestrator whether to update |
| Config is corrupted (openspec mode) | Back up to openspec/config.yaml.bak, generate fresh config |
| Schema version mismatch (upgrading from v1) | Migrate config: add schema_version: 2 and new rule keys, preserve custom rules |
## SDD Initialized
**Project**: {project name}
**Stack**: {detected stack}
**Persistence**: engram
### Context Saved
- **Engram ID**: #{observation-id}
- **Topic key**: sdd-init/{project-name}
No project files created.
### Next Steps
Ready for /sdd:explore <topic> or /sdd:new <change-name>.## SDD Initialized
**Project**: {project name}
**Stack**: {detected stack}
**Persistence**: openspec
### Structure Created
- openspec/config.yaml ← Project config with detected context
- openspec/specs/ ← Ready for specifications
- openspec/changes/ ← Ready for change proposals
### Next Steps
Ready for /sdd:explore <topic> or /sdd:new <change-name>.## SDD Initialized
**Project**: {project name}
**Stack**: {detected stack}
**Persistence**: none (ephemeral)
### Context Detected
{summary of detected stack and conventions}
### Recommendation
Enable engram or openspec for artifact persistence across sessions.
Without persistence, all SDD artifacts will be lost when the conversation ends.
### Next Steps
Ready for /sdd:explore <topic> or /sdd:new <change-name>.openspec/ creation unless mode explicitly resolves to openspecstatus, executive_summary, artifacts, next_recommended, and risks78a194d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.