spec-design-guide
Linear-integrated AI centric workflow management tool
- Category: discovered
- Tags: github, community
- Version: 1.0.0
- Author: walid
- Downloads: 0
- Updated: 2025-11-22
Download the latest version (v1.0.0) from this page.
SKILL.md
# Spec & Design Guide Skill
このスキルは、Unison Flowプロジェクトの仕様・設計ドキュメント作成をガイドします。
## エイリアス
このスキルは以下のように呼ぶことができます:
- `spec-design-guide` → 「仕様設計ガイド」
- `sdg` → 「仕様設計ガイド」の略称
## 目的
実装前に仕様と設計を明確にし、実装の助けとなるドキュメントを体系的に管理します。
## ドキュメントの役割
### SPEC.md - コンセプト、仕様、哲学
**What & Why** - 何を作るか、なぜ作るか
- コンセプト・ビジョン
- 設計哲学・原則
- 機能仕様
- ユーザー体験
### DESIGN.md - モデル、手法、実装
**How** - どう作るか
- データモデル
- アーキテクチャ
- 実装手法
- 技術的詳細
### GUIDE.md - ガイド
**Usage** - どう使うか
- 使い方
- ベストプラクティス
- トラブルシューティング
## ディレクトリ構造
```
spec/
├── 01-core-concept/
│ ├── SPEC.md # コンセプト・仕様・哲学
│ ├── DESIGN.md # モデル・手法・実装
│ └── GUIDE.md # 使い方ガイド(オプション)
├── 02-kdl-parser/
│ ├── SPEC.md
│ └── DESIGN.md
└── ...
```
## SPEC.md のテンプレート
**目的**: コンセプト、仕様、哲学
```markdown
# {機能名} - 仕様書
## コンセプト
### ビジョン
この機能が目指すもの、解決する問題、提供する価値。
### 哲学・設計原則
- 原則1: なぜこの設計を選んだか
- 原則2: トレードオフと判断基準
- 原則3: ユーザー体験への配慮
### 他との違い
既存のソリューションとの違い、独自性。
## 仕様
### 機能仕様
#### FS-001: 機能名
**目的**: この機能が何をするか
**入力/出力**:
- 入力: ...
- 出力: ...
**振る舞い**:
1. ステップ1
2. ステップ2
**制約**:
- 制約1
### インターフェース仕様
\`\`\`kdl
// ユーザーが書く形式
service "example" {
// ...
}
\`\`\`
### 非機能仕様
- **パフォーマンス**: 期待される性能
- **セキュリティ**: セキュリティ考慮事項
- **互換性**: 後方互換性の方針
## 哲学的考察
### なぜこの仕様か
選択の理由、背景にある思想。
### ユーザー体験
ユーザーがどう感じるか、どう使うか。
### 進化の方向性
将来どう発展させるか、拡張の余地。
```
## DESIGN.md のテンプレート
**目的**: モデル、手法、実装
```markdown
# {機能名} - 設計書
## データモデル
### 構造定義
\`\`\`rust
pub struct Example {
field1: Type1,
field2: Type2,
}
\`\`\`
### モデルの関係性
\`\`\`
Model A ---> Model B
|
v
Model C
\`\`\`
## アーキテクチャ
### コンポーネント構成
\`\`\`
Input → Parser → Validator → Processor → Output
\`\`\`
### コンポーネント詳細
#### Component A
**責務**: ...
**インターフェース**:
\`\`\`rust
pub trait ComponentA {
fn method(&self) -> Result<T>;
}
\`\`\`
## 実装手法
### アルゴリズム
処理の流れ、アルゴリズムの選択理由。
### エラーハンドリング
\`\`\`rust #[derive(Error, Debug)]
pub enum MyError { #[error("...")]
Variant,
}
\`\`\`
### パフォーマンス最適化
- 最適化ポイント1
- 最適化ポイント2
## テスト戦略
### ユニットテスト
- テスト対象1
- テスト対象2
### 統合テスト
- シナリオ1
- シナリオ2
## 実装チェックリスト
- [ ] データモデル実装
- [ ] コア機能実装
- [ ] エラーハンドリング
- [ ] テスト作成
```
## GUIDE.md のテンプレート(オプション)
**目的**: 使い方ガイド
```markdown
# {機能名} - ガイド
## クイックスタート
最小限の使用例。
## 基本的な使い方
### ケース1: ...
説明と例。
### ケース2: ...
## ベストプラクティス
- 推奨される使い方
- アンチパターン
## トラブルシューティング
### 問題1: ...
**原因**: ...
**解決策**: ...
```
## 連番の割り当て
| 連番 | 機能 | 状態 |
| ---- | ------------------ | ------ |
| 01 | Core Concept | 作成済 |
| 02 | KDL Parser | 作成済 |
| 03 | Service Management | 未定 |
| 04 | Container Runtime | 未定 |
| 05 | CLI Interface | 未定 |
## ワークフロー
### 新機能追加時
1. `spec/{連番}-{機能名}/` を作成
2. SPEC.md を作成(コンセプト・仕様・哲学)
3. DESIGN.md を作成(モデル・手法・実装)
4. (必要なら)GUIDE.md を作成
5. 実装開始
6. 実装完了後、ドキュメント更新
### 既存機能修正時
1. 該当するspec/ディレクトリを確認
2. SPEC.md/DESIGN.mdを読んで理解
3. 必要に応じてドキュメント更新
4. 実装
## ベストプラクティス
### SPEC.md(コンセプト・仕様・哲学)
- **Why重視**: なぜその選択をしたか
- **ユーザー視点**: 技術詳細より価値を重視
- **哲学を語る**: 設計思想を明確に
### DESIGN.md(モデル・手法・実装)
- **How重視**: どう実装するか
- **実装可能に**: コードに落とし込める粒度
- **技術的詳細**: データ構造、アルゴリズム
### GUIDE.md(使い方)
- **実用的**: すぐ使える例
- **段階的**: 簡単→複雑へ
- **トラブル対応**: よくある問題と解決策