feat: PLAN06-4 補完 + docs + CHANGELOG + container 非推奨告知#37
Conversation
PLAN06 で導入した project サブコマンド体系をシェル補完・ドキュメント・
CHANGELOG に反映し、container グループの非推奨を告知する。
- etc/devbase-completion.bash / etc/_devbase:
- project グループ補完 (up/down/ps/login/logs/scale/build/list) を追加
- プロジェクト名補完 (_devbase_project_names: $DEVBASE_ROOT/projects/ 配下を
列挙) を project up/down/ps/logs/scale とトップレベルシノニム up/down/ps/scale
に追加
- project list / top-level list の --interactive / -i 補完
- container は補完候補に残しつつ非推奨マーク (zsh description)
- docs/user/cli-reference.md:
- コマンド体系図・エイリアス・ショートカットを project 体系に更新
- 「project グループ」節を新設 (name 解決 / project list / --interactive /
login・build が name を取らない理由 / 親シェル CWD 非汚染)
- 「container グループ (非推奨)」節に置換
- docs/user/container-operations.md:
- 冒頭に project 体系への移行注記、scale/logs 例を project 形へ、
project list の横断一覧 vs project ps の単体表示の役割整理を追記
- README.md / docs/user/getting-started.md: 残存する container 直接形を project へ
- CHANGELOG.md: Unreleased に PLAN06 (Added: project 群 / Changed: container 非推奨)
- tests/cli/test_completion.py 新規 (bash 補完を source した動作検証 8件 +
zsh 静的内容/構文チェック。zsh 未インストール環境は skip)
pytest: 374 passed, 1 skipped (zsh)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1a00ca9 to
d8b520b
Compare
軽量レビュー nit 対応。bash 補完の top-level シノニム `devbase ps` は プロジェクト名のみ補完し -a/--all フラグを補完していなかった (zsh / project ps は分岐済み)。$cur が `-*` のときフラグ、それ以外は name を補完するよう project ps (cword 3) と同じ挙動に揃え、回帰テスト2件を追加した。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | codex | REQUEST_CHANGES
project list / devbase list が docs・補完・CHANGELOG に出ていますが、CLI 実装に未登録です。公開面と parser / wrapper / dispatch を揃えてください。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | gemini | APPROVE
Bash 補完におけるトップレベル ps ショートカットを project ps と対称化し、-a/--all フラグとプロジェクト名の補完を正しく実装しています。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | gemini | APPROVE
PLAN06 Task 3 のプロジェクト一覧表示およびインタラクティブ起動機能の実装を確認しました。設計・互換性・テストのいずれも適切です。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | codex | REQUEST_CHANGES
インラインの修正提案を確認してください。
- README CLI体系セクションを project 主グループ + container 非推奨注記へ更新 (cli-reference.md と整合) - bash 補完に cword>=4 分岐を追加し project ps/logs の name 後フラグ補完に対応 - _devbase_project_names を find -L ... -type d に変更し dir/dir-symlink のみ列挙 (壊れた/ファイル symlink を除外、zsh と整合) - 回帰テスト3件追加 (壊れた symlink 除外 / project ps/logs フラグ補完) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | gemini | APPROVE
PLAN06 (project サブコマンド体系への移行) の最終フェーズとして、ドキュメント・補完・テストが非常に丁寧に整備されています。
bin/devbaseとcli.pyの間でのサブコマンド定義の同期、およびbuildの特殊な扱い(shell実装への委譲)が正しく考慮されていることを確認しました。- シェル補完において、プロジェクト名の解決に
find -L(bash) や(N-/:t)(zsh) を用いることで、シンボリックリンクを含む構成でも正しく動作するよう考慮されています。 - 回帰テスト
test_completion.pyが追加されたことで、今後の修正による補完のデグレードを防げるようになっています。
全体として設計意図通りに実装されており、品質上の懸念はありません。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | codex | REQUEST_CHANGES
bash補完のプロジェクト名列挙がmacOS/BSD環境で動かない互換性問題があります。
- completion: _devbase_project_names の `xargs -r`(GNU 拡張) を排除し、
find -L ... -type d の各行を POSIX パラメータ展開 ${p##*/} で basename 化。
BSD/macOS でも候補が空にならず移植性を確保 (symlink dir 限定は維持)。
- docs: cli-reference.md のトップレベルシノニム名前解決の記述を正確化。
bin/devbase の _NAME_RESOLVABLE_SHORTCUTS に login が含まれ、login <name>
も build <name> 同様に存在性判定で名前解決されるため両方を明記。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 4 | gemini | APPROVE
PR #37 補完体系の project 移行、ドキュメント更新、およびテストの追加ありがとうございます。全体として非常に丁寧に実装されており、特に Bash 補完の回帰テストが充実している点は素晴らしいです。細かな補完挙動の改善とドキュメントの表記揺れについて数点コメントさせていただきました。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 4 | codex | COMMENT
devbase build のドキュメント上の転送先だけ、実装で固定されている shell 経路と整合させてください。
- etc/devbase-completion.bash: `list` / `project list` の `-*` ガードを外し 位置引数を取らないサブコマンドで常に --interactive 候補を出す (zsh と整合) - docs/user/cli-reference.md: Mermaid D1 ノードから login [index] / build [image] を分離し [name] を取らないことを明示 - etc/_devbase: `project ps` / `project logs` の name 補完を _arguments の positional (1:name:) に統合し、名前入力済みでも候補が出る問題を解消 - docs/user/cli-reference.md / README.md: `devbase build` が project グループ ではなく bin/devbase の shell 実装 cmd_build へ直接委譲される旨を明記 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
PLAN06 の
project体系をシェル補完・ドキュメント・CHANGELOG に反映し、containerグループの非推奨を告知する。変更点
projectグループ補完 (up/down/ps/login/logs/scale/build/list)_devbase_project_names($DEVBASE_ROOT/projects/ 列挙) をproject up/down/ps/logs/scale + トップレベルシノニム up/down/ps/scale に付与
project list/ top-levellistの--interactive/-icontainerは補完候補に残しつつ非推奨マーク体系へ。「project グループ」節新設 (name 解決 / list / --interactive / login・build が
name を取らない理由 / 親シェル CWD 非汚染) + 「container グループ (非推奨)」節。
project list(横断一覧) vsproject ps(単体) の役割整理。Test plan
up <TAB>がプロジェクト名補完