بنقرة واحدة
debug
issue / session 識別子を手がかりに Symphony と Codex のログを追い、停滞した実行や失敗の原因を調べる。実行が止まる、何度もリトライする、あるいは予期せず失敗するときに使う。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
issue / session 識別子を手がかりに Symphony と Codex のログを追い、停滞した実行や失敗の原因を調べる。実行が止まる、何度もリトライする、あるいは予期せず失敗するときに使う。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
現在の変更内容とセッション履歴をもとに、根拠のある整った `git commit`を作成する。コミット作成、コミットメッセージ準備、またはステージ済み作業の仕上げを頼まれたときに使う。
PR の競合監視、解消、チェック待ち、グリーン後の squash merge までを行い、PR を着地させる。land、merge、あるいは PR を最後まで面倒見るよう頼まれたときに使う。
Symphony の `linear_graphql` client tool を使って、コメント編集や アップロードフローなどの生の Linear GraphQL 操作を行う。
現在のローカルブランチへ最新の `origin/main` を取り込み、マージ競合を 解決する(いわゆる update-branch)。feature branch を origin と同期し、 rebase ではなく merge で更新し、競合解決のベストプラクティスに沿って 進める必要があるときに使う。
現在のブランチの変更を `origin` に push し、対応する pull request を作成 または更新する。push、公開、PR 作成を頼まれたときに使う。
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, update or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
| name | debug |
| description | issue / session 識別子を手がかりに Symphony と Codex のログを追い、停滞した実行や失敗の原因を調べる。実行が止まる、何度もリトライする、あるいは予期せず失敗するときに使う。 |
log/symphony.log
SymphonyElixir.LogFile の log/symphony.log。log/symphony.log*
issue_identifier: 人間向けのチケットキー(例: MT-625)issue_id: Linear の UUID(安定した内部 ID)session_id: Codex の thread-turn ペア(<thread_id>-<turn_id>)elixir/docs/logging.md では issue / session のライフサイクルログにこれらのフィールドが必須です。デバッグ時の join key として使う。
issue_identifier を起点に、そのチケットの最近のログ行を探す。session_id を抜き出す。session_id を、開始・ストリーム・完了 / 失敗・停滞処理の各ログで追いかける。# 1) まずチケットキーで絞る(最速の入口)
rg -n "issue_identifier=MT-625" log/symphony.log*
# 2) 必要なら Linear UUID でも絞る
rg -n "issue_id=<linear-uuid>" log/symphony.log*
# 3) そのチケットで観測された session_id を集める
rg -o "session_id=[^ ;]+" log/symphony.log* | sort -u
# 4) 1 つの session を端から端まで追う
rg -n "session_id=<thread>-<turn>" log/symphony.log*
# 5) 停滞 / リトライ系シグナルに絞る
rg -n "Issue stalled|scheduling retry|turn_timeout|turn_failed|Codex session failed|Codex session ended with error" log/symphony.log*
issue_identifier=<KEY> で検索する。issue_id=<UUID> も足す。Codex session started ... session_id=... を特定する。Codex session completed、ended with error、worker exit 行を追う。Issue stalled ... restarting with backoffCodex session failed ...turn_failed、turn_cancelled、turn_timeout、ended with errorAgent task exited ... reason=...issue_identifier、issue_id、session_id を含む重要ログを保存する。Symphony では Codex セッション診断ログが log/symphony.log に出力され、session_id で追跡できる。ライフサイクルとして読むこと。
Codex session started ... session_id=...session_id の stream / lifecycle eventCodex session completed ...Codex session ended with error ...Issue stalled ... restarting with backoff特定の 1 セッションだけを調べるときは、追跡対象を絞る。
session_id を 1 つ取る。rg -n "session_id=<thread>-<turn>" log/symphony.log*Codex session failed ...)turn_* / ended with error)Issue stalled ... restarting with backoff)issue_identifier と issue_id を併せて見て、並行リトライを取り違えていないことを確認する。同時実行中の別 run と混同しないため、session の所見は必ずissue_identifier / issue_id と対で扱う。
grep より rg を優先する。log/symphony.log*)も確認する。elixir/docs/logging.md の規約に合わせる。