본문으로 건너뛰기
cccskills
무료GitHub에 공개한국어 소개

spike

본격적인 개발 전에 일회성 시제품으로 아이디어의 실현 가능성을 검증합니다. 질문 정리부터 조사와 실행 실험, 방식 비교, 결과와 제약 기록까지 진행합니다.

원문원문 설명 보기

Throwaway experiments to validate an idea before build.

AI 평가90점/ 100설치 방법 보기

이럴 때 유용합니다

  • 아이디어의 실현 가능성을 시험할 때
  • 시제품으로 라이브러리를 비교할 때
  • 개발 전에 위험한 가정을 검증할 때
  • 실험 결과로 다음 검증 대상을 정할 때

한국어 소개

할 수 있는 일

본격적인 구현 전에 일회성 시제품으로 아이디어의 실현 가능성을 확인합니다. 모호한 구상을 관찰 가능한 질문으로 나누고 위험이 큰 항목부터 조사와 실험을 진행합니다. 명령줄 조작이나 작은 HTML 페이지처럼 동작을 직접 확인할 수 있는 형태를 우선합니다. 결과는 README.md에 검증됨, 조건부 성립, 검증 실패로 판정하고 근거와 제약을 기록합니다.

이럴 때 유용합니다

자료를 읽는 것만으로는 특정 방식이 실제로 작동할지 판단하기 어려울 때 적합합니다. 같은 질문으로 여러 라이브러리나 구현 방식을 비교할 수 있습니다. 기존 실험에서 검증하지 않은 연동 부분과 데이터 전달 문제를 찾고, 일반적인 성공 사례뿐 아니라 경계 조건도 확인합니다. 결과를 바탕으로 다음 검증 과제도 제안합니다.

사용 예시

  • “개발을 시작하기 전에 이 아이디어가 가능한지 시험해 주세요.”
  • “PDF 추출 방식 두 가지를 시제품으로 만들고 결과를 비교해 주세요.”
  • “기존 실험을 바탕으로 다음 검증 과제를 제안해 주세요.”

주의 사항

시제품 코드는 사용 후 버리는 것을 전제로 하며 실제 운영용 구현에 쓰지 않습니다. 문서나 기존 코드만 읽어도 답을 알 수 있는 과제는 대상에서 제외합니다. 여러 실험은 착수 전에 순서와 범위를 확인합니다. 필요한 라이브러리와 실행 환경은 검증 대상에 따라 달라집니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

객관 평가

AI가 SKILL.md의 내용만을 근거로 4가지 관점에서 판정했습니다. 스타 수나 인기도는 판정에 넣지 않았습니다.

지시의 명확성언제 쓰고 무엇을 하는지 알 수 있는가
A양호실현 가능성 검증에 사용하며 실제 운영용 구현과 문서나 코드만으로 답할 수 있는 과제는 제외한다고 명시합니다.
절차의 구체성절차·입출력·예시가 구체적으로 적혀 있는가
A양호질문 분해, 조사, 시제품 제작, 판정 절차와 README.md 기록 형식을 제공합니다.
안전성전송·삭제·명령 실행 등을 명시하고 있는가
B일부 부족여러 실험의 범위 확인은 요구하지만 명령 실행이나 파일 쓰기의 확인 조건은 정하지 않습니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
A양호단독으로 사용할 수 있고 고정된 추가 도구가 필수는 아니며 각 실험 전에 의존성을 조사합니다.

총점은 각 항목을 A=25점, B=15점, C=5점으로 더한 값입니다. 2026년 10월 20일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

포함된 파일(1)

  • SKILL.md8.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Spike

Use this skill when the user wants to feel out an idea before committing to a real build — validating feasibility, comparing approaches, or surfacing unknowns that no amount of research will answer. Spikes are disposable by design. Throw them away once they've paid their debt.

Load this when the user says things like "let me try this", "I want to see if X works", "spike this out", "before I commit to Y", "quick prototype of Z", "is this even possible?", or "compare A vs B".

When NOT to use this

  • The answer is knowable from docs or reading code — just do research, don't build
  • The work is production path — use the plan skill instead
  • The idea is already validated — jump straight to implementation

If the user has the full GSD system installed

If gsd-spike shows up as a sibling skill (installed via npx get-shit-done-cc --hermes), prefer gsd-spike when the user wants the full GSD workflow: persistent .planning/spikes/ state, MANIFEST tracking across sessions, Given/When/Then verdict format, and commit patterns that integrate with the rest of GSD. This skill is the lightweight standalone version for users who don't have (or don't want) the full system.

