Communitygithub.com

Spike

Skill descartável para validar ideias rapidamente antes de um desenvolvimento completo, testando viabilidade e descobrindo incógnitas.

O que é Spike?

Este skill é projetado para sessões de 'spike' — experimentos rápidos e descartáveis que permitem que um agente de IA (como Claude Code, Coder, ou Codex) valide uma ideia antes de se comprometer com uma implementação completa. Ele é acionado quando o usuário diz algo como 'deixa eu tentar isso', 'quero ver se X funciona', 'spike nisso', ou 'compare A vs B'. O coração do método é um loop: decompor a ideia em perguntas de viabilidade independentes (2-5), pesquisar as melhores abordagens (usando ferramentas de terminal, pesquisa web, ou leitura de código), construir protótipos mínimos em diretórios separados dentro de `spikes/`, e emitir um veredito (VALIDADO / PARCIAL / INVALIDADO). O skill enfatiza profundidade sobre velocidade testando casos de borda e gerando algo interativo (CLI, página HTML, ou endpoint) em vez de apenas logs. Ele também suporta spikes de comparação (ex.: 002a vs 002b) e modo 'Frontier' para sugerir o próximo spike a partir dos existentes. Se o sistema GSD completo estiver instalado, o skill prefere o workflow `gsd-spike` para persistência de estado; caso contrário, ele funciona como versão autônoma e leve.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Spike faz?

Use este skill quando o usuário quiser sentir uma ideia antes de se comprometer com uma implementação real — validando viabilidade, comparando abordagens ou revelando incógnitas que nenhuma quantidade de pesquisa responderá. Spikes são descartáveis por natureza. Jogue-os fora assim que pagarem sua dívida.

Carregue isto quando o usuário disser coisas como "deixa eu tentar isso", "quero ver se X funciona", "faz um spike disso", "antes de me comprometer com Y", "protótipo rápido de Z", "isso é sequer possível?", ou "compare A vs B".

Quando NÃO usar

  • A resposta é conhecível a partir de documentação ou leitura de código — apenas pesquise, não construa
  • O trabalho é caminho de produção — use o skill plan
  • A ideia já está validada — vá direto para a implementação

Se o usuário tiver o sistema GSD completo instalado

Se gsd-spike aparecer como um skill irmão (instalado via npx get-shit-done-cc --hermes), prefira gsd-spike quando o usuário quiser o fluxo de trabalho GSD completo: estado persistente em .planning/spikes/, rastreamento MANIFEST entre sessões, formato de veredito Dado/Quando/Então e padrões de commit que se integram com o resto do GSD. Este skill é a versão autônoma leve para usuários que não têm (ou não querem) o sistema completo.

Método principal

Independentemente da escala, cada spike segue este loop:

decompor  →  pesquisar  →  construir  →  veredito
   ↑__________________________________________↓
                  iterar sobre descobertas

1. Decompor

Divida a ideia do usuário em 2-5 perguntas de viabilidade independentes. Cada pergunta é um spike. Apresente-as como uma tabela com formatação Dado/Quando/Então:

#SpikeValida (Dado/Quando/Então)Risco
001websocket-streamingDada uma conexão WS, quando LLM transmite tokens, então o cliente recebe blocos < 100msAlto
002apdf-parse-pdfjsDado um PDF de várias páginas, quando analisado com pdfjs, então texto estruturado é extraívelMédio
002bpdf-parse-camelotDado um PDF de várias páginas, quando analisado com camelot, então texto estruturado é extraívelMédio

Tipos de spike:

  • padrão — uma abordagem respondendo a uma pergunta
  • comparação — mesma pergunta, abordagens diferentes (número compartilhado, sufixo de letra a/b/c)

Boas perguntas de spike: viabilidade específica com saída observável. Más perguntas de spike: muito amplas, sem saída observável, ou apenas "leia a documentação sobre X".

Ordene por risco. O spike com maior probabilidade de invalidar a ideia é executado primeiro. Não adianta prototipar as partes fáceis se a parte difícil não funcionar.

Pule a decomposição apenas se o usuário já souber exatamente o que quer testar e disser isso. Então aceite a ideia como um único spike.

2. Alinhar (para ideias com múltiplos spikes)

Apresente a tabela de spikes. Pergunte: "Construir tudo nesta ordem, ou ajustar?" Deixe o usuário remover, reordenar ou reformular antes de escrever qualquer código.

3. Pesquisar (por spike, antes de construir)

Spikes não são livres de pesquisa — você pesquisa o suficiente para escolher a abordagem certa, depois constrói. Por spike:

  1. Resuma. 2-3 frases: o que é este spike, por que é importante, risco principal.

  2. Apresente abordagens concorrentes se houver escolha real:

    AbordagemFerramenta/BibliotecaPrósContrasStatus
    ............mantida / abandonada / beta
  3. Escolha uma. Justifique. Se 2+ forem viáveis, construa variantes rápidas dentro do spike.

  4. Pule pesquisa para lógica pura sem dependências externas.

