원클릭으로
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、意図と衝突、不要)を明記する。