Core method

Regardless of scale, every spike follows this loop:

decompose  →  research  →  build  →  verdict
   ↑__________________________________________↓
                  iterate on findings

1. Decompose

Break the user's idea into 2-5 independent feasibility questions. Each question is one spike. Present them as a table with Given/When/Then framing:

#SpikeValidates (Given/When/Then)Risk
001websocket-streamingGiven a WS connection, when LLM streams tokens, then client receives chunks < 100msHigh
002apdf-parse-pdfjsGiven a multi-page PDF, when parsed with pdfjs, then structured text is extractableMedium
002bpdf-parse-camelotGiven a multi-page PDF, when parsed with camelot, then structured text is extractableMedium

Spike types:

  • standard — one approach answering one question
  • comparison — same question, different approaches (shared number, letter suffix a/b/c)

Good spike questions: specific feasibility with observable output. Bad spike questions: too broad, no observable output, or just "read the docs about X".

Order by risk. The spike most likely to kill the idea runs first. No point prototyping the easy parts if the hard part doesn't work.

Skip decomposition only if the user already knows exactly what they want to spike and says so. Then take their idea as a single spike.

2. Align (for multi-spike ideas)

Present the spike table. Ask: "Build all in this order, or adjust?" Let the user drop, reorder, or re-frame before you write any code.

3. Research (per spike, before building)

Spikes are not research-free — you research enough to pick the right approach, then you build. Per spike:

  1. Brief it. 2-3 sentences: what this spike is, why it matters, key risk.

  2. Surface competing approaches if there's real choice:

    ApproachTool/LibraryProsConsStatus
    ............maintained / abandoned / beta
  3. Pick one. State why. If 2+ are credible, build quick variants within the spike.

  4. Skip research for pure logic with no external dependencies.

Use Hermes tools for the research step:

  • web_search("python websocket streaming libraries 2025") — find candidates
  • web_extract(urls=["https://websockets.readthedocs.io/..."]) — read the actual docs (returns markdown)
  • terminal("pip show websockets | grep Version") — check what's installed in the project's venv

For libraries without docs pages, clone and read their README.md / examples/ via read_file. Context7 MCP (if the user has it configured) is also a good source — mcp_*_resolve-library-id then mcp_*_query-docs.

4. Build

One directory per spike. Keep it standalone.

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

Bias toward something the user can interact with. Spikes fail when the only output is a log line that says "it works." The user wants to feel the spike working. Default choices, in order of preference:

  1. A runnable CLI that takes input and prints observable output
  2. A minimal HTML page that demonstrates the behavior
  3. A small web server with one endpoint
  4. A unit test that exercises the question with recognizable assertions

Depth over speed. Never declare "it works" after one happy-path run. Test edge cases. Follow surprising findings. The verdict is only trustworthy when the investigation was honest.

Avoid unless the spike specifically requires it: complex package management, build tools/bundlers, Docker, env files, config systems. Hardcode everything — it's a spike.

Building one spike — a typical tool sequence:

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 && python main.py")
# Observe output, iterate.

Parallel comparison spikes (002a / 002b) — delegate. When two approaches can run in parallel and both need real engineering (not 10-line prototypes), fan out with delegate_task:

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

Each subagent returns its own verdict; you write the head-to-head.

5. Verdict

Each spike's README.md closes with:

## Verdict: VALIDATED | PARTIAL | INVALIDATED

### What worked
- ...

### What didn't
- ...

### Surprises
- ...

### Recommendation for the real build
- ...

VALIDATED = the core question was answered yes, with evidence. PARTIAL = it works under constraints X, Y, Z — document them. INVALIDATED = doesn't work, for this reason. This is a successful spike.

Comparison spikes

When two approaches answer the same question (002a / 002b), build them back to back, then do a head-to-head comparison at the end:

## Head-to-head: pdfjs vs camelot

| Dimension | pdfjs (002a) | camelot (002b) |
|-----------|--------------|----------------|
| Extraction quality | 9/10 structured | 7/10 table-only |
| Setup complexity | npm install, 1 line | pip + ghostscript |
| Perf on 100-page PDF | 3s | 18s |
| Handles rotated text | no | yes |

**Winner:** pdfjs for our use case. Camelot if we need table-first extraction later.

Frontier mode (picking what to spike next)

If spikes already exist and the user says "what should I spike next?", walk the existing directories and look for:

  • Integration risks — two validated spikes that touch the same resource but were tested independently
  • Data handoffs — spike A's output was assumed compatible with spike B's input; never proven
  • Gaps in the vision — capabilities assumed but unproven
  • Alternative approaches — different angles for PARTIAL or INVALIDATED spikes

Propose 2-4 candidates as Given/When/Then. Let the user pick.

Output

  • Create spikes/ (or .planning/spikes/ if the user is using GSD conventions) in the repo root
  • One dir per spike: NNN-descriptive-name/
  • README.md per spike captures question, approach, results, verdict
  • Keep the code throwaway — a spike that takes 2 days to "clean up for production" was a bad spike

Attribution

Adapted from the GSD (Get Shit Done) project's /gsd-spike workflow — MIT © 2025 Lex Christopherson (gsd-build/get-shit-done). The full GSD system offers persistent spike state, MANIFEST tracking, and integration with a broader spec-driven development pipeline; install with npx get-shit-done-cc --hermes --global.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

1password

무료요약 있음AI 평가 100점

1Password에 저장한 비밀번호와 API 키를 명령과 설정 템플릿에 사용합니다. CLI 설치와 인증부터 비밀 값 조회 및 환경 변수 전달까지 안내합니다.

  • 1Password CLI 설치와 설정
  • 저장된 API 키로 명령 실행
  • 설정 템플릿에 비밀 값 삽입
NousResearch/hermes-agent25.5만2026년 10월 19일 업데이트

3-statement-model

무료요약 있음AI 평가 90점

손익계산서·재무상태표·현금흐름표를 수식으로 연결한 Excel 모델을 만듭니다. 실적과 예측 가정을 입력하고 시나리오를 비교하며 세 재무제표의 일관성을 단계별로 확인합니다.

  • 재무 템플릿에 실적 입력
  • 세 재무제표가 연동되는 예측 작성
  • 기본·상향·하향 시나리오 비교
NousResearch/hermes-agent25.5만2026년 10월 19일 업데이트

accelerate

무료요약 있음AI 평가 80점

기존 PyTorch 학습 코드를 적은 수정으로 여러 GPU나 컴퓨터에 맞게 구성합니다. 혼합 정밀도, 메모리 절약 설정과 학습 실행 방법을 안내합니다.

  • 단일 GPU 학습을 여러 GPU로 옮깁니다
  • 혼합 정밀도 학습을 설정합니다
  • DeepSpeed나 FSDP로 메모리를 절약합니다
NousResearch/hermes-agent25.5만2026년 10월 19일 업데이트

actual-setup

무료요약 있음AI 평가 100점

Hermes에서 Actual Computer로 자신의 기기에 AI 모델을 실행하도록 연결을 설정합니다. 중계 서비스와 로컬 연결, 모델 선택, 응답 확인 및 오류 점검을 다룹니다.

  • Actual 키로 Hermes를 연결합니다
  • 자신의 기기에서 모델을 실행합니다
  • 로컬 모델을 찾아 내려받고 불러옵니다
NousResearch/hermes-agent25.5만2026년 10월 19일 업데이트

adversarial-ux-test

무료요약 있음AI 평가 80점

기술에 익숙하지 않고 쉽게 불만을 느끼는 사용자로 앱을 시험합니다. 혼란스러운 조작과 이탈 원인을 찾고, 개선 과제와 개인적 불만을 나눠 수정안을 정리합니다.

  • 출시나 시연 전에 사용성을 확인합니다
  • 신규 사용자의 경험을 점검합니다
  • 가입과 결제 과정의 어려움을 찾습니다
NousResearch/hermes-agent25.5만2026년 10월 19일 업데이트

agent-merge-conflict-arbiter

무료요약 있음AI 평가 100점

두 에이전트가 각각 수정한 브랜치의 Git 충돌을 양쪽 변경 내용과 의도에 따라 중립적으로 해결합니다. 충돌별 판단 이유를 기록하고 빌드나 테스트로 통합 결과를 확인합니다.

  • 두 에이전트의 브랜치 충돌 해결
  • 병렬 worktree의 변경 내용 통합
  • 충돌하는 설계 판단의 이유 확인
NousResearch/hermes-agent25.5만2026년 10월 19일 업데이트

NousResearch의 스킬 모두 보기

이 스킬의 문제 신고