Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 17:52:09 +08:00
commit 863b553c2a
20 changed files with 4544 additions and 0 deletions

270
commands/create-docs.md Normal file
View File

@@ -0,0 +1,270 @@
---
description: 機能仕様ドキュメントを作成する
argument-hint: [追加の指示(オプション)]
---
# 機能仕様ドキュメントの作成
前のステップで整理した要件に基づいて、詳細な機能仕様書を作成します。
## 追加の指示
$ARGUMENTS
## 前提条件の確認
ドキュメント作成を開始する前に、以下を確認してください:
### 1. タスクファイルの存在確認
```javascript
const fs = require('fs');
const tasksFile = '.tasks.json';
if (!fs.existsSync(tasksFile)) {
console.log('❌ タスクファイルが見つかりません');
console.log('\n先に要件整理を実行してください:');
console.log(' /new-feature [機能の説明]');
process.exit(1);
}
```
### 2. 前のステップ(要件整理)の完了確認
```javascript
const data = JSON.parse(fs.readFileSync(tasksFile, 'utf-8'));
// タスクID 1 (要件整理) が完了しているか確認
const requirementTask = data.tasks.find(t => t.id === 1);
if (!requirementTask || requirementTask.status !== 'completed') {
console.log('❌ 要件整理が完了していません');
console.log('\n先に要件整理を完了してください:');
console.log(' /new-feature [機能の説明]');
process.exit(1);
}
```
### 3. 重複実行の防止
```javascript
// タスクID 2 (ドキュメント作成) の状態を確認
const docTask = data.tasks.find(t => t.id === 2);
if (docTask && docTask.status === 'completed') {
console.log('⚠️ ドキュメントは既に作成されています');
console.log('\nドキュメントを確認:');
console.log(' docs/ ディレクトリを参照');
console.log('\n再作成する場合は、既存のドキュメントを削除してから実行してください。');
console.log('次のステップに進む場合:');
console.log(' /resume');
process.exit(0);
}
```
## ドキュメント作成の指針
前提条件を満たしていることを確認したら、`doc-writer` エージェントを使って、階層的なドキュメント構造を作成してください。
### ドキュメント構造
**重要**: ドキュメントは単一ファイルではなく、`docs/` ディレクトリ配下に適切な階層構造として作成します。
```
docs/
├── README.md # ドキュメント全体のインデックス
├── 00-overview/ # 全体設計
├── 01-requirements/ # 要件定義
├── 02-design/ # 基本設計
├── 03-detailed-design/ # 詳細設計(機能ごと)
├── 04-api/ # API設計
├── 05-interface/ # インターフェース設計
├── 06-test/ # テスト設計
└── 07-implementation/ # 実装ガイド
```
### 作成する内容
#### 1. 概要
```markdown
# [機能名]
## 目的
[この機能が解決する課題]
## 期待される効果
- [効果1]
- [効果2]
```
#### 2. 機能要件
```markdown
## 機能要件
### ユーザーストーリー
- As a [ユーザー], I want to [やりたいこと], so that [理由]
### 機能詳細
#### [機能1]
- 説明: [...]
- 入力: [...]
- 出力: [...]
- 振る舞い: [...]
#### [機能2]
...
```
#### 3. 技術仕様
```markdown
## 技術仕様
### アーキテクチャ
[システム構成図や説明]
### データモデル
[必要なデータ構造]
### API仕様
[エンドポイント、リクエスト/レスポンス形式]
### インターフェース
[関数シグネチャ、クラス定義など]
```
#### 4. 非機能要件
```markdown
## 非機能要件
- **パフォーマンス**: [レスポンスタイム、スループット]
- **セキュリティ**: [認証、認可、データ保護]
- **スケーラビリティ**: [負荷対応]
- **互換性**: [ブラウザ、OS、バージョン]
```
#### 5. UI/UX該当する場合
```markdown
## UI/UX
### 画面遷移
[遷移図やフロー]
### インタラクション
[ユーザー操作とシステム応答]
### エラーハンドリング
[エラーメッセージ、リカバリー方法]
```
#### 6. テスト戦略
```markdown
## テスト戦略
### テスト観点
- [正常系のテストケース]
- [異常系のテストケース]
- [境界値テスト]
- [エッジケース]
### パフォーマンステスト
[必要な場合]
```
#### 7. 実装の考慮事項
```markdown
## 実装の考慮事項
### 既存コードへの影響
[変更が必要な箇所、依存関係]
### マイグレーション
[必要な場合の移行計画]
### ロールバック
[問題発生時の対応]
```
## ドキュメント保存先とリンク
### ディレクトリ作成
プロジェクトルートに `docs/` ディレクトリを作成し、必要なサブディレクトリを作成します。
機能の規模に応じて、以下のように調整してください:
**小規模機能**: 最小限のディレクトリrequirements, detailed-design
**中規模機能**: 主要なディレクトリoverview, requirements, design, api/interface
**大規模機能**: 完全なディレクトリ構造
### 相互リンクの設定
各ドキュメント間で適切にリンクを設定してください:
```markdown
# 例: 01-requirements/functional.md
詳細な設計については [詳細設計](../03-detailed-design/[feature-name]/README.md) を参照してください。
# 例: 04-api/[endpoint].md
データモデルの詳細は [データモデル](../02-design/data-model.md) を参照してください。
```
### インデックスファイル (docs/README.md)
ルートの README.md にすべてのドキュメントへのリンクを含めてください:
```markdown
# [機能名] - ドキュメント
## 📚 ドキュメント構成
### [全体設計](./00-overview/README.md)
- [アーキテクチャ](./00-overview/architecture.md)
### [要件定義](./01-requirements/README.md)
- [機能要件](./01-requirements/functional.md)
- [非機能要件](./01-requirements/non-functional.md)
[...]
```
## タスク状態の更新
ドキュメント作成を開始する前に、タスク状態を更新してください:
```javascript
// .tasks.json の該当タスクを更新
{
"id": 2,
"type": "workflow",
"name": "ドキュメント作成",
"status": "in_progress", // pending → in_progress
"command": "/create-docs",
"startedAt": "[現在時刻]"
}
```
ドキュメント作成が完了したら:
```javascript
{
"id": 2,
"status": "completed", // in_progress → completed
"completedAt": "[現在時刻]"
}
```
## 次のステップ
ドキュメントを作成したら、ユーザーに以下を確認してください:
```
ドキュメントを確認してください。
承認いただければ、次のステップ(テスト作成)を自動的に開始します。
承認しますか? (yes/no)
```
**ユーザーが承認した場合**: SlashCommandツールを使って `/create-tests` を実行してください。
**注意**:
- `post-docs-check` フックが自動的に実行され、ドキュメントの完全性をチェックします
- タスク進捗は `/list-tasks` で確認できます