Skip to content

feat: runtime-split-container-smoke runtime smoke#53

Merged
takemi-ohama merged 2 commits into
release/runtime-plugin-splitfrom
feature/runtime-split-container-smoke
Jul 7, 2026
Merged

feat: runtime-split-container-smoke runtime smoke#53
takemi-ohama merged 2 commits into
release/runtime-plugin-splitfrom
feature/runtime-split-container-smoke

Conversation

@takemi-ohama

@takemi-ohama takemi-ohama commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • plan: issues/agent-runtime-plugin-split.md
  • release PR: release: runtime plugin split #45
  • 担当範囲: Task 8 runtime container smoke test
  • scripts/runtime-smoke-test.sh を追加し、Claude / Codex / Kiro を Docker コンテナ内で実 install smoke できるようにしました
  • runtime 別 Containerfile / adapter / assertion / fixture を追加し、ndfmcp-bigquery 相当の install、Skill / MCP / hook / agents / Kiro agent config を検証します
  • host HOME / credential directory を mount せず、DooD 環境でも動くよう repo は除外付き tar でコンテナへコピーします
  • --with-secrets=off|auto|required、allowlist file secret、--keep-container 併用拒否、protected authenticated smoke workflow を追加しました
  • Kiro NDF / MCP installer に --project を追加し、空 project へ install できるようにしました
  • README / docs / issue の検証手順と完了条件を更新しました

Test plan

  • bash -n scripts/runtime-smoke-test.sh tests/runtime-smoke/adapters/*.sh tests/runtime-smoke/assertions/*.sh tests/runtime-smoke/lib/common.sh plugins/ndf-kiro/install.sh scripts/build-runtime-plugins.sh scripts/validate-runtime-plugins.sh
  • bash scripts/build-runtime-plugins.sh --check
  • bash scripts/validate-runtime-plugins.sh
  • bash scripts/runtime-smoke-test.sh --runtime claude --with-secrets=off
  • bash scripts/runtime-smoke-test.sh --runtime codex --with-secrets=off
  • bash scripts/runtime-smoke-test.sh --runtime kiro --with-secrets=off
  • bash scripts/runtime-smoke-test.sh --with-secrets=off
  • --with-secrets=required が secret 不足時に失敗することを確認
  • BigQuery file secret のみで --with-secrets=required が成功することを確認
  • --with-secrets=auto --keep-container が拒否されることを確認
  • rg "plugins/ndf($|[^-])|plugins/ndf/" README.md AGENTS.md CLAUDE.md KIRO.md docs plugins scripts .claude-plugin .agents が0件
  • rg "plugins/mcp-[a-z]" README.md AGENTS.md CLAUDE.md KIRO.md docs plugins scripts .claude-plugin .agents が0件
  • git diff --check
  • commit/push hook の validate-runtime-plugins.sh が成功

@takemi-ohama takemi-ohama mentioned this pull request Jul 5, 2026
15 tasks
@takemi-ohama takemi-ohama force-pushed the feature/runtime-split-container-smoke branch from 33d6a76 to 51b83bf Compare July 7, 2026 06:17

@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 | REQUEST_CHANGES(intent)

サマリー

  • scripts/runtime-smoke-test.sh で runtime ごとの Docker smoke を構築し、ホスト汚染と secret の扱いを厳密に抑えている点が良いです。
  • CI workflow も PR セーフな --with-secrets=off と protected な認証付きに分かれており、docs / issues のチェックリストも最新化されています。

検証

  • bash scripts/runtime-smoke-test.sh --with-secrets=off

指摘事項

  1. Major: .github/workflows/runtime-plugin-authenticated-smoke.yml の BigQuery 処理が仕様未達です。BIGQUERY_KEY_FILE_JSON をテンポラリに書き出していますが、BIGQUERY_KEY_FILE 環境変数を設定していないためコンテナ内 inject_secrets がパス再設定を行えず、assert-authenticated-smoke.shrun_bigquery_secret_check() が早期 return して BigQuery credential の検証がスキップされます。ANTHROPIC_API_KEY 等が存在すると auth_ran が true になりテスト自体は pass しますが、BigQuery secret の有無を確認できず、--with-secrets=required で BigQuery のみを期待した場合に失敗します。JSON 展開後のパスを BIGQUERY_KEY_FILE として export した上で smoke スクリプトを実行するよう修正をお願いします。

@takemi-ohama takemi-ohama force-pushed the feature/runtime-split-container-smoke branch from 51b83bf to 60ae7ac Compare July 7, 2026 06:23

@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 | APPROVE(intent)

  • .github/workflows/runtime-plugin-authenticated-smoke.yml で BIGQUERY_KEY_FILE_JSON を一時ファイルに書き出してから BIGQUERY_KEY_FILE を export するようになり、ラッパースクリプトに正しいパスが渡ることを確認しました。
  • scripts/runtime-smoke-test.sh の file secret 処理がキーを正規化しつつ /tmp/runtime-secrets/ 以下にコピーした後に raw-envexport BIGQUERY_KEY_FILE=... を追記するようになったので、コンテナ内の assert-authenticated-smoke.sh で検証している要件を満たしています。
  • ローカルでは bash scripts/runtime-smoke-test.sh --runtime codex --with-secrets=off を実行し、ベースのスモークが通ることを確認しました。ダミーの認証情報を渡した --with-secrets=auto は Codex CLI の実 API キーが無い環境のため停止しましたが、今回の修正には影響していません。

前ラウンドの Codex 指摘は解消済みと判断します。

@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 | gemini | APPROVE(intent)

サマリー

PR #53 の cross-review round 2 を実施しました。
runtime container smoke test の実装、Docker によるホスト汚染防止とシークレット分離の仕組み、Claude / Codex / Kiro 各ランタイムの実 install 検証、Kiro の --project インストーラーサポート、CI ワークフローの安全性、および Issue (issues/runtime-plugin-container-test-plan.md) の完了条件との整合性を確認しました。

また、Codex の round 1 指摘事項であった .github/workflows/runtime-plugin-authenticated-smoke.yml での BIGQUERY_KEY_FILE_JSON 展開後の BIGQUERY_KEY_FILE 環境変数の export 漏れについても、正しく修正されていることを確認しました。

検証

ローカルで以下のコマンドを実行し、すべてのテストがパスすることを確認しました。

bash scripts/runtime-smoke-test.sh --with-secrets=off

出力:

==> runtime smoke: claude
==> runtime smoke: codex
==> runtime smoke: kiro
runtime smoke tests passed: claude codex kiro

評価

  • Task 8 runtime container smoke test: 共通 harness と各アダプタにより適切に実装されています。
  • Docker isolation: tmpfs を用いたシークレット管理、read-only mount によるリポジトリ保護など、厳密な隔離が実現されています。
  • CI workflow 安全性: PR 用 workflow はシークレットなし (--with-secrets=off)、認証用は workflow_dispatch / protected environment と適切に分かれています。
  • Codex round 1 指摘対応: BIGQUERY_KEY_FILE が正しく export され、コンテナ内に注入されるよう修正されています。

変更は要件を完全に満たしており、問題ありません。マージ可能です。

@takemi-ohama takemi-ohama marked this pull request as ready for review July 7, 2026 06:30
@takemi-ohama takemi-ohama merged commit 7086968 into release/runtime-plugin-split Jul 7, 2026
6 checks passed
@takemi-ohama takemi-ohama deleted the feature/runtime-split-container-smoke branch July 7, 2026 19:10
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