- ゴール: Task データモデルを
process/assignee/plannedStart/plannedEnd/plannedEffort/actualEffort/statusの7項目で拡張し、一覧・ガントバー・ツールチップで表示/編集できるようにする。選択肢は定数 (TASK_PROCESS_OPTIONS,TASK_STATUS_OPTIONS) に固定し、JSON エクスポートにも新フィールドを含める。 - 非ゴール: 新規ライブラリ導入や大規模なレイアウト刷新、外部 API 連携、i18n 対応の追加。
- 変更ファイル(新規/修正/削除):
- 型定義:
src/types/public-types.ts,src/types/bar-task.ts - 定数:
src/constants/taskOptions.ts(新規) - コンポーネント:
src/components/gantt/gantt.tsx,src/components/gantt/task-gantt-content.tsx,src/components/task-list/task-list.tsx,src/components/task-list/task-list-header.tsx,src/components/task-list/task-list-table.tsx,src/components/task-item/task-item.tsx,src/components/other/tooltip.tsx - スタイル:
src/components/task-list/*.css,src/components/other/tooltip.module.css,src/components/task-item/task-list.module.cssなど必要箇所 - サンプルデータ/表示:
example/src/helper.tsx,example/src/App.tsx - テスト:
src/test/*.test.tsx(新規追加を含む)
- 型定義:
- 影響範囲・互換性リスク: Task 型が拡張されるが新フィールドはオプショナルとし既存タスクは空表示で後方互換を維持。列追加によりタスクリスト幅が増えるためスクロールと列幅調整を行う。
- 外部依存・Secrets の扱い: 依存追加なし。Secrets/PII は扱わない。
- 責務分離 / データフロー:
Taskに新フィールドと選択肢型を追加し、Gantt → TaskGanttContent → TaskItem/Tooltip/TaskList へ透過的に渡す。process/statusは定数のユニオン型で制限し、表示・更新時は定数を唯一の参照元とする。 - UI/表示: タスクリストに工程・担当者・予定開始/終了・予定工数・実績工数・進捗ステータス列を追加し、ステータスは色付きバッジで表示。日付表示は
YYYY-MM-DD固定。未設定の工数・日付は空欄表示。 - オプション・フォールバック:
visibleFieldsのような表示制御設定を追加しデフォルトは全表示。無効なprocess/statusは定義済み先頭値へフォールバック。plannedEffort/actualEffortは 0 以上の数値のみを表示対象とし、それ以外は空。 - テーマ/スタイル: ステータス色を CSS 変数/クラスで指定(例: 未着手=gray, 進行中=blue, 完了=green, 保留=orange)。列幅はデフォルト値を設け、横スクロールで全列確認できるようにする。
- JSON エクスポート: Task 配列を JSON 化した際に新フィールドが欠落しないよう型とフィクスチャを更新する。
- テスト観点: Task 型拡張の型整合性、タスクリスト/ツールチップ/バーでの新フィールド表示、ステータスバッジ色、
process/statusドロップダウン更新、JSON エクスポートで新フィールドが含まれること、未設定時の空欄フォールバック。 - モック / フィクスチャ: 新フィールドを含む Task フィクスチャを追加し、未設定/無効値/計画のみ等のケースを網羅。外部 API なし。
- テスト追加の実行コマンド:
npm run test:unitを中心に、最終確認でnpm run test。
- 実行コマンド(format / lint / typecheck / test / security):
npm run test(lint・build・unit を包含)。依存追加がないため追加のセキュリティスキャンは不要。 - 通過基準と失敗時の対応: すべて成功すること。型/表示差分で失敗した場合は Task 変換と表示ロジックの整合を優先修正する。
- ロールバック方法: 変更ファイルを元の状態へ戻すか Git で revert。デモ用途のため段階的リリースは不要。
- 監視・運用上の注意: タスクリスト横幅とステータス色が想定通りか目視確認する。
- 未確定事項: 工数単位切替の拡張や追加ステータス色の詳細は将来の課題。現行 Issue ではデフォルト値の実装にとどめる。
- ADR に残すべき判断: Task フィールドの optional 取り扱いとステータス色のデフォルト決定は必要に応じて ADR 化。