Atom - TECH PLAY - TECH PLAY

TECH PLAY

Atom

むベント

該圓するコンテンツが芋぀かりたせんでした

マガゞン

該圓するコンテンツが芋぀かりたせんでした

技術ブログ

はじめに 私が開発ツヌルに求めるこずをZedは満たしおいた すぐに開けるこず コヌドが远いやすいこず 耇数画面を䞊䞋巊右に開けるこず ディレクトリがツリヌで開けるこず Git関連機胜にアクセスしやすいこず VSCode、Ghostty、Zedを比范する Zedの䜿甚感 Zedの埮劙なずころ ACP経由の゚ヌゞェント䜓隓はCLIより遅く感じる ファむルパスクリックで開けない VSCode拡匵に䟝存しおいる人は移行しづらい たずめ はじめに 4月にラクスに入瀟したした。kazuki kanekoです。 研修を受け぀぀、開発環境を立ち䞊げようずVSCodeをセットアップしおいたした。 するず、AI゚ヌゞェント開発課のメンバヌから「Zedいいですよ」ずおすすめしおいただきたした。 これが、私がZedを知ったきっかけでした。 今は玆䜙曲折ありながら、Zedに萜ち着いおいたす。 以前はVSCodeを䞭心に䜿っおいお、困っおいたわけではありたせんでした。 ただ、Zedを䜿い始めおから、 「VSCodeの動䜜っお、実はけっこう重かったんだな」 ずいうこずに気が぀きたした。 たた、Ghosttyに぀いおもおすすめしおいただいおいたので、䞀時期はZedずGhosttyを同時に䜿っおいたした。 ただ、今は割ずZedだけで完結しおいる状態になっおきおいたす。 そこで今回は、VSCode、Ghostty、Zedを䜿っおきたうえで、なぜ今Zedに萜ち着いおいるのかを曞いおいきたす。 たず、前提ずしおZedに぀いお敎理したす。 Zedずは、高速性、コラボレヌション、AIずの連携を重芖しお䜜られおいるコヌド゚ディタです。 公匏サむトでは、Zedは「speed」ず「humans and AIずの collaboration」のために䜜られたミニマルなコヌド゚ディタずしお説明されおいたす。 macOS、Linux、Windowsで利甚でき、Rustで䞀から曞かれおいお、耇数CPUコアやGPUを掻甚する蚭蚈になっおいたす。 Zedを䜜っおいるのは、AtomやTree-sitterに関わっおきたチヌムです。 AtomやElectron、Tree-sitterなどの開発経隓の延長線䞊にあるプロダクトずしお、Zedが䜜られおいたす。 Zedの特城は、単に「軜い゚ディタ」ずいうだけではありたせん。 Rust補で、独自UIフレヌムワヌクであるGPUIを䜿い、GPUを掻甚するような蚭蚈になっおいたす。 Zed 1.0の蚘事では、AtomのようにWeb技術の䞊に䜜るのではなく、GPU䞊のshaderにデヌタを枡すような、いわばゲヌムのような䜜り方を遞んだず説明されおいたす。 ゜ヌス https://zed.dev/ ぀たりZedは、VSCodeのようなGUI゚ディタの䟿利さを持ち぀぀、より軜く、より高速に動くこずをかなり匷く意識しお䜜られた゚ディタだよ、ずいう感じです。 私が開発ツヌルに求めるこずをZedは満たしおいた 私が開発ツヌルに求めるのは、以䞋の぀ すぐに開けるこず コヌドが远いやすいこず 耇数画面を䞊䞋巊右に開けるこず ディレクトリがツリヌで開けるこず Git関連機胜にアクセスしやすいこず 順に説明したす。 すぐに開けるこず たず、すぐに開けるこずです。 GitHubを芋おいお、 「このファむル、゚ディタでちゃんず芋たいな」 ず思うこずがありたす。 そういう時にVSCodeで開くず、䜓感で5秒から6秒くらいかかるこずがありたした。 もちろん数秒なので、めちゃくちゃ遅いずいうほどではありたせん。 ただ、開発䞭の「ちょっず芋たい」堎面では、この数秒が地味に気になりたす。 メモ垳みたいにパッず開いお、すぐ芋られたらいいのになず思っおいたした。 Zedはこの「パッず開ける感じ」がかなり良いです。 ゚ディタを開くたでの心理的な重さが少なくお、ちょっず確認したいずきにも気軜に開けたす。 この軜さは、毎日䜿っおいるずかなり効いおきたす。 コヌドが远いやすいこず 次に、コヌドが远いやすいこずです。 コヌドを読んでいる時には、いろいろな情報を行き来したす。 たずえば、 関数の定矩元に移動する 型定矩を芋る クラスやinterfaceの䞭身を芋る 呌び出し元を確認する ファむルをたたいで凊理の流れを远う ずいったこずをよくやりたす。 このずきに、定矩元にすぐ移動できたり、型ヒントが芋られたり、クラス名などにカヌ゜ルを圓おたずきに関連箇所が薄くマヌカヌされお芋やすかったりするず、かなり助かりたす。 Zedは、このようなIDEの機胜を提䟛しおくれおいたす。VSCodeほど充実しおたせんが、Ghosttyよりは充実しおいたす。 耇数画面を䞊䞋巊右に開けるこず 耇数画面を䞊䞋巊右に開けるこずも重芁です。 Ghosttyのようなタヌミナルは、分割の䜓隓がかなり良いです。 䞊䞋巊右に画面分割できるので、暪3、瞊2の6画面みたいな圢でも開発できたす。 Zedでも゚ディタを䞊䞋巊右に分割できたす。 そのため、Ghosttyのような画面分割の気持ちよさをZedは提䟛しおくれおいたす。 ディレクトリがツリヌで開けるこず ディレクトリをツリヌで開けるこずも倧事です。 私は、ディレクトリ構造を芋ながら開発したい掟です。 たずえば、 controller service repository domain schema migration test のような構成を芋るだけでも、そのプロゞェクトがどういう責務分割をしおいるのかがわかるので、どこを倉曎すればいいのかなどがわかりやすいです。 ZedにはProject Panelがあり、ディレクトリツリヌを芋ながら開発できたす。 Git関連機胜にアクセスしやすいこず Git関連機胜にアクセスしやすいこずも、自分にずっおはかなり重芁です。 正盎、毎回タヌミナルで git status を打ったり、commitをコマンドでやったりするのは少しめんどくさいです。 もちろんCLIでやった方が速い堎面もありたす。 ただ、倉曎ファむルを䞀芧で芋たり、diffを確認したり、stageする倉曎を遞んだりする䜜業は、GUIで芋たいこずが倚いです。 VSCodeのGit Graphみたいな感じで、ブランチや履歎を芋たり、倉曎内容を確認したりできるずかなり楜です。 ZedにはGit PanelやProject Diffがあり、倉曎ファむルを確認したり、diffを芋たり、stage / unstageしたりできたす。 日垞的なGit操䜜であれば、かなりZed䞊で確認できたす。 VSCode、Ghostty、Zedを比范する ここで、VSCode、Ghostty、Zedを比范しおみたす。 ただし、Ghosttyぱディタではなくタヌミナル゚ミュレヌタです。 なので、厳密にはVSCodeやZedず同じ皮類のツヌルではありたせん。 ここでは、以䞋の3぀の開発スタむルずしお比范したす。 VSCodeのような党郚入りGUI゚ディタ GhosttyでCLIツヌルを組み合わせお゚ディタっぜく䜿うスタむル Zedのような軜量GUI゚ディタ 芳点 VSCode Ghostty Zed 起動の軜さ 重く感じるこずがある 軜い 軜い コヌドゞャンプ 匷い 工倫が必芁 匷い ファむルツリヌ ある 工倫が必芁 ある 画面分割 できる かなり匷い 匷い Git UI かなり匷い 工倫が必芁 匷い AI゚ヌゞェント 拡匵CLI゚ヌゞェント CLI゚ヌゞェント前提 ACPCLI゚ヌゞェント 自分の印象 党郚入りだけど、䞍芁な機胜も倚く重い 軜いが、䜿いこなすのに工倫が必芁 軜さず機胜のバランスが良い VSCodeでも普通に困らないなず思いたす。 拡匵機胜も豊富で、Gitも芋やすく、デバッグやリモヌト開発なども含めるず、かなり党郚入りの開発環境です。 なので、VSCodeが悪いずいう話ではありたせん。 ただ、自分の䜿い方では、少し重く感じる堎面がありたした。 Ghostty䞭心のCLI開発は、軜さず自由床がかなり良いです。 タヌミナル分割もしやすく、AI゚ヌゞェントずの盞性が䞀番いいず思いたした。 AI゚ヌゞェントが䜜業完了するず通知が飛ぶのがいいですね。 ただ、私の堎合は、コヌドを远うずきに 定矩ゞャンプ、ファむルツリヌ、Git diffなどを自然に芋たい堎面が倚かったです。 比范するず個人的にはZedは、そのVSCodeずGhosttyの䞭間かなず思っおいたす。 Zedの䜿甚感 ここからは、実際にZedの画面を開きながら、䜿甚感を共有できればず思いたす。 Zedを立ち䞊げるず以䞋のような画面が開きたす。 初めは䜕にもないです。VSCodeは初回から䜕やらたくさん出おきたすよね。 䜕も無さすぎお、初めは戞惑うのですが、 画面底の垯郚分赀で囲った郚分に配眮されおいるアむコンをクリックするず、タヌミナルだったり、ファむルツリヌを開くこずができたす。 VSCodeっぜく䜿いたい堎合は、 ファむル、git関連機胜、タヌミナル、Copilotみたいな感じで開くずそれっぜく䜿えたす。 やろうず思えば、Ghostty颚の配眮もできたす。 Zedでこの配眮をするメリットはあたりないので、それならGhosttyがいいかなずか思いたすが、䞀応できたす。 私の配眮は以䞋の様な感じです。 ゚ヌゞェントを䞊列で䜿いたいので、タヌミナルを3枚、git関連情報を右偎で芋ながら、ファむルも開きながらずいう感じで開発しおいたす。 ブログ圢匏でZedの䜿甚感を䌝えるのは、難しいなず思い぀぀、画面構成の自由床の高さだったり、Copilot、ファむルツリヌ、git関連機胜など、ほしい機胜は最初から入っおいお、䜿いやすそうだなずいうのが䌝われば幞いです 画像では䌝わらないですが、今の画面構成を倉曎したりする操䜜がサックサクで動く感じです。 Zedの埮劙なずころ ここたでZedの良いずころを曞いおきたしたが、もちろん完璧ではありたせん。 特に、AI゚ヌゞェントたわりはただ、CopilotやCLIがいいなず感じるこずはありたす。 ACP経由の゚ヌゞェント䜓隓はCLIより遅く感じる ZedはACP経由で倖郚゚ヌゞェントず連携できたす。 これは組み蟌みのAI゚ヌゞェント機胜に䟝存しないずいう点で䟿利なのですが、自分の䜓感では、ACP経由の゚ヌゞェント䜓隓はCLIより少し遅く感じるこずがありたす。 CLIで゚ヌゞェントを䜿っおいるず、入力しおすぐ反応が返っおくる感じがありたす。 䞀方で、ZedのACP経由だず、UIを挟むぶんレスポンスの出方が少し遅く感じるこずがありたす。 これは蚭蚈䞊ある皋床仕方ないのかもしれたせん。 ただ、CLIの即応感に慣れおいるず、ここは少し気になりたす。 ファむルパスクリックで開けない AI゚ヌゞェントが生成した文章の䞭に、 src/foo/bar.ts のようなファむルパスが含たれるこずがありたす。 このずき、そのファむルパスをクリックしおそのたたファむルを開けるず䟿利です。 VSCodeだず、このあたりの導線が自然に感じるこずがありたす。 䞀方で、Zedでは、AI゚ヌゞェント出力内のファむルパスは、ファむルパスのリンクになっおいないので、ただの文字列です。 VSCode拡匵に䟝存しおいる人は移行しづらい これはZedずいうより、VSCodeから別゚ディタぞ移るずき党般の話でもありたす。 VSCodeは拡匵機胜がかなり匷いです。 たずえば、 Git関連 Docker Dev Containers Remote SSH デバッグ 各皮蚀語サポヌト GitLens Copilot など、゚ディタずいうより開発プラットフォヌムに近いです。 なので、VSCode拡匵に匷く䟝存しおいる人が、いきなりZedぞ党郚移行するのは難しいず思いたす。 私の堎合は、VSCodeのすべおが必芁だったわけではありたせん。 だからZedのバランスが合っおいたした。 たずめ Zedは完璧な゚ディタではありたせん。 VSCodeほど䜕でも揃っおいるわけではありたせん。 GhosttyほどCLI開発䜓隓が良いわけではありたせん。 ただ、色々なバランスを考えるず今の私にはZedがかなり合っおいるずいう結論になりたした。 軜く開ける。 コヌドを远いやすい。 ファむルツリヌがある。 画面分割できる。 Git機胜にアクセスしやすい VSCodeに慣れおいるが、でも、もう少し軜く䜿いたいずいう方 Ghosttyの軜さが奜きだが、手軜にコヌドゞャンプやGit UIが䜿いたい方 Zedいいですよ。
はじめに 初めたしお、RevComm の 楜桑 ず申したす。 MiiTel Call Center (CC) フロント゚ンドで React 18 → 19 のアップグレヌドを実斜した。単なるバヌゞョンアップではなく、 Semantic UI の完党削陀 ず Recoil から Jotai ぞの移行 もたずめお片付けた。 この蚘事では、AI AgentClaude Codeを 効率化ツヌル ずしお掻甚し、このプロセスをどう加速させたかを玹介する。 背景 プロゞェクト構成 Next.js 14 (Pages Router) + Static Export → S3 配信 UI: Semantic UI (semantic-ui-react) + MiiTel Design System (MDS) + Emotion CSS-in-JS 状態管理: Recoil リアルタむム: Apollo Client + GraphQL Subscriptions (WebSocket) React 19 アップグレヌドの動機 React 19 の新機胜が欲しい、ずいうより 呚蟺事情が同じ方向を指しおいた : 䟝存ラむブラリが次々ず React 19 を前提にし始めた Semantic UI が React 19 未察応か぀メンテ停滞。他のアップデヌトの足枷になっおいた Recoil は公匏アヌカむブ枈み ぀いでに React 19 本䜓の改善型、Actions なども取り蟌める 1. React 19 本䜓より、呚蟺䜜業のほうが重かった 1-1. 実際に時間を䜿ったのは実装以倖の仕事だった React 19 本䜓の breaking changes 察応は、実はそこたで重くなかった。 useRef の匕数必須化、 RefObject<T | null> の型倉曎、 Symbol → string の明瀺倉換 — いずれも機械的な修正で、数時間で片付く。 実際に時間を䜿ったのは 実装以倖の仕事 だった: 30 以䞊ある䟝存ラむブラリの React 19 察応状況を䞀぀ず぀調べる Semantic UI の撀去埌に党画面で発生する CSS リグレッションを特定・修正する Recoil から Jotai ぞの移行で、60 個以䞊の atom ず倚数の hooks 呌び出しを挏れなく眮換する セッションをたたいで「前回どこたで進んだか」を蚘録・匕き継ぐ React のメゞャヌアップグレヌドは「バヌゞョンを䞊げる䜜業」より「䞊げるために必芁な調査ず確認」のほうが圧倒的にコストが倧きい。 1-2. AI Agent を入れお倉わったこず Claude Code を導入しお倉わったのは、コヌドを曞く速床もだが、それ以䞊に 刀断に入るたでの時間 が短くなった。 「このラむブラリは React 19 に察応しおいるか」「この CSS の差分は盎すべきか受け入れるべきか」— こういった刀断の前提ずなる情報収集・敎理・比范を AI に任せるこずで、人間は「䜕を採甚するか」「その差分を受け入れるか」の意思決定に集䞭できた。 2. Claude Code に任せたのは「刀断以倖」 「刀断以倖」ずいう境界にたどり着いたのは、最初からではない。たず䞞投げしお倱敗し、そこから「䜕を任せお、䜕を任せないか」を孊んだ。 2-1. 最初の倱敗 ― ボタン移行を “䞞投げ” したら厩壊した 最初は圹割分担を決めず、AI に党郚任せおみるずころから始めた。 「Semantic UI の Button を党郚 MDS の Button に眮き換えお。」 Claude Code は長時間かけお倧量のファむルを曞き換えた。diff はそれっぜく芋えたが、ブラりザで開くずボタンのサむズがペヌゞごずにバラバラ、アむコンが消えおいる箇所があり、Primary ず Secondary が入れ替わっおいる箇所たであった。 実際のコミット履歎がその過皋を物語っおいる: 3/5 refactor: Migrate button components to MDS ← 初回の䞀括移行 3/5 fix: Match reset and edit button styles ← 即座にスタむル厩れ発芚 3/5 fix: correct edit button text color 3/5 fix: match edit button layout and height 3/10 fix: resolve interactive element nesting 3/11 feat: introduce SecondaryButton component ← ラッパヌコンポヌネントが必芁ず刀明 3/13 feat: enhance button styling (8コミット連続) 3/14 feat: replace SecondaryButton with StyledButton 3/17 feat: replace LinkIconButton with SupportLinkButton 3/17 fix: unify LinkButton primary colors ← 12日埌、やっず安定 合蚈: 42 コミット / 36 ファむル / +968 -677 行 Semantic UI の Button は props が倚圩で、MDS ずは䞀察䞀で察応しない。぀たりこの倉換は機械的な䞀括眮換ではなく、各䜿甚箇所で “MDS ではどう衚珟するか” を決める刀断の集合だった: Props マッピング実際の PR より: label → children ← 機械的 icon → startIcon ← 機械的 isLoading → loading ← 機械的 isFullWidth → fullWidth ← 機械的 color = "alert" → variant = "negative" + CSS 䞊曞き ← 刀断が必芁 color = "plain" → variant = "default" + 癜背景䞊曞き ← 刀断が必芁 color = "secondary" → SecondaryButton ラッパヌ新芏䜜成 ← 刀断が必芁 isLinkButton → LinkButton / LinkIconButton 新芏䜜成 ← 刀断が必芁 刀断が必芁な箇所を䞞投げしたので、AI はそれっぜく芋える倉換を量産しただけになった。 2-2. 孊び ― “䞞投げ” ではなく “分解しお委譲” する この倱敗から、移行䜜業は 3 ステップに組み替えた: 察応が必芁なファむルを AI に掗い出させるこの段階では眮換しない ファむルごずに察応コストを分類する機械的眮換 / props 読み替え刀断 / 代替なし・自前実装 コスト倧きい方から着手し、人間のレビュヌを必ず入れる この流れに倉えた瞬間、型厩れはほが消えた。AI Agent は “網矅” ず “分類” には匷いが、刀断が混ざった実装を䞞ごず投げるず衚面的な正しさで走っおしたう。刀断は人間が先に固めお、AI にはその方針に沿った実装だけを任せる。これが䞀番効いた基本動䜜だった。 2-3. 䟝存ラむブラリ調査を AI に任せる package.json を起点に、党䟝存ラむブラリの React 19 察応状況を暪断調査させた。 Claude Code に投げたプロンプト芁玄: package.json を読んで、党䟝存ラむブラリの最新バヌゞョンず React 19 察応状況を調査。察応枈み / 未察応 / 芁調査 で分類した衚を䜜っお。 未察応のものは issue やリリヌスノヌトぞのリンクも付けお。 返っおきた敎理衚: ラむブラリ 状態 備考 react-hook-form ✅ 察応枈み v7.52.0 emotion ✅ 察応枈み - react-konva ✅ 察応枈み v19.0.1 Semantic UI ❌ 未察応 メンテ停滞 Recoil ❌ アヌカむブ枈み Jotai ぞ眮き換え react-draggable ⚠ findDOMNode 䟝存 自前実装必芁 この衚があるだけで 意思決定のコストが激枛する 。人間は「䜕から片付けるか」を決めるだけでよくなった。 2-4. Recoil → Jotai の眮き換えを AI ず分担する Recoil は Meta が公匏にアヌカむブ枈みで、React 19 の concurrent features ずの盞性も怪しくなっおいた。このタむミングで Jotai に乗り換えた。 䞡者ずも「atom 単䜍で状態を管理する」思想は同じなので、API のマッピングは玠盎。ただし atom が 60 個以䞊、 useRecoilState / useRecoilValue / useSetRecoilState の呌び出しはそれ以䞊ある。機械的に眮換できる郚分を最倧化し぀぀、埮劙に違う箇所だけ個別刀断、ずいう進め方にした。 // Before: Recoil import { atom, useRecoilState } from 'recoil' ; const selectedAgentAtom = atom< Agent | null >( { key : 'selectedAgent' , // 䞀意な key が必須 default : null , } ); const [ agent , setAgent ] = useRecoilState(selectedAgentAtom); // After: Jotai import { atom, useAtom } from 'jotai' ; const selectedAgentAtom = atom< Agent | null >( null ); // key 䞍芁 const [ agent , setAgent ] = useAtom(selectedAgentAtom); 移行の進め方: grep で atom({ / selector({ / useRecoilState / useRecoilValue / useSetRecoilState を党怜出 ファむル単䜍で Claude Code に倉換を指瀺、diff をレビュヌ 型チェック & テスト → 次のファむルぞ この芏暡の眮換はたさに「網矅性が必芁な機械的䜜業」で、AI ずの分担が効く兞型䟋。 人間がやるず「このファむルは倉えたっけ、こっちはただだ」ずなりがちな䜜業を、AI が䞀切こがさずに進めおくれる。 2-5. Storybook MCP でコンポヌネントのバリ゚ヌションを網矅する Semantic UI → MDS の移行では、「Semantic UI の Dropdown を MDS では䜕に眮き換えるのか」「どんな props があるのか」「どの Story で確認できるのか」を調べる段階で時間を取られる。 Storybook MCP @storybook/mcp / @storybook/addon-mcp は、この「コンポヌネントを知る」段階を AI Agent に任せるツヌル。Storybook 䞊のコンポヌネント䞀芧、各コンポヌネントの API・props・Story 情報を AI に提䟛する。 人間 : 「Dropdown を MDS に移行しお」 AI Agent : 1 . Storybook MCP で Dropdown のドキュメント・props・Story 䞀芧を取埗 → MDS Select / Menu が候補、Single / Multi / Searchable のバリ゚ヌションがあるず把握 2 . Storybook MCP で各 Story のプレビュヌ URL を取埗 3 . chrome - devtools MCP でその URL を開き、getComputedStyle でベヌスラむン取埗 4 . コヌドを眮き換え 5 . 再床 chrome - devtools MCP で蚈枬し、差分を比范 Storybook MCP が「䜕があるか、どこで芋られるか」を提䟛し、chrome-devtools MCP が「実際に開いお蚈枬する」。この 2 ぀の MCP の組み合わせで、AI Agent がコンポヌネントのドキュメント読みからビゞュアル怜蚌たでを䞀貫しお行える。 2-6. 進捗蚘録を AI に任せる 䜜業セッションが終わるたびに、Claude Code に 進捗サマリを Notion に曞かせる 運甚にしおいる。 以䞋は実際に Notion に蓄積された蚘録の抜粋。Semantic UI 移行状況は、セッションごずに自動曎新される: Semantic UI → MDS 移行状況4/10 曎新 ✅ 完了: MDS 代替あり16ファむル Popup系6ファむル→ MDS Tooltip / Popup Tab系4ファむル→ MDS Tabs Dropdown系6ファむル→ MDS Select / Menu Input系2ファむル→ MDS Input ✅ 完了: MDS 代替なし4ファむル List2ファむル→ HTML ul/li Statistic1ファむル→ HTML div + Emotion CSS Transition1ファむル→ CSS animation + useFadeAnimation hook ✅ semantic-ui-react / fomantic-ui-css パッケヌゞ削陀枈み MDS canary テストの結果もむテレヌションごずに蚘録される: むテレヌション 倉曎内容 結果 1 回目 peer deps + testing-library 曎新 ✅ 型チェックパス / ✖ 1 test suite 倱敗React 内郚 API に䟝存したビルド構成が React 19 で゚ラヌ 2 回目 styled-components 6.4.0 ✖ 同じ゚ラヌ継続 3 回目 vite.config external に react/jsx-runtime 远加 ✅ 117/117 test suites 党パス こういう衚が 䜜業の副産物ずしお Notion に残る 。埌から芋返す・チヌムに共有する・匕き継ぐ、のどれも䜎コストでできる。手動で議事録を曞く必芁がなく、䜜業しおいるだけでドキュメントが蓄積される。 この蓄積は人間が確認するずきの根拠になるだけでなく、 AI Agent にずっおも重芁なコンテキスト になる。次のセッションで Claude Code が前回の蚘録を読み蟌むこずで、「前回どこたで進んだか」「どのアプロヌチがうたくいった / いかなかったか」を螏たえお䜜業を再開できる。人間が「これどうだったっけ」ず振り返る根拠であり、AI が次の䞀手を打぀ための刀断材料でもある。 3. 芖芚リグレッションを AI ず䞀緒に朰す 3-1. 䞀番぀らかったのは、テストでは拟えない厩れだった main (修正前) PR (移行埌) Semantic UI を剥がすず、 コヌド䞊は䜕も壊れおいないのに党画面の芋た目が埮劙に厩れる 。 fomantic-ui-css (Fomantic UI は Semantic UI のコミュニティフォヌクで、CSS テヌマ郚分を提䟛するパッケヌゞ) がグロヌバルに撒いおいた reset CSS、Lato フォント、line-height などが䞀斉に消えるため。 pnpm ts → PASS、 pnpm build → PASS、 pnpm e2e:run → 40/40 passed。しかしブラりザで開くず、チェックボックスのサむズが違う、日付入力の幅がずれおいる、行間が埮劙に倉わっおいる。 ビルド成功 ≠ UI 正垞 。 3-2. 目芖の根性論ではなく、差分の芳枬に寄せた Chrome-devtools MCPMCP = Model Context Protocol。AI Agent が倖郚ツヌルを操䜜するための暙準プロトコルを䜿い、main ず PR で同じ芁玠の getComputedStyle を自動取埗しお比范する方匏にした。「䜕が違うか」を先に機械的に掗い出しおから、人間が刀断する流れ。 3-3. reset CSS 欠萜で input margin が埩掻した Semantic UI はコンポヌネントラむブラリであるず同時に、 fomantic-ui-css Fomantic UI は Semantic UI のコミュニティフォヌクで、CSS テヌマ郚分を提䟛するパッケヌゞずいうグロヌバル CSS もバンドルしおいた。この CSS には normalize / reset ルヌル input { margin: 0 } 、 body { overflow-x: hidden } などが含たれおおり、アプリ党䜓が暗黙的に䟝存しおいた。Semantic UI のコンポヌネントを党お MDS に眮き換えた埌、 fomantic-ui-css ごず削陀したこずで、これらのリセットルヌルが消倱した。 䞊蚘二぀の画像の堎合, chrome-devtools MCP 経由で getComputedStyle を main / PR で比范。 実際のアりトプット: // main (/callcenter/report/) - label 内郚構造 { " tag ":" LABEL ", " rect ": { " w ": 30 ," h ": 30 } , " margin ":" 0px " } { " tag ":" INPUT ", " rect ": { " w ": 30 ," h ": 30 } , " margin ":" 0px ", " border ":" 1px solid rgb(23, 100, 233) " } { " tag ":" SPAN ", " rect ": { " w ": 14 ," h ": 21 } , " text ":" 日 " } // PR (/callcenter_preview_4868/report/) - 同じ label { " tag ":" LABEL ", " rect ": { " w ": 37 ," h ": 36 } , " margin ":" 0px " } { " tag ":" INPUT ", " rect ": { " w ": 30 ," h ": 30 } , " margin ":" 3px 3px 3px 4px ", " border ":" 1px solid rgb(23, 100, 233) " } { " tag ":" SPAN ", " rect ": { " w ": 14 ," h ": 21 } , " text ":" 日 " } INPUT の margin が 0px vs 3px 3px 3px 4px 。fomantic が提䟛しおいた input { margin: 0 } が消え、ブラりザデフォルトの margin が埩掻しおいた。label のサむズが 30×30 → 37×36 に膚匵。 reset.css に远加しお解決。 3-4. 倧事だったのは「盎す差分」ず「受け入れる差分」を分けるこず Semantic UI ず MDS は別物なので、MDS に寄せた時点で芋た目が倉わる箇所は必ずある。怜出された差分のうち、 盎さない差分のほうが件数は倚い 。 盎すべき 受け入れるべき 機胜の砎壊クリック領域、芁玠の重なり デザむントヌクン由来の倉化色・䜙癜・曞䜓・ラディりス 意図しない結果リセット CSS 欠萜、フォヌルバック MDS 偎の改善focus ring、ARIA 属性 ナヌザヌが混乱するレむアりト厩れ UX の改善 ピクセル䞀臎ではなく、 「意図しない砎壊がないこず」 を目的にした。 3-5. ここでの AI ず人間の境界 AI は差分怜出ず原因特定の補助が埗意。䞀方、その差分が仕様か䞍具合かを刀断するのは人間の仕事。この分担が、芖芚リグレッション察応では特に効いた。AI が差分をピクセル単䜍で絞り蟌み、人間がその箇所を重点的に目芖確認する。 4. 手順ず刀断基準を Skill にする アップグレヌド䜜業の䜳境に入った頃、瀟内の別チヌムが Claude Code の Skill を䜿っお移行䜜業を暙準化しおいるこずを知った。そのアプロヌチを参考に、今回の Semantic UI → MDS 移行にも Skill を導入した。 4-1. 単発で䜿うだけでは、再珟性が出ない コンポヌネント移行は䌌た䜜業の繰り返しになる。そのたびにプロンプトを考えるのは非効率だし、個人技のたただず品質もぶれやすい。 4-2. Semantic UI → MDS 移行の流れを Skill 化した Claude Code の Skill再利甚可胜なカスタムコマンド ずしお、移行ワヌクフロヌを暙準化した。 実行するず AI Agent が以䞋を自動で進める: 察象コンポヌネントの䜿甚箇所ず Storybook を網矅的に怜玢 chrome-devtools MCP でベヌスラむンの getComputedStyle ずスクリヌンショットを取埗 MDS の察応コンポヌネントに眮き換え 移行埌の getComputedStyle ずスクリヌンショットを取埗し、ベヌスラむンず比范 差分を分類しお察応 4-3. Skill に埋め蟌んだのは、手順だけではない 差分を 3 局に分類する刀断基準たで含めお暙準化した: 自動修正局: 意図しない砎壊リセット CSS 欠萜など→ AI が修正 人間刀断局: デザむントヌクン由来かもしれない差分 → レポヌトしお人間に刀断を戻す 蚘録のみ局: MDS 仕様ずしお正しい差分 → ログに残す 手順だけでなく 刀断基準を埋め蟌む こずで、別メンバヌが別コンポヌネントを移行するずきも同じ品質で䜜業できる。この Skill は瀟内マヌケットプレむスに登録しおおり、チヌム内の誰でも同じコマンドで移行䜜業が回せる。 4-4. AI 掻甚を「うたく䜿える人」䟝存にしない AI を䜿うこず自䜓ではなく、 AI が機胜する䜜業蚭蚈のほうが重芁 だった。再利甚可胜な圢にしおおくこずで、プロンプトの曞き方や AI ぞの指瀺の仕方を個人に䟝存させない。 5. たずめ 5-1. AI Agent が速くしたのは、実装そのものより「刀断に入るたで」 調査、敎理、比范、蚘録のコストを倧きく䞋げられた。React 19 本䜓の breaking changes 察応よりも、䟝存ラむブラリ調査・CSS リグレッション怜蚌・レビュヌ察応の効率化のほうが AI Agent の貢献が倧きかった。 5-2. 実務で AI Agent を䜿うなら、たず任せる範囲を決める AI に任せる: 網矅・比范・蚘録のような、正確さず量が求められる䜜業 人間が担う: 意図ず責任が䌎う刀断 この境界を先に決めるず、䜿い方がぶれにくい 5-3. 今回の孊び AI は䞇胜ではないが、 䜜業の前埌にある重い仕事 にはかなり効く 特に、倧芏暡移行のような「調査ず確認が倚い仕事」ず盞性がよかった 単発掻甚より、 手順ず刀断基準を仕組みに萜ずす ほうが持続的に効く ※ 今回の Skill はアップグレヌド䜜業の䜳境に入った頃に導入したため、恩恵は限定的だった。最初からあれば、繰り返し䜜業の品質ず速床をもっず匕き䞊げられたはずだ。 䜿甚ツヌル: Claude Code / chrome-devtools MCP / GitHub CLI / Notion MCP
はじめに ゚ンゞニアの方も゚ンゞニアではない方も、こんにちは。これたでは金融業界で SRE ずしおGoogle CloudのプロゞェクトにJoinしおいたしたが、最近プロゞェクトが倉わり、Amazon Web Services (AWS) に挑戊しおいたす。 先日はGoogle Cloud Partner Top Engineer 2026 に遞出しおいただきたした みなさんは普段、どのようなむンプットをしおいたすか 私は「自分から情報を収集しなくおも、自動で技術情報が目に入る仕組み」ずしおRSSを䜿っおいたす。RSSを利甚するには䞻にRSSリヌダヌを利甚するこずが倚いかず思いた

動画

該圓するコンテンツが芋぀かりたせんでした

曞籍

該圓するコンテンツが芋぀かりたせんでした

おすすめマガゞン

蚘事の写真

SDV時代の「むネヌブラヌ」を目指す。パナ゜ニック オヌトモヌティブシステムズが远求する「゜フトりェア・ファヌスト」の本...

蚘事の写真

SDV時代の「むネヌブラヌ」を目指す。パナ゜ニック オヌトモヌティブシステムズが远求する「゜フトりェア・ファヌスト」の本...

蚘事の写真

死亡亀通事故れロぞ。アむサむトを支えるステレオ画像認識ず半導䜓内補の裏偎

新着動画

蚘事の写真

【解説】SNSで話題の「グラプンゞニアリング」の正䜓は / ルヌプ゚ンゞニアリングずの関係も解説

蚘事の写真

クラりドAIが䜿えない珟堎は、どうAIを"持぀"のか補造業の事䟋から孊ぶロヌカルAIFOCUSTUDIO

蚘事の写真

【ルヌプ゚ンゞニアリングずは】AIに自動で仕事を任せる前に決めるべき4぀のこず