Skip to content

cross-refactoring: 提案担当の codex が結果ファイルを提出先に書けず NO_RESULT になる(提出先が読み取り用ディレクトリの外) #750

Description

@takemi-ohama

何が起きたか

devbasex/devbase#199 の /ndf:cross-refactoring(ndf 10.14.0、ホスト claude)のリファクタリングの提案ラウンド(round 2)で、codex が提案 1 件を作ったのに、監視は NO_RESULT を返した。

  • 監視の出力: [codex] ❌ codex NO_RESULT (165s) — process exited but result.json missing: .../rf199/work/.cross_refactoring/codex-propose-rf199-r2-result.json
  • codex の最終メッセージ(err.log の末尾): 「提案 1 件を JSON(.../rf199/codex/codex-propose-rf199-r2-result.json)に保存しました。…指定提出先は作業ディレクトリ外のため未保存です。『外を触らない』という指示と競合するため、提出ファイルだけ例外にできるか確認待ちです」
  • 同じ実行のテスト整備ラウンド(round 1)では、codex は結果を提出先へ書けていた

codex は読み取り用ディレクトリ(rf199/codex)で動き、提出先は書き込み用の rf199/work/.cross_refactoring/ にある。プロンプトの「作業ディレクトリの外を触らない」と、提出先の指定が衝突している。オーケストレーターが手で mv して取り込んだ。

期待

提出先への書き込みを、プロンプト上で明示的に例外として許すか、提出先を担当の作業ディレクトリの中に置いてオーケストレーターが回収する。

どこで見つけたか

  • plugins/ndf/skills/cross-refactoring/prompts/propose.md:11 の
    「作業ディレクトリ: $RF_WORKDIR(ここから外は読まない・書かない)」と :90 の「作業ディレクトリの外を触らない」。
    提出先を例外にする記述は無い
  • 提出先は plugins/ndf/skills/cross-refactoring/scripts/launch-cli.sh が決める。propose / plan は
    STEM=$TMP_DIR/$RUNTIME-$PHASE-rf$ID・WORKDIR=$ROOT/$RUNTIME(:56-57)で、結果ファイルが読み取り用の作業ディレクトリの外に置かれる。
    add-tests / implement / fix は WORKDIR=$WORK で、同じ衝突は起きない
  • cross-review のレビュー担当は、一時ディレクトリを <worktree>/.cross_review/ に置く(cross-review/docs/04-contracts.md:405)ため、同じ衝突は無い

直し方

2 段に分ける。

段 中身
短期の手当て プロンプトへ「提出先の結果ファイルだけは書いてよい」を 1 行足す
本来の形 提出先を担当の作業ディレクトリの中に置き、オーケストレーター(起動層)が回収する。plugins/ndf/skills/external-ai/scripts/external-ai.py run の --output-file と三段の回収(結果ファイル → stdout → stderr)の契約に揃える

短期の手当てだけを入れると、提出先と回収の契約を起動層へ移すときに文言が再び変わる。

修正レイヤー

結果ファイルの置き場所と回収の契約(plugins/ndf/scripts/lib/launch-cli.sh / monitor.py、external-ai.py run)。

関連

由来

devbasex/devbase#197 の振り返り。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: ndf-skillNDF の Skill 本体bugSomething isn't workingpriority: medium保守性・設計一貫性など、計画的に対応する

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions