本文へ移動
cccskills
無料GitHub で公開

spec-test

仕様駆動設計。仕様書からクラス責務を分析し、純粋関数を特定、テストファーストで単体テストを設計する。既存Planに追記。

インストール方法を見る

含まれるファイル(2)

  • SKILL.md4.9 KB
  • scripts/analyze.sh7.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Spec-Driven Design (仕様駆動設計)

仕様書を受け取り、テストファーストでクラス設計と単体テストを設計し、既存のPlanドキュメントに自動追記するスキル。


自動実行フロー

このスキルが呼び出されたら、以下を自動で実行する:

1. 対象Planファイルを特定

  • 引数でPlanファイルのパスが指定されていればそれを使用
  • 指定がなければユーザーに確認

2. 仕様書を分析

引数で渡された仕様書(または直前の会話で提示された仕様)を分析し、以下を抽出:

  • ドメインモデル: Entity, Value Object, Domain Event
  • クラス設計: 責任、メソッド、依存関係
  • 純粋関数: バリデーション、変換、判定、選択、計算、構築
  • テストケース: 同値クラス、境界値、エラーケース

3. 既存Planに追記

分析結果をEditツールで既存Planファイルの末尾に追記する。

4. 完了報告

追記した内容のサマリーを報告。


追記フォーマット

以下のフォーマットでPlanファイルに追記する:

---

## 仕様駆動設計: <機能名>

### ドメインモデル

#### Entities

| Entity | 識別子 | 主要属性 | 振る舞い |
|--------|--------|---------|---------|
| <名前> | <ID> | <属性> | <メソッド> |

#### Value Objects

| VO | 属性 | 不変条件 |
|----|------|---------|
| <名前> | <属性> | <制約> |

#### Domain Events

| Event | トリガー | ペイロード |
|-------|---------|-----------|
| <名前> | <発火条件> | <データ> |

### クラス設計

#### 1. <ClassName>

**責任:** <単一責任を1文で>

| メソッド | 入力 | 出力 | 副作用 | 純粋? |
|---------|------|------|--------|-------|
| <名前> | <型> | <型> | <内容> | ✅/❌ |

**依存:** <インターフェース名>

### 純粋関数一覧 ⭐

| 関数 | カテゴリ | 入力 | 出力 | 場所 |
|------|---------|------|------|------|
| `<名前>` | <カテゴリ> | <型> | <型> | <ファイルパス> |

### 単体テスト設計 ⭐

#### 純粋関数テスト: `<関数名>`

| ID | カテゴリ | 入力 | 期待結果 | 説明 |
|----|---------|------|---------|------|
| EQ-01 | 同値 | <値> | <結果> | <説明> |
| BV-01 | 境界 | <値> | <結果> | <説明> |
| ERR-01 | エラー | <値> | <結果> | <説明> |

#### クラステスト: `<ClassName>`

| ID | メソッド | シナリオ | 事前条件 | 入力 | 期待結果 | モック |
|----|---------|---------|---------|------|---------|--------|
| C-01 | <メソッド> | <シナリオ> | <状態> | <値> | <結果> | <依存> |

**テスト観点:**
- 状態遷移: 初期状態 → メソッド実行 → 期待状態
- 不変条件: 常に満たすべき制約
- 境界条件: 状態の境界でのふるまい
- 異常系: 例外、エラーハンドリング

### 保守性チェック

#### SOLID原則
- [ ] S: 単一責任 - クラスの変更理由は1つか?
- [ ] O: 開放閉鎖 - 拡張に開き、修正に閉じているか?
- [ ] D: 依存性逆転 - 具象ではなく抽象に依存しているか?

#### テスタビリティ
- [ ] 依存は注入可能か?
- [ ] 副作用は分離されているか?
- [ ] 外部APIはインターフェース経由か?

### テストファースト実装順序

1. [ ] Layer 1: 純粋関数 + test
2. [ ] Layer 2: ドメインサービス + test
3. [ ] Layer 3: インフラ層

純粋関数カテゴリ

カテゴリプレフィックスシグネチャ
validationvalidate*, isValid*(input: T) => ValidationResult
formatformat*, truncate*, strip*(input: string) => string
parseparse*, extract*(input: string) => T | null
predicateis*, should*, can*, has*(input: T) => boolean
selectselect*, choose*, pick*(candidates: T[], criteria) => T
calculatecalculate*, compute*, count*(inputs: T) => number
buildbuild*, create*, make*(parts: P) => T

ヘルパースクリプト

scripts/analyze.sh で分析ワークフローやパターンを確認できる:

./scripts/analyze.sh --steps      # 分析ステップを表示
./scripts/analyze.sh --patterns   # 純粋関数パターンを表示
./scripts/analyze.sh --template   # 追記テンプレートを表示
./scripts/analyze.sh --all        # すべて表示

使用例

/spec-test <plan_file_path> <仕様の説明>

または仕様書を先に提示してから:

/spec-test <plan_file_path>

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

This skill should be used when the user asks to "create a team", "spawn agents", "parallel execution", "delegate tasks to agents", "use a swarm", "team workflow", "split work across agents", "run tasks in parallel", or mentions wanting multiple agents to collaborate on a complex task.

日本語の概要は準備中です。原文の説明を表示しています。

sean-sunagaku/claude-code-plugin382026年7月30日 更新

agent-team-guide

無料日本語概要

Agent Teams スキルを設計・構築するためのベストプラクティスガイド。 サブエージェント定義、SendMessage 通信プロトコル、タスク依存管理、 PostToolUse Hook によるログ、MCP ツール統合、コンテキストファイル設計を網羅。 7つの実績あるチームスキル(app-naming, ui-review, logo-design, persona-creation, skill-creator-team, ui-variations, aso-optimize)から抽出したパターン集。 Use when: Agent Teams を使ったスキルを新規作成したい、 既存のチームスキルの品質を改善したい、エージェント間通信のデバッグ、 チームスキルの設計パターンを知りたい。 Triggers: "agent team", "チームスキル", "エージェントチーム", "サブエージェント定義", "SendMessage パターン", "チーム設計", "エージェント間通信", "team skill", "swarm pattern"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

app-naming

無料日本語概要

アプリ名・サービス名の命名を、5つの専門エージェントチームで多角的に評価・決定するスキル。 ブランディング、商標/法的リスク、デジタルプレゼンス(SEO/ASO/SNS)、国際展開(多言語/発音)の 4観点から候補を提案・調査・議論し、コンテキストファイルと議事録で次回セッションへ引き継ぐ。 Use when: アプリ名を決めたい、サービス名を変更したい、プロダクト名を検討したい、 ネーミングブレスト、名前の商標チェック、アプリ名のリネーム。 Triggers: "アプリ名", "サービス名", "プロダクト名", "ネーミング", "名前を決め", "リネーム", "rename", "app name", "naming", "ブランド名", "商標チェック"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

app-store-preview-movie

無料日本語概要

App Store プレビュー動画を Remotion (React) で生成する Agent Team スキル。 video-director が構成を設計し、script-writer がナレーション台本を作成し、 motion-designer が Remotion コードを実装し、preview-reviewer がコードレビューし、 frame-inspector がレンダリング結果を目視検証する。 Use when: App Store プレビュー動画を作りたい、アプリのプロモーション動画を作りたい、 Remotion で動画を生成したい。 Triggers: "プレビュー動画", "App Store 動画", "アプリ動画", "preview movie", "Remotion", "動画作成", "app preview"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

app-tone-manner

無料日本語概要

アプリのトーン&マナー(トンマナ)を8名のエージェントチームで設計するスキル。 ブランドアーキタイプ・パーソナリティ定義から、カラー・タイポグラフィ・ビジュアルスタイル・ トーン・オブ・ボイスまでを一貫設計し、Pencil (.pen) + Markdown で成果物を出力する。 「デザインテンション」(矛盾ペア)を核に、AIっぽくない独自のブランドアイデンティティを生成する。

sean-sunagaku/claude-code-plugin382026年7月30日 更新

arch-design

無料日本語概要

仕様書・要件定義からソフトウェアアーキテクチャを設計するスキル。 5人の専門エージェント(Architecture Lead・Module Designer・Dependency Analyst・ Platform Expert・Devil's Advocate)が協議しながら、 モジュール分割・依存関係・データフロー・インターフェース設計を行う。 成果物は構造化されたアーキテクチャ設計書(Markdown)。 Use when: 仕様書からどう設計するか迷っている時、モジュール分割の方針を決めたい時、 技術スタックに合ったアーキテクチャパターンを選びたい時、 設計書を作成したい時。 Triggers: "アーキテクチャ設計", "arch design", "仕様書から設計", "モジュール分割", "設計書を作りたい", "アーキテクチャを考えて", "コンポーネント設計", "依存関係を設計", "どう設計する", "design the architecture", "design from spec"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

sean-sunagaku のスキルをすべて見る

このスキルの問題を報告する