Skip to content

codex-directorの既定をlunaへ移し、検収手段と記述量を整える - #21

Open
kyosuke wants to merge 6 commits into
mainfrom
config/codex-director-model-routing
Open

codex-directorの既定をlunaへ移し、検収手段と記述量を整える#21
kyosuke wants to merge 6 commits into
mainfrom
config/codex-director-model-routing

Conversation

@kyosuke

@kyosuke kyosuke commented Jul 31, 2026

Copy link
Copy Markdown
Owner

背景

試験運用19発注の内訳は sol 7件(37%)・terra 9件(47%)・luna 2件(11%)で、上位モデルに偏っていた。ログ自身の評価でも sol が不要だった発注が2件あり(Workers デプロイ調査、workers プール導入)、luna の2件はどちらも一度で合格していて失敗例が1件もない。

偏りの原因は基準の作りにある。luna の入場条件が「設計判断が不要」だったため、判断がわずかでも絡む作業は自動的に terra 以上へ流れ、luna が育つ経路がなかった。lunanonelow にしか割り当てられておらず、推論量を上げた luna は一度も試されていない。

この PR は判定基準の組み替えから始まり、実際に luna を既定へ移して測り、そこで見えた検収の穴を埋め、最後に膨らんだ記述量を圧縮するところまでを含む。

判定の軸を組み替えた(b2fcfbe)

作業量ではなく、依頼文を書き終えた時点で Codex に残る裁量の量で決める。ファイル数・行数は根拠にしない(7ファイルの移行を terra + medium が一度で通した実測がある)。

sol は実測で効果が出た3条件に絞った。判定困難な実装(暗号・認証、境界、競合状態、移行リスク)、一次資料との広域照合、構成から組ませる大規模実装。あわせて「選ばない理由」を明示した。ファイル数が多いだけ、テスト網羅・設計の不足、完了誤認、設計の丸投げは、いずれも推論量では解決しないか別の手段で解く領域である。

差し戻しでも既定でモデルを上げない。実測で sol の差し戻しが terra + medium で通り、terra の差し戻しが luna + low で通っている。依頼文の不備なら同じ段で出し直し、範囲が絞れたら1段下げ、原因不明で2回落ちたときだけ上げる。

既定を luna へ移した(6cdb091)

段の記録を始めてからの4件でも luna は1件だけだった。terra が既定である限り下位の実測が積まれないので、モデル選択を先に置く形をやめ、luna + high を基本として推論量で上下させる並びに変えた。

max の可否も再確認した。companion の VALID_REASONING_EFFORTSxhigh までで、Codex 側の 1.0.6 も同じ集合だった。API 自体は luna + max を受理し rollout にも記録されるが、codex exec の直呼びはジョブ管理の外に出るため委任では使わない。上限が xhigh に留まるので、lunasol の間に terra + xhigh を残している。

solmedium 以下は禁じた。判定の難しさを理由に選ぶモデルなので、推論量を下げると選択理由と噛み合わない。

移した結果を反映し、検収の穴を埋めた(57f1d30)

既定を luna へ移した後の7発注で射程が測れた。high 3件と medium 2件が差し戻し0、xhigh 2件が差し戻し1〜2で合格している。high の射程にはクラスの private メソッド6本の自由関数化や 3657 行の分割が入り、以前なら sol を出していた種類の作業だった。「未検証」と書き続けると次の発注で terra を選ぶ根拠になるため、実測値へ差し替えた。

同時に、luna は求めなければ自分の作業を成功した前提で要約し、コードを読めば分かる食い違いを推測で書くことも分かった。格上げでは埋まらない差なので、依頼文の <self_check> と検収の側で埋める。

  • 依頼文に「報告前の裏取り(必須)」節を追加。以降は報告の全項目が行番号つきになり、移し漏れの照合が1件ずつ根拠つきで返るようになった
  • ファイル移動の機械照合スクリプトを2本追加。oxfmt が移動先で三項演算子や括弧を再flowするため純粋な移動でも差分が数百行になり、行単位 diff も行のソート比較も使えない。トップレベル宣言を名前で突き合わせる compare-symbols.mjs が CHANGED 37件をすべて export の付加と formatter の再flowだと確定させ、テンプレートリテラルを多重集合で比較する compare-literals.mjs が SQL 30本・GraphQL 44本の一致を一発で示した

記述量を圧縮した(49d8754)

タスクごとに実測を追記してきた結果、SKILL.md と references で同じ記述が二重化していた。SKILL.md はスキル起動のたびに全文がコンテキストへ載るため、references で足りる記述を置いておくと発注1件あたりの読み込み量がそのまま増える。

ファイル
SKILL.md 16.1KB 12.3KB
model-routing.md 13.6KB 11.6KB
合計 58.8KB 49.9KB

差し戻しの上限と Codex への指示は参照先に同じものがあったので参照へ寄せ、companion のジョブ記録が残って発注が失敗したときの対処は execution.md へ移した。model-routing.md の「実測からの補正」は9項目のうち6項目が同じファイルの前の節と重複していたので、節を廃して各項目を根拠として本文へ埋めた。落とした事実は判断を変えない値下げ幅とクレジット消費の増減だけで、単価と出典は残している。

同梱した別コミット

  • 5834b7e: delegation-template.md に「検証できない実装詳細を受入条件に書かない」節を追加。以前のセッションで書かれて未コミットのまま残っていたもので、「指示の質で段を下げる」節から参照するため同じブランチに入れた
  • 5f8fc3c: 単価の出典を解説記事から OpenAI の告知へ差し替えた。単価は段選択の動機として参照する値なので、二次情報のまとめ方に依存しない形にしておく

記録項目の追加

trial-log に「1段下げて発注したか」を追加した。下げた場合は根拠と結果、下げなかった場合は上の段が必要と考えた理由を書く。実測が積まれない限り判定基準は上の段へ戻る、と明記した。

検証

ドキュメントとスクリプトのみの変更で、CI で回せる検証はない。照合スクリプト2本は 3657 行の分割案件で実際に使い、結果を trial-log に残している。基準の効果はこれ以降の発注で trial-log に積んで判断する。

🤖 Generated with Claude Code

kyosuke and others added 6 commits July 31, 2026 19:17
本番D1からローカルD1へ移す実装で、サンドボックスの外でしか確かめられない
詳細を受入条件に書いた2箇所が、そのまま2回の差し戻しになった。Codexは確認
できないまま指示に従うので、確かめてから書くか目的だけ渡すかの判断を
テンプレートに残す。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
19発注の内訳がsol 7件・terra 9件・luna 2件で上位ティアに偏っていた。旧基準は
lunaの入場条件を「設計判断が不要」としていたため、判断がわずかに絡む作業は
自動的にterra以上へ流れ、lunaが育つ経路がなかった。ログ自身の評価でもsolが
不要だった発注が2件あり、luna側には失敗例が1件もない。

判定の軸を作業量から「依頼文を書き終えた時点でCodexに残る裁量」へ移し、
lunaの推論量にmediumとhighを開けてterraの射程を測れるようにした。solは実測で
効果が出た3条件に絞り、推論量では解決しない領域(テスト設計・完了誤認・設計の
丸投げ)を選ばない理由として明示する。

7-30の値下げでlunaとterraの単価差が2.5倍から10倍に開いたので倍率も残すが、
発注1件のコストは差し戻し1回の検収サイクルより小さい。単価は下げる動機を
強めるだけで判定順は覆さない、という位置づけを書いた。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
値下げの数値は解説記事から引いていた。単価はティア選択の動機として参照する
値なので、二次情報のまとめ方に依存しない形にしておく。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
段の記録を始めてからの4件でもlunaは1件だけで、terraが既定である限り下位の
実測が積まれない。モデル選択を先に置く形をやめ、luna + highを基本として
推論量で上下させる並びに変えた。

maxの可否を再確認した結果を反映する。companionのVALID_REASONING_EFFORTSが
xhighまでで、Codex側の1.0.6も同じ集合だった。API自体はluna + maxを受理し
rolloutにも記録されるが、codex exec直呼びはジョブ管理の外に出るため委任では
使わない。上限がxhighに留まるので、lunaとsolの間にterra + xhighを残す。

solのmedium以下を禁じた。判定の難しさを理由に選ぶモデルなので、推論量を
下げると選択理由と噛み合わない。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ファイル分割の委任で、報告を目で追う以外の検収手段がなかった。oxfmtが移動先
で三項演算子や括弧を再flowするため、純粋な移動でも差分が数百行になり、行単位
diffも行のソート比較も使えない。トップレベル宣言を名前で突き合わせるスクリプト
と、テンプレートリテラルを多重集合で比較するスクリプトを置いた。3657行を12
ファイルへ分けた実測では、前者がCHANGED 37件をすべてexportの付加とformatterの
再flowだと確定させ、後者がSQL 30本・GraphQL 44本の一致を一発で示した。

報告前の裏取りを依頼文で要求する節を加えた。lunaは求めなければ自分の作業を
成功した前提で要約し、コードを読めば分かる食い違いを推測で書く。節を入れて
以降は報告の全項目が行番号つきになり、移し漏れの照合が1件ずつ根拠つきで返る。
裏取りは検収を置き換えないので、ディレクター側の検収は同じだけ行う。

model-routingがlunaのhighとxhighを未検証と書いたままだった。実際には既定を
lunaへ移した後の7発注で測れており、high 3件とmedium 2件が差し戻し0、xhigh 2件
が差し戻し1〜2で合格している。未検証と書き続けると、次の発注でterraを選ぶ根拠
になってしまう。あわせて、格上げでは埋まらない差(報告の裏取り)の対処先を
delegation-templateとreview-checklistへ向けた。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
codex-directorはタスクごとに実測を追記してきた結果、SKILL.mdと
referencesで同じ記述が二重化していた。SKILL.mdはスキル起動のたびに
全文がコンテキストへ載るため、referencesで足りる記述を置いておくと
発注1件あたりの読み込み量がそのまま増える。

差し戻しの上限とCodexへの指示は参照先に同じものがあったので参照へ寄せ、
companionのジョブ記録が残って発注が失敗したときの対処は、発注が通って
いる限り読む必要がないためexecution.mdへ移した。model-routing.mdの
「実測からの補正」は、9項目のうち6項目が同じファイルの前の節と重複して
いたので、節を廃して各項目を根拠として本文へ埋めた。

判断を変えない値下げ幅とクレジット消費の増減だけを落とし、単価と出典を
含む他の事実は残している。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@kyosuke kyosuke changed the title codex-directorのティア判定を判断の持ち主で行う形に組み替える codex-directorの既定をlunaへ移し、検収手段と記述量を整える Aug 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant