- 対話型Ganttチャート自動生成システム
- Claude Code スキル定義 (/gantt, /gantt-update)
- Google Apps Script連携
- Todoist・Discord統合機能
- 完全なセットアップドキュメント
🤖 Generated with Claude Code
12 KiB
12 KiB
自動Ganttチャート生成システム 設計書
1. システム概要
Claude Codeを使った対話型プロジェクト管理システム。ユーザーとの対話を通じてプロジェクト情報を収集し、Google Apps Script (GAS)を使ってスプレッドシートに自動でGanttチャートを生成する。
2. システム構成
2.1 コンポーネント
-
Claude Code対話システム
- スラッシュコマンド:
/gantt - メタプロンプトファイル
- JSON生成機能
- スラッシュコマンド:
-
データ連携層
- Google Drive API(OAuth認証)
- 自動アップロード機能
-
GASバックエンド
- ドライブ監視トリガー
- JSON読み込み・解析
- Ganttチャート生成エンジン
-
スプレッドシート出力
- プロジェクト一覧シート
- 各プロジェクトのGanttチャートシート
2.2 データフロー
1. ユーザー入力
└─> Claude Code対話
└─> JSON生成
└─> Google Drive APIで指定フォルダにアップロード
└─> GASがドライブ監視(自動トリガー)
└─> JSON読み込み・解析
└─> 指定スプレッドシートに新規シート追加
└─> Ganttチャート生成
3. データ仕様
3.1 JSONスキーマ(予定)
{
"project_id": "プロジェクトID",
"project_name": "プロジェクト名",
"project_purpose": "目的(個人事業/HRteam)",
"project_type": "プロジェクトジャンル",
"project_deadline": "プロジェクト期日 (YYYY-MM-DD)",
"tasks": [
{
"task_id": "タスクID(T001から自動連番)",
"task_name": "タスク名",
"start_date": "開始日 (YYYY-MM-DD)",
"end_date": "終了日 (YYYY-MM-DD)",
"assignee": "担当者名",
"dependencies": ["前提タスクID"],
"progress": "進捗率 (0-100)",
"priority": "優先度",
"parent_task_id": "親タスクID (nullの場合は親タスク)",
"tags": ["タグ1", "タグ2"],
"estimated_hours": "工数見積もり(時間)",
"is_milestone": "マイルストーンフラグ (true/false)"
}
]
}
注: 最終的なスキーマはGASとの相性を考慮して調整
3.2 プロジェクトジャンル
- 開発プロジェクト
- マーケティング
- イベント企画
- 業務改善
- 汎用プロジェクト
注: テンプレートは作成せず、ジャンル分け用の情報として使用
3.3 業務分類タグ(10種類)
| タグ名 | 説明 | 色 | カラーコード |
|---|---|---|---|
| 企画 | 構想・アイデア出し・要件定義 | 青 | #4285F4 |
| 設計 | 仕様書作成・アーキテクチャ設計 | 紫 | #9C27B0 |
| 開発 | コーディング・実装作業 | 緑 | #34A853 |
| デザイン | UI/UXデザイン・ビジュアル制作 | ピンク | #E91E63 |
| テスト | 動作確認・品質検証 | オレンジ | #FF9800 |
| レビュー | コードレビュー・成果物確認 | 黄色 | #FBBC04 |
| 資料作成 | ドキュメント・マニュアル作成 | 水色 | #00BCD4 |
| 調整 | 会議・調整・承認取得 | グレー | #9E9E9E |
| 運用 | デプロイ・保守・監視 | 茶色 | #795548 |
| その他 | 上記に該当しない作業 | ライトグレー | #E0E0E0 |
注: タスクには複数タグを設定可能。Ganttチャート上でタグごとに色分けして視覚化(複数タグの場合は最初のタグの色を使用)
3.4 優先度表現(6段階)
- ★★★★★(最高優先度)
- ★★★★☆
- ★★★☆☆
- ★★☆☆☆
- ★☆☆☆☆
- ☆☆☆☆☆(最低優先度)
AIが自動判定する際は、タスクの重要性・緊急性・依存関係を考慮して設定
3.5 プロジェクトステータス(5段階)
- 未着手 - プロジェクト開始前
- 進行中 - 実行中
- 完了 - プロジェクト終了
- 保留 - 一時停止中
- 中止 - プロジェクト中止
初期値は「未着手」、スプレッドシート上で手動更新
4. 対話フロー設計
4.1 対話方式
- 基本方式: 順次型(案A)とテンプレート型(案C)のハイブリッド
- コミュニケーション: 一問一答形式(必須)
- 段階的確認: 各フェーズ完了時に確認を行う
4.2 対話の進行順序
1. プロジェクトID入力
↓
2. プロジェクト名入力
↓
3. 目的選択(個人事業/HRteam)
↓
4. プロジェクトジャンル選択(5種類から)
↓
5. プロジェクト概要説明
※何度も壁打ちして深掘り
↓
6. プロジェクト期日入力
↓
7. タスク分割
※何度も壁打ちして深掘り
【確認】「タスク分割完了しました。期日設定に進みますか?」
↓
8. 各タスクの期日設定
↓
9. 詳細設定(担当者・依存関係・タグ・工数など)
【確認】「すべて完了しました。JSON生成しますか?」
↓
10. JSON生成 → Google Driveに自動アップロード
- **JSONファイル名**: `プロジェクトID_プロジェクト名.json` → Google Driveにアップロード
- **対話履歴ファイル名**: `プロジェクトID_プロジェクト名.md` → ローカルの`/docs`ディレクトリに保存
4.3 自動判定項目
- 依存関係: AIが対話内容から自動判定
- 工数見積もり: AIが自動推定
- 優先度: AIが自動判定
4.4 手動入力項目
- 担当者: 自由入力
- 小タスクの完了状態: スプレッドシート上のステータス列で手動更新
5. スプレッドシート仕様
5.1 シート構成
-
プロジェクト一覧シート
- プロジェクトID
- プロジェクト名
- プロジェクトジャンル
- 目的(個人事業/HRteam ※将来的に増える可能性あり)
- 作成日
- 期日(プロジェクト全体の終了予定日)
- ステータス
-
全プロジェクトタスクシート
- 全プロジェクトのタスクを統合表示
- 表示項目: プロジェクト名 + 各プロジェクトシート左側の全項目
- プロジェクト名、タスクID、タスク名、開始日、終了日、進捗率、ステータス、担当者、優先度、タグ、工数
- デフォルト並び順: プロジェクトごとにまとめて表示
- 更新方法(3種類実装):
- 新規プロジェクト作成時に全タスクを自動追加
- 各プロジェクトシートの変更を監視して自動同期(onEdit トリガー)
- 手動更新ボタン(シート上部に配置)
- 機能: スプレッドシートのフィルタ/並び替え機能で期日順・優先度順など自由に並び替え可能
-
各プロジェクトのGanttチャートシート
- シート名:
プロジェクトID_プロジェクト名 - 上部: 基本情報(プロジェクトID、プロジェクト名、ジャンル等)
- メイン: Ganttチャート
- シート名:
5.2 Ganttチャートスタイル(標準構成)
レイアウト:
- 左側: タスクリスト(全項目表示)
- 列の並び順: タスクID → タスク名 → 開始日 → 終了日 → 進捗率 → ステータス → [折りたたみ]担当者 → 優先度 → タグ → 工数
- 行の並び順: タスクIDの昇順(T001 → T002 → T003...)
- 親子関係の表示: 小タスクをインデント表示(親タスクの下に字下げ)
- 常に表示: タスクID、タスク名、開始日、終了日、進捗率、ステータス
- デフォルト折りたたみ: 担当者、優先度、タグ、工数見積もり
- GASで列グループ化機能を使用して折りたたみ設定
- 右側: タイムライン(日付軸に沿った棒グラフ)
- 日付軸の単位: 日単位
視覚要素:
- タグによる色分け(業務種別の視覚化)
- 週末のグレー背景(スケジュール感覚)
- 進捗率は棒の塗りつぶし(例: 50%完了なら棒の半分を濃色)
- 依存関係は灰色の実線矢印(#666666)で前提タスクからの関係を可視化
- マイルストーンは赤色の◆マーク(#EA4335)+ テキストラベル付き
5.3 進捗管理
- 親タスク: 配下の小タスクの完了状況から自動計算
- 小タスク: ステータス列(ドロップダウン: 未着手/進行中/完了)を手動更新
- 親タスクの進捗率 = 完了した小タスク数 / 全小タスク数 × 100
- 計算ルール: 「完了」のみカウント(「進行中」は0%扱い)
6. 技術実装
6.0 環境変数管理
- Claude Code側:
.envファイル(推奨)GOOGLE_DRIVE_FOLDER_ID: アップロード先フォルダID
- GAS側: スクリプトプロパティ
SPREADSHEET_ID: 出力先スプレッドシートIDDISCORD_WEBHOOK_URL: エラー通知用Discord Webhook URL
6.1 Google Drive連携
- 方式: Google Drive API使用
- 認証: OAuth認証(初回のみ設定)
- アップロード先: 指定フォルダ
- 指定方法: 環境変数(
.env)でフォルダIDを設定
- 指定方法: 環境変数(
6.2 GASトリガー
- トリガータイプ: ドライブ監視(ファイルアップロード検知)
- 実行内容:
- 新規JSONファイル検知
- JSON読み込み・解析
- 指定スプレッドシートに新規Ganttチャートシート追加
- Ganttチャート生成
- プロジェクト一覧シートに自動追加(プロジェクトID、プロジェクト名、目的、ジャンル、作成日、期日、ステータス)
- 全プロジェクトタスクシートに全タスクを自動追加
6.3 スプレッドシート操作
- 対象: 指定された1つのスプレッドシート
- 指定方法: 環境変数でスプレッドシートURLまたはIDを設定
- 操作: 新規シート追加(既存シートは保持)
- 命名規則:
プロジェクトID_プロジェクト名
7. 開発タスク
7.1 Phase 1: Claude Code側の実装
- メタプロンプトファイル作成
- スラッシュコマンド
/gantt実装 - JSON生成ロジック実装
- Google Drive API連携実装
7.2 Phase 2: GAS側の実装
- ドライブ監視トリガー設定
- JSON読み込み・解析ロジック
- スプレッドシート操作ロジック
- Ganttチャート生成エンジン実装
- 進捗率自動計算ロジック
- 全プロジェクトタスクシート機能
- 新規プロジェクト作成時の自動追加
- onEditトリガーによる自動同期
- 手動更新ボタン実装
- エラーハンドリング・Discord通知機能
- Discord Webhook URLは環境変数で設定
7.3 Phase 3: 統合とテスト
- エンドツーエンドテスト
- エラーハンドリング実装
- ドキュメント整備
10. 次のステップ
設計仕様が確定しました。次は以下の実装に進みます:
- メタプロンプトファイル作成 - 対話フローを実装
- スラッシュコマンド実装 -
/ganttコマンドの作成 - JSON生成ロジック - 対話情報からJSONを生成
- Google Drive API連携 - 自動アップロード機能
- GASスクリプト実装 - Ganttチャート生成エンジン
ステータス: 設計完了 ✓ (最終更新: 2025-12-17)
主要機能まとめ:
- 対話型プロジェクト作成(10ステップ)
- JSON自動生成 + Google Drive自動アップロード
- GAS自動トリガー + Ganttチャート生成
- プロジェクト一覧シート
- 全プロジェクトタスクシート(3種類の更新方法)
- 各プロジェクトGanttチャートシート
- Discord通知 + エラーハンドリング
8. 保留事項
8.1 全体管理シートの仕様
- プロジェクト一覧シートの詳細機能
- 複数プロジェクト間の依存関係管理
- リソース配分の可視化
- ダッシュボード機能
→ 後で仕様を検討・実装
9. 補足
- 対話は常に一問一答形式で進行
- 各フェーズで段階的確認を実施
- AIが自動判定する項目と手動入力項目を明確に分離
- スプレッドシート上での手動更新を前提とした進捗管理