mcpField
M
mo-debug

mo-debug

github.com/shkarupa-alexエージェントワークフロー038 回インストール4 週間前に更新
リポジトリ

mo-debug について

mo-debugは、ユーザーが明示したセッションIDまたはパスを基に、エージェント自身のセッションを診断するスキルです。付属ヘルパーで範囲を限定して所有者のログを読み、逸脱を分類します。公開やIssue登録は行わず、ローカルレポートを作成します。

主な機能

  1. 01指定されたセッションのみをスキャン
  2. 02時間または記録数で読み取り範囲を限定
  3. 03記録された逸脱を分類
  4. 04履歴指定時にバージョンを特定
  5. 05ローカルレポートを作成

活用シーン

  1. 01エージェントセッションの失敗調査
  2. 02オーケストレーションやレビューの逸脱追跡
  3. 03外部報告用のローカル草稿作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/shkarupa-alex/meta-o --skill mo-debug

インストール後、Claude Code で/mo-debugを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
cases.json
references/
methodology-feedback.md
scripts/
mo-debug.mjs

詳細

エージェントセッションを自分で診断する

ユーザーが mo-debug と名指しした場合にのみ開始します。コードのデバッグ、失敗の説明、セッション全般のレビューを依頼されても有効にならず、ほかのスキルから呼び出されることもありません。

Обратная связь о методологии を最後まで読みます。遭遇した問題は回答でユーザーに伝え、このスキルから Issue を作成することはありません。

読み取り可能な対象

ユーザーから明示されたセッションのパスまたは ID(Claude セッション UUID または Codex スレッド ID)と、上限(--since <ISO-8601>、--max-records <n>、または両方)を取得します。不足している場合はユーザーに尋ねます。自分でセッションを検索したり、ほかのツールでセッションログを開いたりしてはいけません。読み取りに使用できるのは、同梱のヘルパーだけです。

node scripts/mo-debug.mjs scan --session <path-or-id> [--session …] \
  [--since <ISO-8601>] [--max-records <n>] \
  [--history <meta-o-checkout>] [--max-history <n>] [--out <new-file>]

ヘルパーが読み取るのは、実行ユーザーが所有する ~/.claude/projects/ または ~/.codex/sessions/ 配下の通常ファイルだけです。CLAUDE_CONFIG_DIR が設定されている場合は ~/.claude の代わりに使い、CODEX_HOME が設定されている場合は ~/.codex の代わりに使います。どちらも絶対パスでなければなりません。foreign_path、session_not_found、session_ambiguous は拒否を示します。ファイルは読み取られていないため、別の方法を試してはいけません。search_incomplete は、セッションのルートに到達できなかったか、その配下のディレクトリを読み取れなかったことを意味します。そのため、ID は見つかったとも、存在しないと確認されたとも言えません。セッションは不明として記載します。read_failed は、所有者のログを開いたものの、読み取りに失敗したことを意味します。イベントは伏せられるため、これも不明として記載します。--history は、バージョンの帰属判定に使用する Meta-O の Git チェックアウトを指定します。イベントとそのロケーターはレポートにのみ含まれるため、必ず --out に、ユーザーが指定したパスまたはシステムの一時ディレクトリ配下の新しいファイルのパスを渡します。このファイルはまだ存在していてはならず、モード 0600 で作成されます。out_exists は、そのパスが誰かのデータであることを意味します。別のパスを選んでください。out_write_failed はスキャン行の出力後に発生し、レポート全体を書き込めなかったことを意味します。ファイルの内容は消去された状態で残されるため、空き容量を確保し、新しい --out パスで再実行します。

最初の行は MO-DEBUG/1 status=<ok|partial|unknown|refused> … です。partial は、上限に達した場合、セッションが拒否された場合、読み取り可能なセッションとともに ID の検索が不完全だった場合、または読み取りに失敗した場合、あるいは履歴が不完全な場合(浅いクローン、または Git の読み取りに失敗したときの history=unreadable)を意味します。unknown は、認識可能な形式のセッションがなかった、ID の検索が不完全だった、または読み取りに失敗したため、要求されたセッションを一つも読み取れなかったことを意味します。どの状態に該当するかを伝え、不完全な読み取りを完全な読み取りとして示してはいけません。

分類

まずオーケストレーションを確認し、次にレビューします。どの mo-* スキルが呼び出されたか、どのテキストが読み込まれたか、どのヘルパーが実行され、どの型付き行が返されたか、その後エージェントが何をしたかを確認します。逸脱はそれぞれ、必ず skill_text_defect、agent_deviation、backend_defect、harness_defect、unknown のいずれか一つに分類し、レポートのイベントロケーターを引用します。記録と結び付けられない逸脱は unknown です。

ヘルパーの実行は、シェルではなく記録されたコマンドテキストから判断します。node またはスクリプトが、引用符、コメント、引用されたヒアドキュメントの外でコマンド位置にある場合に実行されたものとみなします。bash -c、eval、スクリプトファイル、関数の内部から起動されたヘルパーには helper_call が残りません。そのため、呼び出しがないことだけでは、エージェントがヘルパーを実行しなかった証拠にはなりません。記録に型付き行がなければ、逸脱は unknown です。

skill 行には読み込まれたバージョンが示されます。コミット範囲を伴う version=source_tree:<id> は、読み込まれたファイル全体が、そのビルドスタンプを持つコミット済みファイルとバイト単位で完全に一致することを意味します。body_match は、スタンプのない読み込み済み本文とのバイト単位の完全一致を示します。unknown は不明です。現在インストールされているテキストや現在のコミットを、過去のセッションに帰属させてはいけません。stamp=<id> は、セッションに表示されたスタンプにすぎません。読み取りが不完全な場合、ファイルが編集されている場合、そのスタンプを持つコミットがない場合、または --history を指定せずにスキャンした場合は、version=unknown のままです。ローカルでビルドまたは編集されたスキルにもスタンプが付いているためです。

このスキルから外部に出るもの

ローカルレポートのみです。ヘルパーが入力した行、分類結果、およびユーザーが希望した場合の外部レポートのローカル下書きが含まれます。引用する抜粋はすべて、ヘルパーが機密情報を除去した出力から取得してください。生のセッション行、秘密情報、絶対パス、非公開メッセージの本文は決してコピーしないでください。[REDACTED:<kind>]で終わる抜粋は、認証情報のキーが検出された後、その行の残りが機密情報として除去されています。欠落した語句は不具合の証拠ではありません。機密情報の除去では、既知のトークン形式とキーに紐づく値を認識しますが、すべてのパスワードを認識するわけではないため、共有する前にユーザーにレポートを確認してもらってください。このスキルは何も公開せず、Issueも作成しません。下書きの提出は、外部作業を振り分ける、明示的に有効化されたライフサイクルスキルで行う別の手順であり、ユーザーが公開を許可した場合に限られます。

この読み取りは、レビュー、QC、またはオーケストレーションの手順が実行された証拠にはなりません。その証拠はバックエンドの公開インターフェースからのみ得られます。

Meta-O 呼び出し

  • なし

コメント