Skip to content

docs: PLAN60 / PLAN61 / PLAN62 を確定仕様へ取り込む (#141, #146, #142, #196, #200, #185) - #210

Merged
takemi-ohama merged 3 commits into
mainfrom
docs/plan-to-spec-v360
Sep 19, 2026
Merged

takemi-ohama merged 3 commits into
mainfrom
docs/plan-to-spec-v360

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

Summary

マイルストーン v3.6.0 でマージした 3 つの plan を、実装と一致する確定仕様へ書き直す。

Test plan

  • 仕様の記述を実装(bin/devbase / lib/devbase/utils/names.py / lib/devbase/env/runtime.py / lib/devbase/commands/env.py)と照合した
  • cross-review(この PR で実施)

🤖 Generated with Claude Code

- 位置引数の解決(PLAN61 / #146 #142 #196 #200)を
  docs/specifications/cli-argument-resolution.md として新設。名前の形、
  トップレベル build の解釈の順、build --help、container の除外、
  Python 側 3 入口の検証、失敗の形を実装と照合して書いた
- 機密の置き場の DEVBASE_ACCOUNT_GROUP(PLAN62 / #185)を
  docs/specifications/secret-backend.md へ取り込み、「注入の対象から外すかは
  #185 で扱う」「範囲外として起票した課題」といった実装前の記述を、
  runtime.resolve が合成から外して警告すること・env set が拒むことへ書き替えた
- CI で pytest を回すこと(PLAN60 / #141)は仕様書にせず、
  docs/developer/contributing.md の「テスト」に CI が実行する内容を足した
- 取り込んだ plan と設計文書を issues/old/ へ移した

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | kiro | APPROVE

実装との照合レビュー。指摘なし。

  • cli-argument-resolution.md: bin/devbase_SINGLE_SEGMENT_NAME_REmaybe_cd_project_PROJECT_NAME_SUBCOMMANDS(up down ps logs scale rebuild open)・_NAME_RESOLVABLE_SHORTCUTS(up down ps scale login build rebuild open)・build_usagelib/devbase/utils/names.pycli._named_lifecycle_projectcontainer._resolve_project_name / _build_single_image(エラー文言含む) と一致。build の衝突通知の文言も実装と一致。
  • secret-backend.md: runtime._without_account_group / _warned_account_group_refs / _account_group_delete_hint と、env.cmd_env_setDEVBASE_ACCOUNT_GROUP 拒否(置き場を開く前・前後空白 strip 後に比較)の挙動・文言と一致。
  • contributing.md: .github/workflows/ci.yml の compileall(3.10/3.11/3.12)・ruff check --select=E9,F63,F7,F82 libbin/+install.sh の ShellCheck・uv sync --locked 後の pytest(3.10/3.13) と一致。
  • issues/issues/old/ のリネーム: 移動した PLAN60/61/62 への外部参照(コード/CI/docs)なし。相互リンクは相対名で同ディレクトリ内に閉じており破綻なし。editor-open.md から新規仕様への相対リンクも解決可能。

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 2 | codex | REQUEST_CHANGES

修正が必要な記述を1件指摘します。

Comment thread docs/specifications/cli-argument-resolution.md Outdated
名前の解決は現在地を見ず、$DEVBASE_ROOT/projects/<値> の実在だけを見る。
「対象プロジェクトのディレクトリの中で実行する」では回避できないため、
名前解決を通らない `devbase project login <index>` と、名前を明示する
`devbase project scale <name> <N>` へ置き換える。

docs/user/cli-reference/02-project.md にも同じ誤りがあったため揃える。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@takemi-ohama

Copy link
Copy Markdown
Contributor Author

🔧 /ndf:fix サマリ

対応件数: critical=0 / major=0 / minor=1 (合計 1 件)
deferred: 0 件 / rejected: 0 件
commit: daea93e
CI: SUCCESS(push 前スナップショット。Pytest 3.10/3.13・syntax check 3.10/3.11/3.12・Ruff・ShellCheck すべて pass)

詳細

  • [minor / 正確性] docs/specifications/cli-argument-resolution.md:243(codex round 2) — 対応・resolve 済み
    • 「残る衝突」の回避手順が「対象プロジェクトのディレクトリの中で実行する」となっていたが、maybe_cd_project(bin/devbase:349-353)は $DEVBASE_ROOT/projects/<値> の実在だけを見るため現在地に依らず、回避にならない。
    • devbase project login <index>project login[name] を取らず _PROJECT_NAME_SUBCOMMANDS の外)と devbase project scale <name> <N>(名前が取り除かれ残る値が new_scale)へ置き換えた。
    • 同じ誤りがあった docs/user/cli-reference/02-project.md:40-43 も合わせて修正。
    • 検証: tests/cli/test_project_name_resolution.py の _run_wrapper と同じハーネスで、projects/2projects/web を持つ一時 root を作り projects/web から実行して cd 先と Python へ渡る引数を確認した。

残る未解決スレッド

0 件。

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 3 | codex | REQUEST_CHANGES

仕様と実装の不一致について、文書の修正を 1 件指摘します。

Comment thread docs/specifications/cli-argument-resolution.md Outdated
`projects/` の外へ cd せず env も読まない、という断定を、位置引数に `..` や `/`
を含めて `projects/<name>` の外を指すことを拒む範囲へ限定する。

`projects/<name>` はプラグインの同期が張るシンボリックリンクであることが多く
(`ls -l $DEVBASE_ROOT/projects` で確認: adminer → ../repos/github.com--devbasex--
devbase-samples/adminer/projects/adminer など)、`maybe_cd_project` の `cd` と
Python の `os.chdir` はリンクを辿って実体へ移動し、そこの `env` を読む。これは
登録済みプロジェクトを扱うための意図した動きで、この計画は変えていない。その旨
を「リンクの先は対象外」として仕様に明記した。

docs/user/cli-reference/02-project.md の同じ断定も合わせて正す。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@takemi-ohama

Copy link
Copy Markdown
Contributor Author

🔧 /ndf:fix サマリ(cross-review 最終スイープ)

対応件数: critical=0 / major=0 / minor=1 (合計 1 件)
deferred: 0 件 / rejected: 0 件
commit: 6ac68b0
CI: 現時点のスナップショットで FAILURE なし(syntax check 3.10/3.11/3.12・Ruff・ShellCheck が pass、Pytest 3.10/3.13 は pending。完了待ちはしない)

詳細

  • [minor / 正確性] docs/specifications/cli-argument-resolution.md:232(codex round 3) — 対応・resolve 済み
    • projects/ の外のディレクトリへ cd せず、そこの env も読まない」という断定が、実装にない隔離保証と読めていた。
    • 事実確認: ls -l $DEVBASE_ROOT/projects の項目は大半がプラグインの同期が張るシンボリックリンクで、実体は .gitignore:12 で除外された repos/ 配下にある(例: adminer -> ../repos/github.com--devbasex--devbase-samples/adminer/projects/adminer)。maybe_cd_projectcd "$target"(bin/devbase:349-353)も Python 側の os.chdircontainer._resolve_project_name)もリンクを辿るため、実体のディレクトリへ移動してそこの envsource する。
    • 保証を「位置引数に ../ を混ぜて $DEVBASE_ROOT/projects/<name> の外を指すこと(パストラバーサル)を拒む」範囲へ限定し、「リンクの先は対象外」の節を追加して、登録済みリンクの実体へ移動するのは意図した動きでこの計画は変えていないことを明記した。
    • 同じ断定があった docs/user/cli-reference/02-project.md:24 も合わせて修正。
    • 対象外と判断したもの: 同ファイル「テスト観点」の記述は「形に合わない名前で」と限定済み。docs/specifications/secret-backend.md:524 は OpenBao の KV パスについての記述でファイルシステムの symlink とは無関係。issues/old/PLAN61_* は完了した計画の記録のため変更しない。

検証

Markdown のみの変更で、リポジトリの検証(.github/workflows/ci.yml の compileall / ruff check lib / ShellCheck (bin/ + install.sh) / uv run pytest tests/pyproject.toml の pytest 設定、Makefilepackage.json の有無)を確認したが、docs/**.md に掛かるものは無いため実行していない。

残る未解決スレッド

0 件。

@takemi-ohama
takemi-ohama merged commit 3f54155 into main Sep 19, 2026
7 checks passed
@takemi-ohama takemi-ohama mentioned this pull request Sep 19, 2026
3 tasks
@takemi-ohama
takemi-ohama deleted the docs/plan-to-spec-v360 branch September 22, 2026 20:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant