Skip to main content
The sdd-init sub-agent bootstraps the Spec-Driven Development (SDD) workflow in a project by detecting the stack, understanding conventions, and initializing the persistence backend.

Metadata

string
sdd-init
string
2.0
string
gentleman-programming
string
MIT

When It’s Triggered

The orchestrator launches sdd-init when:
  • User says “sdd init”, “iniciar sdd”, or “openspec init”
  • User wants to initialize SDD in a project
  • First time using SDD in a new workspace

What It Does

Step 1: Detect Project Context

Reads the project to understand:
  • Tech stack: Checks package.json, go.mod, pyproject.toml, Cargo.toml, etc.
  • Existing conventions: Linters, formatters, test frameworks, CI configuration
  • Architecture patterns: Monorepo, microservices, MVC, etc.

Step 2: Resolve Persistence Mode

Follows the persistence contract to determine:
  • engram — if Engram tool is available
  • openspec — if explicitly requested by the orchestrator
  • none — fallback (ephemeral)

Step 3: Bootstrap Persistence Backend

If mode is engram:

  • Persists project context to Engram with topic_key: sdd-init/{project-name}
  • Does NOT create openspec/ directory
  • Returns observation ID

If mode is openspec:

Creates this structure:
Generates config.yaml based on detected context:

If mode is none:

  • Returns detected context inline only
  • Recommends enabling engram or openspec for persistence

Step 4: Return Summary

Returns a result envelope adapted to the persistence mode.

Result Envelope Examples

Engram Mode

OpenSpec Mode

None Mode

Rules

  • NEVER create placeholder spec files — specs are created via sdd-spec during a change
  • ALWAYS detect the real tech stack — don’t guess
  • If openspec/ already exists, report what’s there and ask if it should be updated
  • Keep config.yaml context CONCISE — no more than 10 lines
  • Return a structured envelope with: status, executive_summary, detailed_report, artifacts, next_recommended, and risks