Use ferramentas Hermes para a etapa de pesquisa:

  • web_search("python websocket streaming libraries 2025") — encontre candidatos
  • web_extract(urls=["https://websockets.readthedocs.io/..."]) — leia a documentação real (retorna markdown)
  • terminal("pip show websockets | grep Version") — verifique o que está instalado no ambiente virtual do projeto

Para bibliotecas sem páginas de documentação, clone e leia o arquivo README.md / examples/ via read_file. Context7 MCP (se o usuário o tiver configurado) também é uma boa fonte — mcp_*_resolve-library-id depois mcp_*_query-docs.

4. Construir

Um diretório por spike. Mantenha-o autônomo.

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

Tendência para algo com que o usuário possa interagir. Spikes falham quando a única saída é uma linha de log que diz "funciona". O usuário quer sentir o spike funcionando. Opções padrão, em ordem de preferência:

  1. Uma CLI executável que recebe entrada e imprime saída observável
  2. Uma página HTML mínima que demonstra o comportamento
  3. Um pequeno servidor web com um endpoint
  4. Um teste unitário que exercita a pergunta com asserções reconhecíveis

Profundidade sobre velocidade. Nunca declare "funciona" após uma única execução de caminho feliz. Teste casos de borda. Siga descobertas surpreendentes. O veredito é confiável apenas quando a investigação foi honesta.

Evite a menos que o spike especificamente exija: gerenciamento complexo de pacotes, ferramentas de build/bundlers, Docker, arquivos de ambiente, sistemas de configuração. Codifique tudo na raça — é um spike.

Construindo um spike — uma sequência típica de ferramentas:

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")
# Observe a saída, itere.

Spikes de comparação paralela (002a / 002b) — delegue. Quando duas abordagens podem rodar em paralelo e ambas precisam de engenharia real (não protótipos de 10 linhas), distribua com delegate_task:

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

Cada subagente retorna seu próprio veredito; você escreve o confronto direto.

5. Veredito

O README.md de cada spike fecha com:

## Veredito: VALIDADO | PARCIAL | INVALIDADO

### O que funcionou
- ...

### O que não funcionou
- ...

### Surpresas
- ...

### Recomendação para a implementação real
- ...

VALIDADO = a pergunta central foi respondida sim, com evidências. PARCIAL = funciona sob as restrições X, Y, Z — documente-as. INVALIDADO = não funciona, por esta razão. Este é um spike bem-sucedido.

Spikes de comparação

Quando duas abordagens respondem à mesma pergunta (002a / 002b), construa-as em sequência, depois faça um confronto direto ao final:

## Confronto direto: pdfjs vs camelot

| Dimensão | pdfjs (002a) | camelot (002b) |
|-----------|--------------|----------------|
| Qualidade da extração | 9/10 estruturado | 7/10 apenas tabelas |
| Complexidade de setup | npm install, 1 linha | pip + ghostscript |
| Desempenho em PDF de 100 páginas | 3s | 18s |
| Lida com texto rotacionado | não | sim |

**Vencedor:** pdfjs para nosso caso de uso. camelot se precisarmos de extração focada em tabelas depois.

Modo Frontier (escolhendo o próximo spike)

Se spikes já existem e o usuário diz "qual deve ser o próximo spike?", percorra os diretórios existentes e procure por:

  • Riscos de integração — dois spikes validados que tocam no mesmo recurso, mas foram testados independentemente
  • Transferências de dados — a saída do spike A foi assumida compatível com a entrada do spike B, nunca provada
  • Lacunas na visão — capacidades assumidas, mas não comprovadas
  • Abordagens alternativas — ângulos diferentes para spikes PARCIAL ou INVALIDADO

Proponha 2-4 candidatos como Dado/Quando/Então. Deixe o usuário escolher.

Saída

  • Crie spikes/ (ou .planning/spikes/ se o usuário estiver usando convenções GSD) na raiz do repositório
  • Um diretório por spike: NNN-nome-descritivo/
  • README.md por spike captura pergunta, abordagem, resultados, veredito
  • Mantenha o código descartável — um spike que leva 2 dias para "limpar para produção" foi um spike ruim

Atribuição

Adaptado do fluxo de trabalho /gsd-spike do projeto GSD (Get Shit Done) — MIT © 2025 Lex Christopherson (gsd-build/get-shit-done). O sistema GSD completo oferece estado persistente de spikes, rastreamento MANIFEST e integração com um pipeline de desenvolvimento orientado a especificações mais amplo; instale com 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.

Habilidades Relacionadas