Communityコーディング&開発github.com

mattpocock/to-spec

現在の会話を仕様書に変換し、プロジェクトのイシュートラッカーに公開します。インタビューは不要で、これまでに話し合った内容を統合するだけです。

to-spec とは?

このスキルは、現在の会話コンテキストとコードベースの理解を基に、形式ばった仕様書を作成し、プロジェクトのイシュートラッカーに公開するためのエージェントスキルです。開発者はこのスキルを使うことで、設計や要件定義のための追加インタビューを避け、すでに行った会話から直接的に実装可能な仕様を生成できます。主にClaude Codeや類似のAIエージェント向けに設計されており、GitHub Issuesなどのイシュートラッカーと連携します。プロセスは、コードベースの探索、テストシームの特定とユーザー確認、そして所定のテンプレートを使った仕様書作成と公開の3ステップで構成され、`ready-for-agent`トリアージラベルが自動的に適用されます。

対応~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に質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

このスキルは、現在の会話コンテキストとコードベースの理解を基に仕様書を生成します。ユーザーにインタビューせず、すでに分かっている知識を統合してください。

イシュートラッカーとトリアージラベルの語彙は、事前に提供されている必要があります。提供されていない場合は、ユーザーに /setup-matt-pocock-skills を実行するよう伝えてください。

プロセス

  1. まだ行っていない場合は、コードベースの現在の状態を理解するためにリポジトリを探索します。仕様書全体でプロジェクトのドメイン用語集の語彙を使用し、対象領域に関連するADR(Architecture Decision Records)を尊重します。

  2. 機能をテストするためのシーム(テスト境界)をスケッチします。既存のシームを優先し、新しいシームは必要最小限にします。最も高い(抽象度の高い)シームを使用してください。新しいシームが必要な場合は、可能な限り高い位置に提案します。コードベース全体のシーム数は少ないほど良く、理想は1つです。

これらのシームがユーザーの期待と一致しているかを確認します。

  1. 以下のテンプレートを使用して仕様書を書き、プロジェクトのイシュートラッカーに公開します。ready-for-agent トリアージラベルを適用してください。追加のトリアージは不要です。

問題文

ユーザーが直面している問題を、ユーザーの視点から記述します。

解決策

問題に対する解決策を、ユーザーの視点から記述します。

ユーザーストーリー

ユーザーストーリーの長い番号付きリスト。各ユーザーストーリーは以下の形式とします:

  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.

関連スキル