Repository navigation
devbase: env sync の AWS の経路・env list・env keygen など 7 つの関数が長く、起動の後の処理の段は引数が 7 個あり、sync の関数の受け方が 1 か所だけ違い、--group の検証とテストの補助が 2 か所に重なる → 13 件すべてを振る舞いを変えずに分け、どの関数も 50 行以下・認知的複雑度 15 以下に収まり、重なりは 1 か所にまとまる(#444) - #445
Conversation
PR #442 の構造改善で見送った 13 件を R1〜R13 に数え直し、兆候ごとに 消えたと見なす基準(行数・認知的複雑度・C901・引数の数・定義の場所)を決めた。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR #442 の構造改善で見送った R1〜R13 をすべて直す設計にした。 _aws_sync_plan は改修計画 I-001 の分け方で _SyncContext を受け、 --group の検証は check_group_option にまとめて CLI と TUI の文を保ち、 _run_post_start は起動した構成を _ComposeDeployment にまとめて引数を 4 個にする。 偽の OpenBao の do_POST は経路ごとの関数に分ける(要求の未決への答え)。 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
ドメインモデル節と用語集の照合範囲で、指定の指摘基準に該当する修正指摘はありません。判断の根拠: Vision・Value 2・Value 3(既存の振る舞い、設定の保持、グループの境界を維持する条件を現行実装と照合)。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | kiro | APPROVE
設計 PR(ドメインモデルの節と用語集の差分)をレビューした。コンテキストマップ・集約の持ち主・不変条件・ドメインイベント・用語の整合を確認したが、critical / major の指摘は見つからなかった。確認済み: (1) 集約 5 つはそれぞれ持ち主が 1 つに決まる。(2) ドメインイベント E1〜E5 は要求の番号を引き継ぎ、各イベントに受け手がある。(3) 用語表の 3 語(起動の後の処理の段・対象のグループ・同期済みハッシュの控え)は docs/glossary/glossary.json の既存エントリと意味まで一致し、「用語集への反映: 無し」の宣言は正しい(glossary.json は本 PR で変更されていない)。(4) R2 は secret と TUI の 2 コンテキストにまたがるが、決定 4 で TUI→commands/env.py の取り込みが既存である旨が宣言され、新しい関係は結ばれない。(5) I2 の CLI/TUI のメッセージ差(CLI は「グループ名:」接頭、TUI は validate_account_group で接頭なし)と、storage_group が BackendConfigError のみを送るという前提は、実コード(lib/devbase/commands/env.py, lib/devbase/tui/actions_env_keys.py, lib/devbase/env/backend_config.py)と一致する。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | claude | APPROVE
設計(R1〜R13 の分け方・決定 1〜11・不変条件 I1〜I10)を現行コード(commands/env.py の _aws_sync_plan・_target_group・cmd_env_list・cmd_env_keygen、tui/actions_env_keys.py の group_attrs、volume/compose.py の _mask_secret_environment、commands/container.py の _run_post_start と 3 つの呼び出し元、snapshot/manager.py の restore、tests/conftest.py の do_POST、tests/volume の重複した補助)と照合した。critical / major に当たる食い違いは無い。根拠: Vision・Value 3。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | kiro | APPROVE
設計 PR(issue-444 の要求と設計)を kiro の観点でレビューした。設計の技術的に効く主張を実装(commit 87037c0)と突き合わせ、R1(_aws_sync_plan / _sync_credential_sources の受け方)・R2(_target_group / group_attrs / storage_group の例外とメッセージ接頭)・R3/R4(_mask_secret_environment / _env_shape の 4 形)・R5(_run_post_start と 3 つの呼び出し元の引数の束)・R13(do_POST のログイン / KV 書き込みの経路)を確認した。いずれも実コードと一致し、13 件はコンテキストの中で閉じ、不変条件 I1〜I9 は既存テストに固定され、I10 は測定で確かめる形になっている。critical / major の指摘は見つからなかった。
🔧 /ndf:fix サマリ | commit (なし)対応件数: critical=0 / major=0 / minor=0(合計 0 件) |
#444 の要求と受け入れ条件の写し、およびスプリント m10b に向けた設計文書を
issues/に追加しました。文書だけの変更で、コードは変えていません。利用者向けの変化
移行の手順
変更の要点
issues/issue-444-requirements.mdを追加しました(185 行)。PR #442 の構造改善で時間の枠を超えて見送った提案の残り 13 件(_aws_sync_plan の _SyncContext 化・env list / keygen の長い関数・テストの補助の重複) #444 の要求と受け入れ条件の写しです。issues/issue-444-design.mdを追加しました(490 行)。PR #442 の構造改善で時間の枠を超えて見送った提案の残り 13 件(_aws_sync_plan の _SyncContext 化・env list / keygen の長い関数・テストの補助の重複) #444 の設計です。テスト
supervise.py の run のステップの結果は次のとおりです。
issues/issue-444-requirements.md は #444 の本文と一致するrequirements-check の 1 回目の exit 2 は、要求の写し(
issues/issue-444-requirements.md)を書く前に打ったためです。写しを書いた後、2026-10-08 に設計ブランチの先端で打ち直して一致を確かめました(exit 0)。モード: standard / 通した工程: 設計 → 要求と受け入れ条件 → ドキュメントレビュー
🤖 Generated with Claude Code
決めたこと
issues/issue-444-design.md_aws_sync_planを_SyncContextに揃えるため、改修計画の I-001 の 4 段の分け方をそのまま採る--groupの検証を 1 か所にするため、check_group_optionにaccount_ruleの引数を持たせて TUI の前段も中へ入れるenvironmentの形ごとの分岐を消すため、形をキーにした対応表と形ごとの関数を使う_run_post_startの引数を 4 個にするため、起動した構成の 4 つの値を凍結した_ComposeDeploymentにまとめるenv listの重なりを消すため、節の 1 つ分を出す関数を作り、チーム共通とプロジェクトの節の選び方を別の関数に分けるenv keygenの理由の注記は抜き出した関数へ一緒に移すtests/volume/の補助を 1 か所にするため、tests/volume/conftest.pyに_を外した名前で置いて取り込むdo_POSTは、経路ごとの関数に分ける(経路をキーにした対応表にしない)