Skip to content

Instantly share code, notes, and snippets.

@m-mizutani
Created September 15, 2025 09:10
Show Gist options
  • Select an option

  • Save m-mizutani/2df19f8275dc022c6bcfe6c5ef5ca15b to your computer and use it in GitHub Desktop.

Select an option

Save m-mizutani/2df19f8275dc022c6bcfe6c5ef5ca15b to your computer and use it in GitHub Desktop.
要件ファイル

インシデントステータス管理機能 要件定義書

機能概要

Lycaonにおけるインシデント管理にステータス管理機能を追加し、インシデントのライフサイクルを適切に追跡・管理できるようにする。

ステータス定義

ステータスの種類

以下の4つのステータスを定義する:

  1. Triage - インシデントの初期評価・分類段階
  2. Handling - インシデント対応実施中
  3. Monitoring - 対応後の監視段階
  4. Closed - インシデント終了

初期ステータスの決定ルール

  • デフォルト: 新規インシデント作成時は Handling から開始
  • オプション: インシデント宣言時のモーダルで「Triage checkbox」にチェックを入れた場合は Triage から開始

ステータス履歴管理

記録内容

各ステータス変更について以下の情報を記録する:

  • 変更日時
  • 変更後のステータス
  • 変更を実施したユーザー情報(SlackユーザーID、名前)

データ構造

  • Incidentsのサブレコードとして管理
  • 時系列での追跡が可能な構造

ユーザーインターフェース

Slack インターフェース

ステータス確認コマンド

  • コマンド: @lycaon status または @lycaon s
  • 動作: 現在のインシデント情報(タイトル、説明、ステータス、リード)を新しいメッセージとして投稿
  • メッセージにはEditボタンを付与

ステータス編集モーダル

  • Editボタンクリックでモーダルを表示
  • 編集可能項目:
    • タイトル
    • 説明
    • インシデントリード
    • ステータス

インシデント宣言モーダル

  • 既存のDeclareモーダルに「Triage checkbox」を追加
  • チェック時はTriageステータスで開始

Web UI

インシデント詳細画面

  • 右サイドバーにステータスセクションを表示
  • 表示内容:
    • 現在のステータス(大きく表示、色分け)
    • ステータス変更ボタン
    • シンプルなステータス履歴
      • 相対時間表示(例:2h ago)
      • ステータス遷移を矢印で視覚化(行間の上向き矢印で連結)
      • 変更者名(@username形式)
      • 状況メモ(グレーのサブテキスト)

ステータス変更機能

  • Web UIからもステータス変更を可能にする
  • 変更時は実施者と日時を自動記録

ステータス表示の同期

  • Slack上の表示(インシデントリスト、メッセージ等)
  • Web UI上の表示(インシデントリスト、詳細画面等)
  • すべての箇所でステータスの変更が即座に反映される

技術要件

データ永続化

  • Firestoreにステータス履歴を保存
  • メモリ実装でも同様の機能を提供(テスト用)

権限管理

  • ステータス変更はインシデントに関わるメンバー全員が実施可能
  • 変更履歴の閲覧は全メンバーが可能

パフォーマンス

  • ステータス変更は非同期で処理
  • UIは即座に更新を反映

制約事項

  • ステータスの逆戻りは可能(例:Closed -> Handlingへの再オープン)
  • ステータス履歴は削除不可(監査証跡として保持)
  • 一度設定したステータスの履歴は編集不可
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment