Skip to content

devbase build: 開発サービスより前に別のサービスの build: がある・build: ./dev と書いたプロジェクトで、通常のビルドが開発サービスと違う Dockerfile から継承の連なりを決める → 開発サービスの build から Dockerfile を決め、--expires の判定と同じ場所を読む(#415) - #426

Merged
takemi-ohama merged 4 commits into
mainfrom
design/issue-415
Oct 5, 2026

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

#415 の要求と受け入れ条件、設計を文書にまとめました(スプリント m7e)。あわせて用語集に語を追加しました。コードの変更は含みません。

利用者向けの変化

  • 無し

変更の要点

テスト

supervise.py の run のステップの結果です。

ステップ exit 結果
glossary 0 ok(宣言と用語集が揃っている)
requirements-check 2 stopped(issues/issue-415-requirements.md を読めない: [Errno 2] No such file or ...)

requirements-check は止まっており、通っていません。このファイルは本 PR に含まれていますが、検査の時点では読めていません。マージの前に原因を確認し、再実行が必要です。

モード: standard / 通した工程: 設計 → 要求と受け入れ条件 → ドキュメントレビュー

🤖 Generated with Claude Code

決めたこと

issues/issue-415-design.md

  • 決定 1: 2 つの経路が同じパスを読むよう、Dockerfile の場所の決め方を project_dockerfile_path 1 つにし、通常のビルドも --expires の判定もこれを呼ぶ
  • 決定 2: docker compose build と同じ構成を読むため、通常のビルドは Python の入口を 1 回起動して docker compose config の結果から場所を決める
  • 決定 3: 公開のコマンドと引数を増やさないため、入口を CLI のサブコマンドにせず python -m devbase.commands.project_dockerfile にする
  • 決定 4: compose の無い起動と既存のハーネスを変えないため、compose.yml が無ければ入口を起動せず、カレントの Dockerfile を読む
  • 決定 5: 構成を読めない理由を利用者へ届けるため、compose の標準エラーをそのまま出し、bin/devbase は ✗ Failed to read the compose configuration; no image was built を出して終了コード 1 で止まる
  • 決定 6: docker compose build が建てるサービスと同じサービスを見るため、開発サービス名は bin/devbase が --service で渡す

takemi-ohama and others added 2 commits October 5, 2026 13:04
通常のビルドがプロジェクトの Dockerfile を開発サービスの build から決め、
--expires の判定と同じ場所を読むための要求。用語集に
「プロジェクトの Dockerfile」「Dockerfile の場所の決め方」を足す。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
通常のビルドが、Python の入口(python -m devbase.commands.project_dockerfile)を
1 回起動して docker compose config から開発サービスの Dockerfile を決める設計。
決め方は utils/dockerfile.py の project_dockerfile_path 1 つにし、--expires の判定と
共有する。compose.yml が無ければ今のまま Dockerfile を読み、構成を読めなければ
compose の理由を出して何も建てずに止まる。

Co-Authored-By: Claude Opus 5.5 <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 | codex | APPROVE

ドメインモデル節と用語集の差分に、指定基準に該当する修正指摘はありません(判断根拠: Mission・Vision、目の前の変更に判断を限る原則)。

@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

設計文書のドメインモデルの節(コンテキスト・集約・不変条件・ドメインイベント・用語)と用語集の差分を見た。コンテキストマップは compose→image-lineage(順応者)と cli→image-lineage(順応者)の関係を宣言しており、集約は 1 つ(プロジェクトの Dockerfile)で持ち主も 1 つ(project_dockerfile_path)に決まっている。不変条件 I9〜I13 は 1 行 1 条件で矛盾しない。ドメインイベント E1〜E6 は要求文書の番号・名前・順序をそのまま引き継ぎ、各イベントに受け手がある。用語の表の 2 語(プロジェクトの Dockerfile・Dockerfile の場所の決め方)は用語集の追加差分と意味が一致する。この節の範囲で critical / major の指摘は無い。

@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 | claude | REQUEST_CHANGES

テスト設計のハーネスは偽の uv で Python の側をまるごと差し替えるため、場所を出す入口(project_dockerfile_path を呼ぶ側)が通常のビルドの経路のテストで一度も動かない。受け入れ条件 1〜5・8 と I9 の「どう壊したら落ちるべきか」が成り立たない。入口を本物で動かし、偽の docker が構成の JSON を返すハーネスを設計に書く必要がある。

Comment thread issues/issue-415-design.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 | kiro | APPROVE

設計・要求の全体(決定の記録 1〜6・入出力の契約・テスト設計・不変条件 I9〜I13)を参照コード(_get_base_image_ref・_compose_config_services・_apply_context・_inject_secrets・get_dev_service_name・bin/devbase の cmd_build)と確定仕様 base-image-chain-build.md・用語集に突き合わせた。受け入れ条件 1〜10 はいずれもテスト設計の行と不変条件に対応し、外部ツールの挙動の断定(docker compose config の正規化・argparse の SUPPRESS)は日付とコマンドつきの実測が添えてある。2 つの経路が同じパスを決める契約(I9・受け入れ条件 4)で唯一ずれうる DEV_SERVICE_NAME が空の場合は決定 6 で明示して #425 へ切り出しており、隠れた食い違いではない。critical / major の指摘は無い。

@takemi-ohama

Copy link
Copy Markdown
Contributor Author

🔧 /ndf:fix サマリ | commit 03935b3

対応件数: critical=0 / major=0 / minor=0(合計 0 件)
決着: 1 件 / 見送り: 0 件 / 却下: 0 件
CI: NONE

@takemi-ohama takemi-ohama added the design-approved ドキュメントレビューを人間が承認した label Oct 5, 2026
# Conflicts:
#	docs/glossary/glossary.json
@takemi-ohama
takemi-ohama marked this pull request as ready for review October 5, 2026 19:31
@takemi-ohama
takemi-ohama merged commit 96dc387 into main Oct 5, 2026
45 of 60 checks passed
@takemi-ohama takemi-ohama mentioned this pull request Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design-approved ドキュメントレビューを人間が承認した

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant