| name | actrun-debug |
| description | actrun の実行失敗を診断する。ログ解析、エラー原因特定、修正提案を行う。 |
actrun-debug Skill
actrun のワークフロー実行が失敗した場合に、原因を特定し修正方法を提案する。
このスキルの使い方
ユーザーが以下のいずれかを求めた場合にこのスキルを適用する:
- actrun の実行が失敗して原因を知りたい
- ワークフローのエラーをデバッグしたい
- actrun の出力を解析してほしい
診断手順
Step 1: 実行結果の取得
actrun run list
actrun run view <run-id>
actrun run view <run-id> --json
Step 2: ログの確認
actrun run logs <run-id>
actrun run logs <run-id> --task <job_id>/<step_id>
run view --json の steps 配列から status: "failed" のステップを特定し、その id を --task に渡す。
Step 3: 原因分類と対処
以下のパターンに分類して対処する:
A. ツール未インストール
症状: command not found, No such file or directory
対処:
actrun doctor
B. アクション互換性問題
症状: unsupported action input, action not found
対処:
- ビルトイン対応アクションか確認(checkout, cache, artifact, setup-node)
- 未対応アクションは
--skip-action でスキップ
- リモートアクションは
--trust フラグでフェッチ許可
actrun ci.yml --skip-action unsupported/action --trust
C. パス/ワークスペース問題
症状: ファイルが見つからない、パスが違う
対処:
--workspace-mode を変更(local → worktree or tmp)
actions/checkout をスキップしている場合、ファイルがカレントディレクトリにあるか確認
actrun ci.yml --worktree
D. シークレット/変数の未設定
症状: ${{ secrets.XXX }} が空、認証エラー
対処:
ACTRUN_SECRET_GITHUB_TOKEN=$(gh auth token) actrun ci.yml
actrun ci.yml --env .env.local
E. 条件式エラー
症状: if 条件の評価エラー、予期しないスキップ
対処:
--dry-run で実行プランを確認
ACTRUN_LOCAL=true による条件分岐を確認
${{ env.ACTRUN_LOCAL }} が設定されているか確認
F. Nix 関連
症状: nix develop エラー、パッケージが見つからない
対処:
actrun ci.yml --no-nix
actrun ci.yml --nix-packages "nodejs python312"
G. Docker/コンテナ関連
症状: docker: command not found, イメージ pull 失敗
対処:
actrun doctor
actrun ci.yml --container-runtime podman
Step 4: リトライ
actrun ci.yml --retry
actrun ci.yml --job <failed-job-id>
JSON 出力の解析ポイント
actrun run view <run-id> --json の重要フィールド:
| フィールド | 説明 |
|---|
state | completed, partial_failed, failed |
ok | 全体の成否 (boolean) |
exit_code | 終了コード |
steps[].id | ステップID (job_id/step_name) |
steps[].status | success, failed, skipped |
steps[].message | 出力メッセージ |
tasks[].stdout_path | stdout ログファイルパス |
tasks[].stderr_path | stderr ログファイルパス |
issues[] | 実行中の警告・問題 |
ログファイルの直接読み取り
run store のログファイルを直接読むことも可能:
_build/actrun/runs/<run-id>/tasks/<task_id>.stdout.log
_build/actrun/runs/<run-id>/tasks/<task_id>.stderr.log
参考