
エージェント型Code Review — 2026年 第25週 ウェブ開発
Cross-cutting frontend topics, tooling, and DX Compiled for immediate developer deployment.


AI AgentはUserではない:AI Agent Identity Modelを構築

AI向けWeb改善は全Userに利益をもたらすべき

Install Script BlockingはSilver Bulletではない
preinstall、install、postinstall、さらにbinding.gyp を持つパッケージの暗黙的なnode-gyp rebuildまで、ライフサイクルスクリプトの自動実行をデフォルトで無効化します。これはShai-Hulud(500以上のパッケージ、post-install経由の認証情報窃取)、Miasma(binding.gyp をトリガーに使用)、週間ダウンロード数26億件に影響したchalk/debugの侵害事件などで悪用されたベクターを遮断します。しかし、インストール時のトリガーを無効化しても実行時の攻撃は防げません。侵害されたパッケージは既存のindex.jsエントリーポイントにIIFEを追加し、アプリケーションがimportした瞬間にchild_processの生成・環境変数の収集・リモートの第2ステージペイロードのフェッチなど任意のコードを実行できます。Node.jsの権限モデル(--permission、--allow-fs-read、--allow-net、--allow-child-process)は実行中コードの動作を制限しますが、明示的にセキュリティ境界ではなく、--allow-netによるネットワーク権限はNode.js 25でようやく追加され、実際のCVE(CVE-2026-21636、CVE-2025-55130)も発生しています。OSレベルのサンドボックスとCI egressコントロール用のStepSecurity Harden-Runnerを多層的に適用することで、npm v12単独では提供できない多層防御が実現できます。
eveを発表:VercelのOpen Source Agent Framework
agent.ts、システムプロンプトとなるinstructions.md、TypeScriptのツールファイル、Markdownのスキルファイル、そしてSlack・Discord・カスタムチャンネル向けのチャンネルアダプターで構成されます。すべての会話はVercelのWorkflow SDK上でチェックポイント付きのdurableワークフローとして実行され、エージェントが生成したコードはアプリケーションランタイムとは分離された隔離サンドボックスで動作します。Vercelは月3万件以上の質問を処理するデータ分析エージェント、チケットの92%を自律的に解決するサポートエージェント、運営コストの32倍のリターンを生み出すSDRエージェントなど、100以上のeveベースの本番エージェントを社内で運用しています。
欧州最速の鉄道予約Web Siteは?
P2位にもかかわらず、過剰なReactの再レンダリングでINPが603msに達し、フィンランドのvr.fiは長いタスクとGoogle Tag Managerの遅延によりINP 534ms、CLS 0.53という低いスコアを記録しました。
New Bottleneck
エージェント型Code Review
AIエージェントがコードを4倍生成しても実際の提供価値は約12%しか増加しない中、コードレビューはソフトウェアエンジニアリングで最も高いレバレッジを持つスキルになっています。Faros AIが2万2千人の開発者を対象に収集したデータでは、コードchurnが861%増、欠陥率が9%から54%に上昇、レビューなしでマージされたPRも31%増加しています。適切な対応はblast radiusに応じた階層的レビューであり、Greptile(正確性)とSentry Seer(本番障害の深刻度)のように異なる特性を持つ2つのAIレビュアーを並行実行することが効果的です。独立したベンチマークでは、指摘された問題の93%は4つのツールのうちたった1つだけが発見していました。人間のレビュアーはすべてのdiffを読む役割から離れ、責任・意図の検証・高リスクゲートといった重要な判断を担うべきであり、CIの決定論的ゲートはエージェントが回避できない最後の砦として維持する必要があります。

AI AgentはUserではない:AI Agent Identity Modelを構築
CursorがPocketOSの本番データベース全体を9秒で削除した事故は、構造的な問題が原因でした。エージェントに適切にスコープが制限されたfirst-class identityではなく、ユーザーレベルのOAuth委任権限が付与されていたためです。OAuthの委任は将来のすべてのインタラクションにわたってユーザーの全権限を付与し、サービスアカウントは委任チェーンのないaudit logを生成するという点で、従来のモデルはエージェントには適していません。解決策は4つの要素を持つ専用エージェントidentityモデルです: 固有のディレクトリ識別子、capability単位のスコープ制限権限、ユーザー・エージェントチェーンを保持する委任コンテキスト、専用のaudit trail。Auth0のToken VaultはOAuth 2.0 Token Exchange(RFC 8693)を実装し、エージェントが長期credentialではなく短期・操作スコープのトークンをリクエストできるようにし、OpenFGAはリクエスト時に評価される関係ベースのアクセス制御を提供します。
READ_FULL_LOGarrow_forwardAI向けWeb改善は全Userに利益をもたらすべき
SafariチームがWebMCP APIに正式に反対する理由は、核心的なアーキテクチャ原則にあります。AIエージェントがサイトの機能を使いにくい場合、それはページ自体のセマンティクスが不足していることを示しており、解決策は共有プラットフォームレイヤー(HTMLとARIA)に適用され、ユーザー・支援技術・エージェントが等しく恩恵を受けるべきというものです。WebMCP提案書自体がアクセシビリティ技術向けに設計されていないと認めている点は、エージェントがスクリーンリーダーやキーボードユーザーよりもリッチなアクション可能なセマンティクスを受け取る二層構造ウェブの危険性を示しています。Cloud FourのJason Grigsby氏は、この原則が既存のW3C Priority of Constituenciesを補完するW3C設計原則として公式化され、ウェブ標準が進化する際にAIエージェントのニーズが決してユーザーのニーズを上回らないようにすべきだと主張しています。
READ_FULL_LOGarrow_forwardInstall Script BlockingはSilver Bulletではない
npm v12はpreinstall、install、postinstall、さらにbinding.gyp を持つパッケージの暗黙的なnode-gyp rebuildまで、ライフサイクルスクリプトの自動実行をデフォルトで無効化します。これはShai-Hulud(500以上のパッケージ、post-install経由の認証情報窃取)、Miasma(binding.gyp をトリガーに使用)、週間ダウンロード数26億件に影響したchalk/debugの侵害事件などで悪用されたベクターを遮断します。しかし、インストール時のトリガーを無効化しても実行時の攻撃は防げません。侵害されたパッケージは既存のindex.jsエントリーポイントにIIFEを追加し、アプリケーションがimportした瞬間にchild_processの生成・環境変数の収集・リモートの第2ステージペイロードのフェッチなど任意のコードを実行できます。Node.jsの権限モデル(--permission、--allow-fs-read、--allow-net、--allow-child-process)は実行中コードの動作を制限しますが、明示的にセキュリティ境界ではなく、--allow-netによるネットワーク権限はNode.js 25でようやく追加され、実際のCVE(CVE-2026-21636、CVE-2025-55130)も発生しています。OSレベルのサンドボックスとCI egressコントロール用のStepSecurity Harden-Runnerを多層的に適用することで、npm v12単独では提供できない多層防御が実現できます。
eveを発表:VercelのOpen Source Agent Framework
VercelがTypeScriptエージェントフレームワークeveをオープンソースとして公開しました。このフレームワークは、durable execution、サンドボックスコンピューティング、human-in-the-loopの承認、サブエージェント、evalをファイルシステムベースのディレクトリ構造にパッケージ化しています。エージェントはファイルで定義されます — モデル設定用のagent.ts、システムプロンプトとなるinstructions.md、TypeScriptのツールファイル、Markdownのスキルファイル、そしてSlack・Discord・カスタムチャンネル向けのチャンネルアダプターで構成されます。すべての会話はVercelのWorkflow SDK上でチェックポイント付きのdurableワークフローとして実行され、エージェントが生成したコードはアプリケーションランタイムとは分離された隔離サンドボックスで動作します。Vercelは月3万件以上の質問を処理するデータ分析エージェント、チケットの92%を自律的に解決するサポートエージェント、運営コストの32倍のリターンを生み出すSDRエージェントなど、100以上のeveベースの本番エージェントを社内で運用しています。
欧州最速の鉄道予約Web Siteは?
DebugBearが実ユーザーのCrUXデータを基に、欧州25か国の国鉄ホームページのCore Web Vitals(LCP、INP、CLS)を分析しました。デンマークのdsb.dkは349msのTTFBを活かして964msのLCPで1位を記録しました。ただし、ラボテストではレンダーブロッキングスクリプトとBase64埋め込み画像を含む1.4MBの非圧縮CSSファイルが発見されました。スペインのrenfe.esはCSSでコンテンツを非表示にし、OneTrustクッキーバナーをasyncロードすることでLCPを3.73秒まで遅延させ、最下位となりました。注目すべきは、LCPが優れていても良いユーザー体験を保証しないという点です。英国のnationalrail.co.ukはLCP2位にもかかわらず、過剰なReactの再レンダリングでINPが603msに達し、フィンランドのvr.fiは長いタスクとGoogle Tag Managerの遅延によりINP 534ms、CLS 0.53という低いスコアを記録しました。
New Bottleneck
制約理論(Theory of Constraints)によれば、一つのボトルネックを解消しても次のボトルネックが現れるだけです。ソフトウェアチームは今まさにこれを体験しています。AIコーディングツールがコード生成コストを下げましたが、スプリント速度・機能のサイクルタイム・振り返りの内容がほぼ変わっていない理由は、ボトルネックが移動したからです。新しいボトルネックは4か所に現れます — 不明確な要件(曖昧な仕様が今は速やかに正確に間違ったものを生成する)、デザインハンドオフ(手戻りコストが低下した状況で完成したデザインを待つことは遅延を生むだけ)、レビューとアーキテクチャ監督(アウトプットは増えてもレビュー能力は変わらず)、そしてプロダクト・デザイン・法務・セキュリティとのクロスファンクショナルな調整です。Intuitのエンジニアリングディレクターは、PMとエンジニアがリアルタイムで共同開発するモデルへの移行と、2つの実験から1つを選ぶ方式から数百の実験を同時実行する方式への圧縮について語りました。これには出荷ではなく学習を基準にした成果指標が必要です。
READ_FULL_LOGarrow_forward今週の一般的なウェブ開発で最も緊急のテーマは、AIエージェントで大規模に現れているconfused deputyセキュリティパターンでした。Metaのサポートアシスタントが6月初旬に悪用され、エクスプロイトコードなしに自然言語の会話だけでアカウント回復メールを変更することで、旧オバマホワイトハウスアカウントを含む20,000件以上のInstagramアカウントが乗っ取られました。Microsoftの研究チームは同時にAutoJackを公開しました。AutoGen StudioのMCP WebSocketハンドラー(プレリリースビルド0.4.3.dev1、0.4.3.dev2)を標的としたエクスプロイトチェーンで、localhost信頼の継承、MCPパスでの認証ミドルウェアのスキップ、許可リストなしのコマンド実行という3つの脆弱性を連鎖させてホストレベルのRCEを達成します。Auth0の関連記事では、CursorがPocketOSの本番データベース全体を9秒で削除した事例が示されました。RFC 8693 Token Exchangeを実装した適切にスコープされたidentityモデルの代わりにユーザーレベルのOAuth委任を保持していたことが原因でした。
VercelがTypeScriptエージェントフレームワークeveをオープンソースとして公開しました。ファイルシステムベースのディレクトリ構造(agent.ts、instructions.md、型付きツールファイル、Markdownスキルファイル、チャンネルアダプター)を使用し、Workflow SDKによるdurable executionと隔離されたサンドボックスコード実行を提供します。Vercelはeveベースの100以上の本番エージェントを運用しており、チケットの92%を自律的に解決するサポートエージェントと月3万件の質問を処理するデータ分析エージェントが含まれます。Addy OsmaniのエージェントコードレビューAnalysisは、Faros AIが22,000人の開発者から収集したデータを基に、AIが生成するコードのコストを定量化しました。コードchurnが861%増加、欠陥率が9%から54%に上昇、レビューなしマージが31%増加しています。彼の処方箋はblast radiusに応じた階層的レビューで、指摘された問題の93%がちょうど1つのツールだけで発見されることから、Greptile(正確性)とSentry Seer(本番の深刻度)のような異なる2つのAIレビュアーを並行実行することを推奨しています。
npm v12のデフォルトのライフサイクルスクリプト抑制(preinstall、install、postinstall、binding.gyp)はShai-Hulud、Miasma、chalk/debugなどのキャンペーンで悪用されたインストール時の攻撃ベクターを遮断します。しかしUlises Gasconの詳細な分析では、index.jsにIIFEを追加したりchild_processで環境変数を収集したりする実行時の攻撃は依然として完全に可能であることが示されています。Node.jsの権限モデルはセキュリティ境界ではなく、--allow-netによるネットワーク権限はNode.js 25でようやく追加され実際のCVEも発生しています。Cloud FourによってMediateされたWebMCPへのSafariの正式な反対は、より広い原則を明確にしました。AIエージェントのための改善はすべてのユーザーが恩恵を受けられるようHTMLとARIAを通じて行われるべきであり、スクリーンリーダーユーザーよりエージェントにリッチなセマンティクスを提供する別のAPIティアとして実装されるべきではありません。
- confused deputyとして機能するAIエージェントが今週実際の本番インシデントを引き起こしました。MetaのサポートボットがInstagramアカウント2万件以上を乗っ取られ、AutoJackがプレリリース0.4.3.dev1/dev2のAutoGen Studio MCP WebSocketハンドラー経由でRCEを達成し、Cursorが完全なOAuth委任を保持したことで本番データベースを削除しました。
- npm v12のデフォルトのインストールスクリプト抑制はpostinstall攻撃ベクターを遮断しますが実行時の攻撃は防げません。侵害されたパッケージはindex.jsにIIFEを追加してimport時に任意コードを実行できるため、実質的な防御にはOSレベルのサンドボックスとStepSecurity Harden-Runnerが必要です。
- Vercelのオープンソースeveフレームワークは本番でチケットの92%を自律解決し月3万件のデータ分析クエリを処理しており、durable・サンドボックス化・human-in-the-loopエージェントシステムの具体的なリファレンスアーキテクチャを提供しています。