local-ticket-system
local-ticket-system
プロジェクトに .local/ticket/ ディレクトリベースのチケット管理システムをセットアップし、チケットの作成・管理を行う。
Usage
以下のいずれかの状況で使用する:
- プロジェクトにローカルチケット管理を新規導入したい
- 既存のチケットシステムにタスク・バグ・チャプターチケットを追加したい
- チケットのステータスを変更したい (done / closed / archived / deferred への移動)
Step 1: セットアップ (初回のみ)
プロジェクトに .local/ticket/ が存在しない場合、以下を実行する。
.local/ticket/ディレクトリを作成assets/about.mdを.local/ticket/about.mdとしてコピーassets/task-0xx-template.mdを.local/ticket/task-0xx-template.mdとしてコピーassets/chapter-template.mdを.local/ticket/chapter-template.mdとしてコピー.gitignoreに.local/が含まれていなければ追加
既に .local/ticket/ が存在する場合はスキップする。
Step 2: チケット種別の判断
チケットを作成する前に、ユーザーの要件を分析して適切な種別を選択する。
種別の定義
| 種別 | 用途 | 粒度 |
|---|---|---|
| task | 1つの作業単位。実装してcommitできる粒度 | 小〜中。1回の作業セッションで完了できる |
| bug | 既存の不具合の記録と修正 | 小〜中。1つのバグに対して1チケット |
| chapter | 複数の task/bug をまとめる上位概念 | 大。要件整理 → task/bug に分割して進める |
判断基準
以下の順に確認する:
- 既存の不具合か? →
bug - 複数の作業ステップに分割する必要があるか? →
chapter- 要件がまだ曖昧で、設計・検討が必要
- 複数の画面・機能にまたがる変更
- DB設計 + API + フロントエンドなど複数レイヤーの変更を伴う
- 1回の作業で完了できるか? →
task
迷ったらユーザーに確認する。chapter で切るべきものを task にすると、チケットが肥大化して管理しづらくなる。逆に task で済むものを chapter にすると、不要なオーバーヘッドが生じる。
Step 3: チケットの作成
Step 2 で決定した種別に応じてチケットを作成する。
命名規則
- タスク:
task-{連番3桁}-{slug}.md(例:task-001-add-login.md) - バグ:
bug-{連番3桁}-{slug}.md(例:bug-001-null-pointer.md) - チャプター:
chapter-{slug}.md(例:chapter-multi-tenant.md)
task / bug の連番は .local/ticket/ 内の既存チケット (done/, closed/ 含む) から最大番号を取得し +1 する。chapter は連番を使わない。
task チケットの構成
テンプレート (assets/task-0xx-template.md) をベースに、以下のセクションで構成する:
# タイトル
概要説明
## 検証方法
動作確認の手順・コマンド
## チェックリスト
- [ ] 実装タスク 1
- [ ] 実装タスク 2
- [ ] 不要ファイルの削除
- [ ] 検証(検証方法セクションの項目を実施)
- [ ] セルフレビュー
- [ ] commit
- [ ] このチケットを done/ に移動
チェックリスト末尾の共通項目 (不要ファイル削除〜done 移動) は必ず含める。
bug チケットの構成
task の構成に加え、以下を含める:
- 再現手順 — 問題を再現する具体的な手順
- 期待される動作 と 実際の動作
- 推測される原因 — わかる範囲で
- 対応方針の候補 — 複数案がある場合はリストアップ
chapter チケットの構成
テンプレート (assets/chapter-template.md) をベースに、以下のセクションで構成する:
# タイトル
## やりたいこと
ざっくりとした目的・背景
## 課題・モチベーション
なぜこれをやりたいのか、現状の課題は何か
## スコープ(仮)
- 大まかにやりたいことを箇条書き
## やらないこと(仮)
- 明示的にスコープ外とするもの
## 検討が必要な事項
- [ ] 設計・実装前に決めないといけないこと
## 進め方
1. [ ] 要件・スコープの確定
2. [ ] 設計(DB / API / 画面)
3. [ ] 実装チケットへの分割(task-xxx, bug-xxx 等)
4. [ ] 実装
5. [ ] テスト・動作確認
6. [ ] デプロイ
## 参考情報
- 関連する既存チケット、ドキュメント、外部リンク等
Step 4: チケットのステータス管理
task / bug のライフサイクル
- 作成:
.local/ticket/直下に配置 - 作業中: チェックリストを消化しながら実装
- done: 実装・commit が完了 →
done/へ移動 - closed: 動作確認・検証が完了 →
closed/へ移動 - deferred: 意図的に後回し →
deferred/へ移動(再着手の意図あり)
ステータス変更はファイルの移動で行う:
mv .local/ticket/task-001-add-login.md .local/ticket/done/
chapter のライフサイクル
- 作成:
.local/ticket/直下に配置 - 検討中: スコープや検討事項を詰めていく
- 分割: task / bug チケットに分割する。分割したチケット名を chapter 内に記録する
- archived: 全ての子チケットが done/closed になったら
archived/へ移動 - deferred: 着手を先送りにするとき →
deferred/へ移動
chapter は done/closed には移動しない。子チケットの完了が chapter の完了を意味する。
deferred/ への移動
「今のフェーズでは着手しないが、将来再着手する意図がある」チケット・チャプターを置く場所。完了ではなく先送りを意味する。
移動前にチケット内に以下を追記する:
**Deferred 理由**: <なぜ後回しにするか>
**再起票 trigger**: <どういう条件で再着手するか>
**Deferred 日付**: YYYY-MM-DD
再着手するときは deferred/ から ticket/ 直下に戻す。