بنقرة واحدة
land
PR の競合監視、解消、チェック待ち、グリーン後の squash merge までを行い、PR を着地させる。land、merge、あるいは PR を最後まで面倒見るよう頼まれたときに使う。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
PR の競合監視、解消、チェック待ち、グリーン後の squash merge までを行い、PR を着地させる。land、merge、あるいは PR を最後まで面倒見るよう頼まれたときに使う。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
現在の変更内容とセッション履歴をもとに、根拠のある整った `git commit`を作成する。コミット作成、コミットメッセージ準備、またはステージ済み作業の仕上げを頼まれたときに使う。
issue / session 識別子を手がかりに Symphony と Codex のログを追い、停滞した実行や失敗の原因を調べる。実行が止まる、何度もリトライする、あるいは予期せず失敗するときに使う。
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 | land |
| description | PR の競合監視、解消、チェック待ち、グリーン後の squash merge までを行い、PR を着地させる。land、merge、あるいは PR を最後まで面倒見るよう頼まれたときに使う。 |
gh CLI が認証済みであること。commit スキルでコミットし、push スキルで push してから進む。pull スキルで origin/main を fetch / merge して解消し、その後 push スキルで更新 branch を公開する。commit スキルでコミット、push スキルで push し、再度チェックを流す。# branch と PR の文脈を確認
branch=$(git branch --show-current)
pr_number=$(gh pr view --json number -q .number)
pr_title=$(gh pr view --json title -q .title)
pr_body=$(gh pr view --json body -q .body)
# mergeability と競合を確認
mergeable=$(gh pr view --json mergeable -q .mergeable)
if [ "$mergeable" = "CONFLICTING" ]; then
# `pull` スキルで fetch + merge + conflict resolution を行う。
# その後 `push` スキルで更新 branch を公開する。
fi
# 推奨は下の Async Watch Helper。Python が使えない、または helper script が
# 使えない場合のみ手動ループを fallback として使う。
# レビュー待ち: Codex review は "## Codex Review — <persona>" で始まる
# issue comment として届く。通常の reviewer feedback と同様に扱い、
# 所見を受けたことと、今対応するのか defer するのかを `[codex]`
# issue comment で返す。
while true; do
gh api repos/{owner}/{repo}/issues/"$pr_number"/comments \
--jq '.[] | select(.body | startswith("## Codex Review")) | .id' | rg -q '.' \
&& break
sleep 10
done
# チェックを監視
if ! gh pr checks --watch; then
gh pr checks
# 失敗した run を特定してログを確認
# gh run list --branch "$branch"
# gh run view <run-id> --log
exit 1
fi
# squash merge(この repo では remote branch はマージ時に自動削除される)
gh pr merge --squash --subject "$pr_title" --body "$pr_body"
推奨は asyncio watcher を使い、レビューコメント、CI、head 更新を並列監視する。
python3 .codex/skills/land/land_watch.py
終了コード:
gh pr checks と gh run view --log で詳細を取り、ローカルで修正し、commit スキルでコミット、push スキルで push し、watch を再開する。origin/main をマージし、人間の author 付きコミットを足してforce-push し、CI を再起動させてからチェックループを再開する。origin/main を fetch してマージし、force-push して CI を再実行する。UNKNOWN なら待って再確認する。## Codex Review — <persona> issue comment の出現で判断する。git push --force-with-lease を使う。## Codex Review — <persona> で始まり、使われた方法論と guardrail が含まれる。これらは merge 前に必ず受領・応答すべきフィードバックとして扱う。gh api を使い、返答は prefix 付きコメントで行う。gh api repos/{owner}/{repo}/pulls/<pr_number>/comments
gh api repos/{owner}/{repo}/issues/<pr_number>/comments
gh api -X POST /repos/{owner}/{repo}/pulls/<pr_number>/comments \
-f body='[codex] <response>' -F in_reply_to=<comment_id>
in_reply_to には GraphQL node id(PRRC_...)ではなく、数値のreview comment id(例: 2710521800)を使う。また endpoint にはPR 番号を含める必要がある(/pulls/<pr_number>/comments)。[codex] 接頭辞を付ける。[codex] で返し、「今対応するのか defer するのか」とその理由を書く。[codex] ... を review comment endpoint と in_reply_to で送り、issue comment は使わない。[codex] ... で返す(Codex review なら issue comment、人間レビューなら inline reply)。[codex] issue comment で所見受領が投稿されるまで、Codex review issue comment を未解決として扱う。[codex] inline reply があること)を確認する。[codex] 前回レビューからの変更:
- <差分の要約>
Commits: <sha>, <sha>
Tests: <実行したコマンド>
[codex] 更新コメントで短い理由(例: out-of-scope、意図と衝突、不要)を明記する。