#
594
2026/1/6
今日のトレンド

Remix 3とPlaywright MCPのCSSデバッグ

どうもおはようございます、マイクです。FMラジオ「zenncast」、2026年1月7日、水曜日の朝7時をまわりました。今日もZennで話題になっているトレンド記事を、ゆるっと楽しくご紹介していきます。通勤中の方も、これから一日が始まるよって方も、コーヒー片手にのんびりお付き合いください。

今日はお便りコーナーはお休みで、その分しっかり記事を掘り下げていきたいと思います。

さて今日は、全部で5本の記事をご紹介します。どれも「AI」「エージェント」「新しいフロントエンドのモデル」みたいな、2026年感あふれるラインナップです。じゃあさっそく、一つ目からいきましょう。

一つ目は「Remix 3 の新コンポーネントライブラリを試してみた - Hooks なし、クロージャで状態管理」という記事です。これね、Reactの次の一手というより、「コンポーネントって本当はこう書けるんじゃない?」っていう実験色が強い内容でした。`@remix-run/component` という実験的ライブラリで、仮想DOMは使うんだけど、なんとHooksがない。代わりに、コンポーネント関数が最初の一回だけ初期化として実行されて、その中のクロージャで状態を抱えるスタイルです。で、状態が変わったら `this.update()` を自分で呼んで再レンダリングする。古き良きクラスコンポーネントと、関数+クロージャの良いとこ取り、みたいな雰囲気ですね。Propsも「初期化のときだけ受け取るSetup用」と「描画のたびに受け取るRender用」を分けていて、「ここはもう絶対変わらない」「ここは毎回変わる」がコードに出るのが気持ちいい。副作用も `useEffect` じゃなくて初期化時に直接書いて、`AbortSignal` でクリーンアップするなど、EventTargetとかAbortSignalなどWeb標準をガッツリ使う設計になっています。CSSは `css` propで当てられたり、`connect` でrefっぽいことができたり、Context APIもあったりと、一通りの仕組みは揃ってるんですが、まだSSRやasyncコンポーネントは未対応で、エコシステムもこれから。Reactの代わり、というより「状態管理と副作用を、いっぺん整理し直してみよう」という提案書として読むとワクワクする内容でした。記事ではタスク管理アプリを作りながら、気持ちよく書ける部分と、逆にちょっとクセがあるところが丁寧に検証されていて、「実際に手を動かしてみた人の率直な声」が伝わってきますね。

。。。。

続いて二つ目は「Playwright MCPでCSSの修正が楽になった」という記事です。これは「AIエージェントが本当にブラウザを触りながらCSSデバッグを手伝ってくれたら?」という、ちょっと未来が現実になってきたエピソードでした。筆者の方は、罫線付きノート風のブログレイアウトを作っていたんですが、途中から文字と罫線の位置がじわ〜っとズレていくという、フロントエンドあるあるな怪奇現象に悩まされます。line-heightやmargin、paddingを罫線のピッチの倍数に合わせても、テーブルの後や画像の後、コードブロックの後でだけズレる。ここでAIに「原因調べて」と頼むと、Playwright MCPがブラウザを実際に立ち上げて、DOMと描画結果を一緒に見ながら原因を探してくれる。で、見つけたのが「コードブロックだけMonoフォントで、本文とはフォントが違う → 同じline-height指定でも見た目の高さが変わる → その誤差が累積して罫線と文字がズレる」というオチ。フォントを揃えたら一発で直った、という話なんですが、ポイントは「AIがコードだけじゃなく、“画面そのもの”を見て原因調査してくれた」というところです。Next.js、Playwright、Storybook、Chakra UIといったツール群がMCP対応していて、そこにAIエージェントをつないで、「この画面、なんかズレてない?」というレベルから一緒に原因追及できる。CSSバグって、再現しないときもあるし、スクショ見せても伝わりにくかったりするじゃないですか。それを、AIが同じ画面を開いてくれることで、「あ、そのmarginか」「そのfontが違うのか」っていう、人間のペアプロに近い安心感が得られているのが印象的でした。フロントエンドのデバッグ、そろそろ「一人作業」じゃなくなるかもしれません。

。。。。

三つ目は「自分専用 IDE for Agent を作り始めた話」です。ここからは、AIエージェントをどう“育てるか”“運用するか”という、メタな話になっていきます。筆者の方は、AI Agentが裏で何をしているのか見えづらくて、「これ本当に効率いいの? どのツールが役立ってるの?」が分からないというモヤモヤをずっと感じていたそうです。そこで作り始めたのが、Agent支援専用IDE「Guimpt」。普通のIDEみたいにコードを書く場所というより、エージェントの動きをリアルタイムに可視化して、どのツールをどれだけ使っているか統計を取って、GitHubと連携してタスクの進み具合も見えるようにする、そんな“管制塔”みたいなツールですね。対応対象も思い切って「Claude Code専用」に絞り、GitHub IssuesとProjects連携前提にして、「エージェントが触る世界」をできるだけ限定しているのが面白い。ファイルツリーじゃなくて「このエージェントが使えるツール一覧」をUIの中心に据えているのも象徴的で、人じゃなくてAgentが主役のIDE、という発想です。内部ではClaude Agent SDKと、ローカルプラグイン化したSkill群を組み合わせて、Issueを自動で解決しにいくIteratorと、PRをレビューするReviewerという二種類のエージェントを運用中。JSONLログやUsage Statsを可視化することで、「なんかこのSkill、全然使われてないな」とか、「ここで挙動がおかしいな」が具体的に見えてきて、フィードバックサイクルを回しやすくなったそうです。今後は、エージェント同士の協調とか学習機能、並行稼働の管理、マルチプロジェクト対応など、まさに「自分専用AIチームのダッシュボード」を目指していく構想が語られていました。Agentを“ブラックボックスの賢い何か”じゃなくて、“ちゃんと運用・改善するチームメンバー”として扱う感覚が伝わってきますね。

。。。。

四つ目は「Claude Codeの拡張機能を活用した並列開発プラグインの設計と実装」という記事です。さっきのGuimptが“見える化と運用”だとしたら、こちらは“実際にプロジェクトをAIと一緒に爆速で進めるワークフロー”の話。Claude CodeにはSubagent、Command、Hooks、Skills、Pluginという5つの機能が用意されていて、これらをうまく組み合わせることで、設計から実装、レビュー、マージ、後片付けまでをかなりのところまで自動化できる、というデモになっています。プラグインの肝は、Git worktree と tmux を使った並列開発。大きなタスクをサブタスクに分割して、それぞれを別のClaude Codeインスタンスに割り振り、複数ワーカーが同時並行で働くイメージです。専用の `/pw` 系コマンド群で、「全体設計 → タスク分解 → ワーカー起動 → 進捗確認 → レビュー → マージ → クリーンアップ」までを一連のフローとして定義していて、そのルールをCLAUDE.mdにちゃんと書いておくことで、エージェントが途中で変な方向に走り出すのを防いでいます。さらに面白いのが、status-monitorというサブエージェント。これがtmuxセッションを30秒ごとにウォッチして、PRができたら知らせたり、エラー状態を検出したりしてくれる。メインの会話ログをゴチャゴチャにしないよう、軽量モデルで裏方として動かしてコストも抑えている工夫も紹介されています。Hooks機能では、機密ファイルの編集をブロックしたり、人間の承認なしではマージできないようにマージガードを設定したりと、「自動化しつつもガバナンスはちゃんと効かせる」バランスが意識されていました。結果として、「エージェントが勝手に危ないことをする不安」を小さくしながら、並列開発のメリットだけをしっかり享受できる仕組みになっていて、実務でAIと開発するときの、かなり具体的なベストプラクティス集になっている印象です。

。。。。

ラスト五つ目は「RAGの取りこぼしを減らすには? — Corrective RAG で検索ミスを“後から直す”」という記事です。RAG構成を本番投入している方には、かなり刺さる内容じゃないでしょうか。RAGって、本来は「ちゃんと調べてから答える」仕組みのはずなのに、リトリーバーが関係ない文書や古い文書を拾ってしまうと、その誤った情報を根拠に、モデルがすごい自信で間違った回答をしてしまう。「検索の失敗が、かえって回答の質を悪化させる装置になる」というジレンマですね。この記事で紹介されているCorrective RAG、略してCRAGは、その問題に対して「retrieverとLLMのあいだに、検索結果を評価する人を一人挟もう」という発想です。この“retrieval evaluator”が検索結果全体を見て、「これで十分正しそうか」「ちょっとあやしいか」「完全にズレているか」をスコアリングして、Correct / Ambiguous / Incorrect の3ルートに振り分ける。Correctなら内部コーパスだけを使って答えるし、Incorrectなら一旦Web検索中心に切り替える。Ambiguousだったら、その両方を併用したり、質問分解をしたりする。さらに、長文ドキュメントについては、一度細かく分解してから“再構成”する decompose-then-recompose というテクニックで、ノイズを減らす工夫もしています。記事では、論文どおりのT5を使ったevaluatorじゃなくても、LLM-as-judgeや、既存RAGにPythonとOpenAIのAPIを足すだけで作れる「CRAGもどき」の実装例が紹介されていて、現場目線で真似しやすいのもポイントです。Self-RAGが「モデル自体を学習で賢くするアプローチ」だとしたら、CRAGは「既存システムの外側にモジュールを足して、失敗した検索を後から矯正するアプローチ」。すでにRAGを運用していて、「たまに変な文書を拾って事故るんだよな」という人は、まずこの“評価モジュールを挟む”ところから始めるのが良さそうだ、という提案で締めくくられていました。

。。。。

というわけで今日は、Remix 3の新コンポーネントモデルのお話から、Playwright MCPによるCSSデバッグ、AIエージェント用IDE「Guimpt」、Claude Codeを使った並列開発プラグイン、そしてRAGを賢くするCorrective RAGまで、5本まとめてご紹介しました。どの記事も、「AIと開発の関係が、道具から“チームメイト”に変わっていく途中経過」が感じられて、未来の開発風景がちょっと見えた気がしますね。

気になった記事があれば、このあとゆっくり読み返してみてください。番組のショーノートにも、タイトルやキーワードなどの情報をまとめておきますので、そちらもチェックしてみてくださいね。

「zenncast」では、番組の感想や、「こういうテーマを扱ってほしい」「この技術が気になっている」といったリクエストも常に募集しています。日々の開発で感じているモヤモヤや、ちょっとした成功体験なんかも、ぜひ共有してもらえるとうれしいです。

それでは、そろそろお別れの時間です。今日も一日、ゆるく、楽しく、ものづくりしていきましょう。ここまでのお相手はマイクでした。また次回の「zenncast」でお会いしましょう。お聞きいただき、ありがとうございました。

Related episodes

内容の近いエピソードを推薦しています