check-approve について
check-approve は、DMS の承認リクエストがバックエンドに届いたかを調べるスキルです。リクエスト ID から BE・FE のログ確認コマンドを生成し、スクリプトに保存して表示します。製品サーバーへの接続やコマンド実行は行いません。
主な機能
- 01BE・FE のログ確認コマンド生成
- 02時間範囲によるログ絞り込み
- 03不明なコンテナやユーザーのプレースホルダー
- 04スクリプト保存とコピー用コマンド表示
- 05製品サーバーへの接続・操作なし
活用シーン
- 01DMS 承認リクエストの BE 到達確認
- 02FE またはプロキシでの承認リクエスト停滞の確認
- 03特定リクエスト用の製品サーバー確認コマンド作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rheinmir/ setup --skill check-approveインストール後、Claude Code で/check-approveを入力して読み込まれたか確認します。
詳細
スキル:check-approve
WHAT
目的とコンテキスト
- 目的: DMS リクエストで「approve を押したら処理が止まった」/承認コマンドが BE に届いたか不明な場合、ユーザーが 1 行のコマンドを プロダクトサーバー(
ubuntu@hcm-bonbon-sv03)に貼り付けて実行できるようにします。エージェントはプロダクトサーバーに SSH 接続できないため、自分では実行せず、コマンドを生成するだけです([[feedback_product_server_debug]])。このスキルでは、BE と FE のコマンドを生成し、コピー時の改行エラーを避けるため.shファイルに書き出すとともに、インラインでも出力します。 - トリガー(使用するタイミング):
/check-approve <REQ-CODE> [--since 120m]- ユーザー:「approve/承認の確認コマンドを書いて」「リクエスト
の approve が止まっている」「ログに承認コマンドが見当たらない」「BE/FE で承認を確認して」
- 対象外: プロダクトサーバーへの SSH 接続/コマンド実行、approve のバグ修正(再現/修正が必要な問題には
/orca-issue)、デフォルトでのローカル環境のトレース。
メンタルモデル
REQ-CODE(+SUM-ID、since、container、user)→ BE + FE のテンプレート → 1 行コマンド → .sh ファイルへの書き込み+インライン出力 → ユーザーがプロダクトサーバーで実行 → 結果を確認(POST approve があるかどうか)。
入力と出力の契約
フィールド 必須? 意味 入力 <REQ-CODE>はい リクエストコード。例:BAF-CTD-26050043。指定がない場合はユーザーに確認します 入力 --sinceいいえ docker logs の対象期間。デフォルトは 120m 入力 --be-container / --userいいえ 指定がない場合はプレースホルダー <BE_CONTAINER> / <FE_USER> を使用します 入力 SUM-IDいいえ さらに絞り込むための値。必要に応じてユーザーに確認します 出力 scratchpad/check-approve-<REQ-CODE>.shはい BE + FE の 2 つの 1 行コマンド(またはユーザー指定のパス) 出力 回答内のインラインコマンド はい ユーザーがすばやくコピーできるようにします。「完了」とは、ユーザーが実行可能なコマンドを受け取ったことを指し、エージェントが実行したという意味ではありません
ルールと機能
- RULE-01(必須):プロダクトサーバーに SSH 接続/コマンド実行をしないでください。コマンドの生成のみ行います([[feedback_product_server_debug]])。
- RULE-02(必須):デフォルトではローカルではなく、プロダクト(hcm-bonbon-sv03)をトレースします。
- RULE-03(必須):各コマンドは 1 行のままにしてください(改行しない)。
- RULE-04(必須):ユーザーが「wiki のログフォルダーに書いて」と言った場合は
.sh / .txt に書き込み、.md は使わないでください(OKF frontmatter hook を避けるため)。
- 機能:ローカルのコマンドファイルへの書き込み。サーバーへのアクセス、ネットワークアクセスはできません。
失敗時の境界
<REQ-CODE> がない場合 → 確認し、推測したコードでコマンドを生成しないでください。
- container/user が不明な場合 → 部分的な対応で問題ありません。プレースホルダー付きのコマンドを生成し、
docker ps で確認して置き換えるようユーザーに伝えてください。
- ユーザーがエージェント自身によるプロダクトサーバーでの実行を求めた場合 → RULE-01 に従って 対応不可とし、コマンドだけを提示してください。
HOW
メインワークフロー
Step Type Inputs Action Outputs/exit Failure/next W01 判断 ユーザーの発言 パラメーターを解決し、残りはプレースホルダーにします パラメーター一式 REQ-CODE がない場合 → 確認 W02 決定的 パラメーター テンプレートに従って BE + FE の 1 行コマンドを 2 つ生成します 2 つのコマンド — W03 副作用 コマンド scratchpad/check-approve-<REQ-CODE>.sh(またはユーザー指定のパス)に書き込みます.sh ファイル— W04 決定的 コマンド インラインで表示します。自分では実行しません ユーザーがコマンドを取得 —
各ステップの詳細(W01~W04 の正本):
- 解決 —
<REQ-CODE>、--since、ユーザーが指定した場合は container/user を取得します。指定がない項目は、ユーザーが入力できるようプレースホルダーにします。
- 生成 — 以下のテンプレートに従って、BE + FE の 1 行コマンドを 2 つ組み立てます。1 行のままにしてください(改行しない)。
- 書き込み —
scratchpad/check-approve-<REQ-CODE>.sh(またはユーザー指定のパス)に書き込みます。ユーザーが「wiki のログフォルダーに書いて」と言った場合は .sh / .txt に書き込み、.md は使わないでください(OKF frontmatter hook を避けるため)。
- 表示 — ユーザーがすばやくコピーできるよう、回答内に両方のコマンドをインラインで出力します。プロダクトサーバーで自分では実行しないでください。
入力
パラメーター 意味 デフォルト <REQ-CODE>リクエストコード。例:BAF-CTD-26050043 必須 --sincedocker logs の対象期間 120m--be-containerバックエンドのコンテナー(ユーザーが把握している場合) プレースホルダー <BE_CONTAINER> --userプロキシログの絞り込みに使う FE のユーザー名 プレースホルダー <FE_USER>(例:trangntt)
<REQ-CODE> には通常 SUM-ID が紐づいています(例:1010228)。さらに絞り込む必要がある場合は、ユーザーに確認してください。
分岐
ID 種類 条件 動作 スキップ/失敗 再合流 B01 user_optional ユーザーが「wikiのログフォルダーに書き込んで」と言う scratchpad/ ではなく、そのフォルダーに .sh/.txt を書き込み、.md は作成しません指定がない → デフォルトのパス W04 B02 user_optional ユーザーがリクエストコードでの絞り込みだけを必要としている 統合版ではなく簡易版 BE を使用します — W03
検証と停止
目視で確認します。各コマンドが1行であること、リクエストコードが正しい位置に置き換えられていること、残りのプレースホルダーが明記されていることを確認します。W04 の後で停止します。ログを読む手順はユーザーが行います(「結果の読み方」の項目は、ユーザーがログを貼り付けたときに使用します)。
例
- 成功例:
/check-approve BAF-CTD-26050043 --since 6h → scratchpad/check-approve-BAF-CTD-26050043.sh に --since 6h を付けた BE + FE コマンドを記録し、コンテナーは <BE_CONTAINER>/<FE_CONTAINER> のままにして、インラインで出力します。実行はしません。
- 境界/失敗例: 「check approveが止まっているので、SSHで入って確認して」ではリクエストコードがないため、リクエストコードを尋ねます。SSH は拒否し、コマンドの生成のみ行います。
参考 — コマンドテンプレート
BE(product 上の docker logs)— approve の全エンドポイントをまとめたコマンド:
docker logs <BE_CONTAINER> --since 120m 2>&1 | grep -i -B2 -A2 -e BAF-CTD-26050043 -e <SUM_ID> | grep -i -e POST -e Action -e Approve -e Reject -e Return -e UpdateGenTask -e GetGenTaskById -e UpdateTask -e "ApproveSummary/Approve" -e QuickApprove -e UpdateRequestByApproveGroup
BE — 簡易版(リクエストコードでのみ絞り込み):
docker logs <BE_CONTAINER> --since 120m 2>&1 | grep -i -e POST -e approve -e UpdateGenTask -e ApproveSummary -e UpdateRequestByApproveGroup -e BAF-CTD-26050043
FE(dms-proxy log)— user + request で絞り込み:
docker logs <FE_CONTAINER> --since 120m 2>&1 | grep -i -e "dms-proxy" -e BAF-CTD-26050043 -e <FE_USER> -e Approve -e Action
<BE_CONTAINER>/<FE_CONTAINER> を実際のコンテナー(docker ps)に置き換えます。承認から時間が経っている場合は --since を変更します(例:6h)。BAF-CTD-26050043 は確認するリクエストコードに置き換えます。
参考 — 結果の読み方
POST /api/ApproveSummary/Approve(または UpdateGenTask、UpdateRequestByApproveGroup)にリクエストコードが含まれている → 承認コマンドは BE に到達しています。
- FE でボタンを押したと表示されているのに POST の行がない → リクエストは FE/プロキシで止まっており、BE は呼び出されていません → 続けて [[concepts/approve-action-flow]] とプロキシを確認します。
- モジュールごとのエンドポイントは [[entities/dms-modules]] を参照してください(BAF/VEN01/CashAdv…で異なります)。
参考 — 制限事項
- product 上で SSH やコマンドを実行しないでください。コマンドを生成するだけです([[feedback_product_server_debug]])。
- デフォルトでは product(hcm-bonbon-sv03)をトレースします。local ではありません。
起源
- 元データ: セッション 6902c846 / c2f1149e から抽出(2026-06-25、BAF-CTD-26050043/30/26060030 の承認停止をデバッグ)
- 生成元: /orca-eval finding #3(250626-eval-report)