Initial commit
This commit is contained in:
223
commands/list-specs.md
Normal file
223
commands/list-specs.md
Normal file
@@ -0,0 +1,223 @@
|
||||
---
|
||||
description: すべてのspecの一覧とステータスを表示し、specs/status.mdに保存
|
||||
---
|
||||
|
||||
# spec一覧とステータスの表示・保存
|
||||
|
||||
`specs/` ディレクトリ配下のすべてのタスクを走査し、各タスクの進捗状況を集計して `specs/status.md` に保存します。
|
||||
|
||||
## 実行手順
|
||||
|
||||
### 1. specs/ディレクトリの確認
|
||||
|
||||
- `specs/` ディレクトリの存在を確認
|
||||
- 存在しない場合は、空のステータスファイルを作成して終了
|
||||
|
||||
### 2. タスク情報の収集
|
||||
|
||||
各タスクディレクトリ(`specs/*/`)について、以下の情報を収集:
|
||||
|
||||
**⚠️ 重要**: `specs/_archived/` 配下のタスクは完全に無視します(アーカイブ済みタスクはノイズ)
|
||||
|
||||
#### 2.1 基本情報の取得
|
||||
- タスク名(ディレクトリ名)
|
||||
- 最終更新日時(ディレクトリ内のすべてのファイルの最新mtime)
|
||||
|
||||
#### 2.2 仕様書の存在確認
|
||||
- `overview.md` の存在
|
||||
- `specification.md` の存在
|
||||
- `technical-details.md` の存在
|
||||
|
||||
#### 2.3 Phase情報の取得
|
||||
|
||||
**overview.mdから**:
|
||||
- プロジェクト概要(「## プロジェクト概要」セクションの「目的と背景」または最初の数行を簡潔に取得)
|
||||
- Phase数
|
||||
- 各Phaseの名前
|
||||
- 各Phaseの状態(未着手/進行中/完了)
|
||||
|
||||
**tasks/ディレクトリから**:
|
||||
- Phase計画書(`phase{N}-*.md`)の存在確認
|
||||
|
||||
#### 2.4 Phase進捗の集計
|
||||
|
||||
各Phase計画書(`specs/{taskname}/tasks/phase{N}-*.md`)から:
|
||||
|
||||
**タスク進捗**:
|
||||
```markdown
|
||||
## タスク一覧
|
||||
|
||||
| # | タスク名 | 状態 | TDD | 説明 |
|
||||
|---|---------|------|-----|------|
|
||||
| 1 | ... | ✅完了 | Green | ... |
|
||||
| 2 | ... | 🔄進行中 | Red | ... |
|
||||
| 3 | ... | ⬜未着手 | - | ... |
|
||||
```
|
||||
|
||||
- 各タスクの状態を集計
|
||||
- ✅完了: 完了カウント +1
|
||||
- 🔄進行中: 進行中カウント +1
|
||||
- ⬜未着手: 未着手カウント +1
|
||||
|
||||
#### 2.5 タスク全体のステータス判定
|
||||
|
||||
以下のロジックでタスクのステータスを判定:
|
||||
|
||||
```
|
||||
if 仕様書が存在しない:
|
||||
ステータス = "未着手"
|
||||
else if すべてのPhaseが完了状態:
|
||||
ステータス = "完了"
|
||||
else if いずれかのPhaseが進行中または完了:
|
||||
ステータス = "進行中"
|
||||
else:
|
||||
ステータス = "未着手"
|
||||
```
|
||||
|
||||
#### 2.6 次に実行すべきコマンドの判定
|
||||
|
||||
`/sdd:next-step` コマンドと同様のロジックで判定:
|
||||
|
||||
- 仕様書が存在しない → `/sdd:create-specs`
|
||||
- 仕様書に「**不明**」がある → `/sdd:clarify-spec {taskname}`
|
||||
- Phase計画書がない → `/sdd:break-down-phase {taskname}`
|
||||
- Phase未着手 → `/sdd:implement-phase {taskname}`
|
||||
- Phase進行中 → `/sdd:implement-phase {taskname} {phase}.{next_task}`
|
||||
- Phase完了、未検証 → `/sdd:verify-phase {taskname} {phase}`
|
||||
- Phase検証済み、次Phaseあり → `/sdd:implement-phase {taskname} {next_phase}.1`
|
||||
- すべて完了 → `/sdd:archive-spec`
|
||||
|
||||
### 3. ステータスファイルの生成
|
||||
|
||||
#### 3.1 データのソート
|
||||
|
||||
1. ステータスでグループ化(未着手 → 進行中 → 完了)
|
||||
2. 各グループ内で更新日時順(新しい順)にソート
|
||||
|
||||
#### 3.2 Markdown生成
|
||||
|
||||
以下のような形式でstatus.mdを生成します。
|
||||
|
||||
**フォーマット:**
|
||||
```markdown
|
||||
# SDD Spec Status
|
||||
|
||||
最終更新: {現在日時}
|
||||
|
||||
## 次に実施すべきこと
|
||||
|
||||
{進行中タスクがある場合: 進行中タスクの次のコマンド}
|
||||
{進行中タスクがない場合: 最初の未着手タスクの次のコマンド}
|
||||
{全て完了の場合: アーカイブを促すメッセージ}
|
||||
|
||||
## タスク一覧
|
||||
|
||||
### 🔄 進行中
|
||||
|
||||
| タスク名 | Phase進捗 | 最終更新 | 次のコマンド |
|
||||
|---------|----------|---------|-------------|
|
||||
| {taskname} | Phase {N} ({completed}/{total}) | YYYY-MM-DD | `/sdd:implement-phase {taskname} {phase}.{task}` |
|
||||
|
||||
### ⬜ 未着手
|
||||
|
||||
| タスク名 | 最終更新 | 次のコマンド |
|
||||
|---------|---------|-------------|
|
||||
| {taskname} | YYYY-MM-DD | `/sdd:create-specs` |
|
||||
|
||||
### ✅ 完了
|
||||
|
||||
| タスク名 | 最終更新 | 次のコマンド |
|
||||
|---------|---------|-------------|
|
||||
| {taskname} | YYYY-MM-DD | `/sdd:archive-spec` |
|
||||
```
|
||||
|
||||
**作成例:**
|
||||
```markdown
|
||||
# SDD Spec Status
|
||||
|
||||
最終更新: 2025-10-31 14:30:00
|
||||
|
||||
## 次に実施すべきこと
|
||||
|
||||
`/sdd:implement-phase user-authentication 1.4`
|
||||
|
||||
## タスク一覧
|
||||
|
||||
### 🔄 進行中
|
||||
|
||||
| タスク名 | Phase進捗 | 最終更新 | 次のコマンド |
|
||||
|---------|----------|---------|-------------|
|
||||
| user-authentication | Phase 1 (3/5) | 2025-10-30 | `/sdd:implement-phase user-authentication 1.4` |
|
||||
| payment-integration | Phase 2 (2/7) | 2025-10-29 | `/sdd:implement-phase payment-integration 2.3` |
|
||||
|
||||
### ⬜ 未着手
|
||||
|
||||
| タスク名 | 最終更新 | 次のコマンド |
|
||||
|---------|---------|-------------|
|
||||
| admin-dashboard | 2025-10-28 | `/sdd:create-specs` |
|
||||
|
||||
### ✅ 完了
|
||||
|
||||
| タスク名 | 最終更新 | 次のコマンド |
|
||||
|---------|---------|-------------|
|
||||
| database-setup | 2025-10-27 | `/sdd:archive-spec` |
|
||||
```
|
||||
|
||||
### 4. ファイルの保存
|
||||
|
||||
- `specs/status.md` に保存
|
||||
- `specs/` ディレクトリが存在しない場合は作成
|
||||
|
||||
### 5. 完了メッセージの表示
|
||||
|
||||
```
|
||||
✅ Specステータスを更新しました
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
📍 保存先: specs/status.md
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
```
|
||||
|
||||
## エラーハンドリング
|
||||
|
||||
### specs/ディレクトリが存在しない場合
|
||||
|
||||
```markdown
|
||||
⚠️ specs/ディレクトリが見つかりません。
|
||||
|
||||
specs/ディレクトリを作成して、空のステータスファイルを生成します。
|
||||
```
|
||||
|
||||
→ 空のステータスファイルを作成
|
||||
|
||||
```markdown
|
||||
# SDD Spec Status
|
||||
|
||||
最終更新: {現在日時}
|
||||
|
||||
## タスク一覧
|
||||
|
||||
タスクがまだ作成されていません。
|
||||
|
||||
新しいタスクを作成するには:
|
||||
\```
|
||||
/sdd:create-specs
|
||||
\```
|
||||
```
|
||||
|
||||
### タスクディレクトリが空の場合
|
||||
|
||||
- ステータス: "未着手"
|
||||
- 次のコマンド: `/sdd:create-specs`
|
||||
|
||||
### overview.mdが破損している場合
|
||||
|
||||
- エラーを記録しつつ、他のファイルから可能な限り情報を取得
|
||||
- 次のコマンド: `/sdd:clarify-spec {taskname}` (修復を促す)
|
||||
|
||||
## 注意事項
|
||||
|
||||
- **⚠️ 重要**: このコマンドは読み取り専用です。既存のspecファイルは変更しません
|
||||
- ステータスファイルは完全に再生成されます(手動編集は上書きされます)
|
||||
- Phase進捗は各Phase計画書から自動計算されます
|
||||
- 「次のコマンド」は推測であり、必ずしも最適とは限りません
|
||||
- ファイルのmtimeを基に最終更新日時を判定するため、ファイルコピー時は正確でない場合があります
|
||||
Reference in New Issue
Block a user