# Feature To Spike

> Transforms methodology learnings from dog-food sessions of launchpad-toolkit into Linear SPIKE issues formatted for William Ugalde (DojoOS Launchpad owner). This is the plugin's DIFFERENTIATOR — the piece that makes launchpad-toolkit a "methodology laboratory" not just a founder tool. Use when the user asks "propose spike", "generate spike", "feature to spike", "productize this", "send to William", "/feature-to-spike".

- Skill: `dojocodinglabs/feature-to-spike` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dojocodinglabs/feature-to-spike`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dojocodinglabs/feature-to-spike/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dojocodinglabs (https://skillmd.com/u/dojocodinglabs)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/dojocodinglabs/feature-to-spike

---


# Feature-to-Spike

**Este skill es el differentiator de launchpad-toolkit**. Transforma un learning del dog-food (ej: "el startup-intake tiene un flow donde preguntar X después de Y produce respuestas 3x más detalladas") en un Linear SPIKE issue formateado para que William Ugalde lo evalúe y eventualmente productize en DojoOS Launchpad.

Sin este skill, launchpad-toolkit sería solo otra herramienta founder-facing. Con este skill, se convierte en un **prototyping lab metodológico** con loop explícito: metodología → dog-food → SPIKE → DojoOS feature.

## Regla de idioma

**Issue body en inglés** (convención DojoOS Linear). Interacción con el usuario en español.

## Directorio de salida

```
./launchpad/spikes/
├── YYYY-MM-DD-{spike-slug}.md       # Drafted SPIKE (before filing)
└── YYYY-MM-DD-{spike-slug}-filed.md # Post-filing (includes Linear URL)
```

---

## Loop metodología → DojoOS feature

```
┌─────────────────────┐
│ 1. User uses        │
│    launchpad-       │
│    toolkit skill    │ ◄────────── External founder or internal dog-food
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│ 2. Methodology      │
│    learning emerges │
│    (UX pattern,     │
│     flow improve-   │
│     ment, missing   │
│     feature, etc.)  │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│ 3. feature-to-spike │
│    transforms       │ ◄────────── THIS SKILL
│    learning into    │
│    SPIKE issue      │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│ 4. William evaluates│
│    SPIKE, decides   │
│    scope/priority   │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│ 5. DojoOS Launchpad │
│    feature shipped  │
│    (OR skill iterated│
│    if SPIKE rejected)│
└─────────────────────┘
```

Ver `references/productization-workflow.md` para detalle del workflow.

---

## ¿Qué es un good SPIKE para launchpad?

Un SPIKE útil para productizar en DojoOS Launchpad tiene **4 características**:

1. **Concrete pattern** — no "William debería revisar UX" sino "founders en stage=Ideation con industry=fintech tienen 60% más engagement cuando el intake pregunta traction signals ANTES de competitive landscape"
2. **Dogfood evidence** — claim fundamentado en ≥1 sesión de dog-food con artefactos generados (startup-profile.md, etc.)
3. **Productization hypothesis** — una idea concreta de cómo productizarlo en DojoOS (UI flow, data model change, algorithm tweak...)
4. **Acceptance criteria** — cómo William puede validar si la hipótesis funciona post-implementation

SPIKES que NO cumplen estas 4 son mejores como notes o user feedback, no como SPIKE formal.

---

## Flujo del skill

### Paso 1 — Identificar el learning

**FTS-1**: "¿Qué aprendiste del dog-food que podría valer productizarse en DojoOS Launchpad? Describílo en 1-2 oraciones (el 'concrete pattern')."

Validar que el pattern es concreto y specific. Si vago → re-prompt: "¿Podés dar un ejemplo concreto del pattern en acción?"

### Paso 2 — Evidence gathering

**FTS-2**: "¿Qué artefactos o sesiones de dog-food soportan este learning?
- Skill(s) usado(s): [startup-intake / cap-table-builder / etc.]
- Artifact(s) generado(s): [path a `.md` archivos]
- Observación específica: [qué viste]
- Startup(s) involucradas: [nombres o anonymizado si confidential]"

### Paso 3 — Productization hypothesis

**FTS-3**: "¿Cómo te imaginás productizarlo en DojoOS Launchpad? Describí:
- Qué component(s) se tocarían: [UI / API / data model / matching algorithm]
- Cambio concreto: [ej: 'reordenar sections del intake form', 'agregar field X al Startup Profile schema', 'incluir Y en co-founder matching weight']
- Alternativas consideradas: [brief]"

### Paso 4 — Acceptance criteria

**FTS-4**: "¿Cómo validaría William si funcionó post-implementation? Definí ≥2 criterios measurables:
- Metric: [ej: intake completion rate, profile quality score, matching accuracy]
- Threshold: [cuánto mejora vs baseline]
- Timeline: [cuándo medir]"

### Paso 5 — Priority + scope

**FTS-5**: "En tu opinión:
- Priority (Urgent/High/Normal/Low): [default = Normal]
- Est. scope (S/M/L/XL): [S = 1 session, L = 3-5 sessions]
- Blocking dependencies: [ej: requires DojoOS API by @garbanzo, blocked on X]"

### Paso 6 — Generate SPIKE draft

**FTS-6**: Generar `./launchpad/spikes/YYYY-MM-DD-{spike-slug}.md` con el template de output.

**FTS-7**: "¿Filear el SPIKE en Linear ahora, o revisás el draft primero?
- Opción A: File ahora (requiere Linear MCP o gh CLI con Linear integration)
- Opción B: Solo genero el draft, vos lo fileás manualmente cuando estés listo"

---

## Output template

Generar `./launchpad/spikes/YYYY-MM-DD-{spike-slug}.md`:

```markdown
# SPIKE: [Short title — what to investigate/productize]

**Target assignee**: William Ugalde (Launchpad pillar owner)
**Suggested labels**: spike, launchpad, methodology-prototype
**Priority**: [Urgent / High / Normal / Low]
**Est. scope**: [S / M / L / XL]

---

## Context

Methodology learning from dog-food of `launchpad-toolkit`. This SPIKE proposes productizing a pattern validated via prototype in the plugin — reducing productization risk for DojoOS Launchpad.

**Concrete pattern observed**:

[1-2 sentences, specific + measurable]

---

## Dogfood evidence

### Skill(s) used

- [Skill name(s) from launchpad-toolkit]

### Artifact(s) generated

- [Path to `.md` artifact, ideally linked or attached]

### Observation

[What was observed — quote artifacts or specific outputs if helpful]

### Startup(s) involved

[Name or anonymized "Founder A, stage=MVP, industry=fintech"]

---

## Productization hypothesis

### Component(s) to change in DojoOS Launchpad

- [UI / API / data model / matching algorithm / etc.]

### Concrete change proposed

[ej: "Reorder intake form sections: Traction before Competitive to match observed dogfood pattern"]

### Alternatives considered

[Brief rejection rationale for other options]

---

## Acceptance criteria

- [ ] **Metric**: [ex: intake completion rate]
- [ ] **Threshold**: [ex: +15% vs baseline measured in 2-week cohort]
- [ ] **Timeline**: [ex: measure 30 days post-feature-ship]

- [ ] **Metric**: [second criterion]
- [ ] **Threshold**: [threshold]
- [ ] **Timeline**: [timeline]

---

## Dependencies / prereqs

- [List blocking dependencies — ex: "requires DojoOS API by @garbanzo" or "none"]

---

## Links

- **launchpad-toolkit SKILL**: [link to SKILL.md that generated the learning]
- **Artifact(s)**: [link to `.md` output(s)]
- **Related DOJ issues**: [parent SPIKE DOJ-3189, sibling issues if any]

---

Created by Claude Code via `launchpad-toolkit:feature-to-spike`, on behalf of @lapc506.
```

---

## Integración con Linear

### Vía Linear MCP (recomendado)

Si Linear MCP está configurado (`mcp__linear-server__save_issue`), el skill puede filear el SPIKE directamente:

```
mcp__linear-server__save_issue(
  team="DojoOS",
  project="Launchpad",
  parentId="DOJ-3189",           # Parent SPIKE for launchpad-toolkit
  assignee="william@dojocoding.io",
  title="SPIKE: [title]",
  description="[generated body]",
  labels=["Spike", "Explore", "M"],
  priority=3,
  state="Triage"                  # Let William move to In Progress when ready
)
```

### Vía gh + Linear sync

Si gh CLI está disponible pero Linear MCP no, generar issue body + prompt user para filear manualmente con el slug `andres/doj-XXXX-{slug}`.

### Vía copy-paste

Si ningún tooling disponible, output puro markdown para que usuario copie-pega en Linear web UI.

---

## Principios clave

- **NO crear issues sin confirmación explícita** — default es generar draft, filear solo si user dice "sí"
- **William como default assignee** (ID Linear: `8f14370d-3602-49e3-81f2-eeb05b965687`; email: `william@dojocoding.io`)
- **Parent issue = DOJ-3189 por default** — mantiene trazabilidad con el tracking SPIKE del plugin
- **Labels consistentes**: `spike`, `launchpad`, `methodology-prototype` — William filtra por estos
- **No escalate prematurely**: si el learning es débil, sugerir "keep dogfooding más antes de SPIKE"

## Anti-patterns

- SPIKEs vagos tipo "mejorar UX" — rechazar, pedir specific pattern
- SPIKEs sin acceptance criteria — no hay forma de validar post-implementation
- Crear issues bypaseando William → viola ownership del pillar (ver feedback memory)
- Usar SPIKE format para feature requests — si es clear feature (no investigation), debería ser feature issue, no SPIKE

## Integración con otras skills

- **Input usuario de cualquier skill de launchpad-toolkit** → si durante uso detectan un productization candidate, invocar `feature-to-spike`
- **`startup-intake`**: learnings sobre preguntas que funcionan mejor
- **`cap-table-builder`** (v0.2): learnings sobre edge cases del vesting calculator
- **`cofounder-matching`** (v0.2): learnings sobre weighting del algoritmo

## Recursos

- **DojoOS Launchpad pillar ownership** (Slack 2026-04-10 `#C0AKTN24C91`)
- **Parent tracking SPIKE**: [DOJ-3189](https://linear.app/dojo-coding/issue/DOJ-3189)
- **Productization workflow doc**: `references/productization-workflow.md`

