Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
245 commits
Select commit Hold shift + click to select a range
4ca7cef
Docs: 担当 1 回の起動の結末を共通の語彙で読む設計(#729 #619 #584)
takemi-ohama Sep 19, 2026
1bf86d8
Docs: レビューの指摘を反映(テスト設計のパスと契約文書の見るファイル)
takemi-ohama Sep 19, 2026
a564ab3
Docs: cross-review の「数えない」区分を棄却に限る設計(#732 #624 #706)
takemi-ohama Sep 19, 2026
fd5c9f1
Docs: 使える者の決定と席の埋め方を共通層へ移す設計(#727 #687 #478 #664 #648)
takemi-ohama Sep 19, 2026
982fb76
Docs: 期待値を変える既存テストの件数を要求文書の 4 件に揃える(#732)
takemi-ohama Sep 19, 2026
365ec65
Docs: 設計 PR #782 のレビュー指摘に対応(refactor_pool の既定・host 引数・席の重複防止・決定番号)
takemi-ohama Sep 19, 2026
42e33d8
Docs: 設計 PR #782 のラウンド 2 指摘に対応(--exclude の検査を母集合で決める・--only はホストを確かめな…
takemi-ohama Sep 19, 2026
0f7f3c1
Docs: 設計 PR #782 のラウンド 3 指摘に対応(再開で渡さなかった引数は状態ファイルの値で補う・#687 引用を原文へ戻す)
takemi-ohama Sep 19, 2026
90b7830
Docs: cross-refactoring の取り込みが結果なしを値で受ける設計(#728 #647 #592 #553)
takemi-ohama Sep 19, 2026
d47439c
Docs: 設計文書のレビュー指摘 4 件を直す(#784 ラウンド 1)
takemi-ohama Sep 19, 2026
671acb2
Docs: AC8 を変更後の終了コードの期待値で書く(#784 ラウンド 2)
takemi-ohama Sep 19, 2026
22ab68e
Docs: 設計・要求のタイトルと冒頭を「現象 → 成り立つこと」の形にし、目的の章を先頭に置く(#784)
takemi-ohama Sep 19, 2026
cbea740
Docs: 設計 PR #781 の文書を目的が読める形へ組み直す(#729 #619 #584)
takemi-ohama Sep 19, 2026
3b27b29
Docs: #732 #624 #706 の要求・設計文書を目的から読める形へ組み直す
takemi-ohama Sep 19, 2026
a7bb32c
Docs: 設計 PR #782 の 3 文書を目的が読める形へ組み直す(#785 の規約。#727 #687 #478 #664 #648)
takemi-ohama Sep 19, 2026
ac9cd4d
Docs: #732 #624 #706 の要求・設計文書を業務用語で組み直す(markdown-writing ルール 1〜9 と再構成…
takemi-ohama Sep 19, 2026
7a0c948
Docs: 設計 PR #781 の文書を markdown-writing のルールと読み手の問う順に組み直す(#729 #619 #584)
takemi-ohama Sep 19, 2026
e0484cf
Docs: 設計と要求の文書を markdown-writing の規約と読み手の問う順で組み直す(#784、#788)
takemi-ohama Sep 19, 2026
26dafce
Docs: 設計 PR #782 の 3 文書を markdown-writing の規約で書き直し、章立てを読み手が問う順へ組み直す(#…
takemi-ohama Sep 19, 2026
98292ea
Fix: 構成要素図の subgraph の題名を引用符で囲み、GitHub で描画できる形にする(#729)
takemi-ohama Sep 19, 2026
ac42d7d
Merge pull request #781 from devbasex/design/issue-729-619-584-outcom…
takemi-ohama Sep 19, 2026
8f5d559
Merge pull request #783 from devbasex/design/issue-732-uncounted-clas…
takemi-ohama Sep 19, 2026
a4f1378
Merge pull request #784 from devbasex/design/issue-728-apply-intake
takemi-ohama Sep 19, 2026
2c5627d
Merge remote-tracking branch 'origin/develop' into design/issue-727-r…
takemi-ohama Sep 19, 2026
2b14060
Merge pull request #782 from devbasex/design/issue-727-reviewer-pool
takemi-ohama Sep 19, 2026
9bb0203
Docs: 結末の語彙と起動し直しの可否を共通層へ移す実装計画(#729 #619 #584)
takemi-ohama Sep 19, 2026
b45a12b
Add: 結末の語彙を 9 語にし、起動 1 回の結末を 1 つの値として読む関数を共通層に置く(#729)
takemi-ohama Sep 19, 2026
9b89a82
Add: 監視が利用上限の文言を検知し、理由 usage_limit を結末に添える(#729 #619)
takemi-ohama Sep 19, 2026
a242089
Add: CLI 自身の上限で結果を書かずに終わった担当を、理由 cli_timeout にする(#729)
takemi-ohama Sep 19, 2026
11b3a83
Add: CLI を独立したプロセスグループで起動し、止めるときはグループへ送る(#729 #584)
takemi-ohama Sep 19, 2026
2b25e58
Fix: 誤りを示されていない重大な指摘を未反証として数え、反証が揃わないラウンドの印を外す(#732 #624 #706)
takemi-ohama Sep 19, 2026
c70ef28
Docs: 反証のプロンプトと規約・確定仕様を 6 区分に揃え、実装計画を置く(#732 #624 #706)
takemi-ohama Sep 19, 2026
3954efe
Add: cross-review の結果の取り込みが共通の結末を読み、理由と監視の詳細を残す(#729)
takemi-ohama Sep 19, 2026
b3f2258
Add: cross-review の判定が結果なしの理由を出し、起動し直せない理由があれば止める(#729 #619)
takemi-ohama Sep 19, 2026
6890959
Docs: 結果なしの理由 10 語・上限に当たった場合の見分け方・monitor_detail の契約を cross-review の文…
takemi-ohama Sep 19, 2026
406d510
Merge remote-tracking branch 'origin/develop' into feat/issue-729-out…
takemi-ohama Sep 19, 2026
3a7e27e
Test: 認証確認と監視記録の現状動作を固定
takemi-ohama Sep 19, 2026
a1882bf
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
eb8a0d0
Test: 現状固定 — plugins/ndf/scripts/lib/refresh.py#compare
takemi-ohama Sep 19, 2026
aeeff0a
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
38afae0
Test: fetch の取得失敗を現状固定する
takemi-ohama Sep 19, 2026
e5d05eb
Revert "Test: fetch の取得失敗を現状固定する"
takemi-ohama Sep 19, 2026
68fe443
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
bf5f767
Test: refresh の全件配線を現状固定する — plugins/ndf/scripts/lib/refresh.py#refresh
takemi-ohama Sep 19, 2026
b94f804
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
0927df5
Refactor: centralize_configuration / extract_method / consolidate_dup…
takemi-ohama Sep 19, 2026
f850aa0
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
31d2cbc
Refactor: introduce_parameter_object — plugins/ndf/skills/cross-revie…
takemi-ohama Sep 19, 2026
f44044c
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
eb29c27
Refactor: extract_method — plugins/ndf/skills/cross-review/scripts/st…
takemi-ohama Sep 19, 2026
6a13b7f
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
6701294
Refactor: extract_method — plugins/ndf/skills/cross-review/scripts/st…
takemi-ohama Sep 19, 2026
4dcab33
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
f19e31d
Refactor: extract_method — plugins/ndf/skills/cross-review/scripts/st…
takemi-ohama Sep 19, 2026
8422505
Revert "Refactor: extract_method — plugins/ndf/skills/cross-review/sc…
takemi-ohama Sep 19, 2026
5ecbab5
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
9538727
Refactor: replace_with_lookup_table — plugins/ndf/skills/cross-review…
takemi-ohama Sep 19, 2026
e248d50
Revert "Refactor: replace_with_lookup_table — plugins/ndf/skills/cros…
takemi-ohama Sep 19, 2026
5bef51a
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
3523d2c
Refactor: extract_method — plugins/ndf/skills/cross-review/scripts/st…
takemi-ohama Sep 19, 2026
5e59a98
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
bb191de
Refactor: extract_method — plugins/ndf/scripts/lib/post_queue.py#Queu…
takemi-ohama Sep 19, 2026
311bf7f
Refactor: extract_method — plugins/ndf/scripts/lib/post_queue.py#Queu…
takemi-ohama Sep 19, 2026
594c878
Revert "Refactor: extract_method — plugins/ndf/scripts/lib/post_queue…
takemi-ohama Sep 19, 2026
fe5948d
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
1e8216f
Refactor: extract_method — plugins/ndf/scripts/lib/post_queue.py#Queu…
takemi-ohama Sep 19, 2026
3df024d
Refactor: consolidate_duplication — plugins/ndf/skills/cross-review/s…
takemi-ohama Sep 19, 2026
86ae445
Revert "Refactor: consolidate_duplication — plugins/ndf/skills/cross-…
takemi-ohama Sep 19, 2026
7ebf5e8
Revert "Refactor: extract_method — plugins/ndf/scripts/lib/post_queue…
takemi-ohama Sep 19, 2026
dfff09c
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
c1bf5e7
Refactor: extract_method — plugins/ndf/skills/cross-review/scripts/st…
takemi-ohama Sep 19, 2026
bfe56af
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
9f75389
Refactor: extract_method — 認証確認とレビュー反映確認
takemi-ohama Sep 19, 2026
4c7daf4
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
d03916c
Revert "Refactor: extract_method — plugins/ndf/scripts/lib/post_queue…
takemi-ohama Sep 19, 2026
6acd1b8
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
37dec90
Test: cross-review の現状固定テストを追加
takemi-ohama Sep 19, 2026
e772af3
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
47ff274
Docs: 実装計画を書く(P6: 共通層と cross-review。#727 #687 #478 #648)
takemi-ohama Sep 19, 2026
0bf990a
Add: 共通層に使える者の解決・席の埋め方・止めない確認・再開の反映を足す(#727 #687 #478 #648)
takemi-ohama Sep 19, 2026
47384be
Test: 現状固定テスト追加 — critique-round / rotate-pr (squash)
takemi-ohama Sep 19, 2026
c76ae19
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
841d3c5
Add: cross-review の初期化・担当・再開・完了報告を共通層へ載せ替える(#727 #687 #478 #648)
takemi-ohama Sep 19, 2026
b02b30d
Test: 現状固定テストを追加 — cross-review の未固定分岐 3 件
takemi-ohama Sep 19, 2026
678f61f
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
4cd469b
Test: 現状固定テストを追加 — rotate-pr.sh#execute_light の前提ファイル検証 4 分岐
takemi-ohama Sep 19, 2026
b9026de
Revert "Test: 現状固定テストを追加 — rotate-pr.sh#execute_light の前提ファイル検証 4 分岐"
takemi-ohama Sep 19, 2026
532d935
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
39fb6e0
Test: rotate-pr の state 不在経路を固定
takemi-ohama Sep 19, 2026
bab284e
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
78c9900
Add: 席の名前を起動・監視・計測に通し、手順書と文書を新しい引数へ合わせる(#727 #687 #478 #648)
takemi-ohama Sep 19, 2026
0cbb5aa
Docs: 実装で決めた 3 件を設計文書へ書き、共通層の索引に新しい役割を足す(#727 #687 #478 #648)
takemi-ohama Sep 19, 2026
5cfb48f
Refactor: extract_method — plugins/ndf/skills/cross-review/scripts/st…
takemi-ohama Sep 19, 2026
9e73ace
Refactor: centralize_configuration — plugins/ndf/skills/cross-review/…
takemi-ohama Sep 19, 2026
8f8d7d1
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
0f6fd03
Refactor: split_into_pipeline — plugins/ndf/skills/cross-review/scrip…
takemi-ohama Sep 19, 2026
4214114
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
77d9383
Refactor: extract_method — plugins/ndf/skills/cross-review/scripts/st…
takemi-ohama Sep 19, 2026
f682913
Revert "Refactor: extract_method — plugins/ndf/skills/cross-review/sc…
takemi-ohama Sep 19, 2026
cef8f36
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 19, 2026
c853691
Merge pull request #791 from devbasex/feat/issue-729-outcome-vocabulary
takemi-ohama Sep 21, 2026
cca67a1
Merge: origin/develop を取り込む(#791 との競合を解消)
takemi-ohama Sep 21, 2026
af6af96
Merge pull request #790 from devbasex/feat/issue-732-uncounted-classi…
takemi-ohama Sep 21, 2026
8c96ca3
Merge remote-tracking branch 'origin/develop' into feat/issue-727-par…
takemi-ohama Sep 21, 2026
c776509
Merge remote-tracking branch 'origin/develop' into feat/issue-727-par…
takemi-ohama Sep 21, 2026
bf5862d
Docs: cross-review の書き込みをレビューを回す側へ集める設計(#730 #583)
takemi-ohama Sep 21, 2026
2c0c3bb
Docs: 結末の語彙と数えない指摘の区分を確定仕様へ移す
takemi-ohama Sep 21, 2026
5fdf9a1
Fix: round 1 のレビュー指摘 4 件を反映(#730 #583)
takemi-ohama Sep 21, 2026
c20f780
Docs: 検証手段の表の照合先を送り先のブランチへ揃える(#730 #583)
takemi-ohama Sep 21, 2026
3c62014
Fix: 数える区分の集合の置き場所を実体のパスへ直す
takemi-ohama Sep 21, 2026
6506be8
Test: detect_host の分岐を現状固定
takemi-ohama Sep 21, 2026
688966a
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
3bd6e02
Docs: round 2 のレビュー指摘を反映する(決定 4・5、posted_as、決定 14)
takemi-ohama Sep 21, 2026
516745b
Merge pull request #795 from devbasex/docs/issue-729-732-specifications
takemi-ohama Sep 21, 2026
8c60a7a
Test: review_seats の分岐を現状固定
takemi-ohama Sep 21, 2026
f27808c
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
61d9fdc
Docs: 止まり方の 2 分岐を表と図で書き分け、AC20 を取り込みの経路へ揃える
takemi-ohama Sep 21, 2026
0f12eb8
Test: review_seats の使える者も埋め合わせも空の経路を現状固定 — plugins/ndf/scripts/lib/as…
takemi-ohama Sep 21, 2026
e07c95b
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
36dd097
Test: seat_runtime の境界値と異常値を現状固定 — plugins/ndf/scripts/lib/assignment…
takemi-ohama Sep 21, 2026
7815882
Revert "Test: seat_runtime の境界値と異常値を現状固定 — plugins/ndf/scripts/lib/as…
takemi-ohama Sep 21, 2026
15130d3
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
a740c10
Docs: round 4 の指摘を反映(足す先の明示・担当が書く鍵の限定・表の並べ直し)
takemi-ohama Sep 21, 2026
1baa87f
Test: seat_runtime の現状固定テストを追加
takemi-ohama Sep 21, 2026
4d090a6
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
883ead3
Refactor: 起動の結末を値で受け、取り込みの取り消しを 1 か所へ寄せる(#728 #647 #592 #553)
takemi-ohama Sep 21, 2026
ad8115a
Fix: 2 ファイルの公開の順序と、退避する 422 の見分けを契約へ書く
takemi-ohama Sep 21, 2026
4a7bc4e
Test: 結果なしの取り込みと群の試行の受け入れ条件を固定する(#728 #647 #592 #553)
takemi-ohama Sep 21, 2026
72bc01b
Test: assign の下限未満エラーと全除外時の resolve_participants をテスト
takemi-ohama Sep 21, 2026
13e01c5
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
9cda45f
Docs: 件数の出所をインラインの送信成功数へ改め、対応の段落を表へ分ける
takemi-ohama Sep 21, 2026
9d8fe3a
Test: characterization — plugins/ndf/scripts/lib/assignment.py#review…
takemi-ohama Sep 21, 2026
0afd36f
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
9d8256d
Fix: 帰属行の後ろの記名を読み、無進捗の許容と手順書を実装に合わせる(#553 #728)
takemi-ohama Sep 21, 2026
f63f4e8
Docs: 受け入れ条件の確認結果と、実装で決まったことを記録する(#728 #647 #592 #553)
takemi-ohama Sep 21, 2026
0c3b60c
Test: characterization — plugins/ndf/scripts/lib/assignment.py#review…
takemi-ohama Sep 21, 2026
01a221b
Revert "Test: characterization — plugins/ndf/scripts/lib/assignment.p…
takemi-ohama Sep 21, 2026
970d20c
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
da936fe
Test: review_assign の無効ホストを現状固定
takemi-ohama Sep 21, 2026
a8a691f
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
604a079
Docs: 変える出力と変えない出力を分け、契約と未確認の項目を補う
takemi-ohama Sep 21, 2026
a577efa
Test: cross-refactoring の未固定経路を追加
takemi-ohama Sep 21, 2026
233f28b
Docs: 件数の出所を図と検証手段の表へ揃える
takemi-ohama Sep 21, 2026
352bd71
Test: 結果なし・範囲確定不能時の適用中断と項目ブロックを固定
takemi-ohama Sep 21, 2026
97510f8
Test: cmd_merge_fix の範囲不明経路を現状固定 — plugins/ndf/skills/cross-refactori…
takemi-ohama Sep 21, 2026
fa71026
Fix: テストの実行中は監視の環境変数を共通の前提で外す(#678)
takemi-ohama Sep 21, 2026
777b5ae
Refactor: テストごとに散った監視の環境変数の除去を共通の前提へ寄せる(#678)
takemi-ohama Sep 21, 2026
1a81a1a
Refactor: 引数オブジェクト導入とパイプライン・ヘルパー抽出による構造改善
takemi-ohama Sep 21, 2026
3bb7c14
Revert "Refactor: 引数オブジェクト導入とパイプライン・ヘルパー抽出による構造改善"
takemi-ohama Sep 21, 2026
ff3e6cf
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
bb4fc72
Refactor: consolidate_duplication — plugins/ndf/skills/cross-review/s…
takemi-ohama Sep 21, 2026
578a9e5
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
d827efb
Test: 開き直しの判定・解決申告の突き合わせ・入力エラー・取り消しの冪等を現状固定
takemi-ohama Sep 21, 2026
8aba78b
Revert "Test: 開き直しの判定・解決申告の突き合わせ・入力エラー・取り消しの冪等を現状固定"
takemi-ohama Sep 21, 2026
30f6196
Test: scoped_item_ids のフォールバックを現状固定
takemi-ohama Sep 21, 2026
f6e9df3
Refactor: 適用ラウンド 1(R4-001〜R4-004) — 長い関数の分割と重複の統合
takemi-ohama Sep 21, 2026
6d0231b
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
96fe22f
Refactor: gate/apply/setup/proposalsのメソッド抽出と重複関数の統合
takemi-ohama Sep 21, 2026
c2e6b83
Revert "Refactor: gate/apply/setup/proposalsのメソッド抽出と重複関数の統合"
takemi-ohama Sep 21, 2026
422ff59
Refactor: extract_method — plugins/ndf/skills/cross-refactoring/scrip…
takemi-ohama Sep 21, 2026
068c92e
Refactor: extract_method — plugins/ndf/scripts/lib/run_metrics.py#_se…
takemi-ohama Sep 21, 2026
a05b552
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 21, 2026
89bb86f
Refactor: replace_with_bulk_operation / extract_method — auth.py, sta…
takemi-ohama Sep 22, 2026
2f3aa53
Revert "Refactor: replace_with_bulk_operation / extract_method — auth…
takemi-ohama Sep 22, 2026
7a5567b
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 22, 2026
b42b427
Refactor: extract_method — plugins/ndf/scripts/lib で長いメソッドを段に分ける
takemi-ohama Sep 22, 2026
63abc1f
Revert "Refactor: extract_method — plugins/ndf/scripts/lib で長いメソッドを段に…
takemi-ohama Sep 22, 2026
51b3675
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 22, 2026
5f63640
Refactor: introduce_parameter_object — plugins/ndf/scripts/lib/metric…
takemi-ohama Sep 22, 2026
225e399
Revert "Refactor: introduce_parameter_object — plugins/ndf/scripts/li…
takemi-ohama Sep 22, 2026
d3029e0
Docs: 改修計画を記録する(cross-refactoring 進行側)
takemi-ohama Sep 22, 2026
bcca202
Refactor: extract_method — verify/apply/refactor.py の段の抽出と commit_fil…
takemi-ohama Sep 22, 2026
2b3d281
Revert "Refactor: extract_method — verify/apply/refactor.py の段の抽出と co…
takemi-ohama Sep 22, 2026
f33ecfd
Refactor: consolidate_duplication — plugins/ndf/skills/cross-refactor…
takemi-ohama Sep 22, 2026
6bcbd6b
Refactor: extract_method — converge.py / apply.py / proposals.py / gi…
takemi-ohama Sep 22, 2026
86163f6
Merge pull request #794 from devbasex/design/issue-730-writes-to-cond…
takemi-ohama Sep 22, 2026
fd30c8a
Refactor: extract_method — cross-refactoring の長い関数の段の抽出
takemi-ohama Sep 22, 2026
5172466
Fix: 1 者指定でも使える者が 0 者なら初期化を止める(レビュー指摘対応)
takemi-ohama Sep 22, 2026
fe17469
Fix: converge.py の Optional の取り込み漏れを直す
takemi-ohama Sep 22, 2026
b9888ce
Fix: 2 席目の監視の上限を席の名前でなくランタイム名で引く(レビュー指摘対応)
takemi-ohama Sep 22, 2026
28dad58
Fix: 起点のディレクトリに依らず共通の前提を効かせる(#678)
takemi-ohama Sep 22, 2026
7af3b78
Docs: 再開で渡した引数の扱いの置き場所を受け入れ条件へ反映する(#727 #687 #478 #648)
takemi-ohama Sep 22, 2026
4d1470d
Merge pull request #793 from devbasex/feat/issue-727-participants
takemi-ohama Sep 22, 2026
52513b1
Merge remote-tracking branch 'origin/develop' into feat/issue-728-app…
takemi-ohama Sep 22, 2026
8057d86
Fix: 監視の環境変数の切り離しを確かめる 2 つのテストを恒真でなくする(#678)
takemi-ohama Sep 22, 2026
24bf3a4
Merge pull request #796 from devbasex/feat/issue-728-apply-intake
takemi-ohama Sep 22, 2026
e2a8f7c
Docs: 実装計画を作り、未確認だった 4 件を実測の結果へ書き直す(#730 #583)
takemi-ohama Sep 22, 2026
57a803e
Docs: 使える者だけで始める収束ループと、結果なしの取り込みを確定仕様にする
takemi-ohama Sep 22, 2026
8711dcb
Update: 二度書かない照合を 4 種別へ広げ、拒まれ方を区別する(#730 #583)
takemi-ohama Sep 22, 2026
5b9eed8
Merge pull request #798 from devbasex/docs/spec-727-728-intake
takemi-ohama Sep 22, 2026
693c868
Add: 結果ファイルを投稿へ変える層を新設する(#730 #583)
takemi-ohama Sep 22, 2026
4be3513
Update: 指摘の取り込みが投稿を行い、申告と実数の突き合わせをやめる(#730 #583)
takemi-ohama Sep 22, 2026
01feeec
Update: 担当のプロンプトから投稿の手順を外し、書き終えてから改名で公開させる(#730 #583)
takemi-ohama Sep 22, 2026
8d27d06
Update: 修正の送信と返信・決着・まとめを取り込む側へ移し、単独の口を 1 行にする(#730 #585 #676)
takemi-ohama Sep 22, 2026
bee79b4
Update: cross-refactoring の参加者を共通層で決め、適用の輪番を参加者の中で回す
takemi-ohama Sep 22, 2026
0d45912
Update: 起動し直しを初回と同じ経路へ通し、最終スイープの書き込みも回す側へ移す(#730 #583)
takemi-ohama Sep 22, 2026
5bfb08e
Docs: cross-refactoring の手順書と指示書を 1 つの参加者と輪番に合わせる
takemi-ohama Sep 22, 2026
bf69231
Docs: 書き込みの担い手を移した決定を cross-review の文書へ反映する(#730 #583)
takemi-ohama Sep 22, 2026
cc6207c
Merge remote-tracking branch 'origin/develop' into feat/issue-730-wri…
takemi-ohama Sep 22, 2026
5900ef0
Test: 境界分岐の現状固定テストを追加
takemi-ohama Sep 22, 2026
da54b76
Test: 引数解析で none と名前の混在を拒む分岐の現状固定テストを追加
takemi-ohama Sep 22, 2026
a81839a
Test: 投稿待ち行列の分岐を現状固定
takemi-ohama Sep 22, 2026
1267db4
Test: 現状固定 — refactor.py init の --include/--exclude の拒否経路
takemi-ohama Sep 22, 2026
1845c1a
Test: 送信の失敗と待ち行列の位置の拒否を現状固定 — plugins/ndf/scripts/lib/result_posts.py…
takemi-ohama Sep 22, 2026
9d037c9
Test: characterization — plugins/ndf/scripts/lib/post_queue.py#retry
takemi-ohama Sep 22, 2026
101761a
Refactor: extract_method — plugins/ndf/skills/cross-refactoring/scrip…
takemi-ohama Sep 22, 2026
5cb07ed
Refactor: flatten_conditional — apply.py#_load_runtime_proposals
takemi-ohama Sep 22, 2026
4eabfd8
Test: 境界と分岐の現状固定テストを追加
takemi-ohama Sep 22, 2026
067a9f8
Test: レビューURL補完と状態ファイル正常保存の現状固定テストを追加
takemi-ohama Sep 22, 2026
2d510a9
Refactor: extract_method — plugins/ndf/skills/cross-refactoring/scrip…
takemi-ohama Sep 22, 2026
7f0fe76
Refactor: consolidate_duplication — plugins/ndf/skills/cross-refactor…
takemi-ohama Sep 22, 2026
6695c13
Refactor: consolidate_duplication / extract_method / fix_dependency_d…
takemi-ohama Sep 22, 2026
a824f7e
Revert "Refactor: consolidate_duplication / extract_method / fix_depe…
takemi-ohama Sep 22, 2026
b2d7b30
Refactor: consolidate_duplication — plugins/ndf/scripts/lib/result_po…
takemi-ohama Sep 22, 2026
24a4573
Refactor: extract_method — cross-review の長い処理
takemi-ohama Sep 22, 2026
5755fc0
Merge pull request #797 from devbasex/fix/issue-678-monitor-env-isola…
takemi-ohama Sep 22, 2026
8efc1d9
Merge pull request #800 from devbasex/feat/issue-664-refactor-partici…
takemi-ohama Sep 22, 2026
4e19403
Refactor: extract_method — plugins/ndf/skills/cross-review/scripts/st…
takemi-ohama Sep 22, 2026
f563f45
Docs: cross-refactoring の参加者と適用の輪番を確定仕様にする
takemi-ohama Sep 22, 2026
3956e5b
Docs: ホストが agy / kiro のときラウンド 1 の適用担当がホストになることを確定仕様に書く
takemi-ohama Sep 22, 2026
ce6d800
Merge pull request #803 from devbasex/docs/spec-664-736-refactor-part…
takemi-ohama Sep 22, 2026
df1066b
Fix: 行が整数にならない指摘を例外で落とさず総評へ回す(#730 #583)
takemi-ohama Sep 22, 2026
b53a68a
Fix: 単独 fix のリポジトリと頭の解決を作業ツリーの中で行う(#730 #583)
takemi-ohama Sep 22, 2026
1f646aa
Fix: 送り先を決められないときは返信へ進まず止める(#730 #583)
takemi-ohama Sep 22, 2026
4e2bc22
Fix: 位置エラーの退避を今回積んだ項目が拒まれたときに限る(#730 #583)
takemi-ohama Sep 22, 2026
a3babd3
Fix: 控えへの送れた先の書き戻しを原子的にし、失敗で取り込みを止める(#730 #583)
takemi-ohama Sep 22, 2026
9927f24
Fix: 回し直した実行のレビューを前の実行の投稿と取り違えない(#730 #583)
takemi-ohama Sep 22, 2026
5dee79f
Update: statusline にサブエージェントのコンテキスト使用量を並べる
takemi-ohama Sep 22, 2026
8850d29
Merge remote-tracking branch 'origin/develop' into feat/issue-730-wri…
takemi-ohama Sep 22, 2026
0a49995
Merge pull request #801 from devbasex/feat/issue-730-writes-to-conductor
takemi-ohama Sep 22, 2026
6f8a573
Update: statusline の再描画の間隔と 500k 超の警告を足し、ラベルを 4 文字にする
takemi-ohama Sep 22, 2026
f0965c9
Docs: cross-review の書き込みを進行側へ移したことを確定仕様にする(#730 #583 #678)
takemi-ohama Sep 22, 2026
d8b66ea
Fix: 子を待つ supervisor がサブエージェントの表示から消える
takemi-ohama Sep 22, 2026
c730435
Docs: 消した設計を指すリンクを確定仕様へ差し替える
takemi-ohama Sep 22, 2026
1163f4f
Docs: 上限の解決順に明示引数を足す(#805 レビュー対応)
takemi-ohama Sep 22, 2026
5c90c49
Merge pull request #805 from devbasex/docs/spec-730-583-writes-to-con…
takemi-ohama Sep 22, 2026
93ce550
Fix: statusline のパス分割とメインの Haiku 閾値を直し、表示のテストを足す
takemi-ohama Sep 22, 2026
8b9e336
Release: ndf v10.16.0-dev.1
takemi-ohama Sep 22, 2026
76fa06e
Fix: サブエージェントの説明に含まれる制御文字を statusline に出さない
takemi-ohama Sep 22, 2026
ed675ec
Merge pull request #807 from devbasex/release/v10.16.0-dev.1
takemi-ohama Sep 22, 2026
3e9b920
Merge pull request #806 from devbasex/feat/statusline-subagent-context
takemi-ohama Sep 22, 2026
b1a5d8c
Release: ndf v10.16.0(開発版 10.16.0-dev.1 の接尾辞を外す)
takemi-ohama Sep 22, 2026
e4aeda1
Merge pull request #808 from devbasex/release/v10.16.0
takemi-ohama Sep 22, 2026
32bb5b8
Docs: 10.16.0 の変更履歴と更新案内に statusline の変更(#806)を足す
takemi-ohama Sep 22, 2026
90c0f06
Merge pull request #809 from devbasex/release/v10.16.0-statusline-notes
takemi-ohama Sep 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
{
"name": "ndf",
"source": "./plugins/ndf",
"description": "Claude Code plugin (v10.15.1): 8 specialized agents and 45 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, statusline, external AI delegation (Codex/agy), transcript retention guard, and optional Slack notifications.",
"description": "Claude Code plugin (v10.16.0): 8 specialized agents and 45 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, statusline, external AI delegation (Codex/agy), transcript retention guard, and optional Slack notifications.",
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ ai-plugins/

## NDFプラグインについて

**NDFプラグイン**は、このマーケットプレイスの主要プラグインです(v10.15.1)。plugin 名は全ランタイムで `ndf` を維持し、配布物は `plugins/ndf/` の1ディレクトリにまとまっています。
**NDFプラグイン**は、このマーケットプレイスの主要プラグインです(v10.16.0)。plugin 名は全ランタイムで `ndf` を維持し、配布物は `plugins/ndf/` の1ディレクトリにまとまっています。
- Skill の実体は `plugins/ndf/skills/` の1箇所。配布先は `plugins/ndf/manifests/*-skills.txt` が決める
- Claude Code版は 8個の専門サブエージェント、公開Skills、PreToolUse/SessionStart/Stopフックを提供
- Codex版は Codex向け公開Skillsと任意Slack通知hookを提供
Expand Down
55 changes: 55 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,61 @@
**開発版(接尾辞の付いた版)は載せない。** `9.8.0` は `9.8.0-dev.1` までしか出ておらず、
その内容は `10.0.0` で届いている。

## [ndf 10.16.0] - 2026-09-22

### 追加

- **`cross-review` と `cross-refactoring` の `init` に `--exclude` / `--include` / `--require-all` を足した**(#664 #727)。
参加者を名指しで足し引きでき(カンマ区切り・繰り返し可・再開で `none` を渡すと空へ戻す)、`--require-all` を
付けたときだけ確認を通らない者が 1 者でもいれば止まる
- **`scripts/lib/result_posts.py` を新設した**(#730 #583)。結果ファイルからレビュー・返信・スレッドの決着・
まとめを組み立てて待ち行列から送る共通層で、部分命令 `fix` が `/ndf:fix` を単独で使うときの送信と投稿を行う
- **`cross-refactoring/scripts/refactor_lib/intake.py` を新設した**(#728)。適用・修正・最終ゲートの修正の
3 つの取り込みが、範囲の確定・未検証のコミットの取り消し・結末の記録を共有する
- `cross-review/scripts/classifications.py` を新設し、指摘の区分の語彙を 1 か所に置いた(#732)
- 状態ファイルに参加者の記録(`participants`)と再開で変えた値の記録(`resume_changes`)を足し、完了報告に
参加した者の節を足した(#727 #648 #664)
- **statusline に実行中のサブエージェントのコンテキスト使用量を並べる**(#806)。使用量の多い順に 3 本まで、
残りは本数だけを出す。500k(Haiku 4.5 は 150k)を超えたら赤で表示し、NDF 標準の statusLine に
`refreshInterval: 5` を持たせる(既存の設定には `ensure` / `set` が足し、利用者の値は変えない)

### 変更

- **認証の確認を関門から外した**(#478 #727 #664)。確認を通らない CLI があっても `init` はその者を外して
続け、外した者と理由を状態ファイルと完了報告へ残す。使える者が 0 者なら止まる
- **`cross-review` が毎ラウンド 2 席を確保する**(#687 #727)。使える者が足りなければホスト、次に同じ
ランタイムの 2 つ目(`codex-2` など)で埋める。`--only` のときは埋め合わせをしない
- **`cross-refactoring` の既定の参加者を codex / kiro とホストにした**(#664)。agy は `--include agy` で戻す。
提案と適用を同じ参加者で回し、レビュー担当の役を無くした
- **再開で渡した引数を反映するか、反映しないと知らせる**(#648)。上限の引数の既定を未指定にし、既定値は
状態の側で補う
- **担当 1 回の起動の結末を共通の語彙で読む**(#729 #619 #584)。利用上限は理由「利用上限」として残り、
同じラウンドで同じ担当を起動し直さない。監視は CLI を独立したプロセスグループで起動し、止めた後に子
プロセスが結果を書かない
- **収束の判定で数えない指摘を、棄却と `minor` 以下に限った**(#732 #624 #706)。誤りを示されていない
`major` 以上は `unrefuted` として数える
- **GitHub と git へ書くのをレビューを回す側だけにした**(#730 #583)。レビューの担当は指摘の控えと
結果ファイルを書いて終わり、`/ndf:fix` の担当はコミットまでで止まる。投稿は `state.py read-result`、
送信・返信・決着・まとめは `state.py merge-fix` が行い、4 種別すべてで二度書かない照合を掛ける
- **同じ適用ラウンドを開き直すのを 2 回までにした**(#728 #647 #592)。2 回目は別の担当が試し、2 回とも
結果が残らなければ取り消して見送る。採用 0 件の提案ラウンドと項目の無い適用ラウンドでは担当を起動しない
- `launch-reviewer.sh` / `critique.sh` の第 1 引数をランタイム名から席の名前にした(ランタイム名は
そのまま受け付ける)(#727)
- statusline のメインの表示から上限・使用率・コンテナ名・ホスト名を外し、モデル名を詰めた
(`Opus 5 (1M context)` → `Opus5`)(#806)

### 修正

- 帰属の段落がコミットの後ろに足されても、必須の記名を末尾の段落から読むようにした(#553)
- テストの実行中は `MONITOR_` で始まる環境変数を外し、監視の上限を延ばしたシェルでも同じ件数が通るように
した(#678)

### 削除

- 共通層の `check_auth` / `impl_pool` / `review_assign` / `assign` を消した(#664)。置き換え先は
`probe_auth` / 参加者の一覧 / `review_seats` / `impl_assign`
- `cross-review` の担当の申告件数と GitHub の実数の突き合わせをやめた(#730)

## [ndf 10.15.1] - 2026-09-19

### 修正
Expand Down
13 changes: 7 additions & 6 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,27 +59,28 @@ python3 plugins/ndf/scripts/instructions-check.py --root .

## cross-refactoring

`/ndf:cross-refactoring` は codex / agy / kiro / claude のうち **ホストを除く 3 者**に構造改善を提案させ、**参加する 4 者**から輪番で選んだ 1 者が適用し、残り 2 者がレビューする。新しい提案が出なくなるまで繰り返す
`/ndf:cross-refactoring` は参加者に構造改善を提案させ、同じ参加者から輪番で選んだ 1 者が適用する。新しい提案が出なくなるまで繰り返す。参加者の既定は **codex / kiro とホスト(ホストが codex / kiro なら 2 者)** で、`--exclude` / `--include` で名指しで変える(agy は `--include agy` で戻す)。レビューは最終ゲートの `cross-review` が担う

```bash
/ndf:cross-refactoring 130 --scope src/services --baseline-test "pytest -q"
/ndf:cross-refactoring 130 --scope src --model codex=gpt-5.5 --model claude=claude-opus-5
/ndf:cross-refactoring 130 --scope src --include agy --exclude kiro
```

- `--scope` は必須。提案が発散して PR が肥大するのを防ぐ。**検証にも効く**ので、現状固定テストの置き場所も含める
- ホストと同じランタイムが適用担当になる場合も、サブエージェントではなく **CLI プロセス**として起動する
- モデルを比べるなら `--model <ランタイム>=<name>` を 4 つとも指定する。実際に動いたモデルを取得できるのは claude だけで、残り 3 つは指定値で代用する。指定が無いラウンドは集計から分離される
- 適用担当は 4 ラウンドで 1 周する。`--max-outer-rounds` の既定が 4 なのは、上限 3 では 4 者目の順番へ届かないため
- モデルを比べるなら `--model <ランタイム>=<name>` を参加者の全員に指定する。実際に動いたモデルを取得できるのは claude だけで、残りは指定値で代用する。指定が無いラウンドは集計から分離される
- 適用担当は参加者の数のラウンドで 1 周する。輪番は適用ラウンドごとに進むため、`--max-outer-rounds`(既定 3)が切る提案の回数とは対応しない
- 収束しない改善項目は **項目単位で取り消す**。合意済みの項目は PR に残る。ただし同一ファイルの隣接行を触る項目どうしは git だけでは分離できないため、そのラウンドは全件取り消しへ退避する
- 生成物・配布物の同期は **進行側の責務**。実装担当にはさせない(範囲外の変更になる)。同期の手順は `--sync-command "bash scripts/build-runtime-plugins.sh"` のように渡す
- 公開するのは **進行側だけ**。実装担当は push しない。進行側が検証を通した後に push するので、未検証の変更が公開されない
- 履歴に残るのは **1 改善項目 = 1 コミット**。現状固定テストが要る項目だけ 2 コミット。テストも項目の単位で 1 回だけ求める
- 改修計画は `--plan-file`(既定 `issues/refactoring-plan-rf<PR>.md`)へ書き出され、生成物の同期と同じコミットで公開される
- `init` が参加 CLI の認証状態を確認する。誤検知するときは `NDF_SKIP_AUTH_CHECK=1`
- `init` が参加者の認証状態を確認し、通らない者を外して続ける。全員が揃わないなら止めたいときは `--require-all`。誤検知するときは `NDF_SKIP_AUTH_CHECK=1`

## cross-review

`/ndf:cross-review` は codex / agy の両方に PR レビューを委譲し、両者が `APPROVE` するまで修正ループを回す。agy の progress log を heartbeat に表示するため、無言に見える時間でも `scan` / `analyze` / `post` / `done` などの作業段階を確認できる。
`/ndf:cross-review` はホストを除く 3 つのランタイムのうち使える者から毎ラウンド 2 席を選んで PR レビューを委譲し、両席が `APPROVE` するまで修正ループを回す。使える者が 2 者に満たなければ、ホスト、次に同じランタイムの 2 つ目が席を埋める。agy の progress log を heartbeat に表示するため、無言に見える時間でも `scan` / `analyze` / `post` / `done` などの作業段階を確認できる。

追加レビュー観点は以下のどちらかで渡す:

Expand All @@ -88,4 +89,4 @@ python3 plugins/ndf/scripts/instructions-check.py --root .
/ndf:cross-review 123 --extra-instructions-file /tmp/review-focus.md
```

PR の変更ファイルから docs only / code / DB migration / test / dependency / CI設定 / API契約 / 認証認可 / frontend / performance / deletion / generated / i18n / infra を自動分類し、該当するレビュー観点テンプレートも codex / agy 両方に渡す
PR の変更ファイルから docs only / code / DB migration / test / dependency / CI設定 / API契約 / 認証認可 / frontend / performance / deletion / generated / i18n / infra を自動分類し、該当するレビュー観点テンプレートも両席に渡す
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Claude Code / Codex / Kiro CLI / agy 向けのスキル・MCP設定を共有す

このマーケットプレイスは、チーム全体でAI開発ツール(Claude Code / Codex / Kiro CLI / agy)の導入を加速するための事前設定されたプラグインを提供します。

**NDFプラグイン v10.15.1** は、同じ `ndf@ai-plugins` という名前で Claude Code / Codex / Kiro CLI / agy へ配布されるプラグインです。配布物は `plugins/ndf/` の1ディレクトリにまとまっており、Skill の実体は `plugins/ndf/skills/` の1箇所だけです。どのランタイムへ配るかは `plugins/ndf/manifests/*-skills.txt` が決めます。
**NDFプラグイン v10.16.0** は、同じ `ndf@ai-plugins` という名前で Claude Code / Codex / Kiro CLI / agy へ配布されるプラグインです。配布物は `plugins/ndf/` の1ディレクトリにまとまっており、Skill の実体は `plugins/ndf/skills/` の1箇所だけです。どのランタイムへ配るかは `plugins/ndf/manifests/*-skills.txt` が決めます。

- **公開Skills**: Claude Code向け core 45個、Kiro向け core 44個、Codex向け core 43個、agy向け core 43個に分離。
- **元Skills(45個)**:
Expand Down Expand Up @@ -110,7 +110,7 @@ hook を効かせる手順と、新しい版へ入れ替える手順は

| プラグイン名 | バージョン | 説明 | 詳細 |
|------------|----------|------|------|
| **ndf** | 10.15.1 | Claude Code / Codex / Kiro CLI / agy へ 1 ディレクトリから配布する NDF プラグイン。8個の専門エージェント(Claude版)、公開Skills(Claude Code向け core 45個、Kiro向け core 44個、Codex向け core 43個、agy向け core 43個)、4ランタイム共通の作業ツリー運用フック(PreToolUse / SessionStart / userPromptSubmit / agentSpawn / PreInvocation)、Claude Stopフック、Codex/Kiro向け通知・実行補助を提供。v4.0.0 で Codex MCP サーバを廃止し、`/ndf:external-ai` skill + `corder` エージェント経由の CLI 直接実行に一本化。 | [README](./plugins/ndf/README.md) |
| **ndf** | 10.16.0 | Claude Code / Codex / Kiro CLI / agy へ 1 ディレクトリから配布する NDF プラグイン。8個の専門エージェント(Claude版)、公開Skills(Claude Code向け core 45個、Kiro向け core 44個、Codex向け core 43個、agy向け core 43個)、4ランタイム共通の作業ツリー運用フック(PreToolUse / SessionStart / userPromptSubmit / agentSpawn / PreInvocation)、Claude Stopフック、Codex/Kiro向け通知・実行補助を提供。v4.0.0 で Codex MCP サーバを廃止し、`/ndf:external-ai` skill + `corder` エージェント経由の CLI 直接実行に一本化。 | [README](./plugins/ndf/README.md) |
| **playwright-kit** | 2.0.3 | Playwright による E2E テストの計画・実装・証跡管理を提供するプラグイン。ページ役割からのテスト計画、動画 / trace 付きスクリプト実装、レポート生成と Drive 保管、playwright_kit ランタイム(init、a11y / CWV スキャン)の 4 Skill。NDF v7.0.0 で分離。 | [README](./plugins/playwright-kit/README.md) |

### 変更履歴
Expand Down
40 changes: 40 additions & 0 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@
テストは、実行した人の設定に関わらずその場で落ちる
4. テストの実行中だけ実行の要約の置き場所(`NDF_METRICS_DIR`)を一時ディレクトリへ向ける。
状態を保存するテストが、実行した人の状態ディレクトリへ要約を書かない(#662 の AC72)
5. テストの実行中だけ監視の上限を指す環境変数(接頭辞 `MONITOR_`)を外す。上限を延ばした
シェルから起動しても、既定値を前提にするテストが同じ結果になる(#678)

どの束のディレクトリを起点にしても読まれるよう、テストの基準のディレクトリ(rootdir)は
根の設定ファイル(`pytest.ini`)がリポジトリの根へ固定する。

`playwright-kit-ops` のディレクトリを起点にした実行では、このファイルは読まれない。
`pytester` はそのディレクトリの `pyproject.toml` の `addopts` が読み込む。
Expand Down Expand Up @@ -82,6 +87,41 @@ def _missing(bundles: set[str]) -> dict[str, list[str]]:
return found


# 監視の上限を指す環境変数の接頭辞(#678)。担当ごとの指定・共通の指定のどちらもこの
# 接頭辞を持つため、接頭辞だけで一致させる。名前を並べると、上限の種類が増えるたびに
# ここへ足し忘れる。
MONITOR_ENV_PREFIX = "MONITOR_"

# `pytest_configure` で外した値の控え。実行が終わったときに戻す。
_saved_monitor_env: dict[str, str] = {}


def _strip_monitor_env() -> dict[str, str]:
"""接頭辞の環境変数を外し、外した値を返す。"""
return {k: os.environ.pop(k) for k in list(os.environ) if k.startswith(MONITOR_ENV_PREFIX)}


def pytest_configure(config) -> None:
"""テストの実行中だけ、監視の上限を指す環境変数を外す(#678)。

無進捗の許容と打ち切りの上限は環境変数で延ばせる。運用で延ばしたシェルから起動すると、
表の既定値を前提にするテストが既定値ではなくその値を読み、変更の中身と関係なく落ちる。
収束ループの初期化は着手前のテストの通過を条件にするため、そこで止まる。

**収集より前に外す。** テストの本体を読み込む時点で上限を決めてしまう実装があり、
セッションの前提(fixture)では間に合わない。子プロセスは環境変数を受け継ぐため、
テストが起動する別プロセスにも同じ切り離しが効く。**個別に設定するテストは打ち消さない。**
`monkeypatch` も、別プロセスへ渡す上書きも、この後に効く。
"""
_saved_monitor_env.update(_strip_monitor_env())


def pytest_unconfigure(config) -> None:
"""実行が終わったら、外した環境変数を戻す。"""
os.environ.update(_saved_monitor_env)
_saved_monitor_env.clear()


def pytest_collection_modifyitems(config, items) -> None:
bundles = {b for item in items if (b := _bundle_of(Path(str(item.fspath)))) is not None}
missing = _missing(bundles)
Expand Down
Loading
Loading