Appearance
Design Document Creation Guide
本ガイドは、各ソフトウェアコンポーネント配下(<root>/docs/[<group>/]<component>/design.md)に作成する詳細設計書である design.md の記述内容とMarkdownテンプレートを定義するものです。
Section & Rule Guidelines
1. 必須セクション構成と順序
- 設計方針 (Design Policies): コンポーネント設計全体の概要およびアプローチ方針を記述。
- ビルド・成果物 (Build & Artifacts): 使用ツールごとに、プロジェクトファイル、成果物の種類、成果物の使い方(インポート方法、起動/デプロイ形態等、成果物自体の利用方法)を記述。
- レイヤー構造 (Layer Structure): 内部構成の L1(レイヤー)および L2(グループ)を一覧表(
| L1 | L2 | 役割・概要 |)にまとめ。 - 関係図 (Component & Layer Diagram): L1 + L2 による構造的関係図を Mermaid 図で作成。
- 機能仕様書一覧 (Functional Specifications): 該当コンポーネント内のすべての機能仕様書(
SPEC-XXX.md)を L1/L2 で分類したテーブル(| L1 | L2 | SpecID | 概要 |)として「関連」直前に配置。 - 関連 (References): 上位設計書や外部参照へのリンク。
- 意思決定記録 (DR) へのリンク規則: 本詳細設計の決定根拠となる意思決定記録(
DR-XXX.md)が存在する場合、 該当する設計方針・レイヤー記述の直後に([DR-001](../../decision-records/DR-001.md))形式でインライン記述 し、「関連」セクションにも相互リンクを記載します。
- 意思決定記録 (DR) へのリンク規則: 本詳細設計の決定根拠となる意思決定記録(
Template
以下は design.md を作成する際の標準Markdownテンプレートです。
markdown
---
name: design.md
description: <コンポーネント詳細設計の概要>
timestamp: YYYY-MM-DD
ai: ai-coauthored
---
# Component Detailed Design: <コンポーネント名>
## 設計方針
<コンポーネント全体の設計概要、基本方針、採用アーキテクチャの適用内容を記述します ([DR-001](../../decision-records/DR-001.md))。>
## ビルド・成果物
### <使用開発ツール名 1 (例: Node.js / Vite)>
- **プロジェクトファイル**: `package.json`, `tsconfig.json`
- **成果物の種類**: ライブラリバンドル (ESM/CommonJS)
- **成果物の使い方**: `import { authHandler } from '@myapp/auth-service'` として他モジュールからインポートして利用、またはスタンドアロンサービスプロセスとして起動
## レイヤー構造
| L1 | L2 | 役割・概要 |
| :--- | :--- | :--- |
| `Presentation` | `AuthHandler` | 認証リクエスト受入れ・応答変換 |
| `Domain` | `AuthService` | 認証・トークン制御コアロジック |
| `Infrastructure` | `UserRepository` | ユーザー情報の永続化アクセス |
## 関係図
```mermaid
flowchart TD
subgraph Presentation["Presentation (L1)"]
AuthHandler["AuthHandler (L2)"]
end
subgraph Domain["Domain (L1)"]
AuthService["AuthService (L2)"]
end
subgraph Infrastructure["Infrastructure (L1)"]
UserRepository["UserRepository (L2)"]
end
AuthHandler --> AuthService
AuthService --> UserRepository
```
## 機能仕様書一覧
本コンポーネントがカバーするすべての機能仕様書をレイヤー(L1)およびグループ(L2)ごとに分類した一覧です。
| L1 | L2 | SpecID | 概要 |
| :--- | :--- | :--- | :--- |
| `Presentation` | `AuthHandler` | [`SPEC-001`](./specs/SPEC-001.md) | ユーザー認証 API 仕様書 |
| `Domain` | `AuthService` | [`SPEC-002`](./specs/SPEC-002.md) | ユーザー情報変更仕様書 |
## 関連
- [architecture.md](../../architecture.md)
- [DR-001](../../decision-records/DR-001.md)