Skip to content

Design Document Creation Guide

本ガイドは、各ソフトウェアコンポーネント配下(<root>/docs/[<group>/]<component>/design.md)に作成する詳細設計書である design.md の記述内容とMarkdownテンプレートを定義するものです。

Section & Rule Guidelines

1. 必須セクション構成と順序

  1. 設計方針 (Design Policies): コンポーネント設計全体の概要およびアプローチ方針を記述。
  2. ビルド・成果物 (Build & Artifacts): 使用ツールごとに、プロジェクトファイル、成果物の種類、成果物の使い方(インポート方法、起動/デプロイ形態等、成果物自体の利用方法)を記述。
  3. レイヤー構造 (Layer Structure): 内部構成の L1(レイヤー)および L2(グループ)を一覧表(| L1 | L2 | 役割・概要 |)にまとめ。
  4. 関係図 (Component & Layer Diagram): L1 + L2 による構造的関係図を Mermaid 図で作成。
  5. 機能仕様書一覧 (Functional Specifications): 該当コンポーネント内のすべての機能仕様書(SPEC-XXX.md)を L1/L2 で分類したテーブル(| L1 | L2 | SpecID | 概要 |)として「関連」直前に配置。
  6. 関連 (References): 上位設計書や外部参照へのリンク。
    • 意思決定記録 (DR) へのリンク規則: 本詳細設計の決定根拠となる意思決定記録(DR-XXX.md)が存在する場合、 該当する設計方針・レイヤー記述の直後に ([DR-001](../../decision-records/DR-001.md)) 形式でインライン記述 し、「関連」セクションにも相互リンクを記載します。

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)