Skill: sddf-init
Inicializa el entorno base del framework SDDF en un proyecto. Es el primer paso del flujo de onboarding SDDF:
sddf-init → skill-preflight → [cualquier skill SDDF]
Usar cuando:
- Al configurar SDDF en un proyecto nuevo por primera vez
- Cuando
skill-preflightreporta que faltan directorios base
Restricciones / Reglas
- NO modifique ningún archivo existente en el código fuente (estamos en etapa de inicialización de especificaciones, no de implementación)
- NO genere código; estas iniciando el entorno SDDF, no implementando los artefactos técnicos
- No inicializa repositorio git
- No instala dependencias
Protocolo de inicialización
Paso 1 — Resolver SDDF_ROOT y determinar SPECS_BASE
- Leer la variable de entorno
SDDF_ROOT. - Si
SDDF_ROOTno está definida:- Establecer
SPECS_BASE = docs
- Establecer
- Si
SDDF_ROOTestá definida y la ruta existe:- Establecer
SPECS_BASE = <valor de SDDF_ROOT>
- Establecer
- Si
SDDF_ROOTestá definida pero la ruta NO existe:- Emitir:
[ERROR] SDDF_ROOT apunta a ruta inexistente: <ruta> Corrige SDDF_ROOT o elimina la variable para usar docs/ como valor por defecto - Detener la ejecución. No crear ningún directorio ni archivo.
- Emitir:
Paso 2 — Crear directorios de specs
Para cada uno de los siguientes directorios bajo SPECS_BASE:
specs/01-projects/specs/02-epics/specs/03-stories/
Verificar si el directorio existe:
- No existe: crearlo y registrar
[CREADO] <ruta> - Ya existe: no modificarlo y registrar
[YA EXISTÍA] <ruta>
Si algún directorio requiere rutas intermedias (ej. SPECS_BASE/specs/), crearlas también.
Paso 2b — Copiar templates compartidos al directorio central
Crear SPECS_BASE/specs/templates/ si no existe (registrar [CREADO] / [YA EXISTÍA]).
Copiar los templates compartidos desde el assets/ de su skill dueño. Esta tabla es la fuente de verdad de qué se centraliza:
| Template | Skill dueño (origen) |
|---|---|
story-template.md |
$CLI_ROOT/skills/story-creation/assets/ |
epic-template.md |
$CLI_ROOT/skills/epic-creation/assets/ |
project-template.md |
$CLI_ROOT/skills/project-discovery/assets/ |
project-intent-template.md |
$CLI_ROOT/skills/project-begin/assets/ |
project-plan-template.md |
$CLI_ROOT/skills/project-planning/assets/ |
Para cada template:
- No existe en
SPECS_BASE/specs/templates/: copiarlo desde el origen y registrar[CREADO] <ruta destino> - Ya existe en el destino: no sobrescribirlo (puede contener personalizaciones del proyecto) y registrar
[YA EXISTÍA] <ruta destino> - El origen no existe (skill dueño no instalado): emitir
[WARNING] template no copiado: <nombre> (skill <dueño> no instalado)y continuar sin bloquear.
Paso 3 — Generar sddf.config.yaml
Verificar si sddf.config.yaml existe en la raíz del proyecto:
- No existe (o existe vacío):
- Crear
sddf.config.yamlusando exactamente el contenido del template en$CLI_ROOT/skills/sddf-init/assets/sddf.config.yaml.template - Registrar
[CREADO] sddf.config.yaml
- Crear
- Ya existe con contenido:
- No sobrescribirlo
- Registrar
[YA EXISTÍA] sddf.config.yamly emitir[INFO] sddf.config.yaml ya existe — se mantiene sin cambios
Paso 4 — Generar .env.template
Verificar si .env.template existe en la raíz del proyecto:
- No existe:
- Crear
.env.templatecon el siguiente contenido exacto:# SDDF_ROOT — directorio raíz de los artefactos SDDF # Valor por defecto si no se define: docs # Ejemplos válidos: docs | .sdd | custom/specs # # Para aplicar, copia esta línea en tu archivo .env local o exporta la variable: # export SDDF_ROOT=docs # SDDF_ROOT=docs - Registrar
[CREADO] .env.template
- Crear
- Ya existe:
- No sobrescribirlo
- Registrar
[YA EXISTÍA] .env.templatey emitir[INFO] .env.template ya existe — se mantiene sin cambios
Paso 5 — Inicializar políticas del proyecto (opcional)
Preguntar al usuario:
¿Deseas inicializar los documentos de políticas del proyecto?
(constitution.md y definition-of-done-story.md en $SPECS_BASE/policies/)
(s) Sí — ejecutar project-policies-generation ahora
(n) No — omitir este paso
- Si el usuario responde
s/sí: invocar el skillproject-policies-generationy esperar a que complete su ejecución antes de continuar al Paso 6. - Si el usuario responde
n/no: omitir este paso y continuar directamente al Paso 6. Registrar[OMITIDO] project-policies-generationen el informe final.
Las políticas pueden inicializarse en cualquier momento ejecutando
/project-policies-generationde forma independiente.
Paso 6 — Informe final
Emitir el informe consolidado con todos los artefactos verificados:
── sddf-init ────────────────────────────────────
[CREADO] docs/specs/01-projects/
[CREADO] docs/specs/02-epics/
[YA EXISTÍA] docs/specs/03-stories/
[CREADO] docs/specs/templates/
[CREADO] docs/specs/templates/story-template.md
[CREADO] docs/specs/templates/epic-template.md
[CREADO] docs/specs/templates/project-template.md
[CREADO] docs/specs/templates/project-intent-template.md
[CREADO] docs/specs/templates/project-plan-template.md
[CREADO] sddf.config.yaml
[CREADO] .env.template
[CREADO] docs/policies/constitution.md
[CREADO] docs/policies/definition-of-done-story.md
─────────────────────────────────────────────────
Si se creó al menos un artefacto:
✓ Entorno SDDF inicializado correctamente en docs/
Si todos los artefactos ya existían:
✓ Entorno ya inicializado — sin cambios necesarios
Terminar la ejecución. El usuario puede continuar con skill-preflight o cualquier skill SDDF.