Skip to content

Issue ライフサイクル・ステート遷移設計

概要

報酬付き Issue のライフサイクルを定義する。Issue は作成から完了まで明確なステートを持ち、各ステート間の遷移はトリガー条件によって制御される。

ステート遷移図

mermaid
stateDiagram-v2
    [*] --> Draft: Issue作成(下書き)

    Draft --> Open: マネージャー承認
    Draft --> Cancelled: マネージャー却下

    Open --> Available: 報酬・見積設定完了
    Open --> Cancelled: マネージャーがキャンセル

    Available --> InProgress: エンジニアがアサイン取得
    Available --> Cancelled: マネージャーがキャンセル

    InProgress --> InReview: MR作成・レビュー依頼
    InProgress --> Available: エンジニアが自主リリース
    InProgress --> Available: 期限超過による自動リリース
    InProgress --> Cancelled: マネージャーがキャンセル

    InReview --> ChangesRequested: レビュアーが修正依頼
    InReview --> Approved: レビュアーが承認
    InReview --> Available: エンジニアが自主リリース

    ChangesRequested --> InReview: 修正完了・再レビュー依頼
    ChangesRequested --> Available: エンジニアが自主リリース
    ChangesRequested --> Available: 修正期限超過による自動リリース

    Approved --> Done: MRマージ完了
    Done --> [*]

    Cancelled --> [*]

    state InProgress {
        [*] --> Working
        Working --> WaitingForInfo: 質問・確認待ち
        WaitingForInfo --> Working: 回答受領
    }

ステート定義

ステート説明主体
DraftIssue が作成された初期状態。内容の精査・報酬設定前マネージャー
Openマネージャーが内容を承認済み。報酬・見積の設定待ちマネージャー
Available報酬・見積が設定済み。エンジニアが取得可能な状態-
In Progressエンジニアがアサインを取得し、作業中エンジニア
In ReviewMR が作成され、レビュー待ちの状態レビュアー
Changes Requestedレビューで修正が要求された状態エンジニア
Approvedレビューが承認され、マージ待ちの状態マネージャー
DoneMR がマージされ、Issue が完了。報酬確定-
CancelledIssue がキャンセルされた状態マネージャー

遷移トリガー条件一覧

#遷移元遷移先トリガー条件実行者
1DraftOpenマネージャー承認Issue 内容が十分に記述されているマネージャー
2DraftCancelledマネージャー却下Issue が不要と判断マネージャー
3OpenAvailable報酬・見積設定報酬額と見積工数が設定済みマネージャー
4OpenCancelledキャンセルIssue が不要と判断マネージャー
5AvailableIn Progressアサイン取得エンジニアの同時着手数 < 上限、楽観的ロック成功エンジニア
6AvailableCancelledキャンセルIssue が不要と判断マネージャー
7In ProgressIn ReviewMR 作成MR が作成されレビュー依頼済みエンジニア
8In ProgressAvailable自主リリースエンジニアが着手を取りやめエンジニア
9In ProgressAvailable期限超過デフォルト期限を超過(自動)システム
10In ProgressCancelledキャンセルIssue が不要と判断マネージャー
11In ReviewChanges Requested修正依頼レビュアーが修正を要求レビュアー
12In ReviewApproved承認レビュアーが MR を承認レビュアー
13In ReviewAvailable自主リリースエンジニアがレビュー中に離脱エンジニア
14Changes RequestedIn Review再レビュー依頼修正コミットを push し再依頼エンジニア
15Changes RequestedAvailable自主リリースエンジニアが修正を断念エンジニア
16Changes RequestedAvailable修正期限超過修正期限(72時間)を超過(自動)システム
17ApprovedDoneMR マージMR がターゲットブランチにマージマネージャー

カンバンカラム対応表

カンバンカラム対応ステート説明
BacklogDraft内容精査前の Issue
ReadyOpen, Available取得可能な Issue(報酬設定中 / 設定済み)
In ProgressIn Progress作業中の Issue
In ReviewIn Review, Changes Requestedレビュー中の Issue
DoneApproved, Done完了・報酬確定済みの Issue
CancelledCancelledキャンセルされた Issue

タイムアウト設定

対象ステートタイムアウトアクション
In Progress見積工数 x 1.5Available に自動リリース、エンジニアに通知
Changes Requested72 時間Available に自動リリース、エンジニアに通知
In Review5 営業日レビュアーにリマインド通知

備考

  • ステート遷移は全て監査ログに記録される
  • Available への自動リリース時、エンジニアの作業ブランチは保持される(別のエンジニアが引き継ぎ可能)
  • Cancelled への遷移は、In Progress 以降のステートでは既存 MR のクローズを伴う