Unix Codex
https://github.com/openai/codex は、Unix シェルならではのパイプやスクリプト管理との相性が良く、AI を活用したシームレスなコードレビューを実現できる。 一方で、自動実行に対するセキュリティリスクも存在するため、Git 管理とサンドボックス設定などで防御を固める必要がある。例えば、下記のようなgh-prs.sh のようなscriptと組み合わせたワークフローを構築し、codex -m o3 を活用した差分解析や自動レビューを行うことで、高品質な開発プロセスを確立できる。 codex -m o3 $'コードの構造を踏まえて内容をレポートし、さらに改善提案やレビューを行ってください\n\n'"$(gh-prs.sh)" #!/usr/bin/env bash # # gh-prs.sh # ------------ # GitHub CLI で Issue 一覧を取得し、peco で選択して # `gh pr view` と `gh pr diff` で詳細と差分を表示するシンプルなスクリプト。 # # 依存: # - GitHub CLI (gh) : https://cli.github.com/ # - peco : https://github.com/peco/peco # # 使い方: # ./gh-prs.sh [gh issue list のオプション] # # 例) 自分が担当で open 状態の Issue を対象にする # ./gh-prs.sh --assignee @me --state open # set -euo pipefail # 表示調整 SUMMARY_MAX=120 # peco で視認しやすいようタイトルを truncate する長さ # pr 一覧取得 (番号とタイトルのみ、タブ区切り) LIST=$(gh pr list --limit 100 "$@" \ --json number,title \ --template '{{range .}}{{printf "%.0f\t%s\n" .number .title}}{{end}}' || true) if [[ -z "${LIST}" ]]; then echo "該当する pr がありませんでした。" >&2 exit 0 fi # peco で選択 pr_NUM=$(echo "${LIST}" | awk -v max="${SUMMARY_MAX}" -F'\t' ' { title=$2; if(length(title) > max) title=substr(title,1,max)"…"; printf "%s\t%s\n",$1,title }' | peco --prompt "Select pr > " | cut -f1) if [[ -z "${pr_NUM}" ]]; then echo "pr が選択されませんでした。" >&2 exit 1 fi # 詳細表示 + diff gh pr view "${pr_NUM}" gh pr view "$pr_NUM" \ --json comments \ --jq '.comments[] | select(.authorAssociation != "NONE") | "\(.author.login)\n\(.body)\n"' gh pr diff "${pr_NUM}"