- TOP
- ã¿ã°äžèЧ
- Atom
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ãªãŒããŒãå©çšããããšãå€ãããšæããŸ
åç»
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã
æžç±
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã









