Claude-skill-registry detailed-design-templates

詳細設計書作成時のテンプレート集(フロントエンド設計書、Issue作成テンプレート等)

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/detailed-design-templates" ~/.claude/skills/majiayu000-claude-skill-registry-detailed-design-templates && rm -rf "$T"
manifest: skills/data/detailed-design-templates/SKILL.md
source content

詳細設計テンプレート集

参照元: detailed-design-workflow コマンド


フロントエンド設計書テンプレート

画面を持つ機能には以下の構成で

フロントエンド設計書.md
を作成する。

# {機能名} フロントエンド設計書

## メタ情報
| 項目 | 内容 |
|------|------|
| ドキュメントID | DETAIL-{機能ID}-FRONTEND-001 |
| 親設計書 | [詳細設計書.md](./詳細設計書.md) |

---

## 1. コンポーネント構成

### 1.1 コンポーネント階層図

```mermaid
graph TD
    Page["{PageName}Page"]
    Page --> Container["{Feature}Container"]
    Container --> Component1["{Component1}"]
    Container --> Component2["{Component2}"]

1.2 コンポーネント一覧

コンポーネント名種類責務Props
{Feature}Page
Pageルーティング、レイアウト-
{Feature}Container
Container状態管理、API呼び出し-
{Component}
PresentationalUI表示
data
,
onAction

2. 状態管理設計

2.1 状態の種類と管理方針

状態スコープ管理方法永続化
ユーザー認証グローバルZustand/ContextLocalStorage
フォーム入力ローカルuseState/useForm-
サーバーデータキャッシュReact Query/SWR-

2.2 グローバル状態

interface {Feature}State {
  // 状態の型定義
}

3. カスタムフック設計

フック名責務引数戻り値
use{Feature}
{機能}のロジック-
{ data, isLoading, error }
use{Feature}Mutation
データ更新-
{ mutate, isPending }

4. API連携設計

4.1 使用エンドポイント

APIメソッド用途フック
/api/xxx
GETデータ取得
use{Feature}Query
/api/xxx
POSTデータ作成
use{Feature}Mutation

4.2 エラーハンドリング

エラーコード画面表示リカバリ方法
400バリデーションエラー表示フォーム修正を促す
401ログイン画面へリダイレクト-
500エラーメッセージ表示リトライボタン

5. フォームバリデーション

フィールドルールライブラリエラーメッセージ
email必須, メール形式zod/yupメールアドレスを入力してください

6. ルーティング設計

パスコンポーネント認証ガード
/xxx
{Feature}Page
O
AuthGuard

7. パフォーマンス考慮

最適化項目実装方法
不要な再レンダリング防止
React.memo
,
useMemo
,
useCallback
遅延読み込み
React.lazy
,
Suspense
仮想スクロール
react-virtuoso
(大量データ時)

8. テスト方針

テスト種別対象ツール
UnitカスタムフックJest, React Testing Library
IntegrationContainer + APIMSW
E2EユーザーフローPlaywright

9. 呼び出し元(Integration Points)⚠️ 必須

重要: このセクションがないと Phase 6.6(設計書整合性チェック)で統合漏れを検出できません。

9.1 このコンポーネントを使用する場所

呼び出し元使用方法統合Issue
app/{path}/page.tsx
<{FeatureName} />
をレンダリング
#{issue_number}
components/layout.tsx
Navigationから
/{path}
へリンク
#{issue_number}

9.2 ルーティング統合

パスページコンポーネント統合確認コマンド
/{path}
{Feature}Page
grep -r '{Feature}' app/

9.3 統合確認手順

# 1. ページが正しく配置されているか
ls app/{path}/page.tsx

# 2. ナビゲーションからリンクされているか
grep -r '/{path}' components/

# 3. 実際にブラウザで動作確認
npm run dev
# → http://localhost:3000/{path} にアクセス

変更履歴

日付バージョン変更内容担当者
YYYY-MM-DD1.0.0初版作成-

---

## Issue作成テンプレート

### Epic Issue構成

- 概要
- 関連ドキュメント
- スコープ(機能一覧)
- 技術スタック
- 工数見積もり
- 子Issue一覧(**各200行以下**)
- ドキュメント更新Issue
- 依存関係(Mermaid形式)

### 子Issueテンプレート

```markdown
## 概要
{1-2文で機能を説明}

## 親Issue
- Epic: #{epic_issue_number}

## 設計書
- [{設計書名}]({path_to_design_doc})

## 推定規模
| 項目 | 値 |
|------|-----|
| コード量 | {XX}行 |
| ファイル数 | {N}件 |

## 対象ファイル
- `{path/to/file1.rs}` (新規 / 変更)

## 実装内容
- [ ] {実装項目1}
- [ ] {実装項目2}

## 呼び出し元(Integration Points)⚠️ 必須

> **重要**: このセクションがないと Phase 6.6(設計書整合性チェック)で統合漏れを検出できません。

### このモジュールを使用する場所

| 呼び出し元ファイル | 使用方法 | 統合Issue |
|------------------|---------|----------|
| `{path/to/caller.rs}` | `{ClassName}::{method}()` を呼び出す | #{issue_number} |
| `{path/to/cli.rs}` | `{command}` コマンドで使用 | #{issue_number} |

### 統合確認コマンド

```bash
# 呼び出し元から実際に参照されているか確認
grep -r '{ModuleName}\|{ClassName}' {caller_path}

# CLIコマンドの動作確認(該当する場合)
{cli_command} --help
{cli_command} {test_args}

この機能を使用する他のIssue

  • #{related_issue} - {概要}

完了条件

  • 実装完了(200行以下)
  • テスト通過
  • レビュー9点以上
  • 呼び出し元からの統合確認 ⚠️ 新規追加

依存

  • #{依存するIssue番号}

### ドキュメント更新Issueテンプレート

```markdown
## 概要
{機能名}の実装完了に伴い、関連ドキュメントを更新する。

## 親Issue
- Epic: #{epic_issue_number}

## 対象ドキュメント
| ファイル | 更新内容 | 必須/任意 |
|----------|---------|----------|
| `README.md` | 機能概要、使用例の追記 | 必須 |
| `CHANGELOG.md` | 変更履歴の追記 | 必須 |

## 更新内容
- [ ] README.md: 機能概要セクションに{機能名}を追加
- [ ] CHANGELOG.md: バージョン・変更内容・日付を追記

## 完了条件
- [ ] 全対象ドキュメントが更新されている
- [ ] マークダウンの構文エラーがない
- [ ] リンク切れがない

## 依存
- 全実装Issue完了後に着手可能

依存関係の記述方法

禁止: ASCII形式

#47 (DB) ─┬─> #48 (Security)

必須: Mermaid形式

```mermaid
flowchart LR
    subgraph 共通基盤
        DB["#47 DB (80行)"]
        SEC["#48 Security (150行)"]
    end
    
    subgraph 機能A
        A_BE["#49 BE (120行)"]
        A_FE["#50 FE (100行)"]
    end
    
    DB --> SEC --> A_BE --> A_FE
```

画面設計書の記述ルール

禁止事項

  • ASCII art / テキストベースのワイヤーフレーム
  • 罫線文字(
    ┌─┐│└┘
    等)を使った図表現
  • コードブロック内のUI表現

必須事項

  • 視覚表現はHTMLモックアップ + スクリーンショット画像のみ
  • 状態の説明は表形式または箇条書きで記述
  • ワイヤーフレーム定義は Wireframe DSL(YAML形式) で記述

Wireframe DSL スキーマ

詳細リファレンス: {{skill:wireframe-generator}} を参照

画面設計書内に

```yaml wireframe
ブロックでYAML定義を記述する。

対応タイプ(概要)

カテゴリタイプ例
フォーム系
form
,
auth
,
wizard
,
settings
一覧系
table
,
card-grid
,
gallery
,
kanban
,
calendar
,
timeline
詳細・ダッシュボード
detail
,
profile
,
dashboard
,
stats
複合・オーバーレイ
crud
,
tabs
,
layout
,
modal
,
drawer
,
confirm
,
alert
その他
empty-state
,
hero
,
pricing
,
faq
,
chat

生成コマンド

cd .opencode/skill/wireframe-generator/scripts
bun install
bun run generate.ts <markdown-file> [output-dir]

リバースエンジニアリング設計書テンプレート

既存コードから自動生成する設計書の構成。

# {モジュール名} 詳細設計書(リバースエンジニアリング)

## メタ情報
| 項目 | 内容 |
|------|------|
| ドキュメントID | {module-name} |
| 生成日 | {DATE} |
| 対象コード | `{TARGET_PATH}` |
| 言語 | {LANGUAGE} |

> 注意: このドキュメントは既存コードから自動生成されました。

---

## 1. 概要
### 1.1 目的
{モジュールの目的 - docstringから抽出}

### 1.2 スコープ
{主要機能のリスト}

---

## 2. モジュール設計
### 2.1 モジュール構成
{ディレクトリ構造}

### 2.2 モジュール依存関係
{Mermaid図}

---

## 3. データ型定義
### 3.1 列挙型(Enum)
### 3.2 構造体(Struct)
### 3.3 トレイト/インターフェース

---

## 4. コアロジック
### 4.1 主要関数/メソッド
| 関数名 | 説明 | 引数 | 戻り値 |
|--------|------|------|--------|

---

## 5. エラーハンドリング
### 5.1 エラー型
### 5.2 エラー処理方針

---

## 6. テスト方針
### 6.1 既存テスト一覧
| テスト名 | テスト内容(推測) | ファイル |
|---------|------------------|---------|

---

## 7. 未解決事項・推測
| ID | 内容 | 確認方法 |
|----|------|---------|

言語別追加セクション

言語追加セクション
Rustクレート依存、Feature flags、unsafe使用箇所
TypeScriptコンポーネント階層、状態管理、API連携
Pythonデコレータ、型ヒント、依存注入
Goパッケージ構成、goroutine使用、エラーラップ