Communitygithub.com

Prove It (증명하기)

사용자가 `/prove-it`를 실행하거나 'prove it', '변경사항 증명', '브라우저에서 보여줘' 등 변경사항 증명을 요청할 때 사용합니다. 단순히 '완료'라고 말하려는 상황이나 타입 변경, 문서 변경 등 동작 증명이 필요 없는 작업에는 사용하지 마세요.

Prove It (증명하기)란 무엇인가요?

이 스킬은 AI 에이전트가 실제로 변경사항을 사용자 관점에서 증명하도록 강제하는 규칙 기반 워크플로우입니다. 사용자가 명시적으로 요청한 경우에만 활성화되며, UI 변경은 브라우저에서 클릭, 입력, 제출, 탐색을 통해 검증하고 서버/API 변경은 사용자와 협의하여 적절한 방법(기존 예제, curl 스크립트 등)을 선택합니다. 핵심 원칙은 '테스트 통과'나 '스크린샷 하나'만으로 증명되었다고 말하지 않는 것이며, 증명에 실패하면 '증명되지 않음'이라고 명확히 보고합니다. Claude Code, Cursor, Codex 등 모든 AI 코딩 에이전트에서 사용할 수 있으며, 작업 후 반드시 시작한 서버를 중단하고 증명 보고서(선택적)를 `.agent/scratch/prove-it.md`에 기록합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AlemTuzlak/skills/tree/HEAD/skills/prove-it

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Prove It (증명하기)은(는) 무엇을 하나요?

변경사항을 사용자가 사용하는 방식 그대로 증명하세요. 증명 없이 "잘 작동합니다"라고 말하지 마세요.

이 스킬은 '완료' 시 자동으로 로드되지 않습니다. 사용자가 요청해야 합니다. 다른 스킬을 로드하지 않습니다.

사용 시기

사용자가 다음과 같이 요청할 때 이 스킬을 로드하세요:

  • /prove-it 실행
  • "prove it", "변경사항 증명", "브라우저에서 보여줘" 또는 동일한 의도의 표현 (첫 메시지에 포함된 경우 포함)

사용자가 요청하지 않았다면 건너뛰세요. 타입 전용, 주석, lockfile, 동작이 없는 문서는 건너뛰세요.

엄격한 제한 (Hard Gates)

  1. 사용자가 요청했는가? 증명을 요청하지 않았다면 이 스킬은 실행되지 않습니다.
  2. '작동한다', '완료되었다', '수정되었다'고 말하지 마세요 — 이 스킬이 실제로 증명하기 전까지는. 건너뛰었다는 것은 증명되지 않음을 의미합니다.
  3. 한 화면의 스크린샷은 증명이 아닙니다. 클릭, 입력, 제출, 탐색하세요.
  4. 새 패키지, 의존성, 예제 앱, 브라우저 러너를 추가하지 마세요 — 사용자가 해당 옵션을 선택하고 동의한 경우는 예외입니다.
  5. 이 스킬이 시작한 모든 서버를 중단하세요. dev / preview를 실행 중인 상태로 두지 마세요.

UI vs 서버

  • UI (페이지, 컴포넌트, 라우트, 폼, 보이는 상태): 브라우저에서 증명하세요.
  • 서버 / API / 화면이 없는 라이브러리: 증명 방법을 질문하세요. 조용히 선택하지 마세요.
  • 둘 다: UI는 브라우저에서 증명하고, 서버 부분은 증명 방법을 질문하세요.

절차

절차 1: 분류

  1. 대상 목록을 만드세요: UI, 서버/API, 또는 둘 다.
  2. UI → 절차 2.
  3. 서버/API → 절차 3.
  4. 둘 다 → 절차 2, 그 다음 API에 대해 절차 3.

절차 2: 브라우저 (UI)

  1. 앱이 실행 중이 아니라면, 기존 명령어만 시작하세요 (dev, preview, 저장소에 문서화된 시작 명령어). 명령어가 없으면 UI를 증명할 수 없다고 말하세요. 건너뛰기 또는 사용자가 앱을 직접 시작하도록 제안하세요.
  2. 사용자처럼 사용하세요:
    • 클릭, 입력, 제출, 탐색
    • 이 상태를 공유하는 모든 라우트/페이지
    • 이 변경사항이 있다면 빈 상태 UI와 에러 UI
    • 레이아웃이나 CSS가 변경되었다면 데스크탑과 좁은 뷰포트 모두
  3. 해피 패스뿐만 아니라 문제점을 찾으세요.
  4. 채팅에서 수행한 작업과 본 결과를 말하세요. "좋아 보입니다"라고 단계 없이 말하지 마세요.
  5. 이 스킬이 시작한 경우 1단계의 프로세스를 중단하세요.
  6. 절차 4.

절차 3: 질문 (서버 / API)

  1. 멈추세요. 2~3개의 옵션을 보여주세요. 합리적인 첫 번째 선택을 맨 앞에 두세요. 항상 **건너뛰기(skip)**를 포함하세요.
    • 기존 예제 / 플레이그라운드 / 데모
    • 새 API를 사용하는 예제 앱 (위치와 새 패키지/의존성 확인 후에만)
    • 실행 중인 서버에 대한 curl 또는 작은 스크립트
    • 건너뛰기
  2. 기다리세요. 사용자가 선택할 때까지 빌드하거나 실행하지 마세요.
  3. 건너뛰기(skip): 증명되지 않음이라고 말하세요. 작동한다고 말하지 마세요. 중단하세요 (절차 4 없음).
  4. 기존 플레이그라운드: 실행한 후, UI가 있다면 브라우저에서 증명하고, 스크립트라면 명령어 출력을 보여주세요.
  5. 예제 앱: 위치를 물어보세요. 기존 예제를 선호하세요. 사용자가 동의하지 않으면 패키지나 의존성을 추가하지 마세요. 그런 다음 실행하고 증명하세요.
  6. curl/스크립트: 실행하세요. 종료 코드와 주장을 증명하는 출력 부분을 인용하세요.
  7. 절차 4.

절차 4: 선택적 보고서

  1. 실제 증명 후에 물어보세요: 스크린샷 보고서를 작성할까요? 기본값은 아니오입니다.
  2. 아니오: 중단하세요. 채팅에 이미 증거가 있습니다.
  3. 예: .agent/scratch/prove-it.md를 작성하세요 (덮어쓰기). .agent/scratch/가 없으면 gitignore에 추가하세요 (다른 스크래치 파일과 동일). 클릭한 내용과 스크린샷을 포함하세요. 파일을 여세요. 커밋하지 마세요.
  4. 증명 건너뛰기 → 보고서 없음.

절차 5: 중단

증명 또는 건너뛰기 후, 중단하세요. 이 스킬에서 관련 없는 작업을 시작하지 마세요.

결정 트리

  • 사용자가 증명을 요청하지 않음 → 이 스킬이 적용되지 않습니다.
  • UI → 절차 2 → 4 → 5.
  • 서버/API → 절차 3 → 4 → 5 (건너뛰기는 3에서 종료).
  • 둘 다 → 절차 2, 그 다음 절차 3, 그 다음 4 → 5.
  • 시작 명령어가 없고 앱이 실행 중이 아님 → UI를 증명할 수 없다고 말하세요. 건너뛰거나 사용자가 시작하세요.
  • 사용자가 건너뛰기 선택 → 증명되지 않음. 성공 주장 금지.

위험 신호 (Red Flags)

신호의미대신 할 것
테스트 통과로 완료되었다고 말함이 스킬이 요청되지 않았거나 증명이 건너뛰어짐절차 2 또는 3 이후에만 증명되었다고 주장
스크린샷 하나, 클릭 없음사용자 경로가 아님절차 2 단계 2
사용자가 선택하기 전에 examples/foo 빌드요청되지 않은 앱절차 3. 기다리세요.
Playwright / 새 서버 추가새 의존성기존 시작 명령어만 사용
pnpm dev를 실행 상태로 둠와처가 켜져 있음엄격한 제한 5
"건너뛰지만 작동합니다"건너뛰기를 주장으로 전환증명되지 않음이라고 말함
docs/에 보고서 파일 생성제품 문서.agent/scratch/prove-it.md
사용자가 '아니오'라고 했는데 보고서 열기요청되지 않은 파일절차 4 기본값 '아니오'
새 공개 API에 대해 페이지만 증명서버 부분이 조용히 건너뛰어짐API에 대해 절차 3

오류 처리

  • 브라우저 도구 없음: 여기서 UI를 증명할 수 없다고 말하세요. 건너뛰기 또는 URL에서 기다리는 동안 사용자가 직접 클릭하도록 제안하세요. 스크린샷을 위조하지 마세요.
  • 시작 명령어 실패: 오류를 인용하세요. UI가 작동한다고 말하지 마세요. 수정 또는 건너뛰기를 제안한 후 다시 증명하세요.
  • 증명 실패 (클릭이 잘못된 동작, curl이 200이 아님): 증명되지 않음이라고 말하세요. 무엇이 실패했는지 명시하세요. 완료되었다고 말하지 마세요.
  • 사용자가 예제 앱을 선택했지만 새 패키지를 거부: curl, 기존 예제, 또는 건너뛰기를 사용하세요. 어쨌든 패키지를 추가하지 마세요.
  • 스크래치 파일 쓰기 실패: 증거를 채팅에 유지하세요. 보고서 파일이 작성되지 않았다고 말하세요.

다른 것은 참고하지 마세요. 채팅이 기본 증거입니다. 마크다운 파일은 선택 사항입니다.

Individual skills in this repo

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

AlemTuzlak/skills

Use when the user wants to write a blog post about a feature, product change, PR, git diff, or any technical topic - accepts marketing briefs, PRs, git refs, codebase paths, or freeform descriptions as input

AlemTuzlak/skills

Use when the user wants to generate a changelog, release notes, or document what changed between versions, tags, or PRs

AlemTuzlak/skills

Use when writing, editing, or organizing documentation, when planning what docs a feature needs, and whenever planning or implementing a new feature or change in a repo (docs ship with the code). Also use when tempted to write docs without showing the discovered readers to the user, without asking for tone, or without loading simple-english and i-have-adhd. Triggers on "write docs for X", "document this feature", "add a guide", "update the docs", "reorganize the docs", "plan feature X", "implement X", or /docs.

AlemTuzlak/skills

Use when a bug is in play: a test fails, CI is red, an API returns the wrong result, a stack trace appears, or the user says it is broken or fix this. Don't use for a new feature with no failure, for types-only work, or for docs.

AlemTuzlak/skills

Use when the user invokes /i-have-adhd, says they have ADHD, or asks for ADHD-friendly output. Also used as a required writing filter by the docs skill. Don't use for marketing copy or after the user says "stop adhd mode" or "normal mode".

AlemTuzlak/skills

Use when a settled change must be turned into an ordered stack of small blocks before anyone implements. Don't use for unsettled intent, typos, comments, formatting, docs-only work, or writing the implementation itself.

AlemTuzlak/skills

Use when the user wants to write a product update email, feature announcement newsletter, or digest email for users or subscribers

AlemTuzlak/skills

Use when the user wants to turn a raw talking-head / screen-share recording into a finished, edited, annotated video plus a full content package. Removes silences, flags mistakes for the user to cut, transcribes, adds transcript-synced overlays (code, on-screen code highlights, word highlights, lists, comparisons, diagrams, section labels, punch-in zooms), renders with original audio, then generates blog/socials/YouTube content. Triggers on "produce a video", "edit my video", "annotate my recording", "/produce-video".

AlemTuzlak/skills

Use when the user wants to write, draft, or author an RFC (Request for Comments) / technical design doc for a feature, change, or architectural decision. Interactively interviews the user, grounds the proposal in the actual codebase, presents 2-3 concrete API/code-snippet approaches to choose from, then writes a review-ready RFC. Triggers on "write an RFC", "draft an RFC", "RFC for X", "design doc for X", or /rfc.

AlemTuzlak/skills

Use when the user wants to deeply learn a new topic from scratch. Runs a pre-interview (current knowledge, end-goal proficiency, depth, practice load, background, scope), researches online (articles, niche-influencer blogs, canonical docs, subtopic landscape), then produces a structured markdown course with mandatory visual diagrams, evidence-based learning-science features (retrieval practice, spaced callbacks, worked-example fading, concept ledger, jargon gate, analogy hygiene), and a self-contained interactive HTML mini-course. Triggers on /teach-me, "teach me about X", "I want to learn X", "deep dive on X", "create a course on X", "study X with me".

AlemTuzlak/skills

Use when the change intent is already settled and the agent must map what a behavior change touches before an implementation plan or any code. Use for new features, bug fixes, and refactors that move a boundary. Don't use for typos, comments, formatting, lockfile-only diffs, docs with no code, or while the user is still deciding what they want.

AlemTuzlak/skills

Use when the user wants to transcribe a video or audio file to text with word-level timestamps — spins up a self-contained local Whisper (whisper.cpp) Docker service bundled in this skill and returns transcript.txt, transcript.srt, and word-level transcript.words.json. Also used as a building block by /produce-video. Triggers on "transcribe this video", "get a transcript", "transcribe-video".

AlemTuzlak/skills

Use when the user wants to write a video script for a product demo, feature walkthrough, launch video, or social media video about a feature or product change

AlemTuzlak/skills

Use when the user wants YouTube metadata for a video — a click-worthy title, an SEO/above-the-fold description, tags, and timestamped chapters. Accepts a transcript (ideally timestamped SRT), a topic, a PR, or a freeform description. Used standalone and by /produce-video. Triggers on "youtube title", "youtube description", "youtube chapters", "youtube tags", "youtube metadata", "youtube-copy".

관련 스킬