xs-xangi-kaizen — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited xs-xangi-kaizen (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
AIアシスタントで起きた事象を調査し、根拠のある原因と対策を報告する。xangi固有のコマンドは、その環境で利用できる場合だけhelpを確認して使う。
スキルの背景・設計思想・参考文献は README.md を参照。
何が起きた / いつ / どこで(チャンネル・対象スキル)。事実を時系列で整理する。
ステップ:
xangi tool discord_history --count 30
xangi tool discord_history --channel <ID> --count 50[NOTES_DIR] の過去 xangi-kaizen ノートを事象キーワードで grep # xangi-kaizen タグの全事例
grep -rl '#xangi-kaizen' [NOTES_DIR] | sort
# 対象スキル名・キーワードで絞り込み
grep -rl '#<対象スキル名>' [NOTES_DIR]
grep -rl 'state\|cron\|<キーワード>' [NOTES_DIR]/*xangi-kaizen* 2>/dev/nullヒットした事例は中身を読む。似た症状だけで同因とせず、今回と過去の発生条件・ログ・変更点を比較してから対策の適用可否を判断する。
複数のソースを横断的に追う。一つの観点で結論を出さない。
ステップ 0(重要): 調査対象 bot の workspace を特定する。 xangi は bot ごとに別 workspace・別プロセスで動く構成を取りうる。複数 bot を運用している場合、手元の workspace だけを見ても対象 bot の事象は写っていないことがある。
# Docker 運用の場合: bot がどのコンテナか確認
docker ps --format '{{.Names}}\t{{.Image}}'
# コンテナの workspace マウント元を確認
docker inspect <container> --format '{{range .Mounts}}{{.Source}} -> {{.Destination}}{{println}}{{end}}' | grep '/workspace'特定した <bot-workspace> 配下の logs/sessions/ と logs/tool-trajectory/ を見る。環境変数やチャンネル割り当ては各 bot の .env で確認する。
| 観点 | コマンド/対象 | |
|---|---|---|
| state ファイル | [STATE_DIR]/*_state.json、references/*_last_check.json 等の中身と stat -c "%y %n" | |
| git 履歴 | git log -p --all -- <path>、git show <commit>:<path> | |
| git reflog | git reflog --since=<時刻>(ブランチ切替・rebase・reset の追跡) | |
| cron / schedule | `xangi tool schedule_list 2>&1 \ | grep -B2 -A3 <キーワード>` |
| セッションログ(生応答) | 対象 bot の <bot-workspace>/logs/sessions/*.jsonl。事象の出たチャンネル ID で grep -rl <channelId> → 該当ファイルの当該ターンを開き、assistant result を確認 | |
| tool-trajectory ログ | <bot-workspace>/logs/tool-trajectory/*.jsonl。tool search / loop / drift / stream buffer / cache などのイベントが時系列で残る | |
| 該当スクリプト/コード | skills/<name>/scripts/、または対象リポのソース。ログで事象を確定した後に「なぜそうなるか」を辿る | |
| 投稿履歴 | xangi tool discord_history --channel <ID> --count 30 |
「これしか見ていない」状態で次フェーズに行かない。
「なぜ」を最低3回掘る。 誰が読んでも納得できる説明になるまで掘り続ける。
仮説 → 証拠 → 検証のサイクル。仮説が間違っていたら戻る。証拠が不足する場合は原因未確定として報告する。
patchが適用できない場合は、期待した本文と現ファイルを再比較する。表記差・読み取り後の変更・別hunkの失敗を区別し、mtime/hashや他プロセスの更新証拠がある場合だけ「競合」と報告する。
例:
pull --rebase / checkout 多発を確認 → ✓「ここまで掘れば再発防止策が書ける」と思える深さまで掘る。一段で止まると対症療法になる。
応答内容系(変な出力・空・drift)はコードからの推測で終わらせない。「コードのこの fallback だ」で止めず、Phase 2 で開いた当該ターンの生ログと突き合わせて確定する。ログで確定するまでは報告に「ここは未確認の推測」と明示する。
同じパターンの他ファイル/問題を網羅検索する。1件直しても、別の場所で同じ事故が起きうる。
# ランタイム状態ファイル系を全部洗い出し
git ls-files | grep -iE "state|cache|last_check|cookie|credential|\.pid$"
# 巨大ログ系(リポジトリ肥大化のリスク)
git ls-files | xargs -I {} stat -c "%s %n" {} 2>/dev/null | sort -rn | head -20
# 最近書き換えられた tracked ファイル(書き換え頻度 + tracked = 罠)
git ls-files | xargs -I {} stat -c "%y %n" {} 2>/dev/null | sort -r | head -30事象の根本パターンに沿って検索クエリを組み立てる。「state ファイルが git ロールバックされた」が真因なら「他に git 管理されてる runtime state は無いか」を網羅する。
診断依頼なら原因・証拠・対策案・未確認事項を報告して完了する。変更依頼の場合だけ以下へ進む。
実装方針:
.gitignore に追加)報告フォーマット:
詳細レポートは [NOTES_DIR] にタグ付きで保存する。事例は積み重ねていく(次回の調査で Phase 1 の KEDB として効く)。
[NOTES_DIR]YYYYMMDD_xangi-kaizen_<事象タイトル>.md ---
title: <事象タイトル>
date: YYYY-MM-DD
type: incident
tags:
- xangi-kaizen
- incident
- <対象スキル名>
---xs-note-taking スキルに従う(命名規則・フロントマター・同期手順を活用)過去事例を参照したいときは:
grep -rl '#xangi-kaizen' [NOTES_DIR] | sort詳細経緯はノートや knowledge/lessons_archive.md に残し、繰り返し使う判断基準だけを短くAGENTS.mdへ反映する案を示す。調査だけの依頼で行動ルールを勝手に書き換えない。
xs-xangi-kaizen
xangi-kaizen でこの事象を調査して
原因調べて
再発防止策を立てて
調査して、横展開もしてほしい
事象を分析して~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.