codex-directorの既定をlunaへ移し、検収手段と記述量を整える - #21
Open
kyosuke wants to merge 6 commits into
Open
Conversation
本番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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
試験運用19発注の内訳は
sol7件(37%)・terra9件(47%)・luna2件(11%)で、上位モデルに偏っていた。ログ自身の評価でもsolが不要だった発注が2件あり(Workers デプロイ調査、workers プール導入)、lunaの2件はどちらも一度で合格していて失敗例が1件もない。偏りの原因は基準の作りにある。
lunaの入場条件が「設計判断が不要」だったため、判断がわずかでも絡む作業は自動的にterra以上へ流れ、lunaが育つ経路がなかった。lunaはnoneとlowにしか割り当てられておらず、推論量を上げた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_EFFORTSがxhighまでで、Codex 側の 1.0.6 も同じ集合だった。API 自体はluna+maxを受理し rollout にも記録されるが、codex execの直呼びはジョブ管理の外に出るため委任では使わない。上限がxhighに留まるので、lunaとsolの間にterra+xhighを残している。solのmedium以下は禁じた。判定の難しさを理由に選ぶモデルなので、推論量を下げると選択理由と噛み合わない。移した結果を反映し、検収の穴を埋めた(57f1d30)
既定を
lunaへ移した後の7発注で射程が測れた。high3件とmedium2件が差し戻し0、xhigh2件が差し戻し1〜2で合格している。highの射程にはクラスの private メソッド6本の自由関数化や 3657 行の分割が入り、以前ならsolを出していた種類の作業だった。「未検証」と書き続けると次の発注でterraを選ぶ根拠になるため、実測値へ差し替えた。同時に、
lunaは求めなければ自分の作業を成功した前提で要約し、コードを読めば分かる食い違いを推測で書くことも分かった。格上げでは埋まらない差なので、依頼文の<self_check>と検収の側で埋める。compare-symbols.mjsが CHANGED 37件をすべてexportの付加と formatter の再flowだと確定させ、テンプレートリテラルを多重集合で比較するcompare-literals.mjsが SQL 30本・GraphQL 44本の一致を一発で示した記述量を圧縮した(49d8754)
タスクごとに実測を追記してきた結果、SKILL.md と references で同じ記述が二重化していた。SKILL.md はスキル起動のたびに全文がコンテキストへ載るため、references で足りる記述を置いておくと発注1件あたりの読み込み量がそのまま増える。
差し戻しの上限と Codex への指示は参照先に同じものがあったので参照へ寄せ、companion のジョブ記録が残って発注が失敗したときの対処は
execution.mdへ移した。model-routing.mdの「実測からの補正」は9項目のうち6項目が同じファイルの前の節と重複していたので、節を廃して各項目を根拠として本文へ埋めた。落とした事実は判断を変えない値下げ幅とクレジット消費の増減だけで、単価と出典は残している。同梱した別コミット
delegation-template.mdに「検証できない実装詳細を受入条件に書かない」節を追加。以前のセッションで書かれて未コミットのまま残っていたもので、「指示の質で段を下げる」節から参照するため同じブランチに入れた記録項目の追加
trial-log に「1段下げて発注したか」を追加した。下げた場合は根拠と結果、下げなかった場合は上の段が必要と考えた理由を書く。実測が積まれない限り判定基準は上の段へ戻る、と明記した。
検証
ドキュメントとスクリプトのみの変更で、CI で回せる検証はない。照合スクリプト2本は 3657 行の分割案件で実際に使い、結果を trial-log に残している。基準の効果はこれ以降の発注で trial-log に積んで判断する。
🤖 Generated with Claude Code