Repository navigation
NDF のスクリプト: 1 回の起動を実行の識別子 1 つで、1 つの記録から始まりから終わりまで追えるようにする(#2338) - #2497
takemi-ohama wants to merge 11 commits into
Conversation
1 回の起動を実行の識別子 1 つで 1 つの記録から追える条件、標準エラーへの診断の経路を 1 つにする条件、 止まった理由を切らずに残す条件、子の課題 8 件の判定の記録を、課題の本文と写しに書いた。 用語集へ「起点の実行」「子の実行」「診断」を足した。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 回の起動を実行の識別子 1 つで 1 つの記録から追うための書き口・核からの呼び出し・子の実行への受け渡し・ 診断の経路・止まった理由を切る 10 か所の扱い・帳簿とプランの状態の記録への識別子の追加・移す順序を決めた。 要求の未決 4 件(1 行の上限・並行の書き込み・問い合わせの記録・途中で書けないとき)は決定 1〜4 で決めた。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
内容は足さずに、100 字を超える文の分割・図に描かない要素の列挙の表への移し・1 行の書き方の手順の番号付きリストへの移しを行った。 章の並びは設計テンプレートの順と確定事項を伝える文書の構成に合っているため変えていない。 「段」が層・工程・Pull Request の単位のどれを指すか読み取れなかったため、Pull Request の名前を「核の拡張」へそろえた。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | codex | APPROVE
対象範囲で修正が必要な critical / major の指摘はありません。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | kiro | APPROVE
モデルの段に基準を満たす指摘なし。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | claude | REQUEST_CHANGES
決定 1 の排他とシグナルの扱いは、スレッドを持つ入口で止まる。テストの状態の置き場の分離も設計に無い。この 2 点を設計で直す。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | kiro | REQUEST_CHANGES
設計文書の修正提案 2 件(記録の失敗時に本体の結果が失われる点、シェルの標準エラーをパイプ化する影響の確認範囲)。
- シグナルの受け手は主スレッドで動くため、排他の区間の中では end を書かずに保留の印を残し、排他を返した直後に書く - ルートの conftest.py でテストの実行中だけ NDF_STATE_DIR を一時ディレクトリへ向ける - 途中で記録へ書けなくなったときは、本体の元の結果 JSON を original_result に入れて出す - シェルの標準エラーをパイプにしても端末の文が変わらないことは未確認として載せ、核の拡張で比べて確かめる Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🔧 /ndf:fix サマリ | round 2 | commit 670a3ac対応件数: critical=0 / major=4 / minor=0(合計 4 件) |
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | claude | REQUEST_CHANGES
round 2 の 4 件の対応のうち、シグナルの受け手の新しい形(決定 1 の 5 項目)に 2 点の穴がある。印を立てる時点と、保留した後にプロセスを終わらせる手順を設計に書き足す。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | codex | REQUEST_CHANGES
プラグインのキャッシュでテストする経路にも、状態の置き場の隔離を適用する必要があります。根拠: C3 / Value 1 / Value 7。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🔧 /ndf:fix サマリ | round 3 | commit 2159507対応件数: critical=0 / major=3 / minor=0(合計 3 件) |
🔧 /ndf:fix サマリ | commit (なし)対応件数: critical=0 / major=0 / minor=0(合計 0 件) |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
内容は足さずに、次を行った。 - 説明文の「入口」を、用語集の語「エントリポイント」へそろえた - 足す環境変数 3 つを括弧に積んだ 1 文(121 字)を表へ移した - 処理の流れの「1 行の書き方」「SIGTERM と時間切れ」を小見出しにした(章の固有部分 62 行 → 42 行) - 100 字を超える文(129 字・111 字・102 字)と、決定の記録の長い文 5 つを分けた 章の並びは設計テンプレートの順と確定事項を伝える文書の構成に合っているため変えていない。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 4 | codex | REQUEST_CHANGES
診断の端末出力と、終端・部分書き込みの失敗処理を設計の契約に明記してください。根拠: Value 1 / Value 7。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 4 | kiro | APPROVE
基準を満たす critical / major の指摘なし。前 3 ラウンドの指摘(シグナル受け手の再入・保留経路の終わらせ方・original_result・テストの状態の置き場の隔離・シェルの標準エラーのパイプ化の未確認)はいずれも設計文書に具体の記述で取り込み済み。移す対象の数(60 ファイル・125 か所)・理由を切る 10 か所の行番号と行き先・isatty の実測(6 件すべて stdin/stdout)・用語集の 4 語の構造を実リポジトリと突き合わせて一致を確認。受け入れ条件 1〜7 はテスト設計の行がそろっている。
- ctx.log の diag を run_log.diag へ渡し、標準エラーへ先に出す - 核は E9 の完了後にも failed を見てから標準出力と終了コードを確定する - 1 行は排他の中で全バイトを書き切り、書き切れなければ追記前の長さへ戻して I7 にする Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🔧 /ndf:fix サマリ | round 4 | commit 3fbac4b対応件数: critical=0 / major=3 / minor=0(合計 3 件) |
- 構成要素の依存の図と、処理の流れの「図に描かない要素」を小見出しへ分けた - 100 字を超える文と、決定の記録の長い文を分けた - 「シェルの起こし直し」は用語集で別の意味(resume の送り直し)を持つため、「核の exec」へ言い換えた Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 5 | claude | REQUEST_CHANGES
シグナルの受け手が終わりの行(end)の後に動いた場合の扱いと、診断を標準エラーへ出す形(「1 行で」)が、受け入れ条件 1c・6 を崩す。この 2 点を設計に書き足す。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 5 | kiro | APPROVE
基準を満たす critical / major の指摘なし。範囲の 5 ファイルを確認した。用語集の 4 語の追加(起点の実行・子の実行・診断・全文ファイル)は glossary.md と glossary.json で意味・コンテキストが一致し、pending_source(issue-2338-requirements.md / issue-2338-design.md)はいずれも存在、source は空で確定仕様を指さず unconfirmed_source に当たらない。要求・設計・決定の 3 文書は、前 4 ラウンドの指摘(シグナル受け手の再入と印の立て方・保留経路の終わらせ方と例外・original_result・E9 後の失敗確認・テストの状態の置き場の隔離をルートと plugins/ndf の両 conftest へ・シェルの標準エラーのパイプ化の未確認・診断の端末出力・os.write の部分書き込みと ftruncate 戻し)をいずれも具体の記述で取り込み済み。移す順序の 60 ファイル・125 か所の数は加算(14+7+7+14+7+11=60、29+16+8+36+18+18=125)で一致し、理由を切る 10 か所の行番号・行き先が表にそろう。状態(環境変数・記録・帳簿・状態の記録)ごとに書き手と読み手が並び、矛盾は見当たらない。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🔧 /ndf:fix サマリ | round 5 | commit 4edcfe4対応件数: critical=0 / major=2 / minor=0(合計 2 件) |
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 6 | claude | REQUEST_CHANGES
run_log.diag を「改行を足さない」に変えたことで、改行を持たない文を渡す呼び出し側(print の置き換えと、200 字に切った short)の文が端末で次の出力とつながり、受け入れ条件 6 を崩す。呼ぶ側が改行を持たせる決まりを設計に足す。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 6 | codex | APPROVE
対象差分に修正が必要な critical / major の指摘はありません。判断の根拠: Value 1・Value 3・Value 7。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🔧 /ndf:fix サマリ | commit 8249098対応件数: critical=0 / major=0 / minor=0(合計 0 件) |
#2338 の要求・受け入れ条件と設計を文書にまとめ、設計で使う語を用語集へ足しました。設計の文書だけを追加する変更で、プラグインの振る舞いは変わりません。
利用者向けの変化
移行の手順
変更の要点
変更は 5 ファイル、863 行の追加です。
テスト
モード: standard / 通した工程: 設計 → 要求と受け入れ条件 → ドキュメント再構成 → ドキュメントレビュー
🤖 Generated with Claude Code
決めたこと
issues/issue-2338-design-decisions.mdstoppedにするask.jsonl)の行へ実行の識別子を足さないNDF_RUN_LOGで渡すrun_log.diagは自分のプロセスで記録を開いたときだけ記録へ書くrun_idを足すだけにし、版を上げないKEEP_DAYSをdurable_keys.pyへ移し、日付のディレクトリの名前で判定して消す