Skip to content

relay の統括役の結合テスト: tmux を使う 4 件が手元と CI で毎回走り、落ちたときに原因を読める(#2346) - #2524

Merged
takemi-ohama merged 4 commits into
developfrom
design/issue-2346
Nov 5, 2026
Merged

takemi-ohama merged 4 commits into
developfrom
design/issue-2346

Conversation

@takemi-ohama

@takemi-ohama takemi-ohama commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

#2346 の要求と設計を文書にまとめました。tmux を使う結合テストを毎回走らせるための受け入れ条件と設計を書き、用語集に 1 語を足しています。変更は文書だけで、コードは含みません。

利用者向けの変化

  • 無し

移行の手順

  • 無し

変更の要点

  • 要求の文書( issues/issue-2346-requirements.md )を新設しました。
    • tmux を使う結合テストを毎回走らせるための受け入れ条件 28〜32 を書いています。
    • 受け入れ条件 32 の範囲に scripts/tests/test_root_conftest.py を加えることを、利用者が設計の承認で認めました(設計文書は書き換えていません)。
  • 設計の文書( issues/issue-2346-design.md )を新設しました。
    • 上記の結合テストを毎回走らせる設計を書いています。
    • 長い文を分けて読みやすくしています。
    • 継続的インテグレーション(CI)のジョブの手順を一覧にしています。
  • 用語集に「前提のコマンドの一覧」を足しました。
ファイル 追加行
issues/issue-2346-requirements.md 291
issues/issue-2346-design.md 272
docs/glossary/glossary.json 7
docs/glossary.md 1

テスト

supervise.py の run のステップの結果は次のとおりです。

ステップ exit 結果
用語集の検査(glossary) 0 宣言と用語集が揃っている
要求の検査(requirements-check) 0 issues/issue-2346-requirements.md は #2346 の本文と一致する(17 節)

要求の検査は、初回は要求の文書を読めずに exit 2 で止まりました。このブランチで再検査し、exit 0 で通りました。要求の文書は #2346 の本文と 17 節すべてで一致しています。

モード: standard / 通した工程: 設計 → 要求と受け入れ条件 → ドキュメント再構成 → ドキュメントレビュー

🤖 Generated with Claude Code

決めたこと

issues/issue-2346-design.md

  • 決定 1: 4 件だけに tmux を課すため、テストのクラスにまとめ、一覧のキーをパスに :: でつないだ形まで広げる
  • 決定 2: tmux の有無を 1 か所で決めるため、テストの側の skipif(needs_tmux)を消す
  • 決定 3: runner のイメージが変わってもジョブが止まらないよう、tmux は無いときだけ apt で入れる
  • 決定 4: 4 件の結果を名前で読むため、分割ごとの JUnit XML を成果物に残す
  • 決定 5: どの擬似端末のテストでも原因を読めるよう、失敗の文は Term の共通の処理に足す

takemi-ohama and others added 3 commits November 5, 2026 01:13
2026-11-04 に記録された結合テストの失敗は、2026-11-05 に develop の先頭とタグ
ndf--v10.27.14 のどちらでも再現しない(単独 5 回・ファイル 48 件・全体 5,780 件が通過)。
tmux を使う 4 件は tmux の無い環境で黙って飛ばされるため、根の conftest.py の外部コマンドの
一覧で失敗にし、CI で走らせることを要求にした。課題の本文の写しを issues/ に置く。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
受け入れ条件 28〜32 の設計。tmux を使う 4 件をテストのクラスにまとめ、根の conftest.py の
前提のコマンドの一覧のキーをパスに :: でつないだ形まで広げて tmux を課す。テストの側の skipif は消す。
CI は tmux が無いときだけ apt で入れ、分割ごとの JUnit XML を成果物に残す。待ちが切れたときは
Term の失敗の文に作業ディレクトリごとの区間の起動の引数とファイルの一覧を載せる。

CI の実行 41945018391 の分割 0 で skipped が 0 件だったため、今の runner には tmux がある。
受け入れ条件 32 の一覧に無い scripts/tests/test_root_conftest.py へテストを足すかは、
承認ゲート 1 で確かめる。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
章の並びは設計の雛形の固定の順のまま変えず、内容は足していない。
最長文を 188 字から 136 字へ、平均文長を 41.8 字から 37.7 字へ縮めた。
行数の増加 6 行は、CI のテストのジョブの手順を番号付きの一覧へ移した分である。

Co-Authored-By: Claude Opus 5.5 <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 | codex | 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

ドメインモデルの節と用語集の差分を確認した。コンテキストは repo-dev-checks の 1 つで、2 コンテキストにまたがる関係の宣言漏れは無い。集約 4 つはいずれも持ち主が 1 つに決まっている。不変条件 I1〜I7 に相互の矛盾は無く、ドメインイベント E13〜E16 は要求の番号をそのまま引き継ぎ、各イベントに受け手がある。用語『前提のコマンドの一覧』は design の用語表・glossary.md・glossary/glossary.json の 3 者で意味が一致し、識別子 required_commands とコンテキスト repo-dev-checks も揃っている。この範囲で critical / major の修正アクションは見つからなかった。

@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 | claude | REQUEST_CHANGES

CI の tmux の用意の手順の書き方と、受け入れ条件 28・I2 のテストの子プロセスの範囲の 2 点を直す。

Comment thread issues/issue-2346-design.md Resolved
Comment thread issues/issue-2346-design.md Resolved

@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

受け入れ条件 28〜32 の設計を、根の conftest.py・Term・test_relay_hub.py・pytest.yml の実体と突き合わせて確認した。照合をパス前方一致から項目の識別子(nodeid)へ広げる案(決定 1・I3)、skipif を消して一覧に一本化する案(決定 2・I4)、Term の wait/finish の失敗の文に区間とファイルの段落を足す案(決定 5・I5)は、いずれも現在のコード(_bundle_of・Term.relay_dirs/starts、既存の『記録:』行)と整合している。tmux を使うのは hubenv を使う 4 件のみで、設計の 44/4 の内訳と一致する。1 点、CI で tmux を apt から入れる経路に、設計内で手順と所要時間の見積が食い違う箇所がある(下記)。

Comment thread issues/issue-2346-design.md Resolved
@takemi-ohama

Copy link
Copy Markdown
Contributor Author

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

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

@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 3 | claude | APPROVE

このラウンドの対象範囲(CI の tmux の用意の手順への apt-get update の明記、I2 のテストの子プロセスの対象の絞り込み)に修正指摘はありません。

@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 3 | codex | APPROVE

このラウンドの対象差分に修正指摘はありません。判断の根拠: Value 3・Value 4(重複指摘と不要な再実行を避け、変更された手順を既存コードと照合)。

@takemi-ohama

Copy link
Copy Markdown
Contributor Author

🔧 /ndf:fix サマリ | commit (なし)

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

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