Community코딩 & 개발github.com

mattpocock/to-spec

현재 대화를 명세로 변환하여 프로젝트 이슈 트래커에 게시합니다: 인터뷰 없이, 논의된 내용을 종합합니다.

to-spec란 무엇인가요?

이 스킬은 AI 에이전트(예: Claude Code, Cursor, Codex)가 현재 대화 컨텍스트와 코드베이스 이해를 바탕으로 기능 명세를 자동 생성하고 프로젝트 이슈 트래커에 바로 게시할 수 있게 해줍니다. 사용자에게 추가 질문을 하지 않고 이미 논의된 내용만 종합하여 명세를 작성하므로, 개발자와의 인터뷰 과정을 생략하고 효율적으로 요구사항을 문서화합니다. 지원하는 이슈 트래커와 triage 레이블 어휘는 사전에 설정되어야 하며, 설정이 안 된 경우 `/setup-matt-pocock-skills` 명령을 안내합니다. 명세 템플릿은 문제 설명, 해결 방안, 사용자 스토리, 구현 결정 사항, 테스트 결정 사항, 범위 외 항목, 추가 노트로 구성되어 있으며, 코드베이스의 기존 테스트 지점과 ADR(Architecture Decision Records)을 존중합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mattpocock/skills/tree/main/skills/engineering/to-spec

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

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

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

문서

이 스킬은 현재 대화 컨텍스트와 코드베이스 이해를 바탕으로 명세를 생성합니다. 사용자에게 인터뷰하지 말고, 이미 알고 있는 내용만 종합하세요.

이슈 트래커와 triage 레이블 어휘가 사전에 제공되어 있어야 합니다. 그렇지 않은 경우, 사용자에게 /setup-matt-pocock-skills를 실행하라고 안내하세요.

프로세스

  1. 아직 탐색하지 않았다면, 저장소를 탐색하여 코드베이스의 현재 상태를 이해하세요. 명세 전체에 프로젝트 도메인 용어집의 용어를 사용하고, 해당 영역과 관련된 ADR을 존중하세요.

  2. 기능을 테스트할 지점(seam)을 스케치하세요. 기존 지점을 새 지점보다 우선시하세요. 가능한 가장 높은 지점을 사용하세요. 새 지점이 필요한 경우, 가능한 가장 높은 지점에서 제안하세요. 코드베이스 전체에 지점이 적을수록 좋습니다. 이상적인 개수는 하나입니다.

사용자에게 이러한 지점이 기대치와 일치하는지 확인하세요.

  1. 아래 템플릿을 사용하여 명세를 작성한 후, 프로젝트 이슈 트래커에 게시하세요. 추가 triage 없이 ready-for-agent triage 레이블을 적용하세요.

문제 설명

사용자가 직면한 문제를 사용자 관점에서 설명합니다.

해결 방안

사용자 관점에서 문제에 대한 해결 방안을 설명합니다.

사용자 스토리

긴 번호 목록의 사용자 스토리입니다. 각 사용자 스토리는 다음 형식을 따라야 합니다:

  1. <행위자>로서, 나는 <기능>을 원합니다, 그래서 <혜택>을 얻을 수 있습니다.

<사용자-스토리-예시>

  1. 모바일 뱅킹 고객으로서, 나는 내 계좌의 잔액을 확인할 수 있기를 원합니다, 그래서 지출에 대해 더 나은 결정을 내릴 수 있습니다. </사용자-스토리-예시>

이 사용자 스토리 목록은 매우 광범위해야 하며 기능의 모든 측면을 다루어야 합니다.

구현 결정 사항

내려진 구현 결정 사항 목록입니다. 여기에는 다음이 포함될 수 있습니다:

  • 빌드/수정될 모듈
  • 수정될 해당 모듈의 인터페이스
  • 개발자의 기술적 설명
  • 아키텍처 결정
  • 스키마 변경
  • API 계약
  • 특정 상호 작용

특정 파일 경로나 코드 스니펫은 포함하지 마세요. 빠르게 구식이 될 수 있습니다.

예외: 프로토타입이 코드 스니펫을 생성하여 결정 사항을 산문보다 더 정확하게 인코딩하는 경우(상태 머신, 리듀서, 스키마, 타입 형태), 관련 결정 사항 내에 인라인으로 포함하고 프로토타입에서 왔음을 간략히 언급하세요. 작동하는 데모가 아닌 결정에 중요한 부분만 남기세요. 중요한 부분만 간추리세요.

테스트 결정 사항

내려진 테스트 결정 사항 목록입니다. 다음을 포함하세요:

  • 좋은 테스트의 기준에 대한 설명 (외부 동작만 테스트하고 구현 세부 사항은 테스트하지 않음)
  • 테스트될 모듈
  • 테스트의 선례 (즉, 코드베이스 내 유사한 유형의 테스트)

범위 외 항목

이 명세의 범위를 벗어나는 사항들에 대한 설명입니다.

추가 노트

기능에 대한 추가 노트입니다.

Individual skills in this repo

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

mattpocock/ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

mattpocock/caveman

Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman.

mattpocock/claude-handoff

Hand the current conversation off to a fresh background agent that picks up the work immediately.

mattpocock/codebase-design

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

mattpocock/design-an-interface

Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".

mattpocock/diagnose

Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.

mattpocock/diagnosing-bugs

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.

mattpocock/domain-modeling

Build and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.

mattpocock/edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

mattpocock/git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

mattpocock/grilling

Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.

mattpocock/grill-me

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

mattpocock/grill-with-docs

Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.

mattpocock/handoff

Compact the current conversation into a handoff document for another agent to pick up.

mattpocock/implement

Implement a piece of work based on a PRD or set of issues.

mattpocock/implement-spec

Implement a specification in code.

mattpocock/improve-codebase-architecture

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

mattpocock/loop-me

Grill me about specs for the workflows I want to build, within this workspace.

mattpocock/migrate-to-shoehorn

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

mattpocock/obsidian-vault

Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.

관련 스킬