Skip to content

cross-review / cross-refactoring: codex と claude が利用上限で止まっても同じラウンドで起動し直され、PATH に読めないディレクトリがあると始まらない → 上限を理由として報告して起動し直さず、CLI が欠けても使える者だけで始まる(#811 #813) - #819

Merged
takemi-ohama merged 3 commits into
developfrom
design/issue-811-813-release-verification-fixes
Sep 22, 2026

Conversation

@takemi-ohama

@takemi-ohama takemi-ohama commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Summary

G7 の設計である。#811(codex と claude の利用上限の文言を監視が読まない)と #813(PATH に読めないディレクトリがあると開始の手順が落ちる)を直す要求と設計を書いた。実装は含まない。

関連する課題: #811 #813。直った後に閉じる課題: #478 #619 #729(10.16.1 のリリース後テストの AC12〜AC14 が合格した後)。

決めたこと

issues/issue-811-813-design.md

  • 決定 1: 誤検知を防ぐために、足す文言は行頭で始まる形だけを照合する
  • 決定 2: 利用上限の文言は、期間や種類を問わず 1 行の照合で読む
  • 決定 3: codex の再試行の上限は、最後の状態が 429 のときだけ利用上限と読む
  • 決定 4: 実物が見つからない文言は照合に足さない
  • 決定 5: 照合を足す先は標準エラーの記録だけにし、claude の標準出力の照合は変えない
  • 決定 6: 確認コマンドを起動できないときは、例外の種類を問わず「通らない」として返す
  • 決定 7: 読めない PATH で見つからないときも、理由は起動できないとして出す

承認の判断に使うもの

項目 中身
作るもの(変える) 監視の利用上限の照合の表に 2 行を足す / 確認コマンドを 1 つ走らせる関数が起動できない例外を「通らない」として返す / 監視・認証の確認・2 つの開始の手順のテスト
作るもの(新設) 無し
満たすこと 受け入れ条件 14 件(#811 が 6、#813 が 5、10.16.1 のリリース後テストで確かめ直す 3)
未確認のまま残ること 5 件。実装で決めるものは無い(claude の文言が標準エラーへ出るか、再試行の上限の状態の書き方、kiro / agy の文言、claude の旧い形、行頭に固定しても残る誤検知)
レビューの収束 cross-review は approved(agy と kiro が APPROVE、未解決の指摘 0 件を GitHub 側で確認)。指摘 3 件(すべて major)を 2 コミットで直した。codex は途中で利用上限に当たり(#811 の現象そのもの)、--exclude codex で外して再開した
本文との一致 一致(pr-body-decisions.sh check exit=0)
必須の節 standard の必須の成果物のうち、システム構成図・クラス図・非機能設計表は対象が無いため省き、理由を要求の「対象範囲(含まない)」に書いた

Test plan

設計の段階で確かめたこと(2026-09-22、develop 90c0f06、Python 3.14.4):

  • 文言の収集: codex の記録 62 件・claude の記録 5,103 件・kiro / agy の記録 0 件・導入済みの codex と claude の実行ファイルの文字列(設計の「実測」)
  • 足す 2 行の照合: 実物の 11 入力(書き出しだけが実物のもの 1 を含む)が一致、429 以外と 400 の行は不一致、誤検知の 12 入力は不一致(設計の「実測」の表)
  • codex exec の誤りの行の形を実機で確認(ERROR: + 誤りの本文)。この PR の cross-review で codex が実際に利用上限で止まり、標準エラーの記録の上限の行が今の照合に一致せず(理由「結果ファイル無し」で起動し直し)、足す 2 行に一致することを確かめた
  • PATH に読めないディレクトリがあると、CLI が入っていないときに init が PermissionError で落ちる #813 の再現: _run_probe が権限の例外を上げること、cross-refactoring の参加者の解決も終了コード 1 で落ちること
  • python3 scripts/check-doc-line-limit.py exit=0
  • python3 scripts/check-markdown-links.py exit=0

文書の検査

document-restructuring の段 1 と段 4(日本語の数え方。表とコードブロックは文長の集計から外す):

指標 要求(前) 要求(後) 要求(レビュー後) 設計(前) 設計(後) 設計(レビュー後)
目的が定義される位置 3 行目 3 行目 3 行目 3 行目 3 行目 3 行目
平均文長 48.9 字 45.3 字 45.1 字 36.6 字 36.6 字 37.1 字
最長文(題と原文の引用を除く) 157 字 101 字 101 字 95 字 95 字 105 字
章の数 10 10 10 9 9 9
行数 133 133 133 250 250 255
最長の章 受け入れ条件 29 行 同 29 行 同 29 行 実測 70 行 同 70 行 同 73 行

「レビュー後」は cross-review の指摘 3 件を直した後の値である。設計の行数の増加 5 行は、実測の表への 1 行・段落 1 つ・未確認の表の 1 行の増減で説明できる。

目安を超えた項目:

  • 要求の平均文長 45.3 字(目安 40 字)。理由: 受け入れ条件が CLI の英語の文言をそのまま持つ。採らなかった直し方: 文言を設計の表への参照だけにする(条件だけで何を確かめるかが読めなくなる)
  • 要求の最長文 101 字(AC4)。理由: 10.16.0 で合格した 4 形を 1 文で並べた。採らなかった直し方: 4 つの条件に割る(同じ主語が 4 回続く)
  • 設計の最長文 105 字(実測の「実物に無い末尾は入力に足さない」の段落)。理由: 2 つの末尾の形と出所を 1 文で対応させた。採らなかった直し方: 形ごとに 2 文へ割る(同じ理由の文が 2 回続く)
  • 設計の「実測」73 行(目安 40 行)。理由: 3 つの小見出しに分かれ、大半が表とコードブロックである。採らなかった直し方: 別ファイルへ分ける(実測と決定の行き来が増える)
  • 題(153 字)は文書の規約の形(今起きている問題 → 直した後に成り立つこと)のため対象外

組み直したこと: 要求の章を「目的 → 用語 → なぜ要るか → 対象範囲 → 影響 → 取り決め → 境界 → 検証手段 → 受け入れ条件 → 依頼(原文)」の順へ並べ替えた。長い条件 4 つを分けた。行数の変化は無い。

markdown-writing のセルフチェック 6 種:

検査 要求 設計
識別子と略語 0 件 5 件(コードブロックとツリーの中だけ)
検討痕跡・変更履歴 0 件 0 件
強い否定語 0 件 0 件
過剰な装飾語 0 件 0 件
根拠の曖昧な断定 0 件 0 件
多義語(5 回以上) 0 語 0 語

🤖 Generated with Claude Code

codex と claude の実物の文言を記録と実行ファイルから集め、照合に足す 2 行と
誤検知の実測を設計に残す。認証の確認が起動できない例外を「通らない」として
返す設計と、10.16.1 のリリース後テストで確かめ直す条件(#478 #619 #729)を書く。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | agy | APPROVE

要求文書・設計文書の受け入れ条件、実測データ、決定理由、テスト設計に矛盾や不足はなく、修正点は見つかりませんでした。

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | kiro | REQUEST_CHANGES

設計・要求は既存コード(monitor.py の USAGE_LIMIT_FATAL / _scan_patterns、auth.py の _run_probe)と整合し、実測の正規表現も主張どおり照合する。ただし claude の利用上限 5 形について、ループで実際に使う claude -p --output-format json の err.log(標準エラー)に出るという出所が実測に無く、AC3 が検証する経路が本番構成で発火しない懸念が残る。

Comment thread issues/issue-811-813-design.md
@takemi-ohama

Copy link
Copy Markdown
Contributor Author

🔧 /ndf:fix サマリ | round 1 | commit 33699a9

対応件数: critical=0 / major=1 / minor=0(合計 1 件)
決着: 1 件 / 見送り: 0 件 / 却下: 0 件
CI: SUCCESS

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 2 | kiro | REQUEST_CHANGES

AC6 は「テストの入力は実測の表の実物をそのまま写す(推測で作った文言を入力にしない)」を要求するが、実測の一致表(design 81・87 行)の 2 件は末尾に未確認の文字列を含んでおり、同表では無条件に「実物」と分類している。実装者がこの表からそのまま AC6 準拠のテスト入力を作ると、実測の収集表・未確認表と食い違う。該当 2 行を「実物の書き出し + 推測の末尾」と明示するか、照合が実際に読む範囲(書き出しと 429 の語境界まで)だけを入力に使うと記して整合させたい。

Comment thread issues/issue-811-813-design.md Outdated
Comment thread issues/issue-811-813-design.md Outdated
@takemi-ohama

Copy link
Copy Markdown
Contributor Author

🔧 /ndf:fix サマリ | round 2 | commit cb1a7bf

対応件数: critical=0 / major=2 / minor=0(合計 2 件)
決着: 2 件 / 見送り: 0 件 / 却下: 0 件
CI: SUCCESS

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | agy | APPROVE

要求文書・設計文書、受け入れ条件、実測データ、テスト設計に矛盾や不足はなく、修正を要する点はありません。

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | kiro | APPROVE

ドキュメントのみの PR(issue-811-813 の要求・設計を追加)。設計の主張を既存コード(monitor.py の USAGE_LIMIT_FATAL 4 行・_scan_patterns・_match_is_quoted、auth._run_probe が FileNotFoundError/TimeoutExpired のみ捕捉)と照合し、提案した 2 つの正規表現を実測表の各入力で実行して一致・不一致・誤検知の分類が表どおりであることを確かめた。要求と設計、AC と実測表、決定と未確認表は整合しており、修正を要する指摘は見つからなかった。過去 2 ラウンドで挙がった kiro の指摘(claude 5 形の err.log 出所・末尾未確認の分類)は 33699a9cb1a7bf で解消済み。

@takemi-ohama takemi-ohama added the design-approved 設計 Pull Request の承認の印 label Sep 22, 2026
@takemi-ohama
takemi-ohama merged commit 5812e33 into develop Sep 22, 2026
18 checks passed
@takemi-ohama
takemi-ohama deleted the design/issue-811-813-release-verification-fixes branch September 22, 2026 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design-approved 設計 Pull Request の承認の印

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant