技術スタック定義 (TSD) 作成ルール
技術スタック定義(Technology Stack Definition, TSD)は、 システムで採用する技術(言語、フレームワーク、DB、メッセージ基盤、キャッシュ等)を、一覧(インベントリ) として定義します。
TSD は「何を採用し」「何に使うか(担当責務)」を関係者間で合意するための入口です。
アーキテクチャ設計およびインフラ設計の検討結果として採用が確定した技術を整理・明文化した成果物であり、 以降の設計・実装・運用における前提条件として扱う。
なお、TSD は実装に直接関わる機械判読用途ではないため、表(Markdown) で管理します。
1. 記載方針(必須)
- 合意に必要な最小十分を記載する(内部実装の都合は書かない)
- 「採用技術」と「担当責務(何に使うか)」が対応していること
- ベンダー固有の契約情報や機密値(URL/鍵/アカウント等)は書かない
- 技術名は一般的な表記に揃える(例:
Java 21,Spring Boot,PostgreSQL)
禁止(書かない):
- DB物理テーブル名・物理カラム名・SQL全文
- 実装クラス/関数名・内部モジュール構成
- UI操作の逐語列挙
2. メタデータ(Frontmatter)
Frontmatter は docs/handbook/shared/schemas/spec-frontmatter.schema.yaml の制約に従います。
| 項目 | 説明 | 必須 |
|---|---|---|
| id | TSL ID(例: tsl-main) | ○ |
| type | architecture 固定 | ○ |
| title | ドキュメント名(例: 技術スタック一覧) | ○ |
| status | draft/ready/deprecated | ○ |
| based_on | 根拠となる仕様ID(ADR/非機能/設計など) | 任意 |
| supersedes | 置き換え関係(古仕様→新仕様) | 任意 |
2.1 ID規約
- TSL の
idはtsl-...の形式を推奨します(例:tsl-main)。 type: architectureはアーキテクチャ(構造・構成)系の合意ドキュメントであることを示します。
3. 表の形式
TSL は次の列を持つ表として記載します。
| 列名 | 説明 |
|---|---|
| 区分 | カテゴリ(例: 言語, Web FW, DB, MQ, Cache) |
| 採用技術 | 採用する技術名とバージョン(分かる範囲で) |
| 担当責務 | その技術を何に使うか(短く) |
※ 補足が必要な場合は、上記に加えて 補足 列を追加して構いません。
4. サンプル
Frontmatter + 表(最小):
yaml
---
id: tsd-overview
type: architecture
title: 技術スタック定義
status: draft
part_of: []
based_on: []
supersedes: []
---技術スタック一覧表
| 区分 | 採用技術 | 担当責務 |
|---|---|---|
| 言語 | Java 21 | サーバサイド実装 |
| Web FW | Spring Boot | API提供・DI・TX管理 |
| DB | PostgreSQL | 業務データ永続化 |
| MQ | Kafka | 業務イベント配信 |
| Cache | Redis | 参照系高速化 |
| ホスティング | Vercel | フロントエンド配信・デプロイ |
5. 生成 AI への指示テンプレート
- 以下のルールに従って、技術スタック一覧(TSL) を Frontmatter + Markdownの表として作成してください。
- 出力は Frontmatter と 表(Markdown)だけ とし、前後の説明文は出力しないでください。
- Frontmatter は
docs/handbook/shared/schemas/spec-frontmatter.schema.yamlに従い、id/type/title/statusを必ず含め、typeはarchitecture固定にしてください。- 列は
区分/採用技術/担当責務を必ず含めてください(必要なら補足を追加可)。- 禁止: 物理テーブル名・物理カラム名・SQL全文、実装クラス/関数名、内部モジュール構成、UI操作の逐語列挙、機密値