Skip to content

docs: [name] と --context を取るサブコマンドの列挙が 8 か所の文書で古く、rebuild / open が抜けている #208

Description

@takemi-ohama

何を見つけたか

[name] 引数と --context を取るサブコマンドの列挙が、文書の各所で古いままになっている。rebuild(PLAN49 以降)と open(PLAN59 以降)が足りない。

bin/devbase_PROJECT_NAME_SUBCOMMANDSup / down / ps / logs / scale / rebuild / open の 7 つを持つ。

[name] の列挙

場所 現在の記述 足りないもの
docs/user/cli-reference/02-project.md:9 up / down / ps / logs / scale rebuild / open
docs/user/cli-reference/README.md:25 mermaid の D1["up / down / ps / logs / scale [name]"] openrebuildD4 にある)
docs/user/container-operations.md:8 up / down / ps / logs / scale rebuild / open
docs/specifications/compose-profiles.md:196 up down ps logs scale rebuild open

docs/user/cli-reference/README.mdopen にも profile にも一度も触れていない(grep -c "open\|profile" が 0)。ショートカットの表にも devbase open [name] の行が無い。

docs/specifications/cli-argument-resolution.md:225 の「他のショートカット」は 7 つを正しく並べており、直す対象ではない。

--context の列挙

--context を受ける集合を argparse から数えると、project / container / ct 配下の up / down / ps / logs / login / scale / build / rebuild / open / profile up / profile down / profile list、トップレベルの up / down / ps / login / scale / rebuild / open、および env exec / env token である。

場所 足りないもの
docs/user/cli-reference/02-project.md:60 open
docs/specifications/remote-docker-context.md:6 open
docs/specifications/remote-docker-context.md:42 open / env token
docs/user/environment-variables.md:371 open

docs/user/environment-variables.md:316DEVBASE_DOCKER_CONTEXT の行)は open を含んでおり、直す対象ではない。

補完は正しい

etc/devbase-completion.bashetc/_devbase はどちらも rebuildopen を含み、open には --open-index / --context も出す。補完側に漏れは無い。

profile の扱い

_add_profile_subparser(pj_sub, with_name=True) のため、profile up / profile down / profile list も argparse 上は [name] を持つ。これらが _PROJECT_NAME_SUBCOMMANDS に入らないのは、profile の 3 番目が up / down / list になり wrapper では位置で解決できないためで(lib/devbase/cli.py:346-349)、Python 側の _dispatch_lifecycle が解決する。文書を直すときは「profile[name] を取るが、解決の経路が違う」を 1 行添える。

なぜ PLAN61 の範囲外か

PLAN61(#146 / #142 / #196 / #200)は名前の形・衝突・ヘルプ・container グループの扱いを直すもので、この列挙はそれ以前からの記述漏れ。PLAN61 の PR(#207)は docs/user/cli-reference/02-project.md を 25 行足して直しているが(git show 384f6d7 --stat)、9 行目の列挙は hunk の外だった。

修正レイヤー

現象レイヤー: 上の表の文書 8 か所。

修正レイヤー: [name]--context を取る集合の持ち方。同じ集合が bin/devbase_PROJECT_NAME_SUBCOMMANDSlib/devbase/cli.py の引数の付与、文書 8 か所、補完 2 ファイルに手で複製されており、同期はコメントの申し合わせ(bin/devbase:449-457lib/devbase/cli.py:32-36:320-326)でしか担保されていない。PLAN49(rebuild)と PLAN59(open)の 2 回とも、コードと補完は更新され文書だけが取り残された。

_PROJECT_NAME_SUBCOMMANDS と argparse の一致は tests/cli/test_project_name_resolution.py が固定している。文書との一致を固定するテストが無いことが、同じ漏れが 2 度起きた理由である。

採る手: 統合(consolidate_duplication)。docs/specifications/cli-argument-resolution.md を列挙の正本とし、他の文書はそこへのリンクにする。そのうえで、argparse が返す集合と正本の列挙が一致することをテストで固定する。

直し方

まず文書 8 か所へ不足分を足す(light)。確かめ方は、argparse を走査して name positional と --context を持つ parser を出し、文書の列挙と突き合わせる。

恒久策(正本の一元化と一致テスト)は、この issue の範囲を超えるため着手の時点で分ける。

決めること

  • --context の列挙 4 か所をこの issue に含めるか、別の issue に分けるか。根っこは open が列挙に入っていないことで [name] 側と同じだが、触る文書が 2 ファイル増える

見つけた場所: PLAN61 の実装

進行

モード: standard / 作業ツリー: .worktrees/feature/v3.7.0-docs-enumeration

  • 要求と受け入れ条件 — 2026-09-22 05:41
  • 作業場所の用意 — 2026-09-22 05:42
  • 設計
  • 素材の収集と出典の確定
  • ドキュメント再構成
  • ドキュメントレビュー
  • 計画
  • 実装 — 2026-09-22 05:47
  • 構造改善
  • 実装レビュー — 2026-09-22 05:51
  • 完了判定 — 2026-09-22 06:08
  • Pull Request — 2026-09-22 05:44
  • 確定仕様化 — 2026-09-23 05:26
  • 後片付け — 2026-09-23 05:36
  • 配布 — 2026-09-23 06:02
  • 体裁レビュー
  • リリース後テスト — 2026-09-23 07:53
  • 振り返り — 2026-09-23 08:09

振り返り: #212 (comment)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions