DOC-012: Feature Discovery Workflow (sd-discover)
Estado
Approved (seed)
Propósito
Capa de producto entre la idea y Spec Kit / OpenSpec. Evita implementar dominio sin contexto acordado.
Prefijo de comandos: /sd-* (Spec-Driven discover + sesión).
Flujo
Idea vaga
→ /sd-explore (opcional — trade-offs, diagramas)
→ /sd-spike (si hay duda técnica — GO/NO-GO)
→ /sd-feature-brief → docs/product/features/FEAT-xxx/brief.md
→ gate humano: Status: approved
→ /sd-use-case (opcional — flujos detallados)
→ /sd-screen-spec (si hay UI — docs/ux/screens/S-xxx.md)
→ /sd-wireframe (si hay UI P0)
→ aplicar DOC-013: Spec Kit u OpenSpec
Artefactos
| Artefacto | Ruta | Plantilla |
|---|---|---|
| Brief | docs/product/features/<FEAT-slug>/brief.md | feature-brief-template.md |
| Spike | docs/spikes/<slug>/spike.md | spike-template.md |
| Use cases | docs/product/features/<FEAT-slug>/use-cases/ | use-case-template.md |
| Screen specs | docs/ux/screens/S-xxx.md | screen-spec-template.md |
| Wireframes | docs/ux/wireframes/ | wireframe-template.md |
Brief — campos mínimos
- Status:
draft|approved|superseded - Problema / objetivo observable
- Actores
- Stories con Given/When/Then
- Happy path + errores críticos
- Impacto API / DB / eventos (si aplica)
- Non-goals
- Open questions
Sin brief aprobado no hay /opsx:propose ni /speckit.specify de dominio (salvo infra/DX/CI — DOC-013).
Relación con OpenSpec y Spec Kit
| Tras brief approved… | Siguiente paso |
|---|---|
| Feature estratégica | /speckit.specify → slices OpenSpec |
| Cambio acotado en módulo existente | /opsx:propose (citar parent Spec Kit) |
| Infra / bug sin dominio | /opsx:propose directo (sin brief) |
Ver DOC-013.
Skills
| Comando | Skill path |
|---|---|
/sd-explore | .cursor/skills/sd-explore/SKILL.md |
/sd-spike | .cursor/skills/sd-spike/SKILL.md |
/sd-feature-brief | .cursor/skills/sd-feature-brief/SKILL.md |
/sd-use-case | .cursor/skills/sd-use-case/SKILL.md |
/sd-screen-spec | .cursor/skills/sd-screen-spec/SKILL.md |
/sd-wireframe | .cursor/skills/sd-wireframe/SKILL.md |