docs(PLAN61): bin/devbase の位置引数の解決を名前の形・衝突・ヘルプ・グループで正す要求仕様と設計 (#146, #142, #196, #200) - #204
Conversation
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | kiro | REQUEST_CHANGES
設計・要求は概ねコードの現状と整合しており、参照している関数・テスト・ドキュメントパスも実在を確認できた。以下 2 件、要求仕様と設計の間の食い違いを直すこと(いずれも実装者を迷わせる整合性の問題)。詳細はインライン。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | agy | REQUEST_CHANGES
全体として各 issue の要件と既存実装の制約(bash 3.2、二重管理、引数位置)が精緻に考慮されていますが、決定 9 で採択された --project-no-cache が受け入れ条件 10 およびテスト設計から欠落している点、および決定 8 の -h の扱いの明確化について修正を提案します。
🔧 /ndf:fix サマリ(round 1)対応件数: critical=0 / major=3 / minor=2(合計 5 thread、論点 3 件) 詳細
|
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | codex | REQUEST_CHANGES
ヘルプの副作用と context 値の受け渡しについて、契約を満たす変更範囲・検証方法を設計へ反映してください。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | kiro | APPROVE
設計・要求とも実装(bin/devbase の name 解決 / build) 分岐 / _build_single_image / _resolve_project_name / _named_lifecycle_project)の現状と一致しており、決定の記録の主張も裏付けを確認できた(_IMAGE_NAME_RE と新パターンの同一性、snapshot/manager.py の _VALID_NAME_RE の文字集合一致、_NAME_RESOLVABLE_SHORTCUTS に open を含むこと、scale の [name]+new_scale 順による終了コードを検証)。修正を要する不整合・誤りは見つからなかった。
…て正す (#204) - 決定 7 と入出力の契約: 読まないのは切り替え先プロジェクトの env。起動時の $DEVBASE_ROOT/env と実行時ディレクトリの env は全コマンド共通で読む - 決定 8: --context=--help / -h は使い方にせず下流の argparse の usage エラー (終了コード 2)になる。- 始まりの context 名は受け付けない Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
🔧 /ndf:fix サマリ(cross-review 最終スイープ)対応件数: critical=0 / major=1 / minor=1(合計 2 件) 詳細
open review thread: 0 |
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | codex | REQUEST_CHANGES
ヘルプ時の対象 env 非読み込みを検証するテスト設計の修正が 1 件あります。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
🔧 /ndf:fix サマリ対応件数: critical=0 / major=0 / minor=1 (合計 1 件) 詳細
|
Summary
bin/devbaseの name 解決とbuild)の分岐にかかる 4 件(#146 名前がprojects/の外へ出る / #142build <image>がプロジェクト名に吸われる / #196build --helpがビルドを始める / #200container <sub> <name>が parser を迂回する)を 1 本で直す設計。standard。この PR は設計だけを載せる(ドキュメントレビュー)。実装は承認・マージの後に別 PR で行う決めたこと
issues/PLAN61_name-resolution-design.md[A-Za-z0-9][A-Za-z0-9._-]*とし、合わない値は名前として扱わずに素通しするutils/names.pyの 1 関数に置き、_build_single_imageも同じ関数を使うLC_ALL=Cで行うbuild <x>でcontainers/<x>とprojects/<x>が両方あれば、イメージとしてビルドして知らせるcontainers/<x>の実在で分け、maybe_cd_projectの前に置くbuildの-h/--helpは name 解決より前に判定し、bin/devbaseが使い方を出す-h/--helpは引数のどこにあっても使い方を優先し、--context=-h/--context=--helpだけは使い方にしない--project-no-cacheを載せるcontainer/ctを name 解決の分岐から外すbin/devbaseを tmp へ複製して実行し、uvだけをPATHで差し替えるTest plan
projects/の 38 件がすべて[A-Za-z0-9][A-Za-z0-9._-]*に収まる(ls projects/)、macOS/bin/bash3.2.57 でlocal LC_ALL=Cの下の[[ =~ ]]の判定🤖 Generated with Claude Code