Communitygithub.com

Spike

Skill desechable para validar rápidamente una idea técnica antes de comprometerse a una implementación real.

¿Qué es Spike?

Spike es una skill ligera y desechable para que desarrolladores y agentes de IA exploren la viabilidad de una idea técnica antes de construirla en producción. Su objetivo es responder preguntas de factibilidad específicas mediante un ciclo iterativo de descomposición, investigación, construcción y veredicto, minimizando el riesgo y la inversión. Funciona con cualquier agente de codificación (Claude Code, Cursor, Codex) y se integra opcionalmente con el sistema GSD completo para un seguimiento persistente. La skill guía al usuario a dividir la idea en 2-5 spikes independientes, ordenarlos por riesgo, investigar brevemente las mejores herramientas, construir prototipos interactivos en directorios separados, y emitir un veredicto claro (VALIDADO, PARCIAL o INVALIDADO) con evidencia observable. Es ideal para prototipos rápidos, comparación de enfoques, y descubrimiento de incógnitas que la documentación no resuelve.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Lord1Egypt/awesome-skill-forge/tree/HEAD/skills/spike

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Spike?

Usa esta skill cuando el usuario quiera tantear una idea antes de comprometerse a una implementación real — validando factibilidad, comparando enfoques, o sacando a la luz incógnitas que ninguna cantidad de investigación resolverá. Los spikes están diseñados para ser desechables. Tíralos una vez que hayan cumplido su propósito.

Carga esto cuando el usuario diga cosas como "déjame probar esto", "quiero ver si X funciona", "has un spike de esto", "antes de comprometerme con Y", "prototipo rápido de Z", "¿esto siquiera es posible?", o "compara A vs B".

Cuándo NO usar esto

  • La respuesta se puede obtener de la documentación o leyendo código — solo investiga, no construyas
  • El trabajo es para producción — usa la skill plan en su lugar
  • La idea ya está validada — salta directamente a la implementación

Si el usuario tiene el sistema GSD completo instalado

Si gsd-spike aparece como una skill hermana (instalada mediante npx get-shit-done-cc --hermes), prefiere gsd-spike cuando el usuario quiera el flujo de trabajo GSD completo: estado persistente en .planning/spikes/, seguimiento con MANIFEST entre sesiones, formato de veredicto Dado/Cuando/Entonces, y patrones de commit que se integran con el resto de GSD. Esta skill es la versión ligera independiente para usuarios que no tienen (o no quieren) el sistema completo.

Método central

Sin importar la escala, cada spike sigue este ciclo:

descomponer  →  investigar  →  construir  →  veredicto
   ↑_________________________________________________↓
                 iterar sobre hallazgos

1. Descomponer

Divide la idea del usuario en 2-5 preguntas de factibilidad independientes. Cada pregunta es un spike. Preséntalas como una tabla con formato Dado/Cuando/Entonces:

#SpikeValida (Dado/Cuando/Entonces)Riesgo
001websocket-streamingDada una conexión WS, cuando el LLM transmite tokens, entonces el cliente recibe fragmentos < 100msAlto
002apdf-parse-pdfjsDado un PDF de varias páginas, cuando se analiza con pdfjs, entonces se puede extraer texto estructuradoMedio
002bpdf-parse-camelotDado un PDF de varias páginas, cuando se analiza con camelot, entonces se puede extraer texto estructuradoMedio

Tipos de spike:

  • estándar — un enfoque que responde una pregunta
  • comparación — misma pregunta, diferentes enfoques (número compartido, sufijo de letra a/b/c)

Buenas preguntas de spike: factibilidad específica con resultado observable. Malas preguntas de spike: demasiado amplias, sin resultado observable, o solo "leer la documentación sobre X".

Ordena por riesgo. El spike con más probabilidad de matar la idea se ejecuta primero. No tiene sentido crear prototipos de las partes fáciles si la parte difícil no funciona.

Omite la descomposición solo si el usuario ya sabe exactamente qué quiere spike y lo dice. Entonces toma su idea como un solo spike.

2. Alinear (para ideas con múltiples spikes)

Presenta la tabla de spikes. Pregunta: "¿Construir todo en este orden, o ajustamos?" Deja que el usuario elimine, reordene o reformule antes de que escribas cualquier código.

3. Investigar (por spike, antes de construir)

Los spikes no están exentos de investigación — investigas lo suficiente para elegir el enfoque correcto, luego construyes. Por spike:

  1. Resúmelo. 2-3 frases: qué es este spike, por qué importa, riesgo clave.

  2. Presenta enfoques competidores si hay una elección real:

    EnfoqueHerramienta/BibliotecaProsContrasEstado
    ............mantenido / abandonado / beta
  3. Elige uno. Indica por qué. Si 2 o más son creíbles, construye variantes rápidas dentro del spike.

  4. Omite la investigación para lógica pura sin dependencias externas.

Usa herramientas de Hermes para el paso de investigación:

  • web_search("python bibliotecas streaming websocket 2025") — encuentra candidatos
  • web_extract(urls=["https://websockets.readthedocs.io/..."]) — lee la documentación real (devuelve markdown)
  • terminal("pip show websockets | grep Version") — verifica qué está instalado en el entorno virtual del proyecto

Para bibliotecas sin páginas de documentación, clona y lee su README.md / examples/ mediante read_file. Context7 MCP (si el usuario lo tiene configurado) también es una buena fuente — mcp_*_resolve-library-id luego mcp_*_query-docs.

4. Construir

Un directorio por spike. Mantenlo independiente.

spikes/
├── 001-websocket-streaming/
│   ├── README.md
│   └── main.py
├── 002a-pdf-parse-pdfjs/
│   ├── README.md
│   └── parse.js
└── 002b-pdf-parse-camelot/
    ├── README.md
    └── parse.py

Inclínate hacia algo con lo que el usuario pueda interactuar. Los spikes fallan cuando la única salida es una línea de registro que dice "funciona". El usuario quiere sentir que el spike funciona. Opciones predeterminadas, en orden de preferencia:

  1. Una CLI ejecutable que toma entrada e imprime salida observable
  2. Una página HTML mínima que demuestre el comportamiento
  3. Un pequeño servidor web con un endpoint
  4. Una prueba unitaria que ejercite la pregunta con aserciones reconocibles

Profundidad sobre velocidad. Nunca declares "funciona" después de una ejecución feliz. Prueba casos límite. Sigue hallazgos sorprendentes. El veredicto solo es confiable cuando la investigación fue honesta.

Evita a menos que el spike lo requiera específicamente: gestión compleja de paquetes, herramientas de compilación/empaquetadores, Docker, archivos de entorno, sistemas de configuración. Hardcodea todo — es un spike.

Construir un spike — una secuencia típica de herramientas:

terminal("mkdir -p spikes/001-websocket-streaming")
write_file("spikes/001-websocket-streaming/README.md", "# 001: websocket-streaming\n\n...")
write_file("spikes/001-websocket-streaming/main.py", "...")
terminal("cd spikes/001-websocket-streaming && python3 main.py")
# Observa la salida, itera.

Spikes de comparación en paralelo (002a / 002b) — delega. Cuando dos enfoques pueden ejecutarse en paralelo y ambos requieren ingeniería real (no prototipos de 10 líneas), distribuye con delegate_task:

delegate_task(tareas=[
    {"objetivo": "Construir 002a-pdf-parse-pdfjs: ...", "conjuntos_herramientas": ["terminal", "file", "web"]},
    {"objetivo": "Construir 002b-pdf-parse-camelot: ...", "conjuntos_herramientas": ["terminal", "file", "web"]},
])

Cada subagente devuelve su propio veredicto; tú escribes la comparación cara a cara.

5. Veredicto

El README.md de cada spike cierra con:

## Veredicto: VALIDADO | PARCIAL | INVALIDADO

### Lo que funcionó
- ...

### Lo que no funcionó
- ...

### Sorpresas
- ...

### Recomendación para la implementación real
- ...

VALIDADO = la pregunta central fue respondida afirmativamente, con evidencia. PARCIAL = funciona bajo las restricciones X, Y, Z — documéntalas. INVALIDADO = no funciona, por esta razón. Este es un spike exitoso.

Spikes de comparación

Cuando dos enfoques responden la misma pregunta (002a / 002b), constrúyelos uno tras otro, luego haz una comparación cara a cara al final:

## Cara a cara: pdfjs vs camelot

| Dimensión | pdfjs (002a) | camelot (002b) |
|-----------|--------------|----------------|
| Calidad de extracción | 9/10 estructurado | 7/10 solo tablas |
| Complejidad de configuración | npm install, 1 línea | pip + ghostscript |
| Rendimiento en PDF de 100 págs | 3s | 18s |
| Maneja texto rotado | no | sí |

**Ganador:** pdfjs para nuestro caso de uso. Camelot si necesitamos extracción centrada en tablas más adelante.

Modo frontera (elegir qué spike hacer a continuación)

Si ya existen spikes y el usuario dice "¿qué debería spike a continuación?", recorre los directorios existentes y busca:

  • Riesgos de integración — dos spikes validados que tocan el mismo recurso pero fueron probados de forma independiente
  • Transferencias de datos — la salida del spike A se asumió compatible con la entrada del spike B; nunca se demostró
  • Vacíos en la visión — capacidades asumidas pero no probadas
  • Enfoques alternativos — diferentes ángulos para spikes PARCIALES o INVALIDADOS

Propón 2-4 candidatos como Dado/Cuando/Entonces. Deja que el usuario elija.

Salida

  • Crea spikes/ (o .planning/spikes/ si el usuario está usando las convenciones de GSD) en la raíz del repositorio
  • Un directorio por spike: NNN-nombre-descriptivo/
  • README.md por spike captura la pregunta, el enfoque, los resultados y el veredicto
  • Mantén el código desechable — un spike que tarde 2 días en "limpiarse para producción" fue un mal spike

Atribución

Adaptado del flujo de trabajo /gsd-spike del proyecto GSD (Get Shit Done) — MIT © 2025 Lex Christopherson (gsd-build/get-shit-done). El sistema GSD completo ofrece estado de spike persistente, seguimiento con MANIFEST e integración con un pipeline de desarrollo impulsado por especificaciones más amplio; instálalo con npx get-shit-done-cc --hermes --global.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a insurance agency. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generates a complete landing page with copy, layout, hero image, and responsive design from a text description. Use when launching a product quickly.

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a family law practice. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a fractional CFO firm. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a home remodeling company. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a HVAC service company. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a immigration law firm. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a CPA tax advisory firm. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a estate planning law firm. Use when handling...

Lord1Egypt/awesome-skill-forge

Fastest way to create or update a pawr.link profile. One curl command, $19 USDC to create, $0.10 to update. Patch-style update-links endpoint lets you add, remove, or move individual links without replacing the whole profile.

Lord1Egypt/awesome-skill-forge

Use this skill when the user wants to review today, look back on yesterday, reflect on this week, or wrap things up with a gentle, low-pressure reflection.

Lord1Egypt/awesome-skill-forge

Read-only queue dashboard for workspace-aware ship. (gstack)

Lord1Egypt/awesome-skill-forge

Landing page quality assessment for paid advertising campaigns. Evaluates message match, page speed, mobile experience, trust signals, form optimization, and conversion rate potential. Use when user says landing page, post-click experience, landing page audit, LP audit, conversion rate, landing page CRO, post-click CRO, or landing page optimization.

Lord1Egypt/awesome-skill-forge

Create HTML-based video compositions, animated title cards, social overlays, captioned talking-head videos, audio-reactive visuals, and shader transitions using HyperFrames. HTML is the source of truth for video. Use when the user wants a rendered MP4/WebM from an HTML composition, wants to animate text/logos/charts over media, needs captions synced to audio, wants TTS narration, or wants to convert a website into a video.

Lord1Egypt/awesome-skill-forge

Search arXiv papers by keyword, author, category, or ID.

Lord1Egypt/awesome-skill-forge

Delegate coding to OpenAI Codex CLI (features, PRs).

Lord1Egypt/awesome-skill-forge

Track Apple devices/AirTags via FindMy.app on macOS.

Lord1Egypt/awesome-skill-forge

Jailbreak LLMs: Parseltongue, GODMODE, ULTRAPLINIAN.

Lord1Egypt/awesome-skill-forge

Geocode, POIs, routes, timezones via OpenStreetMap/OSRM.

Lord1Egypt/awesome-skill-forge

Notion API + ntn CLI: pages, databases, markdown, Workers.

Skills relacionados