一键导入
incident-investigate
第2層。インシデントイシューとローカル run artifact を読み、#301 の調査手順①〜⑥に沿って原因調査 artifact を作成し、全文をインシデントイシューへコメント投稿する。結論を断定できない場合は INCONCLUSIVE で PASS 可。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
第2層。インシデントイシューとローカル run artifact を読み、#301 の調査手順①〜⑥に沿って原因調査 artifact を作成し、全文をインシデントイシューへコメント投稿する。結論を断定できない場合は INCONCLUSIVE で PASS 可。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
設計書(draft/design/)に基づき、TDD(テスト駆動開発)アプローチを用いて機能を実装する。
実装完了後の成果物に対し、設計整合性とコード品質の観点から厳格なレビューを実施する
Issue 作成後・workflow 起動前に人間が明示起動する要件 interview。one-way door を含みうる重要な Issue で、未決の decision tree を 1 問ずつ推奨案付きで確認し、決定事項と provenance を Issue に固定するときだけ使用する。軽微な Issue や workflow 実行中には自動起動しない。
第2層のインシデント調査レビュー収束サイクルを 1 コマンドで手動起動する slash command wrapper。kaji run .kaji/wf/official/incident.yaml <incident_issue_id> を Bash 経由で起動し、exit code を verdict に縮約する。
Issue要件に基づき、draft/design/に設計書を作成する。worktree内での作業が前提。
ワークフローを手動実行して検証し、失敗時は継続せず原因を調査して Issue に記録する。成功時も気づきや詰まりどころを Issue に記録する。
| description | 第2層。インシデントイシューとローカル run artifact を読み、#301 の調査手順①〜⑥に沿って原因調査 artifact を作成し、全文をインシデントイシューへコメント投稿する。結論を断定できない場合は INCONCLUSIVE で PASS 可。 |
| name | incident-investigate |
第1層(#304)が起票したインシデントイシューを入力に、原因を調査し、調査 artifact
(<artifact_root>/<incident_issue_id>/investigation/report.md)を作成して全文をコメント投稿する。
結論を断定できないことは失敗ではない。 証拠が不足するときは無理に断定せず、
INCONCLUSIVEを選び、棄却済み仮説・不足証拠・再現の記録を充足させること。調査結論(conclusion)と レビュー verdict(PASS/RETRY/ABORT)は別軸であり、記述が十分なら結論がINCONCLUSIVEでも verdict は PASS になり得る(EPIC #303 決定 D)。
ワークフロー内の位置: investigate → review →(fix → verify)→ report
| 変数 | 型 | 説明 |
|---|---|---|
issue_id | str | 調査対象のインシデントイシュー ID |
issue_ref | str | 人間可読の Issue 参照(GitHub では #<issue_id>) |
step_id | str | 現在のステップ ID |
$ARGUMENTS = <incident_issue_id>
コンテキスト変数 issue_id が存在すればそちらを使用。なければ $ARGUMENTS の第 1 トークンを
issue_id として使用する。
worktree_dir を参照しない: インシデントイシューには type:* ラベルも worktree も無く、
注入される worktree_dir は実在しないパスを指す。作業場所は main repo(読み取り)+調査 artifact
ディレクトリ(書き込み)+使い捨て検証環境に限定する。kaji run は
resolve_artifacts_dir() により run/state artifact を main worktree の .kaji-artifacts へ
集約する。skill が feature worktree(例 kaji-feat-305)の cwd から起動されると、そこには
.kaji-artifacts が存在しない。したがって cwd 相対の .kaji-artifacts を参照してはならない。
各 skill は最初に絶対 root を解決し、source run・台帳・investigation report の全読み書きに同じ
root を用いる:
ART="$(kaji config artifacts-dir)" # main worktree 基準の絶対パス(副作用なし)
以降、本ドキュメントの <artifact_root> は $ART を指す。verdict.yaml。コメントには
kaji issue comment <id> --verdict-step <step> --verdict-status <STATUS> を無条件付与する。<artifact_root>/<issue>/runs/<run_id>/run.log は生ログである。コメント /
artifact に引用する際はトークン・資格情報・秘匿 URL を既存 sanitize_evidence と同方針でマスクする。docs/dev/shared_skill_rules.md § auto close keyword 回避規約に従う。kaji issue view [issue_id] --json labels,body
incident ラベルが付与されていること<!-- kaji-incident: ... -->)が存在することいずれかを欠く場合は調査に入らず ABORT(suggestion に「対象がインシデントイシューか確認する手順」を記載)。
ART="$(kaji config artifacts-dir)"
kaji issue view [issue_id] --comments
run_id 件数)を導出する。$ART/<source_issue>/runs/<run_id>/ の
run.log / result.json / steps/)と台帳 $ART/incidents/occurrences.jsonl を読む。| 手順 | 内容 | 主な入力 |
|---|---|---|
| ① 一時的か判定 | 再発回数 N・auto-resume 自己回復の有無・発生間隔から transient 可能性を評価 | occurrence marker 群、occurrences.jsonl |
| ② 識別署名の確認 | identity marker / fingerprint block を読み、署名が障害実体と整合するか検証(過剰統合の検出を含む) | Issue 本文、kaji_harness/recovery/signature.py の正規化仕様 |
| ③ バージョンの時系列 | 発生 run 前後の CLI / 依存バージョン変化と発生時期の相関を整理 | run.log、CHANGELOG、git log |
| ④ 上流既知不具合と照合 | WebSearch / WebFetch で上流 issue tracker・release note を独立検索 | 上流リポジトリ(例: anthropics/claude-code) |
| ⑤ 再現実験 | 使い捨て環境(git worktree add --detach の一時 worktree +隔離 venv、または scratch dir)で最小再現を試行。結果(成功 / 失敗 / 実施不能の理由)を必ず記録 | run artifact、再現コマンド |
| ⑥ 内部/外部要因の切り分け | ①〜⑤の結果から conclusion 6 値のいずれかに到達、または INCONCLUSIVE として棄却済み仮説+不足証拠を列挙 | ①〜⑤の記録 |
git worktree remove / scratch 削除)。.claude/skills/incident-investigate/artifact-template.md をテンプレートとして、
$ART/[issue_id]/investigation/report.md を作成する(親ディレクトリは mkdir -p で用意)。必須セクション:
モデルメタデータの記録(#303 決定 B): メタデータの 提案役モデル に本セッションの実行中モデル ID を
記録する。取得元は 主: セッションの自己申告値(system prompt が提示する実行中モデル ID。--model
override 後の実選択モデルを反映)、従: 設定値(workflow YAML の model)。モデル値の情報源 に
self-reported / configured を明記する。査読役モデル 以降は review step が追記する(本 step は空欄可)。
受理基準を満たす(#303 決定 A / D):
INCONCLUSIVE 以外: 実再現、または実障害ログの引用(<run_id>:<ファイル> 付き
citation)を必須とする。欠けば査読で RETRY になる。INCONCLUSIVE: 棄却済み仮説(反証根拠つき)・不足証拠の列挙・再現の記録を必須とする。調査 artifact 全文をインシデントイシューへコメント投稿する。artifact は gitignore 済み領域の作業コピー であり、正本はコメント(worktree 削除の影響を受けない長期記憶)。verdict マーカーを無条件付与する。
kaji issue comment [issue_id] --commit \
--verdict-step investigate --verdict-status <STATUS> \
--body-file "$ART/[issue_id]/investigation/report.md"
作業報告コメント末尾 → stdout → artifact verdict.yaml の 3 経路に残す。
---VERDICT--- status: PASS reason: | 調査 artifact を作成し、受理基準を満たす記述を投稿した evidence: | conclusion=<値>、citation <run_id>:、①〜⑥ の実施記録あり suggestion: | ---END_VERDICT---
| status | 条件 |
|---|---|
| PASS | 調査 artifact を作成し、受理基準(実証 or INCONCLUSIVE の記述充足)を満たす |
| ABORT | 対象が非インシデント(incident ラベルなし / identity marker なし)等の前提崩壊 |
RETRYは investigate では返さない(incident.yamlのinvestigate.onは{PASS, ABORT}のみ)。 調査の不足は後段 review が RETRY を発行して fix へ回す。