指定された仕様書ディレクトリのタスク完了状況を確認し、進捗レポートを表示します。各機能ディレクトリの存在と4つの出力ファイルを確認します。
Verifies task completion status and displays progress report for specified specification directory.
/plugin marketplace add mozuq-lab/origami-lite/plugin install origami@origami-lite/origami:split-spec で生成されたタスク一覧の完了状況を確認し、進捗レポートを表示します。各タスクのチェックボックス状態を集計し、完了率や未完了タスクの一覧を提供することで、テストドキュメント生成の進捗を可視化します。
機能別ディレクトリ方式対応: 各タスクの完了状況は、対応する機能ディレクトリ(F-XXX_{機能名}/)内の4つの出力ファイルの存在も確認します。
引数で仕様書ディレクトリを指定することで、特定の仕様書の進捗のみを確認できます。
追加ルールの読み込み
docs/rule ディレクトリが存在する場合は読み込みdocs/rule/origami ディレクトリが存在する場合は読み込みディレクトリパスの解決 🔵
docs/origami/xxx/)はそのまま使用xxx)は docs/origami/{spec-name}/ に展開/ は自動補完タスクファイルの確認 🔵
{出力先}/tasks/task-list.md が存在することを確認/origami:split-spec の実行を案内| 引数 | 説明 | 必須 | 例 |
|---|---|---|---|
| ディレクトリ | 仕様書ディレクトリパスまたは仕様書名 | ○ | docs/origami/ecommerce-spec/ または ecommerce-spec |
# フルパス指定
/origami:verify-tasks docs/origami/ecommerce-spec/
# 仕様書名のみ指定(自動展開)
/origami:verify-tasks ecommerce-spec
| 入力形式 | 解決後のパス |
|---|---|
ecommerce-spec | docs/origami/ecommerce-spec/ |
docs/origami/ecommerce-spec | docs/origami/ecommerce-spec/ |
docs/origami/ecommerce-spec/ | docs/origami/ecommerce-spec/ |
docs/origami/{spec-name}/ に展開/ がない場合は追加解決アルゴリズム:
docs/ で始まる場合 → フルパスとして扱うdocs/ で始まらない場合 → docs/origami/{引数}/ に展開/ を統一{解決後のディレクトリ}/tasks/task-list.md を読み込み各タスクについて、対応する機能ディレクトリと出力ファイルの存在を確認:
docs/origami/{仕様書名}/
├── F-001_ログイン/
│ ├── 01_機能詳細.md ← 存在確認
│ ├── 02_動作仕様.md ← 存在確認
│ ├── 03_境界値分析.md ← 存在確認
│ └── 04_テストケース.md ← 存在確認
├── F-002_ユーザー登録/
│ └── ...
└── tasks/
└── task-list.md
確認対象ファイル:
| ファイル | 確認内容 |
|---|---|
{出力先}/F-XXX_{機能名}/01_機能詳細.md | 存在チェック |
{出力先}/F-XXX_{機能名}/02_動作仕様.md | 存在チェック |
{出力先}/F-XXX_{機能名}/03_境界値分析.md | 存在チェック |
{出力先}/F-XXX_{機能名}/04_テストケース.md | 存在チェック |
- [x] / - [ ])の状態を確認計算方法の変更: タスク単位からフェーズ単位の進捗計算に変更
全体進捗 = 完了フェーズ数 / (タスク数 × 4)
計算例:
各タスクのフェーズ進捗テーブルから以下を集計:
| ステータス | 記号 | 意味 | カウント対象 |
|---|---|---|---|
| 未着手 | ⏳ | 未開始 | 未完了 |
| 実行中 | 🔄 | 現在実行中 | 未完了 |
| 完了 | ✅ | フェーズ完了 | 完了 |
| 要確認 | ⚠️ | 🔴項目あり | 未完了 |
進捗状況をフェーズ単位のサマリー形式で表示:
📊 Origami タスク進捗レポート
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 対象ディレクトリ: {指定されたディレクトリパス}
## 進捗レポート: {仕様書名}
### 全体進捗: {X}% ({完了フェーズ数}/{総フェーズ数} phases)
進捗バー: [████████░░░░░░░░] {X}%
| 項目 | 値 |
|------|-----|
| 総タスク数 | X件 |
| 完了タスク数 | Y件 |
| 実行中タスク数 | Z件 |
| 未着手タスク数 | W件 |
| 総フェーズ数 | {タスク数 × 4}件 |
| 完了フェーズ数 | {完了数}件 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
### フェーズ別進捗
| Task | Phase 1 | Phase 2 | Phase 3 | Phase 4 | Status |
|------|---------|---------|---------|---------|--------|
| TASK-001 | ✅ | ✅ | ✅ | ✅ | 完了 |
| TASK-002 | ✅ | 🔄 | ⏳ | ⏳ | 実行中 |
| TASK-003 | ⏳ | ⏳ | ⏳ | ⏳ | 未着手 |
**ステータス凡例**:
| 記号 | 意味 |
|------|------|
| ⏳ | 未着手 |
| 🔄 | 実行中 |
| ✅ | 完了 |
| ⚠️ | 要確認(🔴項目あり) |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
### 次のアクション
実行中のタスクがある場合:
→ `/origami:run-task TASK-002 --phase 2` を継続実行
未着手のタスクがある場合:
→ `/origami:run-task TASK-003 --phase 1` を開始
📊 Origami タスク進捗レポート
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 対象ディレクトリ: {指定されたディレクトリパス}
## 進捗レポート: {仕様書名}
### 全体進捗: 100% ({総フェーズ数}/{総フェーズ数} phases)
進捗バー: [████████████████] 100%
🎉 全タスク完了!
| 項目 | 値 |
|------|-----|
| 総タスク数 | X件 |
| 完了タスク数 | X件 |
| 実行中タスク数 | 0件 |
| 未着手タスク数 | 0件 |
| 総フェーズ数 | {タスク数 × 4}件 |
| 完了フェーズ数 | {タスク数 × 4}件 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
### フェーズ別進捗
| Task | Phase 1 | Phase 2 | Phase 3 | Phase 4 | Status |
|------|---------|---------|---------|---------|--------|
| TASK-001 | ✅ | ✅ | ✅ | ✅ | 完了 |
| TASK-002 | ✅ | ✅ | ✅ | ✅ | 完了 |
| TASK-003 | ✅ | ✅ | ✅ | ✅ | 完了 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 生成されたドキュメント
docs/origami/{仕様書名}/
├── F-001_ログイン/
│ ├── 01_機能詳細.md
│ ├── 02_動作仕様.md
│ ├── 03_境界値分析.md
│ └── 04_テストケース.md
├── F-002_ユーザー登録/
│ ├── 01_機能詳細.md
│ ├── 02_動作仕様.md
│ ├── 03_境界値分析.md
│ └── 04_テストケース.md
├── F-003_パスワードリセット/
│ ├── 01_機能詳細.md
│ ├── 02_動作仕様.md
│ ├── 03_境界値分析.md
│ └── 04_テストケース.md
└── tasks/
└── task-list.md
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
### 次のアクション
すべてのテストドキュメント生成が完了しました!
- 生成されたドキュメントをレビューしてください
- 🔴項目がある場合はステークホルダーに確認してください
- ⚠️フェーズがある場合は内容を確認し、必要に応じて再実行してください
| エラーケース | メッセージ |
|---|---|
| 引数未指定 | 「仕様書ディレクトリを指定してください。例: /origami:verify-tasks ecommerce-spec」 🔵 |
| ディレクトリ未存在 | 「指定されたディレクトリが見つかりません: {パス}」+ 利用可能ディレクトリ一覧 🟡 |
| タスクファイル未存在 | 「タスク一覧ファイルが見つかりません: {パス}/tasks/task-list.md。先に /origami:split-spec を実行してください」 |
| タスクファイル空 | 「タスク一覧ファイルが空です。/origami:split-spec でタスクを生成してください」 |
| タスクが見つからない | 「タスク一覧ファイルにタスクが見つかりません。ファイル形式を確認してください」 |
| ファイル読み込みエラー | 「タスク一覧ファイルの読み込みに失敗しました: {エラー詳細}」 |
エラー: 指定されたディレクトリが見つかりません: docs/origami/unknown-spec/
利用可能な仕様書ディレクトリ:
- docs/origami/ecommerce-spec/
- docs/origami/auth-system/
- docs/origami/payment-api/
使用例:
/origami:verify-tasks ecommerce-spec
/origami:verify-tasks docs/origami/auth-system/
進捗レポート表示時に、各機能ディレクトリ内の出力ファイルの存在を確認します:
各タスクについて、task-list.md から取得した「出力先」フィールドに基づいて以下のファイルを確認:
| ファイル | 確認内容 |
|---|---|
{出力先}/F-XXX_{機能名}/01_機能詳細.md | 存在チェック |
{出力先}/F-XXX_{機能名}/02_動作仕様.md | 存在チェック |
{出力先}/F-XXX_{機能名}/03_境界値分析.md | 存在チェック |
{出力先}/F-XXX_{機能名}/04_テストケース.md | 存在チェック |
| ファイル数 | タスク状態 | 表示 |
|---|---|---|
| 4/4 | 完了 | ✅ 完了 |
| 1〜3/4 | 作業中 | 🔲 作業中 |
| 0/4 | 未開始 | 🔲 未開始 |
各タスクセクションから以下の情報を取得(v3.1.0 新フォーマット対応):
## TASK-001: F-001 ユーザー登録
**出力先**: docs/origami/{仕様書名}/F-001_ユーザー登録/
| 項目 | 内容 |
|------|------|
| タスクID | TASK-001 |
| 機能ID | F-001 | ← この値を取得
| 機能名 | ユーザー登録 | ← この値を取得
| 依存タスク | なし |
### フェーズ進捗
| Phase | Status | Output |
|-------|--------|--------|
| 1 | ✅ | 01_機能詳細.md | ← この行を解析
| 2 | 🔄 | - | ← この行を解析
| 3 | ⏳ | - | ← この行を解析
| 4 | ⏳ | - | ← この行を解析
## TASK-XXX)を検索### フェーズ進捗)を解析本コマンドは 機能別ディレクトリ方式 に対応しています。各機能が独立したディレクトリに出力されるため、コンテキストの肥大化を防ぎます。
docs/origami/{仕様書名}/
├── F-001_ログイン/ # 機能ディレクトリ
│ ├── 01_機能詳細.md # Phase 1 出力
│ ├── 02_動作仕様.md # Phase 1.5 出力
│ ├── 03_境界値分析.md # Phase 2 出力
│ └── 04_テストケース.md # Phase 3 出力
├── F-002_ユーザー登録/
│ └── ...
└── tasks/
└── task-list.md # タスク一覧(機能ID・機能名・出力先を含む)
F-{連番}_{機能論理名}/F-001_ログイン/, F-002_ユーザー_登録/| コマンド | 説明 |
|---|---|
/origami:split-spec | タスク分割計画を生成(フェーズ進捗テーブル付き task-list.md を出力) |
/origami:run-task | 個別タスクを実行(--phase オプションでフェーズ単位実行可能) |
/origami:extract-features | Phase 1: 機能詳細を抽出 |
/origami:generate-checklist | Phase 2: 動作仕様を作成 |
/origami:analyze-boundaries | Phase 3: 境界値分析を作成 |
/origami:generate-cases | Phase 4: テストケースを生成 |