ã¯ããã« ããã«ã¡ã¯ïŒãã¡ã€ã³ãã£ã®Team+éçºéšã§ãšã³ãžãã¢ãããŠããæŸè°·ïŒ TENTEN11055 ïŒã§ãã æ®æ®µã¯ããŒã ã§ Findy Context ãšãããããã¯ãã®éçºã«åãçµãã§ããŸãã prtimes.jp 2025幎11æãAWSäž»å¬ã®AI-DLC Unicorn Gymã«åå ããAIé§åéçºã®ææ³ã§ããAI-DLCãå®è·µããŸããã åŠã³ã¯ãšãŠã倧ããã£ãäžæ¹ã§ãèªåãã¡ã®ããŒã ã«ãã®ãŸãŸæã¡èŸŒãã«ã¯å£ããããçŸå Žã®å®æ
ã«åãããŠäœãå€ããå¿
èŠããããŸããã Unicorn Gymåå æã®æ§åã¯ãã¡ãã tech.findy.co.jp AI-DLCã¯AIãäœæ¥ãå®è¡ãã人éãç£èŠãšå€æã«éäžããéçºææ³ã§ãã èŠä»¶ã»ã¹ããŒãªãŒã»äœæ¥åäœãæŽçãã Inception ãèšèšã»å®è£
ã»ãã¹ããé²ãã Construction ãIaCããããã€ãæ
ã Operation ã®3ãã§ãŒãºã§æ§æãããAIãææ¡ããææç©ãããŒã å
šå¡ã§æ€èšŒããªããé²ããŸãã ããŒã ã§ã¯ãã®ãã¡å®è£
ã«é¢ããInceptionãšConstructionã®2ãã§ãŒãºãæ¡çšããŸããã è©³çŽ°ã¯æ¬¡ã®èšäºãåç
§ãã ããã aws.amazon.com ãã®èšäºã§ã¯AI-DLCãClaude SkillåããEpicå¶éçºãããŒã®äžã§èŠä»¶æŽçãããã¹ããŸã§ãäžäººã®ã¡ã³ããŒãäžè²«ããŠæ
ããããã«ããåãçµã¿ã玹ä»ããŸãã ã¯ããã« ããŒã ãæ±ããèª²é¡ æ
åœé åè¶å¢ã®å¿
èŠæ§ AI-DLCããã®ãŸãŸåãå
¥ããé£ãã Epicå¶éçºãããŒã®å°å
¥ AI-DLCã®2ãã§ãŒãºãšä»éããäœæ¥ãClaude Skillåãã 1. ãã©ãŒãããã®ã°ãã€ããæ¹å 2. 暪å±éã容æã«ãã 3. ããŒã«ãå©çšããŠããã·ãŒã ã¬ã¹ãªèšèšãã§ãã 4. ä»éããã¹ãã«ã®ç²ŸåºŠãäžããã人éã®è² æ
ãäžãã ã¹ãã«éçšåŸã®å¹æãšãŸãšã ããŒã ãæ±ããèª²é¡ ãããŸã§ã¯PMããã¶ã€ããŒãQAãšã³ãžãã¢ãšãã£ãå°ä»»è
ãšåæ¥ãã圢ã§éçºããŠããŸããããããŒã æ§æã®å€åã«ããããšã³ãžãã¢èªèº«ãæ
åœé åãè¶å¢ããŠããå¿
èŠãåºãŠããŸããã æ
åœé åè¶å¢ã®å¿
èŠæ§ ããŒã ã®ããã³ããšã³ãå°ä»»è
ãäžäººã®ãããããã³ãã®èšèšã»å®è£
ãå
šãŠé Œãããã«ããããŸããã ãŸã4ææ«ã§QAãšã³ãžãã¢ãå¥ãããã¯ããžç°åãšãªããå®è£
è
ã®ã¿ã§ã®ãã¹ãèšèšãã±ãŒã¹å®è£
ãæ
ãããšã«ãªããŸããã ããã«å°ä»»ã®PMãä»ãããã¯ããå
ŒåããŠããå²ããæéãéããããããèŠä»¶æŽçãªã©æ¬æ¥PMã®é åã ã£ãéšåã«ãéçºè
ãèžã¿èŸŒãã§ããå¿
èŠããããŸãã ããããå å³ãããšã³ãžãã¢äžäººäžäººãæ
åœé åãåºããå¿
èŠãåºãŠããŸããã AI-DLCããã®ãŸãŸåãå
¥ããé£ãã ããã§è¶å¢ãæ¯æŽããææ®µãšããŠããããŸã§åã
人ã§èªç±ã«è¡ãªã£ãŠããAI-DLCãããŒã ã®éçºãããŒãšããŠåãå
¥ããããšãæ€èšããŸããã ãããInceptionãã§ãŒãºã¯é¢ä¿è
ãéãŸã£ãŠä»æ§ã決ããŠããã¹ã¿ã€ã«ã§ããããã®å®æœã«ã¯äžå®ã®åæã³ã¹ããçºçããŸãã äœãããæ©èœã®å
·äœãææ§ã§ããã°ããã»ã©å
šå¡åå ã¯å¹æçã«ãªããŸãããEpicã€ã·ã¥ãŒãäœæãããæ®µéã§æ¢ã«äžå®ã®è§£å床ãããå Žåã¯ãPMãå«ãå
šå¡ã§æŠãåããããããšãåŸãããè§£å床åäžã«å¯ŸããŠæå
¥ããæéïŒããŒã å
šäœã®åæã³ã¹ãïŒã®æ¹ãç®ç«ã£ãŠããŸããŸãã Epicå¶éçºãããŒã®å°å
¥ ãããã®èª²é¡ã解決ããäžç°ãšããŠããŒã ã§ã¯Epicå¶ãå°å
¥ããŸããã ãã¡ãã¯VPoEã® ham ããã Findy Team+ éçºã§å®æœãã å人ã¢ãµã€ã³ãžã®ã·ãã ã«åœ±é¿ãåããŠããŸãã tech.findy.co.jp åEpicã«ã¡ã³ããŒãã¢ãµã€ã³ããããšã§èŠä»¶æŽçããéçºãŸã§äžè²«ããŠè²¬ä»»ãæã€ããã«ãªããããã«ããã¯ãçºçãã¥ãããªããŸãã å®éã®éçšãšããŠã¯ã倧ãŸãã«æ¬¡ã®æµãã§éçºãé²ããŠããŸãã Epicæ
åœè
ã¯AI-DLCã¹ãã«ãçšããŠInceptionããã¥ã¡ã³ããäœæãã ã¯ã€ã€ãŒãã¬ãŒã äœæã¹ãã«ã«1ã®ããã¥ã¡ã³ããèªã¿èŸŒãŸããHTMLã§ã¯ã€ã€ãŒãäœæãã 1ãš2ãå
ã«ãã¶ã€ããŒãšPMã«ç¢ºèªããšã AI-DLCã¹ãã«ã§Constructionããã¥ã¡ã³ãããã¹ãèšèšããã¹ãã±ãŒã¹ãå®è£
ãã ãã¶ã€ã³ãå®è£
ããã¹ã åãå
¥ã確èªããªãªãŒã¹ ããŒã å
ã§ã¯ããããçšãããããŒã AI-E-DLC (AI - Epic - Driven Development Life Cycle) ãšåä»ããŠãããä»åŸãéçšãšæ¹åãéããŠããããšããŠããŸãã ããããã¯ãã®ãããŒã®1ãš4ã§å©çšããAI-DLCã¹ãã«ã«ã€ããŠæãäžããŠãããŸãã AI-DLCã®2ãã§ãŒãºãšä»éããäœæ¥ãClaude Skillåãã åãããã³ãããçšããŠããã¥ã¡ã³ããäœæããŠããAIã®ææç©ã«ã¯ã°ãã€ããçããå¯èœæ§ããããŸãã ãã®ããAI-DLCã«ãããInceptionãšConstructionã®ããã¥ã¡ã³ãçæãããããã¹ãã«åããæœåšçãªèª²é¡ãããã€ãæ¹åããããšãã§ããŸããã 1. ãã©ãŒãããã®ã°ãã€ããæ¹å åãAI-DLCã®ããã³ããã䜿ã£ãŠããæžãæã«ãã£ãŠæ§æã»ç²åºŠã«ã°ãã€ããçããããå¿
èŠãªæ
å ±ãæãããããããšã§ãå®è£
ã»ãã¹ãèšèšã»ã¬ãã¥ãŒãªã©ã®å·¥çšã§AIãèªã¿åãã«ããããã¥ã¡ã³ããçãŸããŠããŸããã ãã®èª²é¡ã«å¯Ÿããã¹ãã«ã§æé ãšåºåãã©ãŒããããåºå®ãã誰ãå®è¡ããŠãåãéªšæ Œã®ããã¥ã¡ã³ããåºåã§ããããã«ããŠããŸãã ã¡ãªã¿ã«ãã®ãã©ãŒãããã®åºå®åãå€ãã®æ¹åã®èµ·ç¹ã«ãªã£ãŠããããããªãã§ã¯åŸè¿°ã®å
容ãå®çŸãããŸããã§ããã 2. 暪å±éã容æã«ãã AI-DLCã®ææ³ãåã¡ã³ããŒãåçŸããã«ã¯ããã§ãŒãºçè§£ã»ããã³ããèšèšã»èŠ³ç¹æŽçã®ç¿çãå¿
èŠã§ããå±äººåãããããã®ã§ãããã¹ãã«åã«ããæé ãã¬ã€ãããããããæªçµéšè
ã§ãæ°è»œã«å®è·µã§ãããåããšããŠæäŸã§ããŸãã ãŸãFindy Contextãè€æ°ãªããžããªã§æ§æãããããããªããžããªéäŸåã§åãã¹ãã«ã«ããŠããŸãã ä»ãŸã§åãªããžããªã«åãããããã³ãããçšæããå¿
èŠããããŸããããã©ãã«ãããŠãåãã¹ãã«ãåŒã¹ã°OKãªç¶æ
ã«ããŠããŸãã æ±çšæ§ã®é«ãã¹ãã«ã«ããããšã§ã©ãã§ã誰ã§ãAI-DLCã«åã£ãããã¥ã¡ã³ããäœæã§ããããã«ãªããŸããã 3. ããŒã«ãå©çšããŠããã·ãŒã ã¬ã¹ãªèšèšãã§ãã AIããã®è³ªåäºé
ã«ã¯Claude Codeã® AskUserQuestion ããŒã«ãå¿
ãå©çšãããŠããŸãã Inceptionã§ã¯AIãã人éãžã®è³ªåãã§ãŒãºãååšããããã¥ã¡ã³ãã«èšèŒããã質åã«å¯Ÿã人éãåçãæžã蟌ãã®ãåºæ¬ã§ããã ããã«å¯Ÿãéžæ or èªç±åçãšãã圢åŒããšãåçåè£ãæç€ºããŠãããããšã§äžããèããããšããªããªããããåçäœæ¥ã ãã§ãªãè³ã®è² æ
ã軜æžãããŸããã ä»ã«ãäžéšã®é£æåºŠã®é«ãäœæ¥ãAgentã«ä»»ãããªã©ãå Žé¢ã«é©ããèšå®ãå
±æã§ããã®ãã¹ãã«åã®å©ç¹ã®äžã€ã§ãã AskUserQuestionãå©çšããéã®ãµã³ãã« 4. ä»éããã¹ãã«ã®ç²ŸåºŠãäžããã人éã®è² æ
ãäžãã ãã©ãŒãããã®ã°ãã€ããæ¹åãããããšã«ããã å°çšã®ãã¹ãèšèšã»ã±ãŒã¹å®è£
ã¹ãã«ãšããã¥ã¡ã³ãã¬ãã¥ãŒã¹ãã« ãäœæããããšãã§ããŸããã ãã¹ããAIã§çšæããéãäœãææãšããããéèŠã§ãã ããã³ãŒããææãšããå Žåããã®ã³ãŒãã仿§ã«æ²¿ã£ãŠããªããã°èª€ã£ããã¹ããšãªã£ãŠããŸããŸãã ãã®ãã¹ãèšèšã»äœæã¹ãã«ã¯Inceptionã»Constructionããã¥ã¡ã³ããææãšãããšã³ãžãã¢ã»PMã»ãã¶ã€ããŒéã§èªèãæã£ã仿§ãåæãšããããé«ã粟床ãåºãããšãã§ããŸãã ãŸãããã¥ã¡ã³ãã¬ãã¥ãŒã«é¢ããŠã¯AI-DLCã®äžã§æã人éã®è² è·ãé«ãäœæ¥ã§ãã AI-DLCã¹ãã«ã§çæãããããã¥ã¡ã³ãã¯10ãã¡ã€ã«ãè¶
ããå
šéšåçã«ã¬ãã¥ãŒããããšãããšç Žç¶»ããŸãã ããã§ã¬ãã¥ãŒã¹ãã«åŽã§ãçæãããããã¥ã¡ã³ãããæ žãšãªãããã¥ã¡ã³ãïŒä»æ§ã®äžæ žãæ
ããã®ïŒããšãè£å©ãšãªãããã¥ã¡ã³ãïŒæ žãæ¯ããè£è¶³ïŒãã«åé¡ããEpicã€ã·ã¥ãŒãšãç
§ããåãããŠéœéœ¬ãæãããªããããã§ãã¯ãããŠããŸãã ããã«ãã人éãçèªãã¹ãããã¥ã¡ã³ããæç¢ºã«ããã¬ãã¥ãŒè² è·ãäžããããšãã§ããŸããã ã¹ãã«éçšåŸã®å¹æãšãŸãšã éçšãå§ããŠæ°æ¥ãçµã¡ãŸããããæ³å以äžã«åŒ·åãªã¹ãã«ãšãããŒã§ãããšæããŠããŸãã ããŒã ã®èª²é¡ã§ããã£ãã圹å²ã®è¶å¢ãã«å¯ŸããŠæå¹ãªã¢ãããŒããšãªãããããŸã§å°ä»»è
ïŒPMã»ãã¶ã€ããŒã»QAãšã³ãžãã¢ãªã©ïŒã«é Œã£ãŠããäœæ¥ã®äžå°ãå®è£
è
ãæ
ããå°ä»»è
ã¯ã¬ãã¥ãŒã»å€æã«éäžã§ããããã«ãªããŸããã ç¿ç床ã®å£ãäžããããããšã倧ããªææã§ãã¹ãã«äœæåŸã«èª¬æããå ŽãèšããªããŠãæ°ã¥ããæã«ã¯ä»ã¡ã³ããŒã䜿ã£ãŠãããæ°æ¥åŸã«ã¯ã¹ãã«ã®æ¹åPRãäžããŠãããŠããŸããã ã¬ãã¥ãŒã«ãããŠãAI-DLCãå§ããé ã«ãããã£ããããã¥ã¡ã³ãã¬ãã¥ãŒããã©ã...ããšãã声ã¯å¹žããŸã èãããŠããŠããŸããã ä»åã®åãçµã¿ã¯AI-DLCããã®ãŸãŸå°å
¥ããã®ã§ã¯ãªããããŒã ã®éçºäœå¶ã課é¡ã«åãããŠé©å¿ããã詊ã¿ã§ããã ãŸã éçšãå§ããŠéããªãããæ¹åã®äœå°ã¯ãããŸããããã®éšåã«èª°ããåå ã§ããéå£ãçšæã§ããã®ãã¹ãã«åã®å©ç¹ãããããŸããã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«åãã¡ã³ããŒãåéäžã§ãïŒ ããã£ããèŠããŠã¿ãŠãã ããã herp.careers
ããã«ã¡ã¯ããã¡ã€ã³ãã£ã®CTO宀ã§ã¹ã¿ãããšã³ãžãã¢ãæ
åœããŠããåå·(@rojoudotcom)ã§ãã 4æ14æ¥(ç«)ã16æ¥(æš)ã«DevOpsDays Tokyo 2026ãéå¬ãããŸãããæ¬èšäºã¯ãã¹ãã³ãµãŒç»å£è
ãšããŠåå ããŠããã¬ããŒãã§ãã DevOpsDaysã¯ãäžçåå°ã§éå¬ããããšã³ãžãã¢åãã®åœéã«ã³ãã¡ã¬ã³ã¹ã§ãã éçºïŒDevïŒãšéçšïŒOpsïŒã®é£æºãèªååãçµç¹æåãææ°ã®äºäŸããã©ã¯ãã£ã¹ãçºè¡šããŠããŸããæ¥æ¬ã§ã¯ DevOpsDays Tokyo ãšããŠã幎ã«1åéãããŠããŸãã æ¬èšäºã§ã¯ãéçºçµç¹ã®ææãçµå¶å±€ã«ã©ãäŒãããããã®ããæ©ãŸããŠããæ¹ããAIãå°å
¥ããã®ã«ææãèŠããªããšæããæ¹ã«åããŠæžããŸããã3æ¥éã®ã€ãã³ãåå ãéããŠæ¹ããŠç¢ºä¿¡ãããå¯èŠåã¯çµç¹ãåãåºãããã®åææ¡ä»¶ã§ããããšããã¡ãã»ãŒãžããç»å£ã»åºèª¿è¬æŒã»çŸå°ã§ã®äŒè©±ã®3ã€ã®è§åºŠããæ¯ãè¿ããŸãã éçºçµç¹ã¯ãçµå¶ãããèŠããªãã ææãèŠããã圢ã§å¯èŠåããã°ãèŠããæè³ã«å€ãã çµå¶ãããèŠããªãããšèšãããéçºçµç¹ããä»çµã¿ã»æåã»ç¿æ
£ã®3å±€ã§èšºæ çµç¹èšèšã«æå³ãæã€ããšã§çµç¹ã®æŽ»åãèŠãã ææãèŠãåŽã«ç«ã£ãŠç¿»èš³ãã ä»çµã¿ãäœããæåãè²ãŠãç¿æ
£ãå€ããã°ãèŠããªãçŸå Žã¯èŠããæè³ã«å€ãã å¯èŠåããªãæ¹åã¯ãAIã«å¢å¹
ãããªã ãå¯èŠåãããŠã¯ãããŠã人ã¯åãã ãããã« éçºçµç¹ã¯ãçµå¶ãããèŠããªãã DevOpsãšããèšèã«ã€ããŠã®ããããã§ãããããšããšãDevãšOpsã®å£ãå£ããããšããå§ãŸããŸãããã³ã³ãããCI/CDãSREãšãã£ãæ¹æ³è«ãåºãŸããDev-Opséã®æ¯è²ãå€ãã£ããšæããæ¹ã¯å€ããšæããŸãã äžæ¹ã§ã Devãšçµå¶(Biz)ã®éã®å£ã¯äŸç¶ãšããŠé«ããŸãŸã§ã¯ãªãã§ãããã ã éçºéšéãäœããœãããŠã§ã¢ã¯åœ¢ããªããæçèšç®æžã«ã¯çµŠäžã販管費ãªã©ã®ãè²»çšããšããŠããèšé²ãããŸãããçµå¶å±€ã®é¢å¿ã¯å£²äžåäžãè²»çšåæžã«ããã®ã«å¯ŸããŠãéçºã®é¢å¿ã¯è£œåéçºã«ããããªãªãŒã¹é »åºŠã®åäžããªãŒãã¿ã€ã åæžã«ãããŸãããäºããéèŠã ãšæãææšãç°ãªãããšããããéããçã¿ç¶ããŠãããšèããŠããŸãã ææãèŠããã圢ã§å¯èŠåããã°ãèŠããæè³ã«å€ãã ä»åã®ç»å£ã§ã¯ããã¡ã€ã³ãã£ä»¥åã«åšç±ããŠããçŸå Žã®äºäŸã話ããŸãããçµå¶å±€ããç¶æ³ãèŠããªããšèšãããŠããéçºçµç¹ãæå³ãæã£ãŠåèšèšããæŽ»åã®è¯ãæªããèšæž¬ããããšã§æè³ã®å€æãã§ããç¶æ
ãšããäœéšè«ã§ãã ããŒãã¯ãDev-Bizã®å£ãã©ãè¶ããããã20åã®ã¹ãã³ãµãŒã»ãã·ã§ã³ã§æã¡æéã¯çãã£ããã®ã®ãèªåã®å顿èãèšèªåãã貎éãªæ©äŒã«ãªããŸããã çµå¶ãããèŠããªãããšèšãããéçºçµç¹ããä»çµã¿ã»æåã»ç¿æ
£ã®3å±€ã§èšºæ ç§ãéå»ã«åšç±ããŠããããäŒæ¥ã®éçºéšéã®è©±ã§ããé
å±ãããéçºéšéã¯çºè¶³ãã20幎ãçµã€èªç€ŸãµãŒãã¹ãæ
åœããŠãããå
補åãé²ããŠãããšããã§ãããæŽä»£ã®æ
åœè
ã¯éè·æžã¿ã§ãããã¥ã¡ã³ãããªããçŸå Žã®å€æã¯éçºæ
åœè
ã®å±äººçãªãã¬ããžã«å§ããããŠããŸããã ãšã³ãžãã¢ãªã³ã°ãããŒãžã£ãšããŠçµç¹ã®ç¶æ³ãææ¡ããããã«çŸå Žé¢ä¿è
ã«ãã¢ãªã³ã°ãå§ãããšãæ§ã
ãªããšãèŠããŠããŸããã ãŸããçµç¹ã®ãµã€ãåãé²ãä»çµã¿ãèŠããŠããŸãããéçºã«é¢ããã¡ã³ããŒã¯ãããžã§ã¯ãã®çµäºãšå
±ã«è§£æ£ããããçµç¹ãã¬ããžãæºãŸãã«ããããšããããŠæ°æ©èœéçºããŒã ïŒDevïŒãšéçšæ¹åããŒã ïŒOpsïŒã¯åæãããŠãããç¹ã«OpsããŒã ã«å±ããããæ¹åèŠæ±ã¯ããã®èæ¯ãäžéæãªãŸãŸæ¹ä¿®ãè¡ãããŠããŸããã æ¬¡ã«ãåãèº«ã®æåãæ ¹ä»ããŠããŸãããæŽå²çã«èŠæ±ã¯äºæ¥éšãäœæããéçºåŽã¯èŠæ±ãåŸ
ã€ç«å Žã ã£ãããã§ããããã«ãäžäœäžéã®é¢ä¿æ§ãããéçºåŽããã®ææ¡ãæèŠãåºãã¥ããç¶æ³ã§ããã æåŸã«ãçµå¶å±€ãããããšãPLãBSã®æ°å以äžã«éçºã®ç¶æ³ãèŠããªãç¶æ
ãç¶ããŠããŠããã以äžèžã¿èŸŒããªãç¶æ³ãç¿æ
£åãããŠããŸããããªãœãŒã¹ãã©ãã«éäžãã¹ãããéçºäºç®ã¯é©æ£ãªã®ãã®å€æãã§ããªãç¶æ³ã§ããã çµç¹èšèšã«æå³ãæã€ããšã§çµç¹ã®æŽ»åãèŠãã èŠããªãç¶æ
ã¯ãçµç¹ã®èšèšã«ããªãããããããã®æå³ããªãããšãåå ã§ããæåã®åãçµã¿ãšããŠTeam Topologiesã§çµç¹äœå¶ãåèšèšããŸããããããšã顧客ã®èŠæãã©ãããããŠã©ãã«æµããŠããã®ãïŒããªã¥ãŒã¹ããªãŒã ïŒãèŠããããã«ãªããããããã®éçºããŒã ã®è²¬ä»»ç¯å²ãããŒã éã®é¢ä¿æ§ãæç¢ºã«ãªããŸããã çµç¹ã®æ çµã¿ãæŽã£ããšããã§æ¬¡ã¯ããŒã ã®äžèº«ïŒãã€ã³ãã»ãããéçšã«ãŒã«ïŒã§ããã¢ãžã£ã€ã«éçºã®ã¹ã¯ã©ã ãã¬ãŒã ã¯ãŒã¯ãå°å
¥ããèªå·±ç®¡çåãé²ããŠãããŸãããããŒã èªèº«ãéçºæ¡ä»¶ã®åªå
床ãå®çŸæ¹æ³ã話ãåãããã«ãªããŸãããããã«ãã·ã¹ãã ç芳ç¹ããäºæ¥éšã®èŠæã«å¯Ÿããéææ¡ãçãŸããããã«ãªããŸããã ãããŠãæ°äœå¶ãåãåºããŠãããšããã§Findy Team+ãå°å
¥ããéçºããŒã ã®ãªãŒãã¿ã€ã ãããã«ããã¯ãå¯èŠåããå®éçãªããŒã¿ãåãå§ããŸãããå幎åŸã«ã¯ãªãŒãã¿ã€ã ãåŸæ¥æ¯8å²ççž®ããããã€é »åºŠã3å²å¢å ããçµå¶å±€ã«å¯ŸããŠãæ¹åãæ°åã§ç€ºããããã«ãªããŸããã ææãèŠãåŽã«ç«ã£ãŠç¿»èš³ãã Four Keysã«ããéçºæŽ»åã®ææããæ°æ©èœã宿ãããšãã«åŸãããã§ãããæåŸ
ããã売äžãã³ã¹ãåæžå¹æã¯éèŠãªæ°åã§ã¯ãããŸãããçµå¶å±€ãçè§£ããã«ã¯ããäžæ©èžã¿èŸŒãå¿
èŠããããŸãã äŸãã°éçºçç£æ§ãåäžããããšã§çšŒåå¯èœãªäººæãå¢ãããšåçã®å¹æãšæããã°ã管çäŒèšã®é
ç®ã®ã©ãã«å¢æžã®åœ±é¿ãçãŸããã®ãããããã¯ããªãªãŒã¹åæ°ãå¢ããããšã§äºæ¥èšç»ãã©ã®çšåºŠççž®ã§ããã®ããããããæ
å ±ã¯æ±ºç®æžã«ãæžãããããªè©±é¡ã§ãçµå¶å±€ã«ãšã£ãŠå¿
èŠãªæ
å ±ã§ãã ãã®ããã«ãæè³å€æãè¡ãçµå¶å±€ã®ç«å Žã«ç«ã¡ãéçºã®æŽ»åã翻蚳ããŠäŒããããšã§ãããããéçºéšéã«å¯Ÿããæè³å€æã®è°è«ãã§ããããã«ãªããŸããã ä»çµã¿ãäœããæåãè²ãŠãç¿æ
£ãå€ããã°ãèŠããªãçŸå Žã¯èŠããæè³ã«å€ãã 以äžãç®ã®åã®åé¡ã®çŽæ¥è§£æ±ºã§ã¯ãªããåé¡ãçã¿åºãæ§é ïŒä»çµã¿ã»æåã»ç¿æ
£ïŒã«ç®ãåããŠæ ¹æ¬è§£æ±ºãä¿ãã¹ããŒãªãŒã§ããã ããã«è©³ããå
容ã¯ã¹ã©ã€ããã芧ããã ãããšããããã§ãã èŠããªãéçºçŸå ŽããèŠããæè³ã«å€ãã â Speaker Deck å¯èŠåããªãæ¹åã¯ãAIã«å¢å¹
ãããªã ãå¯èŠåã倧äºããšã¯èšããç¶ããŠããŸãããããã§ãä»ãã®ããŒãã§ç»å£ããããšæã£ãã®ã¯ãAIæä»£ã«å
¥ã£ãŠããã®éèŠæ§ã以åã«ãå¢ããŠå€§ãããªã£ãŠãããšæããŠããããã§ãããããŠããã®çŽæã¯ã«ã³ãã¡ã¬ã³ã¹ã®åºèª¿è¬æŒã§è£ä»ããããŸããã Google Cloudã§DORAïŒDevOps Research and AssessmentïŒããã°ã©ã ãçããNathen Harveyæ°ã«ããã°ã 2025幎ã®èª¿æ»ã§AIæ¡çšçã¯90%ã«éãã ããã§ãïŒå幎æ¯ïŒ14%ïŒã äžæ¹ã§ãã³ãŒãå質ãå人ã®çç£æ§ã¯äžãã£ããã®ã®ã ãœãããŠã§ã¢ããªããªãŒã®å®å®æ§ã¯æªåããŠããŸãã ãHarveyæ°ã¯ãã®çŸè±¡ãèžãŸããŠãAIã®åœ¹å²ãã å¢å¹
åšïŒamplifierïŒ ããšè¡šçŸããŠããŸããã è¯ãã·ã¹ãã ã«ã¯è¯ãçµæããæªãã·ã¹ãã ã«ã¯æªãçµæãå¢å¹
ãããã® ãšããæå³åãã§ãã ãã®æ¯å©ããã£ããæ¥ãã®ã¯ãå¢å¹
ãããããã«ã¯ãŸããäœãèµ·ããŠãããããèŠããŠããªããã°ãªããªãããšããåœããåã®åæãæµ®ãã³äžããããã§ãã å¯èŠåãããŠããªãããŒã¿ãAIã«äžããŠããã€ãºãå¢å¹
ããã ãã§ããå¯èŠåãããŠããªãéçºçµç¹ã¯ãAIãå
¥ããŠãäœãè¯ããªã£ãã®ãæªããªã£ãã®ããã倿ã§ããŸããã AIæ¡çšã¯ãå¯èŠåãããåå°ã®äžã§ã¯ãããŠææã«çµã³ã€ã åºèª¿è¬æŒããåãåã£ãã¡ãã»ãŒãžã¯ããã«éçŽãããŠããŸããã ãããŠãããäžã€ã®åºèª¿è¬æŒã§DevOpsã ãŒãã¡ã³ãã®ç€ãç¯ããäžäººã§ããAndrew Clay Shaferæ°ãæ®ããã è¡åãå€ãããŸã§ã¯ãäœãåŠãã§ããªã ããšããäžèšããåãããšãå¥ã®è§åºŠããèšã£ãŠãããšæããŸãããèŠããªããã°åŠã¶ããšã¯ã§ããªãã§ãããéé²ã«è¡åããããšã«ãªããŸããããã¯åŠãã§ããªãã®ãšåãããšã§ãã ããã§è§Šãã2ã€ã®åºèª¿è¬æŒã®ã»ãã·ã§ã³æ
å ±ã¯æ¬¡ã®ãšããã§ãã confengine.com confengine.com ãå¯èŠåãããŠã¯ãããŠã人ã¯åãã 3æ¥éã§äžçªå¿ã«æ®ã£ãã®ã¯ãæè¡çãªè°è«ã§ã¯ãªããå€ã®æèŠªäŒã§äº€ãããäžã€ã®äŒè©±ã§ããã æèŠªäŒã§æ¥æ¬é
ãåå è
ã«å§ããŠãããšããããŸããŸDay1ã®åºèª¿è¬æŒã¹ããŒã«ãŒã®Nathen Harveyæ°ãè¿ãã«ããŸãããè奮ããŠæ¡æã亀ããèªå·±ç޹ä»ããããšã圌ã¯ã ãã¡ã€ã³ãã£ã®ãããã¯ããèŠããŠæ¬²ãã ããšãªã¯ãšã¹ãããŠãããŸããã ãã®å Žã§ããŒã¹æ
åœè
ãåŒãã§ãéçºçç£æ§å¯èŠåã®ãã¢ãããŸããã圌ã¯ãããèŠçµããåŸãããèšããŸããã å¯èŠåããããšã§ããããã人ã¯åãåºããã ããã èªåã®ç»å£ã§äŒãããã£ãããšããåºèª¿è¬æŒã§èªãããŠããDORAã®ç ç©¶ãã3æ¥éã§åºäŒã£ã人ãã¡ãå
±æããŠããå顿èãããã®äžæã§èšã衚ãããŠãããšæããŸããã Four Keysã®ãããªçç£æ§ææšã§ å
åŽã®çŸåšå° ããDORAã®ãããªèª¿æ»ã¬ããŒãã§ å€åŽã®æ¹åæ§ ãæããäž¡è
ã®ã®ã£ãããåããŠãããŸãã å¯èŠåã¯ãŽãŒã«ã§ã¯ãªããçµç¹ãåãåºãããã®åºçºç¹ã§ãã Dev-Bizã®å£ãè¶ããã«ããAIãå¢å¹
åšãšããŠæŽ»ããã«ããå
±éã㊠ãŸãèŠããŠããããš ãèŠããŸããããã3æ¥éã貫ããŠããã¡ãã»ãŒãžã§ããã ç¿æ¥ã®ã¹ããŒã«ãŒã€ã³ã¿ãã¥ãŒã®ã¢ã€ã¹ãã¬ã€ã¯ã§ãæ¥æ¬ã«æ¥ãŠã©ãã§ããïŒããšèãããHarveyæ°ãã ãã¡ã€ã³ãã£ã«äŒããããšãæãåºã«ãªã£ã ããšçããŠãããã®ã¯ãå¬ããããŸãã§ããã ãããã« éçºçµç¹ãçãããããžã¡ã³ãå±€ã«ãšã£ãŠãå¯èŠåã¯ãããã°äŸ¿å©ãªæ©èœãã§ã¯ãªããåãåºãããã®åææ¡ä»¶ãã ãšãä»åã®3æ¥éã§æ¹ããŠç¢ºä¿¡ããŸãããåœç€Ÿã¯ææšãèšæž¬ãããµãŒãã¹ãæäŸããåŽã ãããããçµç¹ãæªãŸããªãèšèšã«è²¬ä»»ããããšã身ãåŒãç· ãŸãæãã§ãã DevOpsDays Tokyoã«åå ããããšã§ãã¹ããŒã«ãŒå士ãéå¶ã®æ¹ã
ããããŠæµ·å€ç»å£è
ãšã®ç¹ãããã€ããããšãã§ããDevOpsæåã«è²¢ç®ãããæ°æã¡ãé«ãŸããŸãããæ¥å¹Žã®éå¬ã楜ãã¿ã«ããŠããŸãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ãœãããŠã§ã¢éçºçŸä»£å²å¹Žè¡šVer2.08 ã¯ããã« ããªããªãŒã¯éããã°ããã®ã æ¹ããŠãFour Keysã¯äœã枬ã£ãŠããã®ã ããããã€ããšããªãªãŒã¹ãã®æ··åãFour Keysãé ããã Dave Farleyæ°ãšã¯ ãContinuous Deliveryã(2010) ã¯äœãå€ããã äºã€ã®æå³ãæã€ããªãªãŒã¹ã AIæä»£ã«ãç¶ç¶çããªããªãŒã¯ãªãéèŠã«ãªãã®ã AIé§åéçºã空åããããªãããã« ãåç¥ãAI DevEx Conference 2026 - Future of Development Productivity - ãããã« ã¯ããã« ããã«ã¡ã¯ãããã¯ããã°ç·šéé·ã®é«æ©ïŒ @Taka-bow ïŒã§ãã åé ã«æ²èŒããããœãããŠã§ã¢éçºçŸä»£å²å¹Žè¡šVer2.08ãã¯ããœãããŠã§ã¢éçºã®èãæ¹ãã©ã®ããã«å€åããŠããã®ãããã§ããã ãäžæã§èŠæž¡ããããã«æŽçãããã®ã§ãã ãã®å¹Žè¡šã®äžã«ã2010幎ã®ãContinuous DeliveryãããããŸãïŒèµ€æ ïŒã Jez HumbleïŒãžã§ãºã»ãã³ãã«ïŒæ°ãšDave FarleyïŒãã€ãããã»ãã¡ãŒãªãŒïŒæ°ã«ãããã®æ¬ã¯ãCI/CDãFour Keysãèããããã§ãåºçºç¹ã«ãããäžåã§ãã æ¬èšäºã§ã¯ããã®ãContinuous Deliveryããèµ·ç¹ãšããæµããåãäžããŸãã çæAIã«ãã£ãŠãã³ãŒããæžãé床ã¯å€§ããäžãããŸãããAIé§åéçºãšããèšèãåºãããå®è£
ãããããã€ãŸã§ã®æéã¯ãŸããŸãçããªããŸããã ãããããœãããŠã§ã¢ãéãäœããããšãšã䟡å€ãããã®ãç¶ç¶çã«å±ããããããšã¯ãåãã§ã¯ãããŸããã ããã§ä»åã¯ãDave Farleyæ°ã®åæ¥æ¥ã«å¯ããŠãAIé§åéçºãæ©èœãããåå°ãšããŠã®ç¶ç¶çããªããªãŒã«çŠç¹ãåœãŠãŸãã Dave Farleyæ°ãç¯ããŠããç¶ç¶çããªããªãŒãšã¯äœãããããDORA Metricsãšã©ãã€ãªãã£ãŠããã®ãããããŠAIæä»£ã«ãã®ææ³ããªããã£ããéèŠã«ãªãã®ããæŽçããŸãã ããªããªãŒã¯éããã°ããã®ã ãããããã®å Žãã®ãã®èšãèš³ãææ§ãªè¿çããè麊å±ã®åºåãããªããã ããããšãããªããèšãåãããããŸããããããªæ¯å©ãéããã»ã©ããã€ãŠã®åºåïŒããªããªãŒïŒã¯ãé
ããŠåœãŠã«ãªããªããã®ããšèŠãããŠããã®ã§ãããã ããŸã¯éããŸããUber Eatsãmenuãåºå通ã®ãããªå°éãµãŒãã¹ãå¢ãããã¯ããã«ãã®ããã«é£²é£åºèªèº«ãå±ããŠãããããšãåœããåã«ãªããŸããã ããã¶ã®ããªããªãŒã¯30å以å
ãããããªã€ã¡ãŒãžãæã£ãŠãã人ãå€ãã®ã§ã¯ãªãã§ãããããéãå±ãããšèªäœããã²ãšã€ã®äŸ¡å€ã«ãªã£ãŠããŸãã ãããã30åã§å±ãããã¶ã§ããå·ããã£ãŠããããæ³šæãšéããã®ãå±ããããããã©ãã§ããããéãå±ããããšã䟡å€ãããã®ãå±ãããã¯ãå¥ã®åãã§ãã ãœãããŠã§ã¢ã®ãããªããªãŒããåãã§ãã ç§ãã¡ãšã³ãžãã¢ã«ãšã£ãŠã®ããªããªãŒãšããã°ãCI/CDã®ãCDããããªãã¡Continuous DeliveryïŒç¶ç¶çããªããªãŒã§ããæåã©ãããããœãããŠã§ã¢ã®äŸ¡å€ãããç¶ç¶çãã«ãå±ãããããšãæããŸãã è¿å¹Žã¯çæAIã®ç»å Žã«ãã£ãŠãå®è£
ãããããã€ãŸã§ã®æµããç®ã«èŠããŠéããªã£ãŠããŸãããœãããŠã§ã¢ã®ãããªããªãŒæéããçããªã£ãŠããããšã¯ãå€ãã®çŸå Žã§äœæãããŠããã¯ãã§ãã ãã ããéãã¯ãœãããŠã§ã¢ã®ããªããªãŒããã©ãŒãã³ã¹ã®äžé¢ã«ãšã©ãŸããŸããããŒãããªããªãŒãšåãããéãå±ãããšãšã䟡å€ãããã®ãå±ãããšã¯å¥ã®è©±ã§ãã ãã®åæã«ç«ã€ãšãFour Keysã®èŠãæ¹ãå°ãå€ãã£ãŠããŸãã æ¹ããŠãFour Keysã¯äœã枬ã£ãŠããã®ã ãœãããŠã§ã¢éçºã®ããªããªãŒããã©ãŒãã³ã¹ãæž¬ãææšãšããŠãFour Keysãããã³çŸåšã®DORA Metricsãåºãç¥ãããŠããŸãã ããã¯ãç¶ç¶çããªããªãŒïŒContinuous DeliveryïŒãéèŠããŠãããœãããŠã§ã¢ããªããªãŒã®èœåããèšæž¬å¯èœãªææšãšããŠæããããšãããã®ã§ããDORA Metricsãçè§£ããããšã¯ãç¶ç¶çããªããªãŒãç®æããã®ãçè§£ããããšã«çŽçµããŸãã äžæ¹ã§ãã客æ§ãšè©±ããŠãããšãããªå£°ãããè³ã«ããŸãã ãæã
ã«ã¯Four Keysã®ãããªèšæž¬ææ³ã¯ãã£ããæ¥ãŸããããªããªããã¢ãžã£ã€ã«ã¿ããã«äœåºŠããªãªãŒã¹ãããããªããã§ãã ãã®çåãèããåã«ããŸãDORAãçŸåšããœãããŠã§ã¢ããªããªãŒããã©ãŒãã³ã¹ããã©ãæããŠããããæŽçããŠãããŸãããã DORAã«ããããœãããŠã§ã¢ããªããªãŒããã©ãŒãã³ã¹ã®æ§é DORAã¯è¿å¹Žã®ã¬ããŒãã§ãããœãããŠã§ã¢ããªããªãŒããã©ãŒãã³ã¹ãã2ã€ã®è»žã«æŽçããŠããŸãã ã²ãšã€ã¯ããœãããŠã§ã¢ããªããªãŒã¹ã«ãŒãããïŒsoftware delivery throughputïŒããã€ãŸããã¹ããŒããšå¹çæ§ã®è»žã§ããæ¬¡ã®3ã€ã§æž¬ããŸãã 倿ŽãªãŒãã¿ã€ã ïŒchange lead timeïŒ ãããã€é »åºŠïŒdeployment frequencyïŒ ãããã€å€±ææã®åŸ©æ§ãŸã§ã®æéïŒfailed deployment recovery timeïŒ ããã²ãšã€ã¯ããœãããŠã§ã¢ããªããªãŒã®äžå®å®æ§ïŒsoftware delivery instabilityïŒããããã¯ãå質ãšä¿¡é Œæ§ã®éææšïŒäœãã»ã©è¯ãïŒã§ããæ¬¡ã®2ã€ã§æž¬ããŸãã 倿޿ã®é害çïŒchange failure rateïŒ ããçŽãçïŒrework rateïŒ æ§æ¥ã®ãFour KeysãïŒ2018幎é ïŒã¯ãããã€é »åºŠã»å€æŽãªãŒãã¿ã€ã ã»å€æŽæã®é害çã»ãµãŒãã¹åŸ©æ§æéã®4ææšã§ããããçŸåšã®DORAã§ã¯5ææšããã¹ã«ãŒãããããšãäžå®å®æ§ãã®2è»žã«æŽçãçŽããŠããŸãã ãã®åæŽçã¯ãDORAããœãããŠã§ã¢ããªããªãŒãåãªãéãã§ã¯ãªããéããšäžå®å®æ§ã®äž¡é¢ããæããããšããŠããããšã瀺ããŠããŸããAIé§åéçºã«ãã£ãŠã³ãŒãã®çæéãå質ã®åŸåã倧ããåãããŸããã®èŠæ¹ã¯ãŸããŸãéèŠã«ãªã£ãŠããŸãã æ¬¡ã«ããããã®ææšãSDLCïŒãœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã«ïŒäžã®ã©ãã«åœãŠã¯ãŸãã®ããèŠãŠã¿ãŸãããã DORA MetricsãSDLCäžã®ã©ãã«åœãŠã¯ãŸããã瀺ããå³ ãã®å³ã§ãŸãèŠãŠã»ããã®ã¯ããããã€ãšãªãªãŒã¹ã®äœçœ®é¢ä¿ã§ãããããã€ã¯SDLCäžã®ã²ãšã€ã®ãã§ãŒãºã§ããããªãªãŒã¹ïŒå³äžã®âŒïŒã¯ãã®ããšã«äœçœ®ããŸãã DORA Metricsã®ãã¡ãé »åºŠãšããŠæž¬ãã®ã¯ãªãªãŒã¹åæ°ã§ã¯ãªããããã€é »åºŠã§ãããããåãéãããšãããªãªãŒã¹åæ°ãå°ãªãèªåãã¡ã«ã¯Four Keysã¯åããªãããšããéåæãçãŸããŸãã å®éããããã€ãšãªãªãŒã¹ãã²ãšãŸãšãŸãã®ã€ãã³ããšããŠæ±ãçŸå Žãå°ãªããªããæŽå²ã®é·ãçµç¹ã»ã©ããã®åŸåãæ ¹åŒ·ãå°è±¡ã§ãã ããããDORA MetricsãèŠãŠããã®ã¯ããŠãŒã¶ãŒã«äœåå
¬éããããã§ã¯ãªããã倿Žãã©ãã ãç¶ç¶çã«æ¬çªãžå±ããããŠããããã§ããå³ã®äžã§ãªãªãŒã¹ãäœåºŠãç»å ŽããŠããçç±ã¯ãåŸã®ç« ãäºã€ã®æå³ãæã€ããªãªãŒã¹ããã§è©³ããæ±ããŸããïŒããã§ã¯ãŸããDORA Metricsã¯ããªãªãŒã¹åæ°ãã§ã¯ãªãã倿Žãã©ãã ãéããå®å®ããŠå±ããããŠããããæããææšã ãšæŒãããŠãã ãããïŒ ãŸããæè¿ã¯AIé§åéçºãåºãŸãã«ã€ããŠããããªå£°ãèãããã«ãªããŸããã ãAIæä»£ã«Four Keysã¯åããªãã§ãããã ãã®èŠæ¹ããå°ãç«ã¡æ¢ãŸã£ãŠèããå¿
èŠããããŸãã çæAIã¯ããšãããå®è£
ã»ãã¹ãã®ãã§ãŒãºã倧ããéãããŸããããã»ã©ã®å³ã§èŠããšãããå®è£
ã»ãã¹ãã¯ãããã€ã®æåã«ãããŸãããããéããªãã°ããã®å€åã¯äžæµã®ãããã€ããDORA Metricsã®ã倿ŽãªãŒãã¿ã€ã ãã«ã衚ããŸãã ãã¡ãããéããªãã®ã¯è¯ãé¢ã ãã§ã¯ãããŸããã çæAIãåºåããã³ãŒããéµåã¿ã«ããã°ãæ¬ é¥ãèŠéããªã¹ã¯ãé«ãŸããŸãããã®åœ±é¿ã¯ãDORAãããããœãããŠã§ã¢ããªããªãŒã®äžå®å®æ§ïŒsoftware delivery instabilityïŒãïŒããçŽãçã倿޿ã®é害çïŒã«ãçŸããŸãã ã€ãŸããçæAIã¯DORA MetricsãäžèŠã«ããã©ããããæ°å€ã倧ããåãããŸãã ã ãããããDORA Metricsãäœã枬ã£ãŠããŠãäœã枬ã£ãŠããªãã®ããçè§£ããå¿
èŠããããŸãããã®çè§£ã®åºçºç¹ããããããã€ããšããªãªãŒã¹ãã®éãã§ãã æ¬¡ç« ã§ã¯ãFour Keysãžã®éåæãçã¿ããããã®æ··åããããå°ãäžå¯§ã«ã»ã©ããŠãããŸãã ããããã€ããšããªãªãŒã¹ãã®æ··åãFour Keysãé ããã Four Keysãžã®æžæãã¯ãAIãçŸãããããåãããããŸãã ãã®å€§ããªçç±ã®ã²ãšã€ããããããã€ããšããªãªãŒã¹ããšããäºèªã®æ··åã ãšæã£ãŠããŸãããŸãã¯ããã®äºã€ãåããŠãããŸãããã ãããã€ïŒDeploymentïŒ ãªãªãŒã¹ïŒReleaseïŒ æå³ ã³ãŒããèšå®ãæ¬çªç°å¢ã«åæ ããäœæ¥ æ©èœããŠãŒã¶ãŒãå®éã«äœ¿ããç¶æ
ã«ãã倿 æ§è³ª æ©æ¢°çã»æè¡çïŒèªååãå¯èœïŒ ããžãã¹å€æïŒå
¬éã¿ã€ãã³ã°ãã³ã³ãããŒã«ïŒ é »åºŠ é«é »åºŠïŒæ¥æ¬¡ã»æéåäœãããããïŒ æ©èœããšã»å
¬éæŠç¥æ¬¡ç¬¬ ãšããããå€ãã®çŸå Žã§ã¯ãã®äºã€ãåãé¢ããããã²ãšã€ã®å€§ããªã€ãã³ããšããŠæ±ãããŠããŸãããããã€ããªãªãŒã¹ãããã£ãã«è¡ããªãéãäœæ¥ãã«ãªã£ãŠããã°ãFour Keysãèªåãã¡ãšã¯ç¡çžã«èŠããŠããŸãã®ãåœç¶ã®æèŠã§ãã ããšãã°ãã²ãŒãããŒããŒåã®QAã眮ããããªãªãŒã¹å€å®äŒè°ããçµãŠæ¬çªã«åºãæµãã§ãããã®å ŽåãçŸå Žã®æèŠãšããŠã¯ããªãªãŒã¹å€å®äŒè° â ãããã€ãã®é åºã«èŠããŸãã æã®ãªãªãŒã¹åè£ãã€ã«ã¹ãã³ããäœã¶æããããŠæ¬¡ã®æ®µéãžé²ããŠãã圢ã§ããã flowchart LR A["ãã¬ã¢ã«ãã¡ç<br/>(pre-α)"] --> B["ã¢ã«ãã¡ç<br/>(α)"] --> C["ããŒã¿ç<br/>(β)"] --> D["ãªãªãŒã¹åè£ç<br/>(RC)"] --> E["ãŽãŒã«ããªãªãŒã¹ç<br/>ãŽãŒã«ãã³ãã¹ã¿ãŒç<br/>(GM)"] ããã¯ããœãããŠã§ã¢ãç©çããã±ãŒãžã§åºè·ãããŠããæä»£ã®åæ®ã§ããããŸããCD-ROMãçŒãïŒæžã蟌ã¿ïŒãçŽã®ããã¥ã¢ã«ã忢±ããŠç®±ã«è©°ããããã°ãèŠã€ããã°ãã£ã¹ã¯ã®çŒãçŽããããã¥ã¢ã«ã«ãã¹ãããã°è£œæ¬ã®ããçŽãâ¯â¯ææ»ãã¯ãæéãšã³ã¹ãã®äž¡é¢ã§èŽåœçãªãã¡ãŒãžã§ããã ããããæä»£ã¯å€ãããŸãããé«éãªãããã¯ãŒã¯ããã¯ãã«ãªPCãã¹ãã¬ãŒãžã®å€§å®¹éåãçŽåªäœã®é»ååâ¯â¯ããæ¹ãéå»ã®ãŸãŸã«ããŠããçç±ã¯ããããããŸããã ããã§ããã®æµããåæã«ããŠãããšããªãªãŒã¹ãšãããã€ã®é©åãªã¿ã€ãã³ã°ãé åºããããŠé »åºŠã®æèŠã¯åãããªããŸãŸã§ãã ãã®æ··åãã»ã©ããããªãªãŒã¹ãã®äºã€ã®æå³ãåé¢ããèãæ¹ãäœç³»åããã®ããJez Humbleæ°ãšDave Farleyæ°ã§ãã Humbleæ°ã¯ãã®åŸãDORAã®èšç«ã¡ã³ããŒãšããŠãDORA Metricsã®ç€ãç¯ããŠãããŸãããä»åã¯ãããäžäººã®èè
ã§ããDave Farleyæ°ã«ã¹ããããåœãŠãŸãã Dave Farleyæ°ãšã¯ Dave Farleyæ°ã¯ãç¶ç¶çããªããªãŒãèªãããã§é¿ããŠéããªã人ç©ã§ãã David(Dave) Farley(Image source: InfoQ.com) Jez Humbleæ°ãšã®å
±èãContinuous DeliveryãïŒ2010ãJolt Awardåè³ïŒã¯ãCI/CDããããã€ã¡ã³ããã€ãã©ã€ã³ããããã€ãšãªãªãŒã¹ã®åé¢ãšãã£ãèãæ¹ãåºããçŸä»£ã®ãœãããŠã§ã¢ããªããªãŒã®åæãã€ãã£ãäžåã§ããåèãModern Software EngineeringãïŒ2021ïŒã§ãããœãããŠã§ã¢éçºããšã³ãžãã¢ãªã³ã°ãšããŠæãçŽãèãæ¹ã瀺ããŠããŸãã DORA Metricsãããã®ç¶ç¶çããªããªãŒã®ææ³ãšå°ç¶ãã«ãããŸããã€ãŸãFarleyæ°ã¯ããç¶ç¶çããªããªãŒã®æ¬ãæžãã人ãã«ãšã©ãŸãããçŸåšã®ãœãããŠã§ã¢ããªããªãŒã®è°è«ãã®ãã®ã«åœ±é¿ãäžããŠãã人ç©ã§ãã Farleyæ°ã®èšèã«éã¿ãããã®ã¯ãå®è·µã®çŸå Žã§ã倧ããªä»äºãæ®ããŠããããã§ãã äœã¬ã€ãã³ã·ã·ã¹ãã ã®åéã§ã¯ãDuke Awardãåè³ãããªãŒãã³ãœãŒã¹ãããžã§ã¯ããLMAX Disruptorãã«è²¢ç®ããŠããŸãã䞊è¡åŠçãé«ã¹ã«ãŒãããã®èšèšãèªãå Žé¢ã§ãããŸãåç
§ããç¶ããä»äºã®äžã€ã§ãã ããã«ãå¿çæ§ãå埩æ§ãåŒŸåæ§ãéèŠããããªã¢ã¯ãã£ãã·ã¹ãã ãã®èãæ¹ã瀺ãã Reactive Manifesto ã®å
±åå·çè
ã§ããããŸãã è¿å¹Žã¯YouTubeãã£ã³ãã«ã Modern Software Engineering ãïŒæ§åContinuous DeliveryïŒã®äž»å®°è
ãšããŠãäžçäžã®ãšã³ãžãã¢ã«ç¶ç¶çããªããªãŒãã¢ãã³ã»ãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ã®èãæ¹ãçºä¿¡ãç¶ããŠããŸããããã£ã³ãã«ç»é²è
æ°ã¯26äžäººãè¶
ããŠããŸãã www.youtube.com è±èªåã®ãšã³ãžãã¢ã«ãšã£ãŠã¯ãç¶ç¶çããªããªãŒã®ä»£è¡šçãªæžç±ãäžã«åºãã人ã§ãããªãããããŸãYouTubeãéããŠææ°ã®ãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ãèªãç¶ããååšã§ãã www.youtube.com Farleyæ°ã¯è¿å¹ŽãDORAïŒDevOps Research and AssessmentïŒã®å¹Žæ¬¡ã¬ããŒãã«ãåå ããŠããŸãã2022幎ã¯10人ã®èè
ã®äžäººãšããŠã2023幎ã¯ãç¶ç¶çããªããªãŒã®å¹çšïŒBenefits of continuous deliveryïŒãã®ç« ã®å·çè
ããã³åéã¢ããã€ã¶ãŒãšããŠã2024幎ã¯åéã®å°éå®¶ãšããŠå ±åæžã«åãé£ããŠããŸãã ãContinuous Deliveryã(2010) ã¯äœãå€ããã Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)) äœè
: Jez Humble , David Farley Addison-Wesley Professional Amazon ç¶ç¶çããªããªãŒ ä¿¡é Œã§ãããœãããŠã§ã¢ãªãªãŒã¹ã®ããã®ãã«ãã»ãã¹ãã»ãããã€ã¡ã³ãã®èªåå äœè
: Jez Humble , David Farley KADOKAWA Amazon Jez Humbleæ°ãšFarleyæ°ã2010幎ã«åºçãããContinuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automationãã¯ãäœãå€ããã®ã§ããããã 2010å¹ŽåœæããªãªãŒã¹ã¯éãã倱æãèš±ãããªãã€ãã³ããšããŠæ±ãããŠããŸãããæ¬çªæå
¥ã®åã«ã¯é·ãèª¿æŽæéãããã倿Žã¯ã§ããã ããŸãšããŠåºãã®ãåœããåã§ããã ãContinuous Deliveryãã¯ããã®åæãèŠçŽãèãæ¹ã瀺ããŸããã ããã§ãããDeliveryãã¯ããœãããŠã§ã¢ããã€ã§ããªãªãŒã¹ã§ããç¶æ
ã«ä¿ã¡ç¶ããããšãæããŸãããããã€äœæ¥ãã®ãã®ãããŠãŒã¶ãŒå
¬éãšããŠã®ãªãªãŒã¹ãšã¯å¥ã®æŠå¿µã§ãã äž»åŒµã®æ±ã¯ã次ã®3ã€ã§ãã ãããã€ã¡ã³ããã€ãã©ã€ã³ãšããæŠå¿µã®æå± ããœãããŠã§ã¢ãåžžã«ãªãªãŒã¹å¯èœãªç¶æ
ã«ä¿ã€ããšããèãæ¹ èªååã®ç¯å²ããçµ±åïŒCIïŒãããããããã€ã¡ã³ãããŸã§åºããããš ãããã¯èªååã®å¯Ÿè±¡ç¯å²ãåºãããšãšãã«ããœãããŠã§ã¢éçºã®æåã«ã圱é¿ãäžããŸããã倿ŽããŸãšããŠéãåºã圢ãããé »ç¹ã«å°ããåºããŠå®å®æ§ãé«ãã圢ãžãšãèãæ¹ãå€ãããŸããã ãªãªãŒã¹ã¯äžå€§ã€ãã³ãã§ã¯ãªããªãããã€ãªãŒãªããæéåäœã®æŽ»åã«ãªããŸããã ããããå€åã®ãªãã§ãããããã€ããšããªãªãŒã¹ããåããŠèããçºæ³ãåºãããŸãããæ¬¡ç« ã§ã¯ãã®åé¢ã«ã€ããŠè©³ããèŠãŠãããŸãã äºã€ã®æå³ãæã€ããªãªãŒã¹ã ããªãªãŒã¹ããšããèšèããããããã®ã¯ãç¶ç¶çããªããªãŒã«åãçµãã§ãããã©ããã§ãæããŠãããã®ãå€ããããã§ãã æ§æ¥ã®ãªãªãŒã¹ç®¡çã§ã¯ãããªãªãŒã¹ãã¯æ¬çªæå
¥ã«åããæ¿èªã»èšç»ã»èª¿æŽãå«ãã倧ããªãããžã¡ã³ãäžã®åºåãã§ããããªãªãŒã¹å€å®äŒè°ãçµãŠããããã€ãããŠãŒã¶ãŒã«å
¬éããããããå
šäœããŸãšããŠããªãªãŒã¹ããšåŒãã§ããã®ã§ãã flowchart LR A["ãªãªãŒã¹å€å®äŒè°"] -- "å€å®OK" --> B subgraph Release["ãªãªãŒã¹"] direction LR B["ãããã€<br/>ïŒæåïŒ"] --> C["ãŠãŒã¶ãŒå
¬é"] end äžæ¹ãç¶ç¶çããªããªãŒã§ã¯ããã®ãŸãšãŸããåè§£ããŸãããããã€ã¯èªååãããåæ äœæ¥ãšããŠé«é »åºŠã«è¡ãããŠãŒã¶ãŒå
¬éãšããŠã®ãªãªãŒã¹ãšã¯åãåããŠèããŸãã ãã®æèã§ã®ããªãªãŒã¹ãã¯ããŠãŒã¶ãŒãæ°æ©èœãå®éã«äœ¿ããããã«ãªãç¬éã§ããã€ãŸããå
ã«ãããã€ããŠãããåŸã§å
¬é倿ã«ãã£ãŠãªãªãŒã¹ããããšããé åºã«ãªããŸãã flowchart LR A["ãããã€<br/>ïŒèªåïŒ"] --> B["æ¬çªç°å¢<br/>ïŒãŸã éå
¬éïŒ"] B -- "å
¬é倿" --> C["ãªãªãŒã¹<br/>ïŒãŠãŒã¶ãŒå
¬éïŒ"] ã ãããããªãªãŒã¹ â ãããã€ãããããã〠â ãªãªãŒã¹ãããçŸå Žã§ã¯ã©ã¡ããæ£ããèšãæ¹ã«ãªãããŸããåé¡ã¯é åºãã®ãã®ã§ã¯ãªããããããã®ããªãªãŒã¹ããå¥ã®æå³ãæããŠããããšã§ãã ãã®éãã¯ãã³ã³ããã«ããšãããšåããããããªããŸãã ããã〠= ååãããã¯ã€ãŒãã«æ¬å
¥ããäœæ¥ ãªãªãŒã¹ = ãã®ååãé³åæ£ã«äžŠã¹ãŠã顧客ãè²·ããããã«ãã倿 flowchart LR Code["æ°åå<br/>ïŒã³ãŒãïŒ"] --> Deploy(("ãããã€<br/>ïŒæ©æ¢°çã»é«é »åºŠïŒ")) Deploy --> Backyard["ããã¯ã€ãŒã<br/>ïŒæ¬çªç°å¢ïŒ"] Backyard --> Release(("ãªãªãŒã¹<br/>ïŒããžãã¹å€æïŒ<br/>â»Feature Flag")) Release --> Shelf["é³åæ£<br/>ïŒãŠãŒã¶ãŒã«å
¬éïŒ"] Shelf --> Buy(("ååãéžãã§<br/>賌å
¥")) Buy --> Customer["顧客<br/>ïŒãŠãŒã¶ãŒïŒ"] ããã¯ã€ãŒãã«æ¬å
¥ããããšïŒãããã€ïŒãšãé³åæ£ã«äžŠã¹ã倿ïŒãªãªãŒã¹ïŒã¯ãæ¬æ¥å¥ã
ã®ãã®ã§ããJez Humbleæ°ãšFarleyæ°ã¯ãContinuous Deliveryãã§ããã®äºã€ãæå³çã«åé¢ããçºæ³ãæç€ºããŸããã ãããã€ã¯æ©æ¢°çãªåæ äœæ¥ãšããŠãã§ããéãèªååããé«é »åºŠã«è¡ã ãªãªãŒã¹ã¯ããžãã¹å€æãšããŠãæ©èœã®å
¬éã¿ã€ãã³ã°ãã³ã³ãããŒã«ãã ãã®åé¢ãæ¯ãã代衚çãªä»çµã¿ãããã£ãŒãã£ãŒãã©ã°ïŒFeature FlagïŒãã«ããªã¢ãªãªãŒã¹ããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã§ããããšãã°ãã£ãŒãã£ãŒãã©ã°ã䜿ãã°ãã³ãŒãã¯æ¬çªç°å¢ã«çœ®ãããŸãŸãæ©èœã®æå¹ïŒç¡å¹ãå
¬é察象ãåãæ¿ããããŸãã ãã ãããããã®ä»çµã¿ã«ãéçã¯ãããŸããããŒã¿ããŒã¹ã®ã¹ããŒã倿Žãå€éšãµãŒãã¹ãžã®å¯äœçšã䌎ãåŠçã§ã¯ãèšèšãéçšã«ãŒã«ãå«ããåããå¿
èŠã§ãã å
·äœçãªéçšäŸã¯ãFindy Tech Blogã®éå»èšäºã§ã玹ä»ããŠããŸãã tech.findy.co.jp AIæä»£ã«ãç¶ç¶çããªããªãŒã¯ãªãéèŠã«ãªãã®ã ãããŸã§èŠãŠããããã«ãç¶ç¶çããªããªãŒã¯åãªãèªååã®è©±ã§ã¯ãããŸããã 倿Žãå°ããä¿ã¡ãçŽ æ©ããã£ãŒãããã¯ãåŸãŠããã€ã§ãå®å
šã«ãªãªãŒã¹ã§ããç¶æ
ãç¶æããããã®èŠåŸã§ãã Farleyæ°ã¯ãModern Software EngineeringãïŒ2021ïŒã§ããéçºãã®ãã®ããšã³ãžãã¢ãªã³ã°ãšããŠæãçŽããçŽ æ©ãåŠã¶ããšãšè€éããå¶åŸ¡ããããšã®éèŠæ§ã説ããŠããŸãã Modern Software Engineering: Doing What Works to Build Better Software Faster (English Edition) äœè
: Farley, David Addison-Wesley Professional Amazon ç¶ç¶çããªããªãŒã®ãœãããŠã§ã¢å·¥åŠããã£ãšæ©ãããã£ãšè¯ããœãããŠã§ã¢ãäœãããã®ç§èš£ äœè
: David Farley æ¥çµBP Amazon 倿Žãå°ããä¿ã¡ãçŽ æ©ãåŠã³ãè€éããå¶åŸ¡ããå§¿å¢ã¯ãAIæä»£ã«ããéèŠã«ãªããŸãããªããªããçæAIã¯å€æŽãçã¿åºãé床ãäžããäžæ¹ã§ããã®å€æŽãå®å
šã§äŸ¡å€ãããã®ãã©ãããŸã§ã¯ä¿èšŒããªãããã§ãã çæAIã¯ãéãã®é¢ã§ãå質ã®é¢ã§ããDORA Metricsã®æ°å€ãåãããŸãããã®æå³ã§ãDORA Metricsã¯ä»ãèšæž¬ã®åºçºç¹ã§ãã äžæ¹ã§ãåããæ°å€ããããŸã§ãšåãããã«èªã¿è§£ããéçºã®è¯ãæªãã倿ããããšã¯é£ãããªããŸããã DORA Metricsã ãã§ã¯ããéãå±ããå
ã§ããŠãŒã¶ãŒã«ã©ããªäŸ¡å€ãçãŸããã®ãããŸã§ã¯èŠããªãããã§ãã 2025幎ã®DORAã¬ããŒãã¯AIããå¢å¹
åšïŒamplifierïŒããšåŒã³ããã®å¹æãåŒãåºãçµç¹åŽã®æ¡ä»¶ããAI Capabilities ModelããšããŠæŽçããŠããŸãã %%{init: {'flowchart': {'curve': 'linear'}}}%% flowchart LR AI("AIã®å°å
¥") MUL("Ã") subgraph CAP["7ã€ã®ã±ã€ãããªãã£"] direction TB C1("ãŠãŒã¶ãŒ<br/>äžå¿ã®èŠç¹") C2("åªããããŒãžã§ã³ç®¡ç<br/>ãã©ã¯ãã£ã¹") C3("AIã§ã¢ã¯ã»ã¹å¯èœãª<br/>å
éšããŒã¿") C4("å°ããããã<br/>åäœã®äœæ¥") C5("æç¢ºã§åšç¥ããã<br/>AIã®ã¹ã¿ã³ã¹") C6("質ã®é«ãå
éš<br/>ãã©ãããã©ãŒã ") C7("å¥å
šãªããŒã¿<br/>ãšã³ã·ã¹ãã ") end subgraph OUT["ã¢ãŠãã«ã "] direction TB O1("ããŒã <br/>ããã©ãŒãã³ã¹") O2("ã³ãŒãã®å質") O3("åäººã®æå¹æ§") O4("ãããã¯ã<br/>ããã©ãŒãã³ã¹") O5("æ©æŠã®äœæž") O6("ã¹ã«ãŒããã") O7("çµç¹<br/>ããã©ãŒãã³ã¹") end AI ~~~ MUL MUL ~~~ C4 C1 --> O1 C2 --> O1 C2 --> O3 C3 --> O2 C3 --> O3 C3 --> O4 C4 --> O3 C4 --> O4 C4 --> O5 C5 --> O3 C5 --> O4 C5 --> O5 C5 --> O6 C5 --> O7 C6 --> O5 C6 --> O7 C7 --> O7 DORAã®ãAI Capabilities Modelããããšã«äœæ åé ã®ãã¶ã®ããªããªãŒè©±ã«æ»ããŸãããã ãéãå±ãããããšãšãã䟡å€ãããã®ãå±ããããšããã¢ãŠãã«ã ã¯ãå¿
ãããäžèŽããŸããã DORA Metricsã¯ãããŸã§ãå±ãããŸã§ã®éããšå®å®æ§ãã瀺ããã®ã§ãããã¶ã§ããã°ãé
éæéã ãã§ãªããé
éäžã«åŽ©ããã«å±ããããåé¡ãèµ·ãããšãã«çŽ æ©ãç«ãŠçŽããããŸã§å«ããææšã«è¿ãã§ãããã倧äºãªææšã§ãããããã ãã§ã¯ãå±ããããšããŠãŒã¶ãŒãäºæ¥ã«ãšã£ãŠäœãèµ·ãããããŸã§ã¯èŠããŸããã DORAã¯2025幎ã®ã¬ããŒãã§ããŸãã«ãã®ããŠãŒã¶ãŒåŽã«äœãå±ãããããäž»åœ¹ã«æ®ããŸããã AI Capabilities Modelã®7ã€ã®ã±ã€ãããªãã£ïŒäžã®å³ïŒã®ã²ãšã€ã«ããŠãŒã¶ãŒäžå¿ã®èŠç¹ïŒUser-centric focusïŒããæ²ããAIããæ£ããæ¹åãã«å¹ãããããã®å極æïŒNorth StarïŒãšäœçœ®ã¥ããŠããŸãã ããŒã ãã¢ãŠããããïŒåºè·ããæ©èœã®æ°ãé床ïŒã远ãã°ããã§ããŠãŒã¶ãŒã«å±ããã¢ãŠãã«ã ãèŠå€±ããšãAIã¯ããã£ãŒãã£ãŒãã¡ã¯ããªãŒïŒæ©èœéç£å·¥å ŽïŒããå éãããŸãã æŽ»åéã¯å€ããŠãã€ã³ãã¯ãã®åºãªãç¶æ
ã«é¥ãããšã¬ããŒãã¯èŠåããŠããŸãã DORAã®èª¿æ»ã§ã¯ããŠãŒã¶ãŒäžå¿ã®èŠç¹ãæ¬ ããããŒã ã§ã¯AIãå°å
¥ãããšããŒã ããã©ãŒãã³ã¹ã«ãã€ãã¹ã®åœ±é¿ããåãŒãããšå ±åãããŠããŸããäžæ¹ããŠãŒã¶ãŒäžå¿ã®èŠç¹ãæã€ããŒã ã§ã¯ãAIããã©ã¹ã®åœ±é¿ã倧ããå¢å¹
ãããšå ±åãããŠããŸãã çæAIã§ããªããªãŒãããã«éããªãæä»£ã ãããããéãã®å
ã«ãããŠãŒã¶ãŒåŽã®ã¢ãŠãã«ã ãèŠå€±ããªãããšãããããŸã§ä»¥äžã«éèŠã§ãã AIé§åéçºã空åããããªãããã« ããããã€ããšããªãªãŒã¹ãã®æ··åã¯ãçšèªã®åãéãã«ãšã©ãŸããŸãããAIé§åéçºãé²ããçµç¹ã«ãšã£ãŠã¯ããã®ãŸãŸãªã¹ã¯ã®å¢å¹
ã«ã€ãªãããŸãã æ¥æ¬ã®ãœãããŠã§ã¢éçºçŸå Žã§ããããªãªãŒã¹ïŒå€§ã€ãã³ããããããã€ïŒãªãªãŒã¹åœæ¥ã«ããäœæ¥ããšããçè§£ããããŸã ã«æ ¹åŒ·ãæ®ã£ãŠããŸãã ãContinuous Deliveryãã®æ¥æ¬èªèš³ã¯2012幎ã«åºçãããŸããã ãããã14幎ãçµã£ãããŸããç¶ç¶çããªããªãŒã®éèŠãªæŠå¿µçè²¢ç®ã§ããããããã€ãšãªãªãŒã¹ã®åé¢ãã¯ãå°ãªããšãæ¥æ¬ã®å€ãã®çŸå Žã§ååã«å
±æãããŠãããšã¯èšããŸããã ç¶ç¶çããªããªãŒãå®è·µããŠããçµç¹ã§ã¯åœããåã«äœ¿ããã "Deployment â Release" ãšããæŽçããæ¥æ¬ã®çŸå Žã§ã¯ããŸããåãããšããšããŠèªãããã¡ã§ãã Farleyæ°ã¯2021幎ã®ãModern Software Engineeringãã§ã誀ã£ãèããæ ¹åŒ·ãæ®ãçç±ãããæžããŠããŸãã ééã£ãèãæ¹ããªããªãæšãŠãããªãçç±ã®ã²ãšã€ã¯ããœãããŠã§ã¢éçºã®ããã©ãŒãã³ã¹ïŒèœåãæ¥çžŸïŒã广çã«èšæž¬ã§ããŠããªãããšã«ãããŸãã Farley, D.(2022), é·å°Ÿé«åŒ (èš³). ç¶ç¶çããªããªãŒã®ãœãããŠã§ã¢å·¥åŠ: ãã£ãšæ©ãããã£ãšè¯ããœãããŠã§ã¢ãäœãããã®ç§èš£ (Nagao, T., Trans.). æ¥çµBP瀟. (Original work published 2021) p.70 ãããã€ãšãªãªãŒã¹ãåé¢ã§ããã°ããããã€ã®é »åºŠãäžããªãããæ©èœã®å
¬éã¿ã€ãã³ã°ã¯å¥éã³ã³ãããŒã«ã§ããŸãã éã«ãåé¢ã§ããªããã°ããªãªãŒã¹ïŒãããã€ïŒå€§ã€ãã³ãã®é£éããæãåºããŸããã ããŸãæ¥æ¬ã®å€ãã®çŸå Žã¯ããåããŠããã³ãŒãã«ã¯è§Šãããªããšããèãæ¹ã®å»¶é·ç·äžã«ãããŸãã Farleyæ°ã¯åæžã§ããããææããŠããŸãã ç§ã®å°è±¡ã§ã¯ããœãããŠã§ã¢ç£æ¥ã¯åŠã¶ããšãé²åããããšããªããªãã§ããªãã§èŠéããŠããããã«èŠããŸãããã®çžå¯Ÿçãªåæ»ã¯ãã³ãŒããå®è¡ããããŒããŠã§ã¢ã®ãšãŠã€ããªãé²åã«ãã£ãŠèŠããªããããŠããã®ã§ãã Farley, D.(2022), é·å°Ÿé«åŒ (èš³). ç¶ç¶çããªããªãŒã®ãœãããŠã§ã¢å·¥åŠ: ãã£ãšæ©ãããã£ãšè¯ããœãããŠã§ã¢ãäœãããã®ç§èš£ (Nagao, T., Trans.). æ¥çµBP瀟. (Original work published 2021) p.69 2021幎ã®ãã®ææã¯ãããŸã®çæAIã«ããã®ãŸãŸåœãŠã¯ãŸããŸããçæAIã¯ã倿Žã倧éã«ããããé«éã«çã¿åºããŸãã ã ãããããåãããŠããã®ã¯ãAIã§ã©ãã ãéãäœããããã ãã§ã¯ãªããäœããã倿Žããå°ãããå®å
šã«ãç¶ç¶çã«å±ããããããã€ãŸããéçºè³æ¬ããçµç¹ãšããŠæãŠãŠãããã§ãã ãããã€ãšãªãªãŒã¹ãåãåããåå°ããªããã°ãAIã¯å€æŽã®é床ã ãã§ãªãããªã¹ã¯ãå¢å¹
ããŸããDORA Metricsã®æ°å€ãåããŠããããã ãã§ã¯AIãè¯ãæ¹åã«åããŠãããã¯å€æã§ããŸããã æè¡ççºå±ã®éå±€æ§é ããããã®åå°äœããéèŠã ããã§ãããç¶ç¶çããªããªãŒãã§ããªããã¯ãåã«ãããã€èªååããªãããšã§ã¯ãªãã倿Žãå°ããä¿ã¡ããããã€ãšãªãªãŒã¹ãåãåãããŠãŒã¶ãŒãžã®åœ±é¿ãå¶åŸ¡ããªããç¶ç¶çã«å±ããä»çµã¿ããªãç¶æ
ãæããŸãã ããããã€ããšããªãªãŒã¹ãã®æ··åã«ãããã£ãŒãã£ãŒãã¡ã¯ããªãŒãã®çœ ãéãªãã°ãAIé§åéçºã¯ãããé²ããŠãææã«å±ããŸãããç¶ç¶çããªããªãŒãã§ããªãçµç¹ã§ãAIã¯å¢å¹
åš(amplifier)ãšããŠç©ºåããçãã®ã§ãã ãŸãã¯ãèªããŒã ã§ããããã€ããšããªãªãŒã¹ããããŸã©ãåºå¥ããŠããã®ããèšèªåããŠã¿ãŠãã ãããå¢çããŒãããŠãããªããããèªäœãæ¹åã®ç¬¬äžæ©ã«ãªããŸãã ãåç¥ãAI DevEx Conference 2026 - Future of Development Productivity - ç¶ç¶çããªããªãŒãšAIæä»£ã®ãœãããŠã§ã¢éçºã«ã€ããŠãFarleyæ°æ¬äººã®èšèã§èããæ©äŒããããŸãã AI DevEx Conference 2026ã§ãFarleyæ°ãåããŠæ¥æ¬ã«ç»å£ããŸãã é嬿ŠèŠã¯ä»¥äžã®ãšããã§ãã é
ç® å
容 é嬿¥æ 2026幎7æ22æ¥ïŒæ°ŽïŒã»23æ¥ïŒæšïŒ9:30ã18:40 éå¬åœ¢åŒ ãªãã©ã€ã³ã»ãªã³ã©ã€ã³é
ä¿¡ïŒèŠäºåç»é²ïŒ ãã±ãã çŸå°åå ãã±ããïŒã¢ãŒãªãŒããŒã第2åŒŸïŒ Â¥3,000ïŒçšæïŒâ»ç· 忥ïŒ5æ27æ¥ïŒæ°ŽïŒ çŸå°åå ãã±ãã Â¥5,000ïŒçšæïŒ ãªã³ã©ã€ã³ïŒç¡æïŒ éå¬å Žæ JPã¿ã¯ãŒããŒã«ïŒã«ã³ãã¡ã¬ã³ã¹ïŒæ±äº¬ã»äžžã®å
ïŒ ç³èŸŒURL https://dev-productivity-con.findy-code.io/aidevex2026 äž»å¬ ãã¡ã€ã³ãã£æ ªåŒäŒç€Ÿ 察象è
DevExããœãããŠã§ã¢éçºã®æ¹åã«é¢å¿ããããšã³ãžãã¢ããããŒãžã£ãŒãçµå¶è
ãªã© Farleyæ°ã¯ã忥ã®7æ22æ¥ã«æ¬¡ã®ããŒãã§ç»å£ããŸãã ãAIãšå
±åããäžçã®ãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã° âäžå€ã®æ¬è³ªãšããã°ã©ãã³ã°ã®æªæ¥ã AIãšå
±åããæä»£ã«ãããè¯ããœãããŠã§ã¢ãããéãäœãããã«ã¯äœãå¿
èŠãªã®ãããã®èšäºã§æ±ã£ãŠããç¶ç¶çããªããªãŒããšã³ãžãã¢ãªã³ã°ã®è©±ãšãããŸã£ããã€ãªããããŒãã§ãã ãã®ã»ããt_wadaããããšåç°å人æ°ãããDevExãã®ç¬¬äžäººè
ã§ããEirini Kalliamvakouæ°ãç»å£äºå®ã§ããDeNAãUberãCitibankãLinkedInãªã©ãåœå
å€50瀟以äžãç»å£ããŸãã ãã²ãåå ãã ããïŒ ãããã« ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã
ããã«ã¡ã¯ïŒãã¡ã€ã³ãã£ã®å€§ç³ïŒ @bicstone ïŒãç²æïŒ @karukan013L23 ïŒãåç°ïŒ @_c0909 ïŒã§ããå
æ¥ããã¡ã€ã³ãã£ã¯ãã«ãµãŒã«çŸœç°ç©ºæž¯ã§éå¬ããããTSKaigi 2026ãã«åè³ããŸããã ä»åã¯DevRelã¡ã³ããŒãšããã³ããšã³ããšã³ãžãã¢3åã§åå ããããŒã¹éå¶ãè¡ããŸãããæ¬èšäºã§ã¯TSKaigi 2026ã«ãããŠå°è±¡æ·±ãã£ãã»ãã·ã§ã³ã®ç޹ä»ãç»å£ãããŒã¹åºå±ãªã©ã®æŽ»åå
容ã玹ä»ããŸãã ããŒã¹ã§å®æœãããŠãŒãã£ãªãã£åã¢ã³ã±ãŒãã®éèšçµæïŒ480祚ïŒãåŸåã§å
¬éããŠããŸãã®ã§ããã²æåŸãŸã§ãèªã¿ãã ããã TSKaigi 2026ã«ã€ã㊠å°è±¡æ·±ãã£ãã»ãã·ã§ã³ ã倧ç³ãTS 7: How We Got There ãç²æãtscããtsgoãž ââ Denoã®TypeScriptåºç€ã¯ã©ãå€ãã£ãã ãåç°ãOxlint 㯠ESLint / typescript-eslint ã眮ãæãããããïŒ ã倧ç³ãCfPç»å£: TypeScript 6.0ã§ã®åæšè«ä¿®æ£ã远ã ãã¡ã€ã³ãã£ã®æŽ»å ã¢ã³ã±ãŒãçµæ ãããã« ãç¥ãã TSKaigi 2026ã«ã€ã㊠TSKaigiã¯æ¥æ¬æå€§çŽã®TypeScriptãããŒããšããæè¡ã«ã³ãã¡ã¬ã³ã¹ã§ããæ±äº¬éœå€§ç°åºã®ãã«ãµãŒã«çŸœç°ç©ºæž¯ã«ãŠã2026幎5æ22æ¥(é)ã23æ¥(å)ã«éå¬ãããŸããã 2026.tskaigi.org å°è±¡æ·±ãã£ãã»ãã·ã§ã³ è峿·±ãã»ãã·ã§ã³ãå€ããããŸãããããã®äžã§ã3åãããããå°è±¡ã«æ®ã£ãã»ãã·ã§ã³ã玹ä»ããŸãã ã倧ç³ãTS 7: How We Got There 2026.tskaigi.org TypeScriptããŒã ã®Jake Baileyããã«ãããTypeScript 7ãGoèšèªãžç§»æ€ããçµç·¯ãšææã«ã€ããŠã®åºèª¿è¬æŒã§ãã ç¹ã«å°è±¡çã ã£ãã®ã¯ãGoãæ¡çšããçç±ãäœç³»çã«ç¥ãããšãã§ããç¹ã§ãã JavaScriptã§ã¯ã¹ã¬ããéã§ãªããžã§ã¯ããå
±æã§ãããasync/awaitã颿°å
šäœã«äŒæããŠããŸãããã䞊ååãå°é£ã§ããã Goã®goroutineãæŽ»ããããšã§ãParseã»Bindã»Emitã®åãã§ãŒãºã䞊ååããCheckerãè€æ°äžŠã¹ãããšã§é«éåãå®çŸããŠããŸãã VS Code (Electron) ã®ãããžã§ã¯ãã tsc ãš tsgo ããããã§å®è¡ããéã®æèŠæéãšCPU䜿çšçã®å·®ãèŠããŠããã ãããã¢ã§ã¯ããã«ãã¹ã¬ããã®æŽ»çšãCPU䜿çšçã®å€åãäžç®ã§åããããªã倧å¹
ãªé«éåãå®çŸã§ããã®ãçŽæçã«çè§£ã§ããŸããã çºè¡šã®ãªãã§ç¹°ãè¿ã匷ãåŒã³ãããããŠããã®ããã³ãã¥ããã£ããã®ãã£ãŒãããã¯ã§ãããããã²betaãnightlyã詊ããŠã»ããããVS Codeã®Native Previewæ¡åŒµãå
¥ããŠã»ããããã¯ã©ãã·ã¥ãã³ã³ãã€ã«æåã®å€åãç¹ã«APIãžã®æèŠãéã£ãŠã»ããããšåŒã³ãããŠããŸããã éå»1幎ã§ã³ãã¥ããã£ãã1141ä»¶ã®Issueãš1487ä»¶ã®ããŒãžæžã¿PRãå¯ãããããã¬ã¡ããªçµç±ã®ã¯ã©ãã·ã¥æ
å ±ãå«ããå©çšè
ããã®å ±åãéçºã®æ¹åæ§ãæ¯ããŠããããšãäŒãã£ãŠããŸããã ç§ãã¡ã®ããŒã ã§ã¯ããã§ã«ã³ãããæã®ããã¯ã§ tsgo ã詊éšçã«æ¡çšããŠããŸããä»åŸã¯éçºãããŒå
šäœãžã®å°å
¥ãé²ããªãããæ€ç¥ããåé¡ã¯ç©æ¥µçã«ãã£ãŒãããã¯ãéã£ãŠããããã§ãã ãã¡ã€ã³ãã£ã§ãåŸæ¥ããOSSãžã®Issue起祚ãPull Requestã®äœæãã¡ãã£ã¢äŒç»ãéããå¯ä»ãªã©ã®åœ¢ã§æ¯æŽãç¶ããŠããŸããããTypeScriptã®ããã«å€ãã®å©çšè
ãæ±ãããããžã§ã¯ãã§ã¯ãå©çšè
äžäººã²ãšãã®å ±åããã倧ããªè²¢ç®ã«ãªãããšãåèªèããŸããã ãããŸã§æççã«ãã远ããŠããªãã£ãTypeScript 7ã«ã€ããŠäœç³»çã«çè§£ã§ãããšãŠãåŠã³ã®å€ãçºè¡šã§ããã瀟å
ã«ããã²å
±æããŠãããããšæããŸãã ãç²æãtscããtsgoãž ââ Denoã®TypeScriptåºç€ã¯ã©ãå€ãã£ãã 2026.tskaigi.org Denoã®maguroããã«ãããDenoã®TypeScriptåºç€ã tsc ãã tsgo ãžç§»è¡ããåãçµã¿ã«ã€ããŠã®ã»ãã·ã§ã³ã§ãã å
ã
Denoã¯TypeScriptããã©ãŒã¯ããããã±ãŒãžã䜿çšããDeno RuståŽãšå¿
èŠãªæ
å ±ãããåãããDenoåºæã®æŠå¿µã tsc ãè§£éã§ããããã tsc ã«ããããåœãŠããã®ãDeno binaryã®äžã«åã蟌ãã§ããŸããã tsgo ãžã®ç§»è¡ã®æåã®ã¢ãããŒã㯠tsgo ããã©ãŒã¯ããDenoåºæã®æŠå¿µã tsgo ã«æž¡ããããã«ããã¢ãããŒãã§ããã tsgo ã¯Denoåºæã®æŠå¿µããã®ãŸãŸè§£æ±ºã§ããªããããDeno RuståŽã§åŠçã§ãããã察å¿ããŠããŸããLSP察å¿ã®ã³ã¹ãããã©ãŒã¯ããããã±ãŒãžã®ã¡ã³ããã³ã¹ã³ã¹ããé«ããçŸåšã¯ãã©ãŒã¯çã§ã¯ãªãå
¬åŒã®TypeScriptããã±ãŒãžãå©çšããã¢ãããŒãã詊ã¿ãããŠããŸãã TypeScriptåãã«Denoã®äŸåãšåãããŒã«ã«çæããããšã§ãããããåœãŠãã«Denoåºæã®æŠå¿µãè§£éã§ããæ§æã«ããŠããŸãã ç¹ã«å°è±¡çã ã£ãã®ã¯ãDenoã®Webæšæºã®å²åŠãå°ãæ²ããŠã§ãTypeScriptã§æ±ãã圢ã«å¯ããŠãã£ãç¹ã§ããDeno binaryã®äžâDeno binaryã®å€âDeno projectã®å€ãžTypeScriptããã±ãŒãžãæŒãåºãããŠããããã©ãŒã¯ã«ããéçšã³ã¹ãã®å¢å ãé¿ãã€ã€å®è¡å¯èœãªã¢ãããŒãããšã£ãŠããŸãã åãã§ãã¯ã䜿çšãããä»ã®ã©ã€ãã©ãªãåæ§ã«ãã©ãŒã¯ä»¥å€ã®éžæè¢ã暡玢ããŠãããæ¹åæ§ã¯åãã ãããããç°ãªãã¢ãããŒãã«ãªã£ãŠããããšãè峿·±ãã£ãã§ãã æ®æ®µDenoã¯äœ¿çšããŠããŸããã§ããããçŸåšã®åœ¢ã«èŸ¿ãçããŸã§ã«ã©ã®ãããªæææ±ºå®ããã£ãããèŠãŠããããšã§ãããã«è³ããŸã§ã®èª²é¡ãæææ±ºå®ããšã®ãã¬ãŒããªããåŠã¶ããšãã§ããçŸåšã®ææ³ãçè§£ããå©ããšãªããŸããã ä»åŸãããŒã«ãã§ãŒã³ãã©ã€ãã©ãªã®æææ±ºå®ã®èæ¯ãåŠã¶æ©äŒã宿çã«èšããŠãããããªãšæããŸãã ãåç°ãOxlint 㯠ESLint / typescript-eslint ã眮ãæãããããïŒ 2026.tskaigi.org æ ªåŒäŒç€Ÿãããã®è€ç°ç¿é
ããã«ãããOxlintãESLint / typescript-eslintãã©ããŸã§çœ®ãæããããã®ããæŽçããã»ãã·ã§ã³ã§ãã ç¹ã«å°è±¡çã ã£ãã®ã¯ãType-Aware LintingïŒåæ
å ±ã䜿ã£ãLintïŒã®æç¡ã§ããã©ãŒãã³ã¹ã倧ããå€ããç¹ããã³ãããŒã¯ã§ç€ºããŠããããšã§ãã åæ
å ±ã䜿ããªãæ¯èŒã§ã¯ESLintã®8.213ç§ã«å¯ŸãOxlintã¯0.304ç§ãšçŽ27åéããåæ
å ±ã䜿ãã«ãŒã«ãæå¹ã«ããŠãESLintã®16.121ç§ã«å¯ŸãOxlintã¯0.807ç§ãšçŽ20åéããšããçµæã§ããã åæ
å ±ã䜿ããªãLintãæ§æè§£æã ãã§å®çµããã®ã«å¯Ÿããåæ
å ±ã䜿ãLintã¯ãããžã§ã¯ãå
šäœã®åã°ã©ãæ§ç¯ïŒ tsc / tsgo ïŒãå¿
èŠãšããããããã«ããã¯ã«ãªãããšããæ§é çãªè§£èª¬ãçè§£ã®å©ãã«ãªããŸããã å°å
¥å€æã«ã€ããŠãèžã¿èŸŒãã§ãããåæ
å ±ã䜿ããªãLintã§ããã°Oxlintã¯äž»èŠã«ãŒã«ãååã«ããŒããŠããç§»è¡ã¯çŸå®çã§ããäžæ¹ã oxlint-tsgolint ã«ããType-Aware Lintingã¯ãŸã éå®å®çã§ããããšãã«ã¹ã¿ã ã«ãŒã«ãæ±ãããããžã§ã¯ãã§ã¯ç§»è¡ã³ã¹ããäžããããšãªã©ãçŸå Žç®ç·ã®ãã¬ãŒããªããå
·äœçã«èªãããŠããŸããã çµè«ãšããŠãéType-Aware Lintingã§ããã°Oxlintãžã®ç§»è¡ãæšå¥šãããšããã¡ãã»ãŒãžãæå¿«ã§ããã ç§ãã¡ã®ããŒã ã§ãESLint + Prettierãå©çšããŠãããCIã®å®è¡æéã¯ç¶ç¶çãªèª²é¡ã§ãããã§ã«Oxcç³»ïŒOxlint + OxfmtïŒãžã®ç§»è¡ãèšç»ããŠãããæ¢åã®ãããã¯ãã¯Type-Aware Lintingã«äŸåããªãæ§æãšãªã£ãŠããŸãã æ¬ã»ãã·ã§ã³ã®ãéType-Aware LintingãªãOxlintç§»è¡ãæšå¥šããšããçµè«ã¯ç§ãã¡ã®ç¶æ³ã«åœãŠã¯ãŸããå®éã®ç§»è¡èšç»ã«éããŠèããè¯ãæ©äŒã«ãªããŸããã ã倧ç³ãCfPç»å£: TypeScript 6.0ã§ã®åæšè«ä¿®æ£ã远ã åœæ¥ã®CfPæ ã§ã¯ã倧ç³ããããããã£ã®é åºã§åæšè«ãå£ãã!? TypeScript 6.0ã®ä¿®æ£ããContext-Sensitivityã®ä»çµã¿ã远ãããšããã¿ã€ãã«ã§ç»å£ããŸããã ããããã£ã®èšè¿°é åºãå
¥ãæ¿ããã ãã§åæšè«ãå£ããæåãå
¥å£ã«ãTypeScript 6.0ã§ããŒãžãããPRã®äžèº«ãŸã§èžã¿èŸŒãã å
容ã§ãã詳现ã¯å¥èšäºã«ãŸãšããŠããŸãã®ã§ãããããŠã芧ãã ããã tech.findy.co.jp speakerdeck.com ãã¡ã€ã³ãã£ã®æŽ»å ãã¡ã€ã³ãã£ã¯Goldã¹ãã³ãµãŒãšããŠåè³ããããŒã¹åºå±ãšããåœ¢ã§æ¯æŽããŸããã ããŒã¹ã§ã¯ããã䜿ããŠãŒãã£ãªãã£åããããŒãã«ããã¢ã³ã±ãŒãäŒç»ã宿œããŸãããæ®æ®µã®éçºã§ãã䜿ããŠãŒãã£ãªãã£åãéžãã§ããã ãå
容ã§ã2æ¥éãããŠå€ãã®æ¹ã«æç¥šããã ããŸããã TSKaigi2026å§ãŸããŸããïŒå
¥å£ããã§ãïŒ ãåŸ
ã¡ããŠãããŸãð #TSkaigi2026 #tskaigi pic.twitter.com/ecf1Zzok0V — ãããã@Findy DevRel (@iwasakitchen) 2026幎5æ22æ¥ x.com ã¢ã³ã±ãŒãã®æçµçµæã¯ãã¡ãã«ãªããŸããããããã®æç¥šããããšãããããŸããã TSKaigi 2026æ¹ããŠ2æ¥éãåå ããã ããããããšãããããŸããïŒãã䜿ããŠãŒãã£ãªãã£ã®ãåãã¯ïŒã®æçµçµæã§ãïŒðð #TSkaigi #TSkaigi2026 pic.twitter.com/0Nt4xun2bQ — ãããã@Findy DevRel (@iwasakitchen) 2026幎5æ23æ¥ x.com ã¢ã³ã±ãŒãçµæ ç·æ°ïŒ480祚 é äœ ãŠãŒãã£ãªãã£å å²å ç¥šæ° 1äœ Record<Keys, Type> 33.3% 160祚 2äœ Pick<T, Keys> 17.7% 85祚 3äœ Readonly<T> 14.6% 70祚 4äœ Partial<T> 9.4% 45祚 5äœ ReturnType<T> 8.8% 42祚 6äœ Exclude<T, U> 4.2% 20祚 7äœ Extract<T, U> 2.5% 12祚 8äœ NonNullable<T> 2.5% 12祚 9äœ Awaited<T> 1.0% 5祚 - ãã®ä» 6.0% 29祚 ãã®ä»å
èš³ ãŠãŒãã£ãªãã£å ç¥šæ° ãã®ä»ã»äœ¿ã£ãŠããªã 22祚 Omit<T, Keys> 5祚 Beautify<T> 1祚 & ã | 1祚 å ããŠãããŒã±ãã£ã³ã°æ
åœã®ã¡ã³ããŒãAIãæŽ»çšããŠèªãéçºããã«ãŒã¬ããã¢ããªãšããã¡ã€ã³ãã£ãªãªãžãã«ã®ããã«ãã£ããçšæããç«ã¡å¯ã£ãŠããã ããæ¹ã«æ¥œããã§ããã ããŸããã ãããã« ã»ãã·ã§ã³ã¯å€å²ã«ããããªãã§ãç§ãã¡ãç¹ã«æ³šç®ããã®ã¯Goã«ããã³ã³ãã€ã©ã®åå®è£
ïŒã³ã³ãã€ã©æ¬äœã®ãã€ãã£ãåïŒãtscããtsgoãžã®åºç€å·æ°ïŒä»ã©ã³ã¿ã€ã ã«ããæ¡çšïŒãRust補Linterã®å¯èœæ§ïŒåšèŸºããŒã«ãžã®æ³¢åïŒã§ããã 3ã€ãéããŠãTypeScriptãšã³ã·ã¹ãã ãNativeå®è£
ãžãšåããŠããæµãã宿ãã2æ¥éãšãªããŸãããTSKaigiã¯ãšãŠãæž©ããçŽ æµãªã³ãã¥ããã£ã§ããã¡åå è
ãšããŠãå€ãã®åŠã³ãšäº€æµã®æ©äŒãåŸãããšãã§ããŸããã ã«ã³ãã¡ã¬ã³ã¹ã®éå¬ã«ããããå°œåããã ãããéå¶ã¹ã¿ããã®çæ§ãé¢ä¿è
ã®çæ§ãç»å£è
ã®çæ§ã«æè¬ç³ãäžããŸãã ãç¥ãã 忥åå ãããã¡ã€ã³ãã£ã®DevRelã¡ã³ããŒã«ããã¬ããŒãèšäºãå
¬éãããŠããŸããããããŠã芧ãã ããã note.com TSKaigi 2026ã®ã¢ãã¿ãŒã€ãã³ããTSKaigi Night talks ãafter conferenceãããã¹ãã³ãµãŒäŒæ¥9瀟ã§å
±å¬ããŸããåœæ¥ã®CfPæ ã§æ¡æãããªãã£ãç¥èŠãã³ãã¥ããã£ãžéå
ããããšãç®çãšããã€ãã³ãã§ãã ãã¡ã€ã³ãã£ããã¯åç°ããOSSã®UIã©ã€ãã©ãªã§ESLintã®ã«ã¹ã¿ã ã«ãŒã«ãäœã£ãŠãã話ããç²æããTemporal - TypeScript 6.0ã§å§ããæ°ããæ¥æAPIããšããããŒãã§ç»å£äºå®ã§ãã 2026幎6æ10æ¥(æ°Ž)19:00ããããã¡ã€ã³ãã£ã®ã€ãã³ãã¹ããŒã¹ã«ãŠéå¬ããŸããTSKaigi 2026ã«åå ãããæ¹ããåå ã§ããªãã£ãæ¹ãããã²ãè¶ããã ããã findy.connpass.com ãã¡ã€ã³ãã£ã§ã¯äžç·ã«åãã¡ã³ããŒãåéããŠããŸãïŒ èå³ãããæ¹ã¯ãã¡ããã â herp.careers
ã¯ããã« ããã«ã¡ã¯ããã¡ã€ã³ãã£æ ªåŒäŒç€Ÿã§ãšã³ãžãã¢ãããŠããäžå¶ïŒ @nakayama__bird ïŒã§ããçŸåšã¯ãæ°èŠãããã¯ãã§ããFindy Contextã®éçºã«æºãã£ãŠããŸãã ãã¡ã€ã³ãã£ã§ã¯ããããŸã§SREããŒã ãæ
ã£ãŠããæ°èŠãããã¯ãã®ã¯ã©ãŠãç°å¢ã®æ§ç¯ããç£èŠäœå¶ã®æŽåãŸã§ãããããã¯ãéçºããŒã äž»äœã§è¡ãäœå¶ã«åãæ¿ããŸããã æ¬èšäºã§ã¯ãç§èªèº«ãFindy Contextã®ç°å¢ç«ã¡äžããæ
åœããçµéšããã¢ããªã±ãŒã·ã§ã³ãšã³ãžãã¢ã®èŠç¹ã§æ¯ãè¿ããŸãã çµéšã®æµ
ããšã³ãžãã¢ã«ãšã£ãŠã0â1ã®ã¯ã©ãŠãç°å¢æ§ç¯ã¯äžå®ã®å€§ããé åã§ãããèªåã«ã§ããã®ãããšæããªããçæããç§ãåã«é²ããã®ã¯ããSREããŒã ãæŽããŠãããä»çµã¿ããšãèªåã§é²ããåŠç¿ãããã®2ã€ãæã£ãŠããããã§ããã ãããããã©ãæ©èœãããããããããäœéšããŒã¹ã§ãäŒãããŸãã ã¯ããã« Findy Contextãšã¯ èæ¯: ãªãéçºããŒã äž»äœã«åãæ¿ãã£ãã®ã ãããŸã§ã®äœå¶ çŽè¿ã®äºæ
ã®å€å æ¹é転æ: éçºããŒã ã¡ã€ã³ã®ç«ã¡äžããž çæåã®çè
ã¹ãã㯠å§è²ã®ã¹ã³ãŒããšç§ãæ
åœããç¯å² AWSã¢ã«ãŠã³ãçºè¡ãšã€ã³ãã©æ§ç¯åºç€æŽå ã€ã³ãã©ãªãœãŒã¹ã®æ§ç¯ ãããã€ãšéçšã®æŽå ç£èŠïŒDatadogïŒã®æŽå å人ãšããŠåãçµãã ããš ä»åŸã®äŒžã³ä»£ èªååŽ ä»çµã¿åŽïŒæ±çšã¢ãžã¥ãŒã«ã»ãã³ãã¬ãŒããžã®æ¹åäœå°ïŒ ãŸãšã Findy Contextãšã¯ Findy Contextã¯ããã¡ã€ã³ãã£ã2026幎4æã«ãªãªãŒã¹ããAIé§åéçºæ¯æŽãããã¯ãã§ãã ãããã¯ãéçºã§æ¥ã
çãŸããæèïŒéå»ã®PRãé¢é£è°è«ãæææ±ºå®ã®çµç·¯ïŒãAIãè³ç£åããéçºã®èª¿æŽã³ã¹ããåæžããããšãç®æããŠããŸãã Findy Contextãç®æãã®ã¯ãç¹å®ã®å人ã«äŸåãããå°äººæ°ã§ãé«ãéçºèœåãç¶æã§ããçµç¹éå¶ã§ãã ãã¡ãã¡ã«æ£ãã°ã£ãŠãã倿ã®ããã»ã¹ãèç©ããŠããããšã§ãçµç¹ã®çµéšãè³ç£ãšããŠå掻çšã§ããåå°ãäœã£ãŠãããŸãã findy.co.jp ãã®Findy Contextã®æ¬çªéçšåºç€ãããªãSREããŒã ã§ã¯ãªãéçºããŒã ãäž»äœã§æ§ç¯ããããšã«ãªã£ãã®ãããã®èæ¯ããæ¯ãè¿ããŸãã èæ¯: ãªãéçºããŒã äž»äœã«åãæ¿ãã£ãã®ã ãããŸã§ã®äœå¶ ãã¡ã€ã³ãã£ã«ã¯SREããŒã ãååšããå
±éã€ã³ãã©ããã©ãããã©ãŒã ã®éçšãæ±çšã¢ãžã¥ãŒã«ã»ãã³ãã¬ãŒãã®æŽåãã»ãã¥ãªãã£ã»ã³ã¹ãæé©åãªã©ãå
šç€Ÿæšªæã®åãçµã¿ãæ
ã£ãŠããŸãã ã€ã³ãã©ã¯Terraformã§ã³ãŒã管çãããŠãããSREããŒã ãæäŸããæ±çšã¢ãžã¥ãŒã«ããã³ãã¬ãŒããTerraformã§æžãããŠããŸãããªãã¶ãŒãããªãã£ã®åºç€ãšããŠã¯Datadogãæ¡çšããŠããŸãã ãŸããæ¢åãããã¯ãã§ã¯ããããã¯ãã®äžéšã¡ã³ããŒãEmbedded SREãšããŠã次ã®ãããªåœ¹å²ãæ
ã£ãŠããŸãã ã¢ããªã±ãŒã·ã§ã³éçºã«å¿
èŠãªã€ã³ãã©ã®æŽåã»ç®¡ç ã¢ãã¿ãªã³ã°ã®æŽå SLOã®æ¯ãè¿ã äžæ¹ãæ°èŠãããã¯ãã®ç«ã¡äžãã«é¢ããŠã¯éçšãç°ãªã£ãŠããŸããã SREããŒã ãç°å¢ãæ§ç¯ããããçšåºŠã®éçšæºåãæŽããŠãããããã¯ãéçºããŒã ã«åŒãæž¡ã圢ãåºæ¬ã§ããã çŽè¿ã®äºæ
ã®å€å ãã1ã2幎ã§ãäºæ¥æé·ãçæAIã®è¿œã颚ãããæ°èŠãããã¯ãã®ç«ã¡äžãä»¶æ°ã倧ããå¢ããããšã§ããããŸã§ã®äœå¶ã§æ¯ããããç¯å²ãè¶
ãã€ã€ãããŸããã äžæ¹ã§ãSREããŒã ã®äººå¡ãæ¥ã«å¢ããããšã¯é£ãããæ¢åãããã¯ãã®éçšãå
šç€Ÿæšªæã®åãçµã¿ã䞊è¡ããŠèµ°ãç¶ããŠããŸããæ°èŠãããã¯ããã¹ãŠã®ç°å¢æ§ç¯ãSREããŒã ãæ
ãäœå¶ã¯ãçŸå®çã«ç¶æã§ããªããªãã€ã€ãããŸããã æ¹é転æ: éçºããŒã ã¡ã€ã³ã®ç«ã¡äžããž ããã§ãæ°èŠãããã¯ãã®ç«ã¡äžããéçšãã§ãŒãºãã ãããã¯ãéçºããŒã ãäž»äœãšãªããSREããŒã ãã€ããŒããªã³ã°ãæ
ã äœå¶ãžãšåãæ¿ãããŸããã ããã¯ããéçºåŽã«ãªãŒããŒã·ããã眮ãããšããEmbedded SREã®çºæ³ããæ°èŠãããã¯ãã®ç«ã¡äžããã§ãŒãºã«ãåºãã圢ãšèšããŸãã SREããŒã ãæŽåããæ±çšã¢ãžã¥ãŒã«ã»ãã³ãã¬ãŒãã»ã€ããŒããªã³ã°äœå¶ã掻çšããŠãéçºããŒã ãèªåãã¡ã®è²¬ä»»ã§ç«ã¡äžãããFindy Contextã®ç«ã¡äžãã¯ããã®æ°æ¹éã®ç¬¬äžåŒŸãšããŠäœçœ®ä»ãããããããžã§ã¯ãã§ããã çæåã®çè
ã¹ãã㯠æªçµéšãããã¡ã€ã³ãã£ã«å
¥ç€Ÿããåœæã¯çµéš1幎ã®ãšã³ãžãã¢ã§ãããæ¥åã®äžã§AWSã®äžéšãµãŒãã¹ã䜿ãããšã¯ãã£ãŠããæ°èŠãããã¯ãã®åºç€ãšããŠè€æ°ã®ãµãŒãã¹ãçµã¿åãããŠæ§ç¯ããçµéšã¯ãããŸããã§ããã0â1ã®ã¯ã©ãŠãç°å¢æ§ç¯ã¯ä»åãåããŠã§ãã ãããªäžãFindy Contextã®Embedded SREãšããŠé
眮ãããããšã«ãªããŸããã éçºããŒã äž»äœã§ç°å¢æ§ç¯ãé²ããæ°æ¹éã®ããšããã®æ§ç¯ãã¡ã€ã³ã®æ
åœè
ãšããŠé²ããŠã»ãããšäŸé ŒãããŸããã çæåœåã¯ãããããäœããæãã€ããã°ããã®ãããåãããªãç¶æ
ã§ãããèšèšã®æé ããåªå
é äœããå€æåºæºãèªåã®äžã«ãããŸããã§ããã å§è²ã®ã¹ã³ãŒããšç§ãæ
åœããç¯å² ãŸããSREããŒã ãšéçºããŒã ã®æ
åœç¯å²ãæŽçããŠãããŸãã é å SREããŒã ãæ
åœ éçºããŒã ãæ
åœ AWSã¢ã«ãŠã³ã Organizations管ç ã¢ã«ãŠã³ãã®çºè¡ãçºè¡åŸã®åæèšå® ã€ã³ãã©ãªãœãŒã¹ïŒãããã¯ãŒã¯ã»ã¢ããªã±ãŒã·ã§ã³åºç€ïŒ å
±éæ¹éãæ±çšã¢ãžã¥ãŒã«ã»Terraformã®CI/CDãã³ãã¬ãŒãã®æŽå æ±çšã¢ãžã¥ãŒã«ã䜿ã£ããªãœãŒã¹æ§ç¯ïŒè¶³ããªããã®ã¯åå¥äœæïŒãCI/CDèšå® ç£èŠïŒDatadogïŒ Datadogã®ç®¡ç ããã·ã¥ããŒãã»ã¢ãã¿ãŒäœæãéçš éçºããŒã ãåŒãåããç¯å²ã¯ãSREããŒã ãæŽåããŠãããä»çµã¿ã䜿ã£ãŠèªåãã¡ã§æ§ç¯ããããšãã圢ã§ããã ä»åã®Findy Contextã®ç°å¢æ§ç¯ã¯ãçŽ2ã¶æããããŠãäž»ã«SREããŒã ãäºåã«åè§£ããŠãããäœæ¥ãé ã«æ¶åããæµãã§é²ããŸãããããããã¯ããã®æµãã4ã€ã®ãã§ãŒãºã«åããŠæ¯ãè¿ããŸãã AWSã¢ã«ãŠã³ãçºè¡ãšã€ã³ãã©æ§ç¯åºç€æŽå æåã®ãã§ãŒãºã¯ãFindy Contextçšã®AWSã¢ã«ãŠã³ããäœããTerraformã§ç®¡çããåºç€ãæŽããäœæ¥ã§ãããæ¬¡ã®ãããªã¿ã¹ã¯ã§ãã æ°èŠAWSã¢ã«ãŠã³ãã®äœæ HCP Terraformãžã®Projectäœæ Terraformçšã®GitHub Actionsã¯ãŒã¯ãããŒäœæ ãã¡ã€ã³ãã£ã«ã¯ãSREããŒã ãæŽåããåæã»ããã¢ããçšã®ãã³ãã¬ãŒãããããTerraformçšãªããžããªã®åæåã¯ãã®ãã³ãã¬ãŒãã§äžæ°ã«é²ããããŸããã CI/CDã»Dockerã»Trivyã»TFLintãªã©ãæ°èŠãããã¯ãã«å¿
èŠãªåºç€ãäžåŒæã£ãç¶æ
ã§ã¹ã¿ãŒãã§ããŸãã ããã§ãè©°ãŸã£ãã®ã¯ã GitHub ActionsããAWSãžã®OIDCèªèšŒã®èšå® ã§ããã Identity ProviderãIAM Roleã®ä¿¡é Œããªã·ãŒãšãã£ããIAMåšãã®ããªã·ãŒçè§£ãå¿
èŠã«ãªããŸããIAMããªã·ãŒã®ä»çµã¿ããããŸã§è§Šãæ©äŒããªããäœãã©ãæžãã°æåŸ
éãã®èªèšŒãéãã®ããæåã¯å
šãåãããŸããã§ããã ä¹ãè¶ãæ¹ã¯ãæ¢åãããã¯ãã®Terraformãªããžããªãåèã«ãåããŠããèšå®ããåããšããŠèªã¿è§£ãããšã§ããã ç¹ã«åæã¯ãSREããŒã ã®æ¹ã𿝿¥ãã¢ã§äœæ¥ããæéãæã¡ãã¬ã¯ãã£ãŒãåããã質åãéãããããªãããèªåã®äžã«æé ã®ã€ã¡ãŒãžãäœã£ãŠãããŸããã ã€ã³ãã©ãªãœãŒã¹ã®æ§ç¯ ããããããFindy Contextã®ã€ã³ãã©ãå®éã«çµã¿ç«ãŠããã§ãŒãºã§ããçŽ1ã¶æãããŠã次ã®ãããªãªãœãŒã¹ãé ã«æ§ç¯ããŠãããŸããã ãã¡ã€ã³ / DNS Zone / èšŒææžïŒACMïŒ ãããã¯ãŒã¯ïŒVPCã»ãµããããçïŒ ã³ã³ããé¢é£ïŒECSãªã©ïŒ ããŒã¿ããŒã¹é¢é£ïŒRDSãªã©ïŒ èªèšŒïŒCognitoïŒ é
ä¿¡ïŒCloudFrontïŒ ããã§åŒ·ãå©ããããã®ããSREããŒã ãæŽåãã æ±çšã¢ãžã¥ãŒã« ã§ããæ±çšã¢ãžã¥ãŒã«ã®æŽåã«ã€ããŠã¯ãå¥ã®èšäºã§è©³ãã玹ä»ãããŠããŸãã tech.findy.co.jp ãããã¯ãŒã¯ã»ã³ã³ããã»ããŒã¿ããŒã¹ãªã©ãã¢ããªã±ãŒã·ã§ã³éçºã§æšæºçã«å¿
èŠãªãªãœãŒã¹ã¯æ±çšã¢ãžã¥ãŒã«ãçšæãããŠããã倿°ãæå®ããã ãã§é©åãªæ§æãçµã¿äžãããŸãã ããã¹ããã©ã¯ãã£ã¹ãæ¯åãŒããã調ã¹ããå¿
èŠããªãç¶æ
ã§ã¹ã¿ãŒãã§ããããšã¯ãåŠç¿ã³ã¹ãã倧ããäžãã广ããããŸããã ããã§ãè©°ãŸã£ããã€ã³ãã2ã€ãããŸããã 1ã€ç®ã¯ã æ±çšã¢ãžã¥ãŒã«ã«ãªããªãœãŒã¹ã®äœã蟌ã¿ãã¬ãã¥ãŒ ã§ããFindy Contextã§ã¯ããŸã æ±çšã¢ãžã¥ãŒã«åãããŠããªããªãœãŒã¹ãè€æ°æ±ãå¿
èŠããããŸããã äœæã ãã§ãªãã¬ãã¥ãŒããæ§æã®ã€ã¡ãŒãžãé ã®äžã«ãªããšå€æãé£ããèŠåŽããéšåã§ãããAWSå
¬åŒããã¥ã¡ã³ãã«å ããClaudeãæŽ»çšããŠçåã«æã£ãç®æãäžã€ãã€çè§£ããŠããã¢ãããŒãã§é²ããŸããã 2ã€ç®ã¯ã ãªããžããªæ§æãšãªã¢ãŒãã¹ããŒãã®èšèš ã§ããæ°èŠã®ãªãœãŒã¹ãäœæããéãAWSã®ãµãŒãã¹ããšã«çްããstateãåå²ããããšããŠãããšãããSREããŒã ããããªã¢ãŒãã¹ããŒããå€çšããããªãèšèšãããå§ããããŸããã stateãåããã»ã©äŸåé¢ä¿ãè€éåããapplyé ã terraform_remote_state ã®ç®¡çã³ã¹ããå¢ããããã§ããã¢ããªã±ãŒã·ã§ã³ãšã³ãžãã¢åŽã®ã¿ã§é²ããŠãããæ°ä»ããªãã£ãèŠç¹ã§ãSREããŒã ã®ã¬ãã¥ãŒãåããªããé²ãããã䟡å€ã匷ãæããŸããã ãããã€ãšéçšã®æŽå ã€ã³ãã©ãªãœãŒã¹ãæã£ãããæ¬¡ã¯ã¢ããªã±ãŒã·ã§ã³ããããã€ããéçšã§ããç¶æ
ã«ãããã§ãŒãºã§ãããããã€çšã¯ãŒã¯ãããŒã®äœæãOperationã³ã³ããç°å¢ã®æŽåãCognitoãšã¢ããªã±ãŒã·ã§ã³ã®ç¹ããã¿ãªã©ãé²ããŸããã ããã§å©ãã«ãªã£ãã®ã¯ãæ¢åã®ä»ãããã¯ãã§ãã£ããæŽåãããŠããCI/CDãããŒã§ããã tech.findy.co.jp ãããã€ã®æµããOperationã³ã³ããã®æ§æããåºæ¬çã«ããŒãããèšèšãããã®ã§ã¯ãªããåããŠãããããŒãåèã«ãããã¢ãããŒãã§é²ããããã®ã§ãã SREããŒã ãšæ¢åãããã¯ããæ
åœãããšã³ãžãã¢ã®äž¡æ¹ã«çžè«ããªãããFindy Contextã®æ§æã«åãããèšèšãçµã¿ç«ãŠãŠãããŸããã ç£èŠïŒDatadogïŒã®æŽå ç°å¢æ§ç¯ã®ã¯ããŒãºåŸãå¥éåãçµãã ã®ãç£èŠäœå¶ã®æŽåã§ããDatadogã§ã®ããã·ã¥ããŒãäœæãã¢ãã¿ãŒïŒã¢ã©ãŒãïŒèšå®ããã°ã»ã¡ããªã¯ã¹ã®åéèšèšããšã©ãŒæ€ç¥ã®æŽåãªã©ãé²ããŸããã SREããŒã ãæŽåããDatadogåºç€ã®ãããã§ããDatadogèªäœãã©ã䜿ãããã¯è¿·ããã«é²ããããŸããã ãã®ãã§ãŒãºã§äžçªå€§ããªæ°ä»ãã¯ã ç£èŠãå¯èŠåã¯ã€ã³ãã©åŽã ãã§ã¯å®çµããªã ãšããããšã§ãã äŸãã°ãã°ã»ãšã©ãŒæ€ç¥ã®é åã§ãããšã©ãŒãæ£ãã远跡ã§ããããã«ããã«ã¯ãã¢ããªã±ãŒã·ã§ã³åŽã§äŸå€ãã³ããªã³ã°ã®èšå®ãèŠçŽãããã°ã®åºãæ¹ãæŽããããšãã£ãäœæ¥ãå¿
èŠã§ããã ãDatadogã§ãšã©ãŒãèŠããªãããšããçŸè±¡ã®æ ¹æ¬åå ããDatadogã®èšå®ã§ã¯ãªãã¢ããªã±ãŒã·ã§ã³ã³ãŒãåŽã«ããã±ãŒã¹ããããŸããã è©°ãŸã£ããã€ã³ãã¯2ã€ã§ãã 1ã€ç®ã¯ã ã¢ã©ãŒãã®éŸå€ãšãã¥ãŒãã³ã° ã§ãããäœããã©ã®å€ãè¶
ãããã¢ã©ãŒããåºãã¹ãããã¯ãåãµãŒãã¹ãææã«å¿ããŠå€æãå¿
èŠã§ãæåã¯èª€æ€ç¥ãé »çºããããéã«æ¬æ¥æ€ç¥ãã¹ãç°åžžãèŠéãããããªãã調æŽãéããŸããã 2ã€ç®ã¯ã ããã·ã¥ããŒãèšèšãšã¢ããªåŽã®ãã°æŽå ã§ãããäœãèŒããããèŒããªããããã©ããªãã°ãã©ãåºãã°åŸã§è¿œè·¡ã§ããããã¯ãã¡ããªã¯ã¹ããã°ã®éžå®ã ãã§ãªããã¢ããªã±ãŒã·ã§ã³ã®å®è£
ãšè¡šè£äžäœã§ããã SREããŒã ãæ¢åãããã¯ããåèã«ãã€ã€ãFindy Contextã®ã³ãŒãã«ã䞊è¡ããŠæãå
¥ããŠãããŸããã ç£èŠæŽåã¯ããã€ã³ãã©ã ãç¥ã£ãŠããã°ããããšããèªèãäžçªå€§ãã厩ããçµéšã§ããããŸããã å¯èŠåã®åºç€ãšããŠãã¢ããªã±ãŒã·ã§ã³åŽã®ç¥èãå¿
èŠ ã ãšã身ããã£ãŠåŠãã ãã§ãŒãºã§ãã å人ãšããŠåãçµãã ããš ãããŸã§ãä»çµã¿ãæŽã£ãŠããããšãã話ãäžå¿ã«ããŠããŸããããããã ãã§èžã¿åºããããšãããšãããã§ã¯ãããŸãããä»çµã¿ã掻ããã«ã¯ãèªååŽã§ãäžå®ã®æºåãå¿
èŠã§ããã ç§ã䞊è¡ããŠåãçµãã ã®ã¯ã AWSèªå®ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ã ã¢ãœã·ãšã€ãïŒSAAïŒã®ååŸ ã§ããã 詊éšå匷ã®äžã§ã¯AWSå
¬åŒã®ãAWS Hands-on for BeginnersããæŽ»çšããæžç±ã ãã§ã¯èº«ã«ã€ãã«ãããå®éã«ã³ã³ãœãŒã«ãè§Šã£ãŠãªãœãŒã¹ãäœããæèŠãåãããŠèº«ã«ã€ããŸããã SAAãéããŠãå®éã®æ¥åã§äœ¿ããµãŒãã¹ã ãã§ãªããAWSã®äž»èŠãµãŒãã¹ãšã¢ãŒããã¯ãã£ãã¿ãŒã³ãäœç³»çã«åŠã¹ãããšã§ãç¥èã®å¹
ãåºãããŸããã äŸãã°ã³ã¹ãæé©åã®ããã«ãæ¥åã§çŽæ¥æ·±æãããŠããªãé åã§ãããããã¯ããäžæ©æ¹åã§ãããããšããæ°ä»ããåŸãããåŒãåºããå¢ããæèŠããããŸãã ãç°å¢ãæŽã£ãŠããã°èª°ã§ãèªèµ°ã§ãããããã§ã¯ãªããæŽã£ãç°å¢ã掻ããããã®æºåãšããŠãèªåã®åŽã«åºç€ç¥èã®ã¹ããã¯ãäœãããšããèžã¿åºãäžã§å€§ããªæ¯ãã«ãªããŸããã ä»åŸã®äŒžã³ä»£ ä»åã®æ§ç¯ã§èŠããŠãããèªååŽãšä»çµã¿åŽã®äŒžã³ãããæžããŠãããŸãã èªååŽ è€æ°ãªããžããªã«ãŸããããµãŒãã¹ãªãã§ã¯ã®ãªãã¶ãŒãããªãã£èšèšã§ãã Findy Contextã¯è€æ°ãªããžããªã§æ§æãããŠããã1ãªã¯ãšã¹ããè€æ°ãµãŒãã¹ãè·šãå Žåã®è¿œè·¡ãããã°ã»ã¡ããªã¯ã¹ã®çžé¢ä»ãã«ã¯ããŸã æ¹åã®äœå°ããããŸãã Datadog APMãªã©ã掻çšããªãããã©ãèšèšããŠãããã¯ä»åŸã®èª²é¡ã§ãã ä»çµã¿åŽïŒæ±çšã¢ãžã¥ãŒã«ã»ãã³ãã¬ãŒããžã®æ¹åäœå°ïŒ ãããŸã§æžããŠãããšãããSREããŒã ãæŽåããŠãããæ±çšã¢ãžã¥ãŒã«ããã³ãã¬ãŒãã«ã¯ãéåžžã«å€§ããªäŸ¡å€ãæããŠããŸãããã®äžã§ãå®éã«äœ¿ã£ãŠã¿ãŠæãããããäžæ©ãã³ãã¬ãŒãåããããšå¬ãããé åãæããŠãããŸãã åæã»ããã¢ããïŒAWSã¢ã«ãŠã³ãã®çºè¡ â OIDCèªèšŒ â Terraform / GitHub Actionsã®åææ§æïŒã®éšåã¯ãæ³å以äžã«æéãããã£ãé åã§ããã äžæ žã®ãªãœãŒã¹æ§ç¯ã¯æ±çšã¢ãžã¥ãŒã«ã®ãããã§æ©ãé²ããããäžæ¹ã§ãåæã®ã¢ã«ãŠã³ãã»èªèšŒãŸããã¯ããŸã åå¥å¯Ÿå¿ã®æ¯çãé«ãã ãšæããŸããã ãããããäžæ®µãã³ãã¬ãŒãåããããšã次ã«ç«ã¡äžããæ°èŠãããã¯ãã®ååã¯ããã«ã¹ã ãŒãºã«ãªãããã§ãã ãŸãšã Findy Contextã®ã¯ã©ãŠãç°å¢ç«ã¡äžããéããŠãæã匷ãæããã®ã¯ã ãä»çµã¿ããšãå人ã®åŠç¿ãã®äž¡æ¹ãæã£ãŠåããŠãçµéš1幎ã®ãšã³ãžãã¢ã§ã0â1ã«èžã¿åºãã ãšããããšã§ããã ä»çµã¿åŽïŒSREããŒã ïŒãæŽåããŠãããæ±çšã¢ãžã¥ãŒã«ããã³ãã¬ãŒããæ¢åãããã¯ãã®åèå®è£
ãçžè«ãããããµããŒãäœå¶ãªã©ããããããªããã°ãäœããæãã€ããããã®æ®µéã§é·ãç«ã¡æ¢ãŸã£ãŠããã¯ãã§ãã äžæ¹ã§ãSAAãéããäœç³»çãªåŠç¿ãããã³ãºãªã³ã§ã®å®æ©æèŠããªããã°ãæŽã£ãç°å¢ã掻ãããããªãã£ããšãæããŸãã ä»çµã¿åŽã®æŽåã¯ãéçºè
ã®ããã£ãŠãããããã€ã³ãããèªåãã¡ã§ããããªãŒããŒã·ãããžãšèªç¶ã«åãæ¿ããŠãããè£
眮ã§ããããŸãã SREã®éçºããŒã ãžã®å§è²ã¯ã人æäžè¶³ãžã®å¯Ÿå¿çã«ãšã©ãŸãããéçºçµç¹å
šäœã®ã¹ãã«ãšåœäºè
æèãåºäžãããåãçµã¿ã«ãªããããšæããŸããã èªç€Ÿã§äŒŒãåãçµã¿ãæ€èšããŠããæ¹ãããã£ãªã¢ã®æ©ã段éã§ææŠãèããŠãããšã³ãžãã¢ã®æ¹ã®åèã«ãªãã°å¬ããã§ãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ããã«ã¡ã¯ããã¡ã€ã³ãã£ã§ããã³ããšã³ããšã³ãžãã¢ãããŠãã倧ç³ïŒ @bicstone ïŒã§ãã 2026幎5æ22æ¥ã23æ¥ã«éå¬ããã TSKaigi 2026 ã§ã ãããããã£ã®é åºã§åæšè«ãå£ãã!? TS6.0ã®ä¿®æ£ããContext-Sensitivityã®ä»çµã¿ã远ãã ãšããã¿ã€ãã«ã§ç»å£ããŸããæ¬èšäºã¯10åã®ããŒã¯å
ã§ã¯æéã®éœåã§ç«¯æã£ãå
容ãå«ããæ¡åŒµçãšããŠãå±ãããŸãã 2026.tskaigi.org TypeScriptã§ãªããžã§ã¯ããªãã©ã«ã«ã¡ãœãããæžãããšããããããã£ã®èšè¿°é åºãå
¥ãæ¿ããã ãã§åæšè«ã®çµæãå€ãããšããããã©ãæããã§ãããããããããªäžæè°ãªæåãããã®ãããæ°ã«ãªããã©TypeScriptå
éšã®ãœãŒã¹ã³ãŒãã¯é£ãããã§èªåã«ã¯çžããªãããšæã£ãæ¹ããããããããŸããã ãã®èšäºã§ã¯ããã®äžæè°ãªæåãå
¥ãå£ã«ããŠTypeScriptã³ã³ãã€ã©ã®äžã§äœãèµ·ããŠããã®ãã1ã€ã®PRãã远ããªãã解説ããŸãã èæ¯: ããããã£ã®é åºã§åãå€ãã ã¢ããŒé¢æ°ãªãåé¡ãªãã®ã¯ãªãã Context-Sensitive Functionã®èãæ¹ æšè«ã®å
šäœå ã¡ãœããæ§æã«é ããŠããæé»ã®thisãã©ã¡ãŒã¿ äž¡æ¹ã¹ãããã§èµ·ããé åºäŸåã®æ£äœ ä»åã®ä¿®æ£ãèªã¿è§£ã binder.ts: ContainsThisãã©ã°ãç«ãŠã utilities.ts: hasContextSensitiveParametersã®å€æŽ checker.ts: Generatoråºæã®ãšããžã±ãŒã¹ ä¿®æ£ååŸã®æšè«ãæ¯èŒãã TypeScript 5.9 TypeScript 6.0 TypeScriptã®ã³ã³ãã€ã©ãèªãæåã®äžæ© ãããã« åèè³æ èæ¯: ããããã£ã®é åºã§åãå€ãã æ¬¡ã® test 颿°ãèŠãŠãã ãããåãã©ã¡ãŒã¿ T ãæã¡ã2ã€ã®ãããã㣠a ãš b ãåãåããŸãã function test < T >( options : { a : ( c : T ) => void ; b : () => T ; } ) {} 次ã®2ã€ã®åŒã³åºãã¯ãããããã£ã®èšè¿°é åºãéãã ãã§ããããããTypeScript 5.9以åã§ã¯ããã®2ã€ã®çµæã¯ç°ãªããŸãã test ( { b () { return 123 } , a ( c ) { return c } } ); // c: number test ( { a ( c ) { return c } , b () { return 123 } } ); // c: unknown ããããã£ã®é åºãå
¥ãæ¿ããã ãã§ c ã®åã number ãã unknown ã«å€ãããŸãã æå
ã§æåã確èªãããå Žåã¯ã TypeScript Playground ãéããŠã¿ãŠãã ããã c ããããŒãããš unknown ã衚瀺ãããã¯ãã§ãã ã¢ããŒé¢æ°ãªãåé¡ãªãã®ã¯ãªãã äžæ¹ãåãã³ãŒããã¢ããŒé¢æ°ã§æžãæãããšãé åºã«é¢ä¿ãªãæšè«ãéããŸãã // ã¢ããŒé¢æ°ã¯ãã©ã¡ãã®é åºã§ãc: number test ( { a : ( c ) => { c } , b : () => 123 } ); // c: number test ( { b : () => 123 , a : ( c ) => { c } } ); // c: number ã¡ãœããæ§æã§ã¯é åºã«äŸåããã®ã«ãã¢ããŒé¢æ°ã§ã¯äŸåããªãããã®å·®ã¯ã©ãããæ¥ãã®ã§ããããã çãã¯TypeScriptã®åæšè«ãã€ãã©ã€ã³ã«ãããContext-Sensitive Functionãšããèãæ¹ã«ãããŸãã Context-Sensitive Functionã®èãæ¹ Context-Sensitive Functionãšã¯ãåæ³šéã®ãªããã©ã¡ãŒã¿ãæã€é¢æ°ã®ããšã§ãããã©ã¡ãŒã¿ã®åãæ±ºããããã«ãå€éšã®ã³ã³ããã¹ããå¿
èŠã«ãªããŸãã // context-sensitive: (c) => c // cã®åãããããªã â å€éšã«äŸå // context-sensitiveã§ãªã: (c: number) => c // cã®åãæç€ºãããŠãã () => 123 // ãã©ã¡ãŒã¿ããªã TypeScriptã®åæšè«ã«ãããŠãcontext-sensitiveãªé¢æ°ã¯ç¹å¥æ±ããããŸããæšè«ã®éçšã§ãåŸåããã«ãããã®ã§ãã ãªãåŸåãã«ããå¿
èŠãããã®ã§ãããããæ¬¡ã®ã³ãŒãã§èããŠã¿ãŸãã function callFunc < T >( callback : ( x : T ) => void , value : T ) {} callFunc( x => x. toFixed (), 123 ); // ^ ^^^ // xã®åãç¥ããã Tã®æ
å ±æº callback ã®åŒæ° x ã®åãæ±ºããã«ã¯ T ãå¿
èŠã§ããããã T ãæšè«ããããã«ã¯ callback ã®æ
å ±ãå¿
èŠã§ããé¶ãšåµã®åé¡ãçºçããŸãã TypeScriptã¯ããã解決ããããã«ãcontext-sensitiveãªé¢æ°ïŒããã§ã¯ callback ïŒããã£ããã¹ãããããä»ã®åŒæ°ïŒããã§ã¯ 123 ïŒããå
ã« T = number ãæšè«ããŸãããã®åŸã callback ã«æ»ã£ãŠ x: number ã確å®ãããŸãã æšè«ã®å
šäœå TypeScriptã®ãžã§ããªãã¯é¢æ°ã«ãããåæšè«ã¯ããããŸãã«æ¬¡ã®æµãã§è¡ãããŸãã åŒæ°ãèµ°æ»ããcontext-sensitiveãªé¢æ°ãç¹å®ãã context-sensitiveãªé¢æ°ãã¹ããããã æ®ãããåãã©ã¡ãŒã¿ T ãæšè«ãã 確å®ãã T ã§åŸåãã®é¢æ°ã®ãã©ã¡ãŒã¿ãåä»ããã ã¹ããã2ã§å
šãŠã®é¢æ°ãã¹ããããããŠããŸããš T ãæšè«ãããœãŒã¹ããªããªããŸãããã®å ŽåãTypeScriptã¯ãã©ãŒã«ããã¯åŠçã«å
¥ããå·Šããå³ã®é çªã§åŠçã詊ã¿ãŸãã ã¡ãœããæ§æã«é ããŠããæé»ã®thisãã©ã¡ãŒã¿ ã¡ãœããæ§æã§æžããã颿°ã¯ãæé»ã® this ãã©ã¡ãŒã¿ãæã¡ãŸãã // ã¡ãœããæ§æ { a(c) { return c } } // â TypeScriptã®å
éšçãªè§£é { a( this : ???, c: ???) { return c } } // ^^^^ æé»ã®this â åæ³šéãªã â context-sensitive this ãã©ã¡ãŒã¿ã«ã¯å泚éããªããããTypeScriptã¯ãã®é¢æ°ãcontext-sensitiveãšå€å®ããŸãã this ãå®éã«ã¯äœ¿ã£ãŠããªããŠããååšããã ãã§context-sensitiveã«ãªã£ãŠããŸããŸãã äžæ¹ãã¢ããŒé¢æ°ã¯ this ãã©ã¡ãŒã¿ãæã¡ãŸããã // ã¢ããŒé¢æ° { a: (c) => c } // â thisãã©ã¡ãŒã¿ãªã // â cã ããæªæ³šéã®ãã©ã¡ãŒã¿ ãã®å·®ããã¡ãœããæ§æãšã¢ããŒé¢æ°ã§æšè«ã®æåãç°ãªãæ ¹æ¬çãªåå ã§ãã äž¡æ¹ã¹ãããã§èµ·ããé åºäŸåã®æ£äœ åé ã®äŸã«æ»ããŸãããã test ( { a ( c ) { return c } , b () { return 123 } } ); a ãå
ã«æžãããŠããå Žåãæšè«ãã€ãã©ã€ã³ã§ã¯æ¬¡ã®ããã«åŠçãããŸãã a(c) â æé»ã® this â context-sensitive â ã¹ããã b() â æé»ã® this â context-sensitive â ã¹ããã äž¡æ¹ã¹ããã â T ãæšè«ãããœãŒã¹ããªã ãã©ãŒã«ããã¯ãšããŠãå·Š â å³ã®é çªã§åŠçã詊ã¿ã a(c) ãå
ã«åŠç â T ãæªç¢ºå® â c: unknown b ãå
ã«æžãããŠããå Žåã¯ã©ããªãã§ããããã åããäž¡æ¹ã¹ãããããã ãã©ãŒã«ããã¯ãšããŠãå·Š â å³ã®é çªã§ b() ãå
ã«åŠç b() ã®æ»ãå€ 123 ãã T = number ãæšè« a(c) ã« T = number ãé©çš â c: number ãããããããã£ã®é åºã§åãå€ããåå ã§ãããã©ãŒã«ããã¯åŠçãå·Š â å³ã®é çªã§è¡ããããããã©ã¡ãã®ããããã£ãå
ã«æžãããŠããããæšè«çµæãå·Šå³ããŠããŸããã ä»åã®ä¿®æ£ãèªã¿è§£ã ãã®åé¡ãä¿®æ£ããTypeScriptã®PR #62243 ã¯Andaristæ°ã«ãã£ãŠå®è£
ããã2025幎12æã«ããŒãžãããŸããã github.com this ãå®éã«äœ¿ã£ãŠããªã颿°ã¯ãcontext-sensitiveãšèŠãªããªãããšããä¿®æ£ã宿œãããŸããã ãã®å€æŽã¯3ã€ã®ãã¡ã€ã«ã«ãŸããã£ãŠããŸãã ãã¡ã€ã« åœ¹å² å€æŽå
容 binder.ts ãã©ã°ãç«ãŠã 颿°å
ã® this 䜿çšã远跡ãã ContainsThis ãã©ã°ãèšå®ãã utilities.ts å€å®ãå€ãã ContainsThis ããªããã°ãæé»ã® this ãã©ã¡ãŒã¿ãç¡èŠãã checker.ts è£å®ãã Generatoråºæã®ãšããžã±ãŒã¹ã«å¯Ÿå¿ãã ããããã®å€æŽç®æãèŠãŠãããŸãã ãªãã以éã«æ²èŒããã³ãŒãã¯ã解説ã®éœåäžãåãã¡ã€ã«ãã該åœç®æã®ã¿ãæç²ãã // ... äžç¥ ... ãªã©ã§çç¥ããŠããŸããå®è£
ã®æ£ç¢ºãªå·®å㯠PR #62243ã®Files changed ãããããŠåç
§ããŠãã ããã binder.ts: ContainsThisãã©ã°ãç«ãŠã TypeScriptã® binder.ts ã¯ãASTïŒæœè±¡æ§ææšïŒãèµ°æ»ããŠã·ã³ãã«ããŒãã«ãæ§ç¯ããŸããä»åã¯ã颿°ããŒãã®ãã€ã³ãæã« this ããŒã¯ãŒãã®äœ¿çšã远跡ããåŠçã远å ãããŸããã ãŸããASTèµ°æ»äžã« this ããŒã¯ãŒããèŠã€ãããã seenThisKeyword ãã©ã°ãç«ãŠãŸãã case SyntaxKind.ThisKeyword: if (node.kind === SyntaxKind.ThisKeyword) { seenThisKeyword = true ; // 远å } // ... æ¢ååŠç ... 次ã«ã颿°ã®ã³ã³ããããã€ã³ããã bindContainer ã§ã颿°æ¬äœã®ãã€ã³ãååŸã§ seenThisKeyword ãéé¿ã»åæåããæ¬äœå
ã§ this ãåºçŸããŠããã° NodeFlags.ContainsThis ãç«ãŠãåŠçã远å ãããŸããã const saveSeenThisKeyword = seenThisKeyword; // éé¿ïŒè¿œå ïŒ // ... ä»ã¹ããŒãã®éé¿ ... seenThisKeyword = false ; // åæåïŒè¿œå ïŒ bindChildren(node); // å¢åã³ã³ãã€ã«åãã®ãªã»ãã察象ã«ContainsThisã远å node.flags &= ~(NodeFlags.ReachabilityAndEmitFlags | NodeFlags.ContainsThis); // ... äžç¥ ... if (seenThisKeyword) { // ãã©ã°ãç«ãŠãïŒè¿œå ïŒ node.flags |= NodeFlags.ContainsThis; } // ... äžç¥ ... // 埩å
ïŒã¢ããŒé¢æ°ã¯å
éšã®this䜿çšãå€åŽã«äŒæïŒ seenThisKeyword = node.kind === SyntaxKind.ArrowFunction ? saveSeenThisKeyword || seenThisKeyword : saveSeenThisKeyword; seenThisKeyword ã¯ãã€ã³ãäžã«ããŒã«ã«ã«ç®¡çããããã©ã°ã§ã颿°æ¬äœå
ã§ this ããŒã¯ãŒããåºçŸãããã©ããã远跡ããŸãã颿°ã®ãã€ã³ããå®äºããæç¹ã§ this ã䜿ãããŠããã°ã NodeFlags.ContainsThis ãã©ã°ãããŒãã«èšå®ãããŸãã æ«å°Ÿã®åŸ©å
åŠçãã¢ããŒé¢æ°ãšãã以å€ã§åå²ããŠããã®ã¯ãã¢ããŒé¢æ°èªèº«ã¯ this ãã€ã³ãã£ã³ã°ãæãããå
éšã® this ã¯ã³ãŒãäžã§èªåãå²ã£ãŠããå€åŽã®é¢æ°ã® this ããã®ãŸãŸåç
§ããããã§ããã¢ããŒé¢æ°ã®å
éšã§ this ã䜿ãããŠããã°ãå€åŽã®ã¡ãœããã® ContainsThis ãç«ãŠãå¿
èŠããããŸãã ã€ãŸãã this ã䜿ã£ãŠãã颿°ã ãã« ContainsThis ãã©ã°ãç«ã¡ã䜿ã£ãŠããªã颿°ã«ã¯ãã©ã°ãç«ã¡ãŸããã utilities.ts: hasContextSensitiveParametersã®å€æŽ utilities.ts ã® hasContextSensitiveParameters 颿°ã¯ã颿°ãcontext-sensitiveãã©ãããå€å®ããããã®é¢æ°ã§ãã export function hasContextSensitiveParameters ( node : FunctionLikeDeclaration ): boolean { // Functions with type parameters are not context sensitive. if (!node.typeParameters) { // Functions with any parameters that lack type annotations are context sensitive. if (some(node.parameters, p => !getEffectiveTypeAnnotationNode(p))) { return true ; } if (node.kind !== SyntaxKind.ArrowFunction) { // If the first parameter is not an explicit 'this' parameter, then the function has // an implicit 'this' parameter which is subject to contextual typing. const parameter = firstOrUndefined(node.parameters); if (!(parameter && parameterIsThisKeyword(parameter))) { return !!(node.flags & NodeFlags.ContainsThis); // 倿Žç®æ } } } return false ; } å®éã®å€æŽç¹ã¯æåŸã® return ã®1è¡ã®ã¿ã§ãã - return true; + return !!(node.flags & NodeFlags.ContainsThis); ãã®è¡ãçºç«ããã®ã¯ãåãã©ã¡ãŒã¿ããªãããã¢ããŒé¢æ°ã§ã¯ãªãããæåã®ãã©ã¡ãŒã¿ãæç€ºç㪠this ãã©ã¡ãŒã¿ã§ã¯ãªãããšãã3æ¡ä»¶ãæºããå Žåãã€ãŸãæé»ã® this ãæã€ã¡ãœããæ§æã®é¢æ°ã§ãã 倿Žåã¯ããã®æ¡ä»¶ã«åèŽããã¡ãœãããç¡æ¡ä»¶ã«context-sensitiveãšããŠæ±ã£ãŠããŸããã倿ŽåŸã¯ã ContainsThis ãã©ã°ãç«ã£ãŠããïŒ=æ¬äœã§ this ãå®éã«äœ¿ã£ãŠããïŒãšãã ãcontext-sensitiveãšããŠæ±ãããã«ãªããŸããã checker.ts: Generatoråºæã®ãšããžã±ãŒã¹ Generator颿°ã¯ã¢ããŒé¢æ°ãšããŠæžãããšãã§ããŸããïŒ function* æ§æã®ã¿ïŒããã®ããã this ã䜿ããªãGeneratorã§ãåžžã«ã¡ãœããæ§æïŒ= this ããïŒã§æžãããããšã«ãªããŸãã this ãªãã®é¢æ°ãcontext-sensitiveã§ãªããªããšãGenerator颿°ãäžåŸã«context-sensitiveã§ãªããªã£ãŠããŸããŸããããããGeneratorå
ã® yield åŒèªäœãcontext-sensitiveã§ããå ŽåããããŸãã declare function pipe < T >( gen : () => Generator <( arg : T ) => string , void , void > , initial : T , ): void ; pipe( function* () { yield ( arg ) => arg. toFixed ( 2 ); // yieldåŒãcontext-sensitive } , 42 ); ãã® yield (arg) => arg.toFixed(2) ã¯ã T ã®åã確å®ããªããš arg ã®åãæ±ºãŸããŸãããã€ãŸãããã®Generatorå
šäœã¯context-sensitiveãšããŠæ±ãå¿
èŠããããŸãã checker.ts ã§ã¯ã isContextSensitive ã® switch ã« YieldExpression ã®ã±ãŒã¹ã远å ãã isContextSensitiveFunctionLikeDeclaration ã«æ°èŠé¢æ° hasContextSensitiveYieldExpression ãåŒã¶åå²ã远å ãããŸããã case SyntaxKind.JsxExpression: case SyntaxKind.YieldExpression: { // 远å const { expression } = node as JsxExpression | YieldExpression ; return !!expression && isContextSensitive(expression); } function isContextSensitiveFunctionLikeDeclaration ( node : FunctionLikeDeclaration ): boolean { return hasContextSensitiveParameters(node) || hasContextSensitiveReturnExpression(node) || hasContextSensitiveYieldExpression(node); // 远å } function hasContextSensitiveYieldExpression ( node : FunctionLikeDeclaration ): boolean { // 远å return !!( getFunctionFlags(node) & FunctionFlags.Generator && node. body && forEachYieldExpression(node. body as Block , isContextSensitive) ); } ããã«ããã yield åŒãcontext-sensitiveãªå Žåã¯Generatorå
šäœãcontext-sensitiveãšããŠæ±ããããã«ãªããŸãã ä¿®æ£ååŸã®æšè«ãæ¯èŒãã åé ã®ã³ãŒãã§ãä¿®æ£ååŸã®æšè«ãæ¯èŒããŠã¿ãŸãããã test ( { a ( c ) { return c } , b () { return 123 } } ); TypeScript 5.9 a(c) â æé»ã® this â context-sensitive â ã¹ããã b() â æé»ã® this â context-sensitive â ã¹ããã äž¡æ¹ã¹ããã â T ãæšè«ãããœãŒã¹ãªã ãã©ãŒã«ããã¯ãšããŠãå·Šâå³ã®é çªã§åŠç a(c) ãå
ã«åŠç â T ãæªç¢ºå® c: unknown TypeScript 6.0 a(c) â this äžäœ¿çš â ContainsThis ãªã â ã¹ãããããªã b() â this äžäœ¿çš â ContainsThis ãªã â ã¹ãããããªã éåžžã®æšè«ãž b() ã®æ»ãå€ãã T = number ãæšè« a(c) ã« T = number ãé©çš c: number this ã䜿ã£ãŠããªãã¡ãœããæ§æã®é¢æ°ãcontext-sensitiveãšå€å®ãããªããªã£ãããšã§ãã¢ããŒé¢æ°ãšåãæšè«ã«å
¥ãããã«ãªããŸãããããããã£ã®èšè¿°é åºã«äŸåããªããªããŸãã TypeScriptã®ã³ã³ãã€ã©ãèªãæåã®äžæ© TypeScriptã³ã³ãã€ã©ã® checker.ts ã¯5äžè¡ãè¶
ãã巚倧ãªãã¡ã€ã«ã§ããkkk4oruãããTSKaigi 2025ã§ç»å£ãããã checker.tsã«å¯ŸããŠçå£ã«åãåã ããå°è±¡ã«æ®ã£ãŠããæ¹ãå€ãã®ã§ã¯ãªãã§ããããã 2025.tskaigi.org 5äžè¡ã«å§åãããŸãããäžã€ã®æ©èœã远ãã®ã§ããã°å
šéšèªãå¿
èŠã¯ãããŸããã OSSã®PRãèªããšãã¯ã次ã®èгç¹ã§èªã¿é²ãããšè¿·åã«ãªãã«ãããªããŸãã ãªã³ã¯ãããŠããIssueãå
ã«èªã¿ã課é¡ãäœã解決ããããšããŠããã®ããçè§£ å
ã«ä¿®æ£ããããã¹ããèªãããšã§ãäœãçŽããã®ããçè§£ PRã®èª¬æãã¬ãã¥ãŒã³ã¡ã³ããèªãããšã§ãä¿®æ£ã®æå³ãçè§£ NodeFlags / TypeFlags ãå¢ããŠããã°ãããã远ãããšã§å€æŽã®æå³ãçè§£ ãããã¯ä»åã®èªåã®èªè§£ã§å®éã«åœ¹ã«ç«ã£ã芳ç¹ã§ãã ãããã« 1ã€ã®PRããTypeScriptã®åæšè«ã®ä»çµã¿ã远ãããšã§ãContext-SensitivityãšããæŠå¿µãšãTypeScriptã®å
éšã«èžã¿èŸŒããã£ãããæã¡åž°ã£ãŠããã ãããå¬ããã§ãã åèè³æ Announcing TypeScript 6.0 Beta - TypeScript microsoft/TypeScript - GitHub Improve inference by not considering thisless functions to be context-sensitive by Andarist · Pull Request #62243 · microsoft/TypeScript microsoft/TypeScript-Compiler-Notes - GitHub TypeScript Compiler Internals | TypeScript Deep Dive ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers æ¬èšäºã® binder.ts / utilities.ts / checker.ts ã®ã³ãŒãã¯ã microsoft/TypeScript ããåŒçšããŠããã Apache License 2.0 ã®ããšã§é
åžãããŠããŸãã
ããã«ã¡ã¯ãããã°ãã¯ã Findy Team+ éçºã®ããã³ããšã³ããªãŒããããŠãã @shoota ã§ãã ä»åã¯ããã³ããšã³ãããã¯å°ãé¢ããAIã«ãããã«ãªã¯ãšã¹ãã®ã¬ãã¥ãŒã·ã¹ãã ãäœæããè©±ãæžããŸãã Findy Team+ããã³ããšã³ãã®çŸç¶ãšèª²é¡ AIã³ãŒãã£ã³ã°æä»£ã®æ°ããªèª²é¡ AIã«ããèªåã¬ãã¥ãŒïŒApproveïŒãäœãã 解決ãããèª²é¡ ã¬ãã¥ãŒã¯å€§ãã3çš®é¡ãã 誰ã䜿ããã®ã äœãå€å®ããã®ã å€å®ã®ãã¢ã¯Tidy First?ã®åé¡ å®è£
ãšãã€ã³ã GitHub Actions Claude Code Actions ã¯ãŒã¯ãããŒã®å€åãšããã³ããã®æ¹å å®è¡ã³ã¹ã ãããã« Findy Team+ããã³ããšã³ãã®çŸç¶ãšèª²é¡ éå»ã®ããã°ã§ãè§ŠããŠããŸãããFindy Team+ã®ããã³ããšã³ãã¯ãéåžžã«å€§ããªã¢ãã¬ãã§æ§æãããŠããŸãã tech.findy.co.jp ãã®ãããCIã®æé©åã»ãã¥ãŒãã³ã°ã¯ãã¡ããã®ããšãã³ãŒãããŒã¹å
šäœã®ç§©åºã®å質ãç¶æããããã«ããŸããŸãªå·¥å€«ãå¶çŽããã£ãŠéçšããŠããŸããã AIã³ãŒãã£ã³ã°ãäž»æµã«ãªã£ãŠããã¯æŽã«ãããã匷åããå¶çŽãã«ãŒã«ã®çå®ãESLintããŠããããã¹ããªã©ã®ã¬ãŒãã¬ãŒã«æŽåã匷åãããã1幎ããããŠé²ããŠããŸããã ïŒãã®å
容ã«ã€ããŠã¯å¥ã§çºè¡šããããšæããŸãïŒ ãããã®æè³ãšAIã¢ãã«ã®é²åã«ããããããŸã§ããã¯ãšã³ããäžå¿ã«æŽ»åããŠããã¡ã³ããŒã®ããã³ããšã³ãã®åå
¥éå£ã倧ããäžããããšã«æåããŠããŸãã çŸåšã§ã¯ãAIãçæããã³ãŒãã®è³ªã¯1幎åãã倧ããåäžããŠãããšäœæããŠããŸãã AIã³ãŒãã£ã³ã°æä»£ã®æ°ããªèª²é¡ ãããããã§æ°ããªèª²é¡ãçãŸããŸãããããã¯ããAIãç䌌ãã¹ãã§ãªãã³ãŒãã®ä¿®æ£ããããããé²ãã«ãŒã«ã®å°å
¥ã®ããã®ã¬ãã¥ãŒã³ã¹ããç°åžžã«é«ãããšããããšã§ãã AIã®æŽ»çšã®ããã«ã³ãŒããçŽãç¶ããæŽ»åã¯å·šå€§ãªã³ãŒãããŒã¹ã§ã¯ããªãã³ã¹ãããã æè¡çãªéå£ãããåçŽãªç©éãã€ããã察æããææ®µããªã ESLintã®ã«ãŒã«ã1ã€å€æŽããã ãã§ãã«ãªã¯ãšã¹ãã倧éã«å¿
èŠã«ãªã ç¹å®ã®ã«ãŒã«ã®ã¡ãã£ãšãã峿 Œåã§25ä»¶ã®ãã«ãªã¯ãšã¹ããäœæ ãããããã«ãŒã«ã远å ãããšãã¯150ä»¶ã®ãã«ãªã¯ãšã¹ããå¿
èŠã«ãªã£ã 軜埮ãªå€æŽã§ãæå³ã®ããç²åºŠã§ä¿®æ£ããªããŠã¯ã¬ãã¥ãŒã§ããªããããã²ãããã«æ°ãéãã ãã®ãããªäºè±¡ãå®åžžçã«çºçããŠãããæ¬¡ã®Findy Team+ã§ã®ã°ã©ãã§ã確èªã§ããŸãã 倧éã®ãã«ãªã¯ãšã¹ããçºçããæ§å Vitest ã®äžéšã®assertionãdeprecatedã«ãªã£ãããšã«å¯ŸããŠãç§ãäžäººã§Claude Codeãåãã1æ¥ã«72ä»¶ã2æ¥ã§100件以äžã®ãã«ãªã¯ãšã¹ããäœæããŸããã ã¬ãã¥ãŒåŸ
ã¡ãå€ãçºçããå²ã«ãå
容ã¯é¢æ°ã®çœ®ãæããªã®ã§ã¬ãã¥ãŒäŸ¡å€ãäœããã«ãªã¯ãšã¹ãã倧éã«å¿
èŠã«ãªã£ãã®ã§ãã ãã®ãã㪠ãAIãå©çšããŠå質ãç¶æããããã®æŽåã人éãèŠãããŠããã ãšããç¶æ³ã¯ãè¿é 話é¡ã«ãªã£ãŠãã Hustle Porn ã«è¿ãã®ã§ã¯ãªããïŒãšèããŸããã hustle porn èŠãã https://t.co/y3jpiLDL0x — Takuto Wada (@t_wada) 2026幎4æ13æ¥ ãã«ãªã¯ãšã¹ããããããæžãããšã¯çŽ æŽãããã§ãããããã«æå³ã®ããç²åºŠãšäŸ¡å€ã䌎ããªããã°ãªããŸããã AIã«ããèªåã¬ãã¥ãŒïŒApproveïŒãäœãã ãã®ãããªèæ¯ããã¬ãã¥ãŒè² è·ãå¯èœãªéãäœæžããããã ãã æ æ° ãåãæ»ãããã«ãAIã¬ãã¥ãŒã®ä»çµã¿ãäœæããããšã«ããŸããã ãŸãã¯ããããããšããå
šäœã®æ§æ³ãšã³ã³ã»ãããæ±ºããŠãããæ¬¡ã®ãããªå
容ã«ãªããŸããã 解決ãããèª²é¡ ãã«ãªã¯ãšã¹ããé«éã«äœãç¶ããããšã¯ãããæè¿ãã¹ã 課é¡ã®æ¬è³ªã¯ãã¬ãã¥ãŒããã»ã¹ã察ã²ãšã§ããæ©èœããŠããªããããš äººã®æéããã°ã 人ã®ã¢ã¯ã·ã§ã³ãåŸ
〠䞡è
ã«ã¡ãªãããå°ãªã ã¬ãã¥ãŒã¯å€§ãã3çš®é¡ãã ã¬ãã¥ãŒãã䟡å€ããªãããšã確èªããã¬ãã¥ãŒãã¬ãã¥ãŒãšããã¯ãŒã¯ãããŒã宿œããŠããã ãã§ãããæ¬è³ªçãªã¬ãã¥ãŒã¯ããŠããªããã¬ãã¥ãŒã¯ãŒã¯ãããŒã«çžä¹ãããŠããååŒã®ã²ãšã€ã å質ãããã°ã©ã 芳ç¹ãšããŠã®ã³ãŒãã¬ãã¥ãŒãããããæ¬è³ªçãªã³ãŒãã¬ãã¥ãŒã ã¬ãã¥ãŒçµæãåæ ãããŠããããšã®ã¬ãã¥ãŒãè«ç¹ãçµãããŠãããã³ãŒãã®å
容ãã¬ãã¥ãŒææã«å³ããŠä¿®æ£ãããŠããããã確èªãããã ãã®äœæ¥çãªååŒã ä»åã¯1. ã®ãã¬ãã¥ãŒãã䟡å€ããªãããšãä»è
ãä¿èšŒããååŒããAIã«ããããããšããŽãŒã«ãšããŸãã 誰ã䜿ããã®ã åæã¯ããã³ããšã³ãã®ã¬ãã¥ã¯ãŒããŒã ã®ã¿ã«çµã æå€§ãªã¹ã¯ã¯ã誀å€å®ãæé ã®ããã¯ã«ããã¬ãã¥ãŒã®ã¶ã«å ããã³ãã¬ãã¥ã¯ãŒããŒã ã¯ã»ã«ãã¬ãã¥ãŒã§äžå®ã®å質æ
ä¿ãã§ããŠããåæã§èãã æ¡ä»¶çã«äžè¬è§£æŸã¯æ³å®ããããå€å®ã®æåçããŒã¿ãããŸããŸã§ã¯ãªã¹ã¯ã®ã»ãã倧ãã äœãå€å®ããã®ã èŠã¯ãã«ãªã¯ãšã¹ãã®åé¡åšãã€ãã Claude Codeã®Review (~$25) ã¯å¿
èŠããªã 倿Žå
容ãã人éãã¬ãã¥ãŒããå¿
èŠããããã©ããïŒãå€å®ãã æ¯ãèããå€ãããªã æ§é çãªãªãã¡ã¯ã¿ãªã³ã° code generatorãªã©ã®æ¢åã®æ©æ¢°çãªã¯ãŒã¯ãããŒã®çµæãäžèŠãšå€æãã å€å®ã®ãã¢ã¯Tidy First?ã®åé¡ ã¬ãã¥ãŒã®å¿
èŠæ§ã枬ãå€å®åŠçã«ã æ§é çãªãªãã¡ã¯ã¿ãªã³ã° ãšããæŠå¿µãæã¡èŸŒã¿ãŸããã ããã¯æšå¹Žã®åŒç€Ÿã®ã€ãã³ãã§ããŒããŒããåããŠããã ããKent Beckæ°ã®æžç± Tidy First? ããåŒçšããèšèã§ãã ãã®æžã§ã¯ãªãã¡ã¯ã¿ãªã³ã°ã®åé¡ã玹ä»ãããŠããããªãã¡ã¯ã¿ãªã³ã°ãå¹ççã«é²ããããã®äœæ¥ãæããŸãã åèš³ã§ã¯ãæŽé ããšè¡šçŸãããŠããŸãã æ¯ãèãã®å€åã䌎ããªãããã³ãŒãã®ç§»åã»åå²ãããååã®å€æŽãããé
眮ã®å€æŽã ããã°ã©ã ïŒçŸ€ïŒã®åé床ã«å¯Ÿãããªãã¡ã¯ã¿ãªã³ã°ã¢ãããŒã ãããã®ä¿®æ£ã¯äººéãç®ã§è¿œãã®ã¯æå€ãšé¢åã§ãã¬ãã¥ãŒã³ã¹ããå²ã«åããªã äŸïŒãã¡ã€ã«ç§»åãçµ±åã倿°ã»é¢æ°ã®ãªããŒã oråé€ã颿°çµ±åã»åé¢ www.oreilly.co.jp Tidy First?ã«é¢ããèå¯ã¯éåžžã«å€ãè°è«ãããŠããã®ã§ãClaude Codeã«èª¿æ»ãããªããã人éã®ã¬ãã¥ãŒãäžèŠãã®å®çŸ©ã確å®ããããã³ããã«èµ·ãããŠãããŸããã æ¬¡ã«ç€ºãã®ããã®ãã¿ãŒã³ã®æŠèŠã§ãã詳ããå
容ã¯ãã²æžç±ã確èªããŠããã ãããšããããšæããŸãã 察象ãã¿ãŒã³ïŒT1ãT14ïŒ T1: ãã¡ã€ã«ç§»åã»ãªããŒã T2: importæŽçã»barrel export T3: åå®çŸ©ã®ç§»åã»åé¢ T4: ã³ã³ããŒãã³ãã»é¢æ°ã®åå²ã»çµ±åã»æœåº T5: 倿°ã»é¢æ°ã»propsã®ãªããŒã ïŒãã¹ã/ã¢ãã¯ãžã®æ©æ¢°çæ³¢åå«ãïŒ T6: ESLint/Prettierä¿®æ£ T7: äžèŠã³ãŒãã»ãã¡ã€ã«åé€ T8: éæšå¥šAPIã®æ©æ¢°çç§»è¡ïŒ1:1察å¿ïŒ T9: GraphQL codegenå®è¡çµæ T10: Nx generatorå®è¡çµæ T11: ã¬ãŒãç¯ãžã®å€æ T12: 説æå€æ°ã»å®æ°ã®å°å
¥ T13: Feature Flagåã®è¿œå T14: ã³ã¡ã³ãã®è¿œå ã»ä¿®æ£ã»åé€ NGãã¿ãŒã³ïŒNG1ãNG7ïŒ æ°æ¡ä»¶åå²ãæ°ããžãã¹ããžãã¯ãAPI倿Žãç¶æ
管ç倿Žããã¹ã远å ãUI倿Žãèšå®å€å€æŽ å®è£
ãšãã€ã³ã å
šäœã®èŠä»¶ã決ãŸã£ãã®ã§ããããã¯å®è£
ã§ãã GitHub Actions GitHub Actionsãã©ã³ããŒãšããããã³ãããã¡ã€ã«ãèªã¿èŸŒãã ããã§Claude Code Actionsã«æž¡ããŠå®è¡ãçµæãããŒã¹ããŠã¬ããŒãããéåžžã«ã·ã³ãã«ãªãããŒã§ãã ãŸãFindy Team+ã¯CIçµæãéã£ãŠCIã®å®è¡åæãã§ããã®ã§ããããçµã¿èŸŒãã§ãããŸãã GitHub Actionsã®ãã㌠Claude Code Actions Claude Code Actionsã®åŒã³åºãã®ãã€ã³ã㯠--max-turns ã§ãã ããã¯Claude CodeãåŠçãäœæãŸã§è¡ãããå¶éãããã®ã§ã倿Žãã¡ã€ã«æ°ããããã®ãã¡ã€ã«ã®é¢é£æ§ã«ãã£ãŠååŸããŸãã - name: Classify PR changes id: claude uses: anthropics/claude-code-action@5d5c10a4f389689f992ea10bb14dcb6fcc83146d # v1.0.102 with: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} claude_args: '--max-turns 20' prompt: ${{ steps.prompt.outputs.content }} äœãã¿ãŒã³ãã®æ§é çãªãªãã¡ã¯ã¿ãªã³ã°ã®ãã«ãªã¯ãšã¹ãã§è©Šãããšãã ã15 turns ã«ãããŸãããã§ããããäœè£ãèŠãŠ20ãèšå®ããŠããŸãã ãããèšå®ããŠããããšã§ããã³ããã®èª€èªãæ³å®ããªã倧ããªå·®åã§å®è¡ãããå Žåã§ããå€å®äžèœãã§å®å
šã«çµäºããããã«ããŠããŸãã ã¯ãŒã¯ãããŒã®å€åãšããã³ããã®æ¹å äœåºŠã詊ããŠãããã¡ã«ãã²ãšã€ã®æ°ã¥ãããããŸããã ãããŸã§ãã«ãªã¯ãšã¹ã㯠ã人éãèªç¥ã§ãã倿Žéãã«ãµã€ãžã³ã°ããããã«ãã¹ã ã§ããããAIã¯æ©æ¢°çã«ãããåæã§ããã®ã§ãåãäœæ¥ãªãå·®åã倧ãããŠã1ã€ã®ãã«ãªã¯ãšã¹ãã«ãŸãšãããããšãã§ããããšããããšã§ãã ãã®ãã倧ããªå·®åã§ãApproveãã§ãããããªè² è·èæ§ãããããå¿
èŠããããŸãã ããã§å€æŽãã¡ã€ã«ãå€ãå Žåã¯å€æŽãã®ãã®ãèŠãã®ã§ã¯ãªããããã€ãããµã³ããªã³ã°ãããdiffã®ãã¿ãŒã³ãåäžã§ãããïŒããClaudeã確èªããããã«ããŠããŸãã <!-- 远å ããããã³ããã®æç² --> ## å€§èŠæš¡ PR ã®ãã©ãŒã«ãã㯠- **倿Žãã¡ã€ã«æ°ã 30 ãã¡ã€ã«ãè¶
ããå Žå**: åäžãã¿ãŒã³ã®å€æŽãç¹°ãè¿ããããã¡ã€ã«çŸ€ã¯ãµã³ããªã³ã°ïŒä»£è¡šçãªæ°ãã¡ã€ã«ã®ç¢ºèªïŒã§å€å®ããŠããããµã³ããªã³ã°ããæšãšç¢ºèªãããã¡ã€ã«ã泚æäºé
ã«èšèŒãã - **ãµã³ããªã³ã°æã¯å¯äœçšã®åãéãã«æ³šæãã**: ãã T ãã¿ãŒã³ãç¹å®ãããã**ãã®æ³¢åå
ãã¡ã€ã«çŸ€ïŒã¹ãããã·ã§ãããspecãã¢ãã¯ã`index.ts` ã® re-exportãimport æŽæ° çïŒãå¿
ã1件以äžãµã³ããªã³ã°ã«å«ããå
ã® T ãã¿ãŒã³ãšã®å¯Ÿå¿ã確èªãã**ãæ³¢åå
ã®ãã¡ã€ã«ã ããåç¬ã§èŠããš NG ã«èª€åé¡ããããïŒäŸ: T5 ãªããŒã ã®ã€ã³ã©ã€ã³ã¹ãããã·ã§ããæŽæ°ã NG5 ãšèª€èªïŒãæ³¢åå
ã»æ³¢åå
ã**ã»ããã§**ãµã³ããªã³ã°ããããš ïŒä»¥äžç¥ïŒ å®è¡ã³ã¹ã Claude Codeã®Review㯠æå€§$25ã®è²»çšãå¿
èŠ ã§ãããä»åã¯ãã«ãªã¯ãšã¹ãã®åé¡åšãªã®ã§ãããŸã§ã®ã³ã¹ããããããŸããã CIããå®è¡ãããã°ããã¿ããšã1 runãããã$0.20ã0.50ã§åé¡ãã§ããŠããŸããã { " type ": " result ", " subtype ": " success ", " is_error ": false , " duration_ms ": 62472 , " num_turns ": 10 , // Claude Codeã®ææ°ã®å®çžŸå€ãæå€§20ã§çµã£ãŠããã " total_cost_usd ": 0.24731475000000003 , // çŽ$0.25ãæ¶è²» " permission_denials_count ": 0 } ãããã« ãã«ãªã¯ãšã¹ãã®åé¡åšãGitHub Actions + Claude Code Actionsã§äœæããããšã§ã人ãã¬ãã¥ãŒããªããŠæžããã«ãªã¯ãšã¹ãã¯äœæè
ãåç¬ã§ããŒãžã§ããããã«ãªããŸããã ãã®ä»çµã¿ã®å°å
¥ã¯æ³å®ä»¥äžã«éçºè
äœéšãããããŸãæ©èœéçºã®åéã§ãªãã¡ã¯ã¿ãªã³ã°ããã¢ãããŒã·ã§ã³ãé«ããŠãããŸãã ãŸãã« Tidy First? ã®ãªãã§ã®ãå
ã«æŽé ãããšã«æŽé ããä»çµã¿ã§æ¯ããããšãã§ãããšæããŠããŸãã Claude Code Actionsã¯ãã£ãã圢åŒã«äŒŒãJSONã¬ã¹ãã³ã¹ãè¿ããããAIãã£ããã®å®è£
çµéšãCIã®ãããã°ã«åœ¹ç«ã¡ãŸããã ä»åŸã¯ããã«å¯Ÿè±¡ãæ¡å€§ããã€ã€ãçµç¹çã«å©çšããAIã¯ãŒã¯ãããŒãå
å®ãããŠãããããšæããŸãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ããã«ã¡ã¯ããã¡ã€ã³ãã£æ ªåŒäŒç€Ÿã§ããŒã¿ãšã³ãžãã¢ãããŠãã é ã§ãã 2026幎4æ28æ¥ïŒç«ïŒã«ãããŒã¿ãœãªã¥ãŒã·ã§ã³ããŒã äž»å¬ã®æ¡çšã€ãã³ã ãäºæ¥æé·ã«å¹ããããã¡ã€ã³ãã£æµããŒã¿ãšã³ãžãã¢ãªã³ã°ã®å®è·µã ãéå¬ããŸããã findy-inc.connpass.com ãã®èšäºã§ã¯ãã€ãã³ããäŒç»ããèæ¯ãšåœæ¥ã®3æ¬ã®ã»ãã·ã§ã³ãåå ã§ããªãã£ãæ¹ã«ãã€ã¡ãŒãžãäŒããããã«ãŸãšããŸãã ã€ãã³ãéå¬ã®èæ¯ ã»ãã·ã§ã³1: ãã¡ã€ã³ãã£ã®äºæ¥æ¡å€§ãæ¯ããæ¡åŒµå¯èœãªããŒã¿åºç€ãžã®ãªã¢ãŒããã¯ã㣠ã»ãã·ã§ã³2: ããŒã¿ã¢ããªã³ã°ãéããŠç®¡çäŒèšã®ãªãã¬ãŒã·ã§ã³ãåèšèš ã»ãã·ã§ã³3: 瀟å
ã§äœ¿ãããLookeræŽåã®é²ãæ¹ ãŸãšã ã€ãã³ãéå¬ã®èæ¯ ãã¡ã€ã³ãã£ã§ã¯ãæ¢å4ãããã¯ãã«å ããŠãæ°ãã«4ã€ã®ãããã¯ãããªãªãŒã¹ãããšã³ãžãã¢ã®çããŸãžãµãŒãã¹ãå€è§çã«å±éããŠããŸããäŒç€ŸèŠæš¡ã®æ¡å€§ãšãšãã«ãæ±ãããŒã¿ã®éãšçš®é¡ã¯æ¥éã«åºãã£ãŠããŸããã prtimes.jp å€åã®æ¿ããäºæ¥ç°å¢ã®ãªãã§å®¢èгçãªæææ±ºå®ãæ¯ããã«ã¯ã瀟å
ã®æ
å ±æµéãããæŽ»æ§åãããä»çµã¿ãæ¬ ãããŸãããç§ãã¡ã¯ããã®åå°ãæ
ãã®ãããŒã¿ãšã³ãžãã¢ãªã³ã°ã ãšèããŠããŸãã ããŒã¿ãœãªã¥ãŒã·ã§ã³ããŒã ã¯å°æ°ç²Ÿéã§æšé²ããŠããŸããããäºæ¥æé·ã®ã¹ããŒãã«åãããŠããŒã¿åºç€ãããã«ã¹ã±ãŒã«ãããã«ã¯ãå
±ã«ææŠããŠããã仲éã®ååšãäžå¯æ¬ ã§ããä»åã®ã€ãã³ãã¯ããã¡ã€ã³ãã£ãã©ã®ãããªèª²é¡ã«åãåããã©ã®ãããªæè¡ãšçµç¹ã§è§£ããŠããããçŽæ¥ã話ãããæ©äŒãšããŸããã ã»ãã·ã§ã³ã¯3æ¬ç«ãŠã§ãããŒã¿åºç€ã»ããŒã¿ã¢ããªã³ã°ã»BIã®3ã€ã®èгç¹ãããã¡ã€ã³ãã£ã®ããŒã¿ãšã³ãžãã¢ãªã³ã°ãã話ãããŸããã ã»ãã·ã§ã³1: ãã¡ã€ã³ãã£ã®äºæ¥æ¡å€§ãæ¯ããæ¡åŒµå¯èœãªããŒã¿åºç€ãžã®ãªã¢ãŒããã¯ã㣠ç»å£è
: é speakerdeck.com äºæ¥æ¡å€§ã«åãããŠããŒã¿åºç€ãã©ããªã¢ãŒããã¯ãã£ããŠãããã玹ä»ããŸãããçŽè¿1幎ã§ããŒã¿ãœãŒã¹ã¯10åãGoogle Cloudãããžã§ã¯ãã¯6åã«å¢ããäžæ¹ãããŒã¿ãšã³ãžãã¢ã¯3åã®ãŸãŸã§ãèªç¥ã³ã¹ããšéçšè² è·ãèšããã§ããŸããã ãããŸã§ã¯äºæ¥ïŒãã¡ã€ã³ãšããããŒã¿ã¡ãã·ã¥çãªæ§æã§ãæè¡éžå®ãåããŒã ã«å§ããŠããŸãããã¢ãžãªãã£ã¯åºãäžæ¹ã§ããã¡ã€ã³éã®é£æºäžè¶³ãæè¡ã®ã°ãã€ããäœæ¥éè€ã課é¡ã«ãªã£ãŠããŸããã ããã§ãããŒã¿ã¡ãã·ã¥ã®å©ç¹ã¯æ®ãã€ã€å®è£
ãèŠçŽããGoogle Cloudãããžã§ã¯ãã®çµ±åãIAMã®ããŒã¿ã»ããåäœã§ã®ç®¡çãdbt Platformãžã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³éçŽããããŒãžããµãŒãã¹ã®æŽ»çšãé²ããŠããŸããããã«ãããããŒãžããµãŒãã¹ã®APIãMCPãçšããŠAIãšãŒãžã§ã³ãã«éçšãäžéšç§»è²ããããšãã§ããŠããŸããäœæããã¹ãã«ããµããšãŒãžã§ã³ãã¯ä»¥åããã¯ããã°ã§ç޹ä»ãããã©ã°ã€ã³ãšããŠããŒã å
šäœã§äœ¿ããããã«ããŠããŸãã tech.findy.co.jp DataOpsã®çååãé²ãäžæ¹ãã³ã¹ãéææ§ã®äœäžãšãã£ãæ°ãã課é¡ãèŠããFinOpsäœå¶ã®æ§ç¯ããæµ®ããæéãããŒã¿æŽ»çšè
ãšã®äŒè©±ãã€ããŒããªã³ã°ã«äœ¿ã£ãŠããããšã次ã®ããŒãã«ããŠããŸãã ã»ãã·ã§ã³2: ããŒã¿ã¢ããªã³ã°ãéããŠç®¡çäŒèšã®ãªãã¬ãŒã·ã§ã³ãåèšèš ç»å£è
: ç°é ãã speakerdeck.com çµå¶å€æã«çŽçµãã管çäŒèšãšããæ¥åé åã«å¯ŸããŠãããŒã¿ã¢ããªã³ã°ã®èгç¹ãããªãã¬ãŒã·ã§ã³ãåèšèšããåãçµã¿ã玹ä»ããŸããã ãã¡ã€ã³ãã£ã®ç®¡çäŒèšã¯ãé·ããã¹ãã¬ããã·ãŒããäžå¿ã«åã£ãŠããŸãããææ¬¡ã®ãã³ã«é¢æ°ãšãããããæäœæ¥ã§çµã¿çŽããIMPORTRANGEãVLOOKUPã§çµ¡ã¿åã£ãã¹ãã¬ããã·ãŒãã®ãªããŒãžã¯50ä»¶ãè¶
ããã©ãã1æåŽ©ãããšå
šäœãé£éããŠå£ããèããæ±ããŠããŸãããåãKPIãéšçœ²ããšã«å¥ããžãã¯ã§èšç®ãããŠæ°åãåããªããææ¬¡ç· ãã«2ã3æ¥ããã£ãŠæææ±ºå®ãåŸè¿œãã«ãªãããšãã£ãç¶æ
ãåžžæ
åããŠããŸããã åèšèšã®èµ·ç¹ã«çœ®ããã®ã¯ãæè¡éžå®ã§ã¯ãªãæ¥åæ
åœè
ãžã®ãã¢ãªã³ã°ã§ãããèšäžçµç¹ããè£å©ç§ç®ããé
賊ããäºç®çªå·ããšãã£ãå°éçšèªãé£ã³äº€ããªããåå®å
åž³ããã¯ããçºããã ãã§ã¯æŽããªãéèšç²åºŠãåæè»žããçµå¶ç®¡çéšã®æ
åœè
ãšäœåºŠãMTGãéããŠåŒãåºããŠãããŸãããæžç± ãã¢ãžã£ã€ã«ããŒã¿ã¢ããªã³ã° çµç¹ã«ããŒã¿åæãåºããããã®ããŒãã«èšèšã¬ã€ãã ã®BEAMâ²ãåèã«ã誰ãã»äœãã»ãã€ã»ã©ãã§éèšãããã®ãã察話ãã茪éåããç·åå®å
åž³ãèµ·ç¹ã«å£²äžã»è²»çšã»åäŸ¡ãææ¬¡ç²åºŠã®ãã¡ã¯ããšããŠæŽçããŠããŸãã å®è£
ã¯ãäŒèšããŒã¿ãœãŒã¹ãGoogle Driveã«ã¢ããããŒãããŠTROCCOã§åã蟌ã¿ãdbtã§éèšããŠLookerãã¹ãã¬ããã·ãŒãããåç
§ããæ§æã«èœãšããŠããŸããããã«ãããã¯ã³ãã¿ã³ã§ææ¬¡ã®å®çžŸå€ãæããæ³å®å€ã®ç§ç®ãèªåã§æ€åºã§ããããã«ãªããŸããããã©ã®æ°åãæ£ãããããè°è«ããå Žé¢ã¯ãªããªããææ¬¡ç· ãã®æèŠæéãšæ°åã®ä¿¡é Œæ§ãåæã«æ¹åããŠããŸãã ä»åŸã¯ãå®çžŸãã¡ã¯ããšåãç²åºŠã§äºç®ã»èŠéããåã蟌ãã äºå®åæã®èªååããæŽåæžã¿ã®ãã¡ã¯ããèµ·ç¹ã«AIãšãŒãžã§ã³ããèªç¶èšèªã§äŒèšåæãè¡ããåºç€ãžã®å±éãé²ããŠããŸãã ã»ãã·ã§ã³3: 瀟å
ã§äœ¿ãããLookeræŽåã®é²ãæ¹ ç»å£è
: åºçžãã speakerdeck.com 瀟å
ã§å®éã«äœ¿ãããBIã«ããããã«Lookerãã©ã®ããã«æŽåããŠãããã玹ä»ããŸããããããã·ã¥ããŒããäœã£ãç¬éãããŒã¯ã«ãªã£ãŠäœ¿ãããªããªãããäºæ¥éšããã¯ããŒã¿æŽ»çšã®å
¥å£ãèŠããªãããã¹ãã¬ããã·ãŒãéçšãå±äººåããŠéçãèŠããŠããããšãã£ãããããã課é¡ãåºçºç¹ã«ããŠããŸãã ãã¡ã€ã³ãã£ã§ã¯ãLookerãæææ±ºå®ã«ã²ãä»ãããã·ã¥ããŒããå®åžžçã«èŠãå ŽãšããŠã ãã§ãªããExploreãäŒè©±åæã§ããŒã¿ãã®ãã®ãæ¢çŽ¢ããå Žã«ããããšãç®æããŠããŸãããã ããæåã¯LookerãèŠã«è¡ãç¿æ
£ãExploreã®æäœã«ãæ
£ããŠããªããããé²ãæ¹ã®å·¥å€«ãæ¬ ãããŸããã ããã§ããã¢ãªã³ã°ã§èª²é¡ãåŒãåºã â æäœéã®æ©èœã«çµã£ãŠæåã®ããã·ã¥ããŒããçŽ æ©ãæäŸãã â å
±æMTGã§äžç·ã«è§Šããªããæ¹åã«ãŒããåã â å©çšãå®çããŠãããã£ã¡ã³ã·ã§ãã«ã¢ãã«ãã¡ã¿ããŒã¿ãæŽããããšãã4ã¹ãããã§äŸ¡å€ãç©ã¿äžããŠããŸãããå®ç§ãªèšèšãããæ©ãäœéšæäŸãåªå
ããèŠåŽããŠããããšããå
ã«è§£æ¶ããŠããããšã倧åã«ããŠããŸãã詳ããé²ãæ¹ã¯ä»¥åã®ããã¯ããã°ã§ã玹ä»ããŠããŸãã tech.findy.co.jp ãã®çµæãMAUã¯2026幎1æãã4æéäžã§çŽ1.5åãWAUã¯1æäžæ¬ãã4æäžæ¬ã§çŽ2.6åã«æé·ããŸãããçµå¶ç®¡çéšããããBigQueryãLookerãé§äœ¿ããã¢ãã¿ãªã³ã°ãäºæ¥æ¡å€§ã«äžå¯æ¬ ããšããã³ã¡ã³ããå±ããªã©ãLookerãä¿¡é Œã§ããããŒã¿ãœãŒã¹ãšããŠç€Ÿå
ã«å®çããŠããŠããŸãã ãŸãšã ä»åã®ã€ãã³ããéããŠããã¡ã€ã³ãã£ãããŒã¿ãšã³ãžãã¢ãªã³ã°ãã©ã®ããã«äºæ¥ã«å¹ãããããšããŠããããã3ã€ã®ç°ãªãåãå£ã§ãäŒãã§ãããšæããŸããããŒã¿åºç€ã»ããŒã¿ã¢ããªã³ã°ã»BIã®ãããããæè¡ãã®ãã®ããããäºæ¥ãæ¥åã«ã©ãæ¥ç¶ããããã軞ã«é²ããŠããåãçµã¿ã§ãã åå ããŠãã ãã£ãçãããããããšãããããŸããïŒ ãã¡ã€ã³ãã£ã§ã¯ãããŒã¿ãšã³ãžãã¢ãªã³ã°ã®åã§äºæ¥æé·ãæ¯ãã仲éãåéããŠããŸããä»åã®ã€ãã³ãå
容ã«å°ãã§ãèå³ãæã£ãŠããã ããæ¹ã¯ããã²ãæ°è»œã«ã«ãžã¥ã¢ã«é¢è«ãªã©ã§ã話ãã§ãããšããããã§ãã herp.careers
ããã«ã¡ã¯ããã¡ã€ã³ãã£ã§Findy Toolsã®éçºãããŠããæ¬ç°ã§ãã ãã®ãã³ãFindy Toolsã®æ°æ©èœãšããŠãã¢ãŒããã¯ãã£AIãããªãªãŒã¹ããŸãããèŠä»¶ãå
¥åãããšAWSã®ã¢ãŒããã¯ãã£å³ãšèšèšã®ææ¡ãçæãããæ©èœã§ãã findy.co.jp ä»åã®éçºã§ã¯ãPMã»ä»æ§çå®ã»ã¹ã³ãŒãå®çŸ©ã»ã€ã³ãã©ã»FE/BEéçºã»ãã¹ããŸã§ãã»ãŒäžäººã§1ãæã§æ
åœããŸããããããŠãã³ãŒãã£ã³ã°ã¯ã»ãšãã©Claude Codeã«ä»»ããç§èªèº«ã¯ã»ãŒã³ãŒããæžããŠããŸããã ãã®èšäºã§ã¯ããããªéçºãé²ãããªãã§åãã£ãããšãé£ããã£ãããšããããŠæ¹ããŠå®æãããšã³ãžãã¢ã®ä»äºã«ã€ããŠç޹ä»ããŸãã ã¢ãŒããã¯ãã£AIã«ã€ã㊠äžäººéçºã®å
šäœå ãšã³ãžãã¢ã䟡å€ãšã³ã¹ããèªåã§å€æãã 察話ã§å€æã®èŠéãåºãã åããã®ã§å
±éèªèãäœã èªåã®ä»äºã¯æžãããå€æãšæææ±ºå®ã®æéãå¢ãã ãŸãšã ã¢ãŒããã¯ãã£AIã«ã€ã㊠æ¬é¡ã«å
¥ãåã«ããªãªãŒã¹ããæ©èœã軜ã玹ä»ãããŠãã ããã ã¢ãŒããã¯ãã£AIã¯ãFindy Toolsã®äžã§æäŸããŠããæ©èœã®1ã€ã§ããäœãããã·ã¹ãã ã®èŠä»¶ããå
¥åãããšAWSã䜿ã£ãæ§ææ¡ãšã¢ãŒããã¯ãã£å³ããããŠèšèšã®èãæ¹ã®è§£èª¬ããŸãšãŸã£ã圢ã§åŸããããã®ã§ãã ai-architecture.findy-tools.io ã¢ãŒããã¯ãã£ã®èšèšã¯ãµãŒãã¹ã®åå°ã決ããå·¥çšã§ãçµéšãåšèŸºç¥èã®åºããåãããé åã§ããããããç¥èŠãæã£ã人ã«çžè«ãã¥ããå Žé¢ã§ããæ§æã®æ€èšãåã«é²ããå©ãã«ãªãããšãç®æããŠããŸãã ããããå
ã¯ããã®æ©èœãäžäººã§1ãæã§äœã£ããªãã§æ°ã¥ããããšãäžå¿ã«æžããŠãããŸãã äžäººéçºã®å
šäœå ä»åã¯ãPMããéçºããã¹ãããªãªãŒã¹ãŸã§ãäžäººã§æ
åœããŸãããå
·äœçã«ã¯æ¬¡ã®ãããªç¯å²ã§ãã ãããã¯ãã®æ¹åæ§ã»åªå
é äœã®æ±ºå® 仿§çå®ãã¹ã³ãŒãå®çŸ© ã€ã³ãã©ã®æ§ç¯ ããã³ããšã³ãã»ããã¯ãšã³ãã®å®è£
ãã¹ãããªãªãŒã¹äœæ¥ éçºã®ã¯ãŒã¯ãããŒã¯ã·ã³ãã«ã§ãã ããããã®ãµã€ã¯ã«ãåããŠããŸããã GitHub Issueã«ããªãäœãã®ãããäœãäœãã®ããããPRDããŠãŒã¶ãŒã¹ããŒãªãŒã®åœ¢ã§æžã Claude Codeã«Issueãæž¡ããŠå®è£
ããŠããã èªåã¯å·®åãã¬ãã¥ãŒããå¿
èŠã«å¿ããŠæç€ºãåºã å¥ããŒã ã®ã¡ã³ããŒã«ã¬ãã¥ãŒããŠããããPRãããŒãžãã å®è£
ã®éäžã§ããäœãããèæ¯ããŠãŒã¶ãŒã«å±ããã䟡å€ã«ç«ã¡æ»ã£ãŠæ¹éã調æŽããããšã¯ãããããŸããã 仿§çå®ãUIã®ã¢ãã¯äœæããAIãšå£æã¡ããªããé²ããŠããŸãããçµæãšããŠãèªåã§ã³ãŒããæžããéã¯ãããããã§ãã»ãšãã©ã®å®è£
ã¯Claude CodeãæžããŠããŸãã äžæ¹ã§ããèªåã¯ã»ãŒã³ãŒããæžããŠããªãããããšãã£ãŠä»äºãå°ãªãããã§ã¯ãããŸããã§ããããããã³ãŒãã£ã³ã°ä»¥å€ã«ããããšãå±±ã»ã©ãããšããã®ã宿ã§ãã äœãäœãããäœãåããã®å€æ 仿§ã®çްéšã«é¢ããæææ±ºå® æè¡éžå® ã³ãŒãã¬ãã¥ãŒãšåè³ªã®æ
ä¿ ã¹ã±ãžã¥ãŒã«ç®¡çãšãªãªãŒã¹èšç» ããããã¯ããã®é²ãæ¹ã§1ãæãã£ãŠã¿ãŠæããããšãæžããŠãããŸãã ãšã³ãžãã¢ã䟡å€ãšã³ã¹ããèªåã§å€æãã æã匷ãæããã®ã¯ã ãšã³ãžãã¢èªèº«ããŠãŒã¶ãŒäŸ¡å€ãšå®è£
ã³ã¹ãã®ãã©ã³ã¹ã倿ããªããéçºã«æºããããšã®åŒ·ã¿ ã§ãã ä»åã¯äžäººã§æ
åœããŠããã®ã§ãäºæ¥ããããã¯ãã®æå³ãæè¡çãªå®çŸå¯èœæ§ãå®è£
ã³ã¹ããããã¹ãŠèªåã®é ã®äžã«æã£ãŠããŸãããããŠãŒã¶ãŒäŸ¡å€ãšããŠå€ããªãéšåã¯ã©ããããã³ã¹ããããã䟡å€ãããã®ã¯ã©ãããããèªåã®äžã§ã€ãªããŠèããªããéçºãé²ããããšãã§ããŸãã å
·äœçã«ã¯ãéçºã®éäžã§ã¢ãŒããã¯ãã£å³ã®æç»ã©ã€ãã©ãªãåãæ¿ãã倿ããããããªãªãŒã¹ã®2é±éåã«ãªã£ãŠããSNSã§å
±æããããšãã«èŠæ ãã®è¯ãç»åãçæããæ©èœã远å ãã倿ãããããšãæ¹é転æãçŽ æ©ãé²ããããŸãããæè¡çã«æç«ããããClaude Codeã§çŽ æ©ãæ€èšŒãã€ã€ããããã¯ããšããŠæ¬åœã«å¿
èŠããèªåã§å€æã§ããããšã§ã䟡å€ãšã³ã¹ãã®äž¡åããçããéžæè¢ãèŠã€ãããããªã£ãŠããŸããã äœå¶ãäžäººã«ããããšãæ¬è³ªã§ã¯ãªããšæã£ãŠããŸãã倧äºãªã®ã¯ãã¯ããäœãåŽã®ãšã³ãžãã¢ããŠãŒã¶ãŒäŸ¡å€ãäºæ¥äŸ¡å€ãçè§£ããããã§ãã³ã¹ããšäŸ¡å€ã®ãã©ã³ã¹ã倿ããªããéçºã«æºãããŠãããã ãšãä»åã®éçºãéããŠæ¹ããŠæããŸããã 察話ã§å€æã®èŠéãåºãã æææ±ºå®ãéãã®ã¯è¯ãããšã§ãããéããã°è¯ãããã§ã¯ãããŸãããäžã€ã®èŠç¹ã ãã§éã倿ãç¶ããŠãããšãæ°ã¥ããªããã¡ã«çã®æªãæ¹ã«æµããŠããŸããŸãã ããã§å¹ããŠããã®ããäžäººã§æ
åœããŠããŠãå€ç«ã¯ããŠããªããšããäœå¶ã¥ããã§ããã éçºäžã¯ãäºæ¥éšé·ã»POã»ãã¶ã€ããšå®æçã«çžè«ã»å
±æã§ããå Žãæã¡ããã以å€ã®å Žé¢ã§ããã€ã§ãã³ãã¥ãã±ãŒã·ã§ã³ãåããããã«ããŠããŸããã ãããã¯ããšããŠäœã倧äºã«ããŠããã äºæ¥ãšããŠãã®æ©èœã«ã©ãããæåŸ
ãããã ãã¶ã€ã³ãšããŠè²ããªãéšåã¯ã©ãã ãããã芳ç¹ãç¶ç¶çã«ããåãããããšã§ãèªåäžäººã§ã¯èŠããŠããªãã£ãããè¯ãéžæè¢ãèŠã€ããããããŠããŸããã èªåã®é ã®äžã ãã§å€æãããšãã©ãããŠãèŠéãçããªããŸããããã«ä»ã®ç«å Žã®èŠç¹ãå
¥ããšããä»ã«ãã£ãšè¯ãéžã³æ¹ã¯ãªããããšããåãçŽããã§ããŸããã¹ããŒãéèŠã®äœå¶ã§ãã£ãŠãããšããããã¹ããŒãéèŠã ãããããããŒã ãšã®å¯Ÿè©±ã¯æ¬ ãããªããšæããŸããã åããã®ã§å
±éèªèãäœã ãã1ã€åŒ·ãæããã®ãã éãèŠãããããã®ã»åããã®ã䜿ã£ãŠå
±éèªèãäœãããšã®å¹æ ã§ããããèªäœã¯æããããèšããã話ã§ãããAIã®åã§ãã£ãšããããããªããŸããã ä»åã¯ãå®ãããã¯ãã®éçºãå§ããåã«ãå¥ãªããžããªã§PoCã¢ããªãäœããã¹ããŒã¯ãã«ããŒãã€ã³ã¿ãã¥ãŒã«ãååããã ããæ¹ã«ãå®éã«èŠããè§Šã£ããããŠãããæéãåããŸããã PoCã¢ããªã®ç»é¢ããã¶ã€ã³ã¯äœã蟌ãŸãããŠãŒã¶ãŒã«äŸ¡å€ãäœéšããŠãããããšãåªå
ããã æç« ãã¹ã©ã€ãã ãã§è°è«ãããšãã©ãããŠãæœè±¡çã«ãªããèªèã®ãºã¬ã«æ°ã¥ãã«ãããªããŸããåããã®ããããšããããã¯æ¬²ããããããã¯æåŸ
ãšéãããšãããã£ãŒãããã¯ãå
·äœçã«è¿ã£ãŠããã ãã§ãªãããã©ããã䟡å€ãåŸãããããããšããéšåã§ãå
±éèªèãäœãããããªããŸãã PoCãèŠããè§Šã£ããããŠããããªãã§èŠããŠããã®ã¯æ¬¡ã®ãããªããšã§ãã ãŠãŒã¶ãŒãæ¬åœã«äŸ¡å€ãæããã®ã¯ã©ã®éšåã æåã¯ãããšäŸ¿å©ããã«èŠããããå®éã¯ãªããŠãå°ããªãæ©èœ æè¡çã«èŠèœãšããŠããå¶çŽããéã«æ³å®ãã軜ãå®çŸã§ããããªéšå PoCã§åŸããããããã®æ
å ±ãåå°ã«ãªã£ãŠãæ¬éçºã®ã¹ã³ãŒããšæ¹éãå®ãŸã£ãŠãããŸããã AIã§ãä»®ã«åããã®ããé«éã«äœããããã«ãªã£ã匷ã¿ã掻ãããŠãåããã®ãäžå¿ã«ä»®èª¬æ€èšŒã®ãµã€ã¯ã«ãåããããš ãã1ãæãšããéãããæéã®ãªãã§ç¹ã«å¹ãããã€ã³ãã ãšæããŸãã èªåã®ä»äºã¯æžãããå€æãšæææ±ºå®ã®æéãå¢ãã ãããŸã§æžããŠããããšãèžãŸããŠãæ¹ããŠæããã®ã¯ å°ãªããšãä»åã®èªåã®çµéšã§ã¯ãã³ãŒãã£ã³ã°ãAIã«ä»»ããŠãããšã³ãžãã¢ãšããŠããããšã¯æžããªãã£ã ãšããããšã§ããããããæ¬è³ªçãªå€æã«éäžããå¿
èŠãåºãŠããæèŠã§ããã ä»åã®éçºã§èªåãæéã䜿ã£ãŠããã®ã¯ã次ã®ãããªéšåã§ãã ãã®æ©èœãäœãæå³ã¯äœãã誰ã®ã©ããªèª²é¡ãè§£ãã®ã ã¹ã³ãŒããã©ããŸã§åºããã©ãã§åãã ã©ã®æè¡ãéžã³ãã©ã®æè¡ãèŠéãã åºãŠããã³ãŒããæ¬åœã«èŠä»¶ãæºãããŠããããå°æ¥ã®éçšã«èããã ã©ãããæææ±ºå®ãšå€æã®ä»äºã§ããã³ãŒãã£ã³ã°ãã®ãã®ãAIã«ä»»ããããããããããããã倿ã«éäžã§ããæéãå¢ããŸããã AIãšåæ¥ãããªãã§å€ããéšåãšå€ãããªãéšåãããããã³ãŒããæžãæéãã¯ç¢ºå®ã«æžããŸãããããšã³ãžãã¢ãªã³ã°ãè¡ãæéãã¯æžããªãããããå¢ããŠããæèŠã§ããã ãŸãšã ã»ãŒäžäººã§1ãæãããŠã¢ãŒããã¯ãã£AIããªãªãŒã¹ããŠã¿ãŠã次ã®ããšãåŠã³ãšããŠæ®ããŸããã ãšã³ãžãã¢èªèº«ããŠãŒã¶ãŒäŸ¡å€ãšå®è£
ã³ã¹ãã®ãã©ã³ã¹ã倿ããªããéçºã«æºããããšã䟡å€ãšã³ã¹ãã®äž¡åããçããéžæè¢ãèŠã€ãããã éãã ãã远ãã®ã§ã¯ãªããè€æ°ã®èŠç¹ã察話ã§åã蟌ãã§éžæè¢ãåºããŠãã AIã§ä»®ã®åããã®ãé«éã«äœããããã«ãªã£ã匷ã¿ã掻ããã°ãçæéã§ãåããã®ã軞ã«ä»®èª¬æ€èšŒãåãããã å°ãªããšãä»åã®èªåã®çµéšã§ã¯ãã³ãŒãã£ã³ã°ãAIã«ä»»ããŠãä»äºã¯æžãããå€æãšæææ±ºå®ã«éäžããæéãå¢ãã AIãšäžç·ã«éçºããæä»£ã«ãªã£ãŠãããäœãäœããããã©ãäœãããããªããããéžã¶ãããèãæãããšã®å€§åãã¯å€ãããªããªãšãä»åã®éçºãéããŠæ¹ããŠæããŸããã ã¢ãŒããã¯ãã£AIã¯æ¬¡ã®ããŒãžããè§ŠããŸãïŒFindy Toolsã®äŒå¡ç»é²ãå¿
èŠã§ãïŒããèå³ã®ããæ¹ã¯ãã²è©ŠããŠã¿ãŠãã ããã findy-tools.io ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ããã«ã¡ã¯ããããã¯ãéçºéšã®æ£® @jiskanulo ã§ãã 2026幎4æ22æ¥ãã24æ¥ãŸã§RubyKaigi 2026 Hakodateãéå¬ãããŸããã rubykaigi.org åœé€šã¢ãªãŒãã3æ¥éã«æž¡ã£ãŠè²žãåãå€§èŠæš¡ã€ãã³ãã®éå¶ãããŠããã ããŸããã¹ã¿ããã®çæ§ã«æè¬ãç³ãäžããŸãã ãã¡ã€ã³ãã£æ ªåŒäŒç€ŸãPlatinumã¹ãã³ãµãŒãšããŠåè³ããŸããã ç§ãããŒã¹ã«ç«ã£ãŠåºå±ããã¡ã€ã³ãã£åãµãŒãã¹ã®ãæ¡å
ããããŠããã ããŸããã ã話ããããŠããã ããçæ§ã«ãéããŠæè¬ç³ãäžããŸãã ããŒã¹ã«ç«ã€åéã«ã»ãã·ã§ã³ãèããŠèªåã§ãããããªããšã«æãã銳ããããä»ç€Ÿæ§ã®ããŒã¹ãåã£ãŠãããã¯ãã®ã話ãããããæã®ååãç¥äººãšåäŒããããšå人çã«ãããåºæ¿ã®å€ã3æ¥éã§ããã ããŠã4æ24æ¥ãæåŸã®ã»ãã·ã§ã³ã®Matzããã®ããŒããŒãã«ãŠRubyãã¡ã€ã«ããã€ãã£ããã€ããªã«ã³ã³ãã€ã«ãã Spinel ãçºè¡šãããŸããã æ©éSpinelã䜿ã£ãŠã¿ãææ³ãšã€ããã©ãããèšããŸãã Spinelãšã¯ æ€èšŒç°å¢ãšã»ããã¢ãã åãããŠã¿ã Hello, World! eval / requireã®æåïŒãšã©ãŒã«ãªããç¡é³ã§ééã eval 㯠no-op ã«çœ®ãæãã require ã¯æããšæ¶ãã çŸæç¹ã§ã®æ³šæç¹ Spinelã䜿ã£ãŠã¿ã requireãªãã§JSONãæ±ã ãããã©ããã¯åå¥ã«èžã¿ã«è¡ã䟡å€ããã Spinelã詊ããšãã®å€æåºæº åäººçææ ããŸã: Spinelã®ç±æ¥ ããã Spinelãšã¯ Spinelã¯Rubyã®AOT (Ahead-Of-Time) ã³ã³ãã€ã©ã§ãã RubyãœãŒã¹ã³ãŒããPrismã§ããŒã¹ããå
šããã°ã©ã åæšè«ãè¡ãCã®ã³ãŒãã«å€æããŠãã€ãã£ããã€ããªãçæããŸãã ãã€ãã©ã€ã³ã¯æ¬¡ã®ãšããã§ãã Ruby â Prism â AST â å
šããã°ã©ã åæšè« â Cã³ãŒã â ãã€ãã£ãå®è¡ãã¡ã€ã« ãªããžããªã®READMEã«ãããšãminirubyæ¯ã§çŽ11.6åãConway's Game of Lifeã§ã¯86.7åãšããæ§èœã瀺ãããŠããŸãã ãŸããã€ããªãµã€ãºãmrubyãå«ããã«æ°åKBã«åãŸãã®ã§å®¹éãå³ããç°å¢ã«ãé©çšã§ãããšã®ããšã§ãã å®äœãšããŠã® ./spinel ã¯POSIX shell wrapperã§ãå
éšã§ spinel_parse â spinel_codegen â cc ãçŽåã«åŒã³åºããŠããããšããäœãã§ãã æ€èšŒç°å¢ãšã»ããã¢ãã æ€èšŒã¯æå
ã®macç°å¢ã§è¡ããŸããã 4æ24æ¥å
¬éçŽåŸã«macã§åããããšããã¿ã€ãã³ã°ã§ã¯ malloc.h ãååšããªããªã©ã§ãšã©ãŒã«ãªã£ãã®ã§Dockerã§Ubuntuã®ã³ã³ãããèµ·åããŠæäœããŸããããçŸåšã¯å¯Ÿå¿ãããŠããŸãã 忥ã§åœé€šèгå
ããŠãããã¡ã«ã³ã³ããªãã¥ãŒããé²ãã§ããŸãããã³ã³ããªãã¥ãŒãã®ãã£ã³ã¹ã§ããã mac buildå¯Ÿå¿ https://github.com/matz/spinel/commit/4593581eb87cea45b59fb28b9dcf2cd75a9bcbab windowså¯Ÿå¿ https://github.com/matz/spinel/commit/1fe3136aa9bf834b5f37176faca7346503fb1446 ç°å¢ã¯æ¬¡ã®ãšããã§ãã macOS (arm64) Apple Clang Spinel masterãã©ã³ãïŒ2026-04-28æç¹ïŒ ãã«ããšå®è¡ã®åºæ¬ãããŒã¯ã·ã³ãã«ã§ãã spinel ãmakeãã spinel ã«rubyãã¡ã€ã«ããããã°å®è¡åœ¢åŒãã€ããªãåºåãããŸãã make deps # ååã®ã¿: libprism ååŸ make # spinel_parse / spinel_codegen / ã©ã³ã¿ã€ã ããã«ã ./spinel app.rb # Ruby â å®è¡åœ¢åŒïŒ./appïŒ ./app åãããŠã¿ã Matzã®ããŒããŒããšã被ããŸãããµã³ãã«ã³ãŒããåãããŠã¿ãŸããã ãŸãããŒããŒãã§è©±ããã£ããšãã eval ãš require ã¯ãµããŒãããŠããªããšã®ããšã§ãã eval, requireã䜿ããšå
·äœçã«ã©ããªãã®ãã詊ããŠã¿ãŸããã Hello, World! æå°ã®åäœç¢ºèªã¯ãã®ãŸãŸåããŸãã # hello_world.rb puts " Hello, World! " ./spinel hello_world.rb ./hello_world # => Hello, World! eval / requireã®æåïŒãšã©ãŒã«ãªããç¡é³ã§ééã 2026幎4æ28æ¥ã®çŸæç¹ã§ã¯ ã³ã³ãã€ã«æã«ãšã©ãŒã«ãªãããwarningãåºãããããå®è¡ãããšç¡é³ã§ééã£ãåºå ãè¿ããšããæåã§ãã å
·äœçã«2ã€ã®ã±ãŒã¹ãèŠãŠãããŸãã eval 㯠no-op ã«çœ®ãæãã æ¬¡ã®Rubyã³ãŒããSpinelã§ã³ã³ãã€ã«ããŠå®è¡ããŸãã # test_eval.rb code = " 1 + 2 " result = eval (code) puts result $ ./spinel ./tmp/jiska/samples/test_eval.rb ./tmp/jiska/samples/test_eval.rb -> test_eval å®è¡ãããšçµæã¯ 0 ã§ãã $ ./test_eval 0 çæãããCã®ã³ãŒããèŠããš eval() ã®åŒã³åºããno-opã«çœ®ãæãããæ»ãå€ã¯åæšè«ã§æ±ºãŸã£ããŒãå€ïŒ mrb_int ã®ãã 0 ïŒã«ãªããŸãã const char *lv_code = "1 + 2" ; mrb_int lv_result = 0 ; // mrb_int = int64_t typedef lv_code = "1 + 2" ; lv_result = 0 ; // â eval() åŒã³åºãèªäœãæ¶æ»
ã0 ã代å
¥ããã ã printf ( " %lld\n " , ( long long )lv_result); mrb_int ã¯mrubyã®ãããªãåœåã«èŠããŸãã lib/sp_runtime.h ã§ int64_t ã®typedefãšããŠå®çŸ©ãããSpinelã©ã³ã¿ã€ã ã®æŽæ°åã§ãã https://github.com/matz/spinel/blob/64105ec86d08c9edc92c3d17bf059126ceaa15d3/lib/sp_runtime.h#L53 require ã¯æããšæ¶ãã æ¬¡ã¯ require "json" ãš JSON.generate ã䜿ãã±ãŒã¹ã§ãã # test_require.rb require " json " puts JSON .generate({ name : " spinel " , year : 2026 }) ãã¡ããå®è¡ãããš 0 ã«ãªããŸãïŒ $ ./spinel ./tmp/jiska/samples/test_require.rb ./tmp/jiska/samples/test_require.rb -> test_require $./test_require 0 require ã®è¡ã¯çæãããCã®ã³ãŒãäžã§æããšæ¶ããŸãã ç¶ã JSON.generate ãSpinelããèŠãã°æªå®çŸ©ã¡ãœããã§ããã eval ãšåãããŒãå€ãè¿ãåŒã³åºãã«åããŸãã æçµçã« puts ã«ã¯ 0 ãæž¡ã£ãŠè¡šç€ºãããããšããæµãã§ãã çŸæç¹ã§ã®æ³šæç¹ çŸæç¹ã§ã¯ãã³ã³ãã€ã«ãéã£ãããå®è¡ãã¡ã€ã«ãã§ããããå®è¡ã§ãããã®3ç¹ã ããèŠãŠãããšééã£ãçµæãåããŠããããšã«æ°ã¥ããŸããã Spinelåãã«Rubyãæžããšã㯠README ãéœåºŠç¢ºèªããããšãéèŠã§ãã Spinelã䜿ã£ãŠã¿ã 次ã«å®éã®ãŠãŒã¹ã±ãŒã¹ãæ³å®ããŠã¿ãŸãã å®äŸãšããŠãGitHubã®PRäžèЧJSONãå
¥åã«åããåPRã® number ãš author ã衚瀺ããã¹ã¯ãªãããæžããŠã¿ãŸããã å
¥åã¯ARGVãstdinã®åªå
é ã§åãåããŸãã requireãªãã§JSONãæ±ã require "json" ã䜿ããªãã®ã§æšæºã® Regexp ãš String æäœã ãã§åŠçãçµãå¿
èŠããããŸãã ãªããããã§ç€ºãã³ãŒãã¯æ£ããJSONããŒãµã§ã¯ãããŸããã require "json" ã䜿ããªãSpinelã®å¶çŽäžã§ãå
¥ãåãªããžã§ã¯ãã }, ãå«ãæååå€ãçŸããªãããã©ãããªé
å圢åŒã®åºå®ããŒã¿ãã number ãš author ãã¢ãããã¯ã«åãåºãäŸãšããŠèªãã§ãã ãããæ¬æ ŒçãªJSONåŠçãå¿
èŠãªå Žåã¯ãå
¥ãåã»ãšã¹ã±ãŒããªã©ã§å®¹æã«å£ããããããã®å®è£
ã¯äœ¿ããŸããã å®éã®Rubyãã¡ã€ã«ã¯æ¬¡ã®ãšããã§ãã å€å°ããªãããŒãªãšããã¯æããŸãããããããéå®çãªçšéã§ããã°ãRegexpãšStringã®æšæºæ©èœã ãã§å®è£
ã§ããããšãããããŸããã if ARGV .length > 0 input = ARGV [ 0 ] else input = readlines.join end records = input.split( / }, / ) results = [] records.each do |chunk| if chunk =~ / "number" \s* : \s*(\d+)/ num = $1 if chunk =~ / "author" \s* : \s* " ([^ " ]+) " / auth = $1 results << " # #{ num } by #{ auth }" end end end if results.length == 0 $stderr .puts " Error: failed to parse JSON (no matching number/author pairs found) " exit 1 end results.each do |line| puts line end å®è¡ãµã³ãã«ã¯æ¬¡ã®ãšããã§ãã åŒæ°æž¡ãããã€ãããªãã€ã¬ã¯ãããããã«å¯Ÿå¿ããŠããŸãã JSONãå±éã§ããªãå Žåã¯æšæºãšã©ãŒãžãšã©ãŒã¡ãã»ãŒãžãåºã㊠exit 1 ããŸãã SAMPLE='[{"number":1,"author":"Findy"},{"number":2,"author":"jiskanulo"}]' # 1) åŒæ°æž¡ã ./pr_extract "$SAMPLE" # 2) ãã€ã echo "$SAMPLE" | ./pr_extract # 3) ãªãã€ã¬ã¯ã ./pr_extract < sample.json # ããããã®åºå: # #1 by Findy # #2 by jiskanulo $ ./pr_extract "not json" Error: failed to parse JSON (no matching number/author pairs found) $ echo $? 1 ãªããåŒæ°ããã€ãããªãã§ ./pr_extract ãèµ·åãããš readlines ãEOFåŸ
ã¡ã§ãããã¯ããŸãã æå㯠$stdin.tty? ã§å€å®ããŠUsageã衚瀺ããããšããŸãããã宿©ã§è©ŠããšTTYã§ããã€ãã§ãäž¡æ¹ 0 ãè¿ã£ãŠããŸãããããã eval / require ãšåãããSpinelæªå¯Ÿå¿ã®ã¡ãœããã silent failããŠããäŸã§ãã # test_tty.rb puts $stdin .tty? $ ./test_tty # TTYå®è¡ 0 $ echo "" | ./test_tty # ãã€ãå®è¡ 0 Spinelã§æšæºå
¥åãæ±ããšã㯠$stdin.tty? ã«é Œã£ãåå²ãã§ããªããããåŒæ°ã§æž¡ãããã€ãã»ãªãã€ã¬ã¯ãã§æç€ºçã«æµã蟌ãéçšã«åãã®ãå®å
šã§ãã ãããã©ããã¯åå¥ã«èžã¿ã«è¡ã䟡å€ããã å®è£
ããŠã¿ããš String#<< ã§mutableåãããš Regexp#scan ã«æž¡ããªãã Regexp#scan(/(...)/) { |m| ... } ã®ãã£ããã£ã¯å¹ããªã...ãªã©ãšãããã©ãããããã€ããããŸããã ãã ãçŸæç¹ã§ã®è©³çްã解説ããŠãéçºã掻çºã«é²ãã§ããã®ã§ããã«é¢šåããŠããŸãã®ã§è©³ããã¯èšããŸããã Spinelã詊ããšãã®å€æåºæº ãããŸã§è§Šã£ãŠã¿ãæè§ŠãããSpinelãè§Šããšãã®å€æåºæºã次ã«ãŸãšããŸãã æåäœéšãåŸãããã®ã¯æ¬¡ã®ãããªã³ãŒãã§ãã å
¥åºåã puts / printf ã§å®çµãã æšæºã©ã€ãã©ãªã«äŸåããªã æ°å€èšç®ã»æåååŠçã»æ£èŠè¡šçŸ( =~ + $1 )ã§æžããç¯å² éã«ãçŸæç¹ã§èžããšè©°ãŸãããããã¯silent failã«ãªãã®ã¯æ¬¡ã®ãããªé åã§ãã require ãåæãšããã³ãŒãïŒæšæºã©ã€ãã©ãªã®å©çšïŒ eval ãå«ãã¡ã¿ããã°ã©ãã³ã° æªå¯Ÿå¿ã¡ãœããã«äŸåããåŠçïŒåŒã³åºãããŒãå€è¿åŽã«åããïŒ ãã³ã³ãã€ã«ãéã£ãããåããŠããããšã¯éããªãããšããã®ãçŸæç¹ã§ã®æã倧äºãªæè§Šã§ãã CRubyãšSpinelã®äž¡æ¹ã§å®è¡ããŠåºåãdiffããéçšãçµãã®ãå®å
šã§ãã åäººçææ ããŒã«ã«ç°å¢ã®lintããã§ãã«ãŒãªã©ä»ãŸã§ã¯ã³ã©ã€ããŒã§ãã£ãŠããããšã眮ãæããŠäœ¿ã£ãŠã¿ããã§ããã ã³ã³ãã€ã«æžã¿ã®ãã€ããªãé
åžã§ããã®ã§ããã°ç°å¢æ§ç¯ã®æéãæžããããããŸããã ãŸã å°ãè§Šã£ãã ãã§ãããSpinelã«å¯èœæ§ãæããŠããŸãããŸããããããã¯ã¯ã¯ã¯ãããã®ãæäŸããŠãããMatzããã®åãããããããŠå®æããŸãã ããããæ©èœãæ¡å
ãããŠããã®ã楜ãã¿ã§ãã èªåã§ãã³ã³ããªãã¥ãŒãããŠããããã§ããã ããŸã: Spinelã®ç±æ¥ Rubyãšåããå®ç³ã€ãªããã§Spinelãªã®ããªããšã¯ããæã£ãŠããŸããããæŒ«ç»ã¢ãã¡ãã«ãŒããã£ãã¿ãŒããããã®ã¹ããã«ã»ãµã³ïŒã¹ãããŒïŒããååããšã£ãŠããããã§ãã çžæ£ã¯ã«ããŒã»ã ãŒã³ãªã®ã§ããã§ãRubyã«ç¹ãã£ãŠããŸããã ç±æ¥èããæã¯ãã£ã¡ãããïŒïŒãšãªããŸãããããããã ããã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ããã«ã¡ã¯ã ãã¡ã€ã³ãã£æ ªåŒäŒç€Ÿã§ããã¯ãªãŒããããŒãžã£ãŒãããããŠããã£ãŠããæžç°ã§ãã Claude Codeã®Pluginã䜿ããšã瀟å
ã§è²ãŠãSkillãAgentããçµç¹ã®ã¡ã³ããŒã«ãŸãšããŠé
åžã§ããããã«ãªããŸãããã¡ã€ã³ãã£ã§ãããã®ä»çµã¿ã§ã»ã«ãã¬ãã¥ãŒçšã®Skillãéçºçµç¹å
šäœã«é
ããåèªãPull requestäœæåã«åŒã³åºãåœ¢ã§æŽ»çšããŠããŸããã ãã®èšäºã§ã¯ããããã ããã«äžæ©èžã¿èŸŒãã äœ¿ãæ¹ãšããŠãPluginãGitHub ActionsããåŒã³åºããŠCIã§åãã åãçµã¿ã玹ä»ããŸããå
·äœçã«ã¯ãPluginã«å«ãŸããã»ã«ãã¬ãã¥ãŒSkillãCIãã宿å®è¡ããææå
容ãåæ ããPull requestãèªåã§çæããä»çµã¿ã§ãã Pluginã®äœ¿ãæ¹ãšãããšãSkillã瀟å
ã§å
±æããŠãåèªãããŒã«ã«ã§å©ãããšããäžé¢ãèªãããã¡ã§ããã åãPluginãCIåºç€ããèµ·åãã ãšããéžæè¢ããšããšãPluginã§è²ãŠãSkillãå人ã®éçºäœéšã ãã§ãªããããŒã å
šäœã®ããã»ã¹ã«ãå¹ããŠããŸãã Pluginãšã»ã«ãã¬ãã¥ãŒã®Skillã«ã€ããŠã¯æ¬¡ã®èšäºãåç
§ããŠãã ããã tech.findy.co.jp tech.findy.co.jp Pluginã§é
ã£ãŠåèªã«äœ¿ã£ãŠãããéçš PluginãCIããåŒã³åºã å®éã®Workflowãèªã¿è§£ã ããªã¬ãŒãšã¹ã³ãŒã PluginãCIã«åŒã蟌ã èªåçæPull requestã«ãCIãèµ°ãããããã® GitHub App 1ææ1Pull requestã«åãåºã GitHub Actionsã®matrixã䜿ã£ãŠäžŠåã§Pull requestãäœã ãŸãšã Pluginã§é
ã£ãŠåèªã«äœ¿ã£ãŠãããéçš ãŸãããã¡ã€ã³ãã£ã§ã®ã»ã«ãã¬ãã¥ãŒã®æµããæŽçããŸãã 瀟å
ã®éçºçšPluginã«ã¯ãã»ã«ãã¬ãã¥ãŒSkillãå«ãŸããŠããŠãPull requestäœæåã«ããŒã«ã«ã§Pull requestäœæçšã®ã³ãã³ãããåŒã³åºãããŸããPluginãšããŠé
åžããŠããã®ã§ãæ°ãããžã§ã€ã³ããã¡ã³ããŒãã远å ã®æé ãªãã«åãSkillã䜿ããç¶æ
ã«ãªã£ãŠããŸãã ãã®ãããã®ãPluginã§éçºãã¬ããžã暪å±éããã話ã¯ãåé ã«è²Œã£ãèšäºã§è©³ãã玹ä»ããŠããã®ã§ããã¡ãããã²ã芧ãã ããã ãã®éçšã¯ãå人ã®éçºäœéšãåºäžãããããã§ååæ©èœããŠããŸãããã®èšäºãå
¬éãããé ã«ã¯å®ã«1500åãã®Pull requestã§å®è¡ãããŠããããæåŸã®äžæŒãããšããŠåããŠãããŠããŸãã PluginãCIããåŒã³åºã ãã®éçšãããŒã¹ã«ã ããã«ããäžæ©èžã¿èŸŒãã§ãåãPluginãCIãããåŒã³åºããŠã¿ã ãšããã®ãæ¬èšäºã®ããŒãã§ãã Pluginã¯SkillãSub Agentãªã©ã®éãŸããªã®ã§ã Pluginãåç
§ã§ããå®è¡ç°å¢ããäœãã°ã人éã®ä»£ããã«CIããåŒã³åºãããšãã§ããŸã ãæ®æ®µããŒã«ã«ã§èµ°ã£ãŠãããã®ãšåãSkillãã anthropics/claude-code-action çµç±ã§GitHub Actionsããèµ·åããã°ãSkillãåå®è£
ããããšãªãCIåã§ããããã§ãã github.com æ¬èšäºã§ã¯ããã®èãæ¹ã®äžäŸãšããŠãã»ã«ãã¬ãã¥ãŒSkillã宿å®è¡ããææäºé
ããšã«å¥ã
ã®Pull requestãèªåçæããWorkflowãåãäžããŸãã察象ã«ããã®ã¯ãæ¢åã³ãŒãã®ãã¡é·æéè§ŠãããŠããªããã¡ã€ã«ã§ãã人éã®ã¬ãã¥ãŒã§ã¯ç®ãå±ãã«ããç®æã«å¯ŸããŠãæ©æ¢°ãã¬ãã¥ãŒããããšã§æè¡çè² åµã®èç©ãæãããšãããããããããŸãã å
·äœçã«çµã¿äžããWorkflowã¯ã2ã€ã®jobã§åããŸãã æææœåº job ïŒPluginã®ã»ã«ãã¬ãã¥ãŒçšSkillãåŒã³åºãã察象ã³ãŒãã«å¯Ÿããææãæœåºããã ä¿®æ£Pull requestäœæ jobïŒmatrixïŒ ïŒææã®ä»¶æ°ã matrix strategy ã«å±éãã ææå
容ããšã«ç¬ç«ããjobã䞊åèµ·å ãåjobã¯æ°ãã runner äžã§ææå
容ã1ä»¶ã ãä¿®æ£ããã®ã¡ãPluginã®Pull requestäœæSkillã§Pull requestãäœæ çµæãšããŠãæåºç€Ÿãããš æ¹åPull requestã®åè£ã䞊ãã§ãã ç¶æ
ã«ãªããŸãããããŒã«ã«ã§å人ãæåå®è¡ããSkillãšãCIãã宿å®è¡ãããSkillããåãPluginã®äžèº«ãå
±æããŠããââããããPluginã®äœ¿ãæ¹ãããäžæ®µåºããŠããããã€ã³ãã§ããã ãã®ä»çµã¿èªäœã¯ã»ã«ãã¬ãã¥ãŒå°çšã®ãã®ãšããããããPluginãCIããèµ·åããããšãããã¿ãŒã³ã®1ã€ã®å¿çšã§ããåãæ§é ã§ãæ§ã
ãªSkillãCIã«çµã¿èŸŒããŸãã å®éã®Workflowãèªã¿è§£ã ãŸãã¯ãä»åçµã¿äžããWorkflowã®å
šäœåã§ããPluginã®SkillãCIããåŒã³åºããŠææãPull requestã䞊åçæãããšããæµããäžéã確èªã§ããŸãã name : Scheduled Self Review on : schedule : - cron : '0 19 * * 0-4' # å¹³æ¥ JST 04:00ïŒUTC 19:00 Sun-ThuïŒ workflow_dispatch : env : SELF_REVIEW_MAX_FINDINGS : "3" jobs : # --------------------------------------------------------------------------- # Job 1: findings æœåº # ã»ã«ãã¬ãã¥ãŒSkillã§ stale files ãã¬ãã¥ãŒãã # ææã findings.json ãšã㊠artifact åãmatrix å±éçšã® index ãåºåã # --------------------------------------------------------------------------- extract-findings : runs-on : ubuntu-latest timeout-minutes : 30 outputs : finding_indices : ${{ steps.compute-matrix.outputs.finding_indices }} findings_count : ${{ steps.compute-matrix.outputs.findings_count }} steps : - id : app-token uses : actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2.2.2 with : app-id : ${{ secrets.SELF_REVIEWER_APP_ID }} private-key : ${{ secrets.SELF_REVIEWER_APP_PRIVATE_KEY }} - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with : token : ${{ steps.app-token.outputs.token }} fetch-depth : 0 - name : Compute stale file list run : | git log --since="1 month ago" --name-only --pretty=format : origin/main \ | grep -v '^$' | sort -u > .stale-recent.txt git ls-files | sort > .stale-all.txt comm -23 .stale-all.txt .stale-recent.txt > .stale-files.txt - name : Clone plugin repository run : | git clone https://x-access-token:${{ secrets.PLUGIN_REPO_READ_TOKEN }}@github.com/your-org/plugin-repo.git /tmp/plugin-repo - name : Extract findings via self-reviewer uses : anthropics/claude-code-action@4e5d8b13ca281a6d163cdb287d8917b216e00d6f # v1.0.103 with : anthropic_api_key : ${{ secrets.ANTHROPIC_API_KEY }} github_token : ${{ steps.app-token.outputs.token }} plugin_marketplaces : | /tmp/plugin-repo plugins : | example-dev-plugin@plugin-repo claude_args : >- --allowedTools Read --allowedTools Write --allowedTools "Skill(example-dev-plugin:<review-skill>)" --allowedTools "Skill(<review-skill>)" --allowedTools "Bash(cat:*)" --allowedTools "Bash(jq:*)" --allowedTools "Bash(gh pr list:*)" prompt : | .stale-files.txt ã«åæããã stale files ã察象ã«ã ã»ã«ãã¬ãã¥ãŒSkillãåŒã³åºããŠææãæœåºãã åææã 1 finding ãšããŠã¹ããŒãã«åŸã findings.json ã«æžãåºãã ã³ãŒãä¿®æ£ã»Pull requestäœæã¯è¡ããªãïŒåŸç¶ matrix job ãæ
åœïŒã - id : compute-matrix run : | COUNT=$(jq length .self-review-findings.json) INDICES=$(jq -c 'to_entries | map(.key)' .self-review-findings.json) echo "findings_count=$COUNT" >> "$GITHUB_OUTPUT" echo "finding_indices=$INDICES" >> "$GITHUB_OUTPUT" - uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if : steps.compute-matrix.outputs.findings_count != '0' with : name : self-review-findings path : .self-review-findings.json include-hidden-files : true # --------------------------------------------------------------------------- # Job 2: finding ããšã«ä¿®æ£ + Pull request äœæïŒmatrix ã§äžŠåïŒ # å matrix job ã¯ç¬ç«ãã runner ã§æ°èŠ checkout ããããã # worktree ã䜿ããã«æžã¿ãjob å士ã®ç·šéè¡çªãããããçºçããªãã # --------------------------------------------------------------------------- fix-per-finding : needs : extract-findings if : needs.extract-findings.outputs.findings_count != '0' runs-on : ubuntu-latest timeout-minutes : 40 strategy : fail-fast : false matrix : finding_index : ${{ fromJSON(needs.extract-findings.outputs.finding_indices) }} steps : - id : app-token uses : actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2.2.2 with : app-id : ${{ secrets.SELF_REVIEWER_APP_ID }} private-key : ${{ secrets.SELF_REVIEWER_APP_PRIVATE_KEY }} - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with : token : ${{ steps.app-token.outputs.token }} - uses : actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with : name : self-review-findings - name : Extract single finding id : finding run : | FINDING=$(jq -c ".[${{ matrix.finding_index }}]" .self-review-findings.json) { echo "finding<<EOF" echo "$FINDING" echo "EOF" } >> "$GITHUB_OUTPUT" echo "branch=fix/self-review-$(date -u +%Y%m%d-%H%M)-${{ matrix.finding_index }}" >> "$GITHUB_OUTPUT" - name : Clone plugin repository run : | git clone https://x-access-token:${{ secrets.PLUGIN_REPO_READ_TOKEN }}@github.com/your-org/plugin-repo.git /tmp/plugin-repo - name : Fix finding and create Pull request uses : anthropics/claude-code-action@4e5d8b13ca281a6d163cdb287d8917b216e00d6f # v1.0.103 env : FINDING_JSON : ${{ steps.finding.outputs.finding }} FINDING_BRANCH : ${{ steps.finding.outputs.branch }} with : anthropic_api_key : ${{ secrets.ANTHROPIC_API_KEY }} github_token : ${{ steps.app-token.outputs.token }} plugin_marketplaces : | /tmp/plugin-repo plugins : | example-dev-plugin@plugin-repo claude_args : >- --allowedTools Read --allowedTools Edit --allowedTools "Skill(example-dev-plugin:<pr-skill>)" --allowedTools "Skill(example-dev-plugin:<review-skill>)" --allowedTools "Skill(<pr-skill>)" --allowedTools "Skill(<review-skill>)" --allowedTools "Bash(git switch:*)" --allowedTools "Bash(git commit:*)" --allowedTools "Bash(git push:*)" --allowedTools "Bash(gh pr create:*)" prompt : | $FINDING_JSON ãæ
åœ findingã$FINDING_BRANCH ãæ
åœãã©ã³ãã origin/main ãã $FINDING_BRANCH ãåãã affected_locations ã®ã¿ã Edit â PRäœæSkill ã§ Pull request ãäœæã ããããã¯ããã®Workflowãèšèšããããã§ãã€ã³ãã«ãªã£ãç®æãåãäžããŠè§£èª¬ããŠãããŸãã ããªã¬ãŒãšã¹ã³ãŒã Pull requestã§ã¯ãªã ã¹ã±ãžã¥ãŒã« ãããªã¬ãŒã«ããŠããã®ã¯ãæ®æ®µã®Pull requestã§è§Šãæ©äŒãå°ãªãã³ãŒãã«ããåãSkillã®èгç¹ãå±ãããããã§ãã ããã«å¯Ÿè±¡ãã¡ã€ã«ã¯ãçŽè¿1ã¶æä»¥äžå€æŽãããŠããªããã¡ã€ã«ïŒstale filesïŒãã«çµã£ãŠããŸããæè¿ã®å€æŽã¯éåžžã®Pull requestã¬ãã¥ãŒã§æ¢ã«ã«ããŒãããŠããåæã§ããã以å€ã®é åã«ãã©ãŒã«ã¹ããèšèšã§ãã çµã蟌ã¿èªäœã¯ã git log --since ã§çŽè¿ã®å€æŽãã¡ã€ã«äžèЧãäœãã git ls-files ãš comm ã§å·®åãåãã ãã®ã·ã³ãã«ãªåŠçã§ããAIã«ãªããžããªãäžžããšæž¡ããšãã³ã³ããã¹ããè²»çšãèšããã®ã§ã ãä»å¹ããã䟡å€ãããç¯å²ãã«çµã蟌ãããã®ååŠçã1段æã ã®ãéçšäžã®ã³ãã§ããã PluginãCIã«åŒã蟌ã Workflowå
ã§ã¯ã瀟å
Pluginé
åžãªããžããªãéœåºŠcloneããClaude Code Actionã® plugin_marketplaces ã«æž¡ããŠããŸãã ããã§å¹ããŠããã®ãã Skillã®å®äœãWorkflowåŽã«ã³ããŒãããPluginãããã®ãŸãŸåŒã蟌ã ãšããæ§é ã§ããSkillã®æ¹åã¯Pluginé
åžãªããžããªã«ããŒãžããã ãã§ãèªåçã«ãã¹ãŠã®ãªããžããªã®CIã«åæ ãããŸããããŒã«ã«ã§é
ã£ãŠããSkillãšåããã®ããäœã®ã³ããŒããªãã«CIã§åãããããããPluginã§é
ããšããŒã«ã«ã§äœ¿ããããããPluginã§é
ã£ããã®ãCIã§ãèµ°ãããžã®ãã¡ãã£ãšããçºæ³ã®é£èºã§ããã èªåçæPull requestã«ãCIãèµ°ãããããã® GitHub App å°å³ã«éèŠã ã£ãã®ãã github_token ã«GitHub Appã®installation tokenãæž¡ããŠããéšåã§ãã ãªã GITHUB_TOKEN ã§ã¯ãªãAppã䜿ãã®ããçç±ã¯ã GITHUB_TOKEN ã§äœæãããPull requestã¯Workflowãèªåã§çºç«ãããªã ãšããGitHub Actionsã®ä»æ§ã«ãããŸãã èªåçæãããPull requestã«å¯ŸããŠããéåžžã®Pull requestãšåãããã«CIãã»ã«ãã¬ãã¥ãŒã®Skillãèµ°ãããããããã GITHUB_TOKEN ã§äœããšããããèªåã§çºç«ããŸãããApp tokençµç±ã®Pull requestã¯ãã®å¶çŽã®å¯Ÿè±¡å€ãªã®ã§ããAIãçæããPull requestã«ãã人éã®Pull requestãšåãCIãèªåã§å®è¡ããããç¶æ
ãäœããŸãã ãPluginã®SkillãCIããèµ°ãããããæ¬æ°ã§éçšã«ä¹ãããªããtokenæŠç¥ã¯ã¯ã³ã»ããã§èããå¿
èŠããããŸããã 1ææ1Pull requestã«åãåºã ãã®Workflowã§èæ
®ããèšèšå€æã®1ã€ãããèŠã€ãã£ãè€æ°ã®ææãã1ã€ã®Pull requestã«ãŸãšãããã1ææ1Pull requestã«åããããã§ãã æçµçã«éžãã ã®ã¯ã ææäºé
ããšã«å¥ã
ã®Pull requestã«åãåºã æ¹éã§ãããçç±ã¯æ¬¡ã®éãã§ãã 1ã€ç®ã¯ ã¬ãã¥ãŒèгç¹ã®åé¢ ã§ãã1ã€ã®Pull requestã«è€æ°ã®ç¡é¢ä¿ãªæ¹åãæ··ãããšãã¬ãã¥ã¢ãŒãèŠãã¹ã芳ç¹ããŸã°ãã«ãªã£ãŠããŸããŸããããã®ãªãã¡ã¯ã¿ã¯åŠ¥åœã ãããã¡ãã¯æ
éã«èŠããããšãã£ã倿ããPull requeståäœã§åãåããããç¶æ
ã«ããããšããã®ãèæ¯ã§ããã 2ã€ç®ã¯ revertåäœã®ç²åºŠ ã§ããçæAIã«ããç¹å®ã®å€æŽãæ¬çªã§äžå
·åãèµ·ãããå Žåãæ³å®ãããšãä»ã®å€æŽãå·»ã蟌ãŸãã«æ»ãããããªç²åºŠã«ä¿ã€ã®ãå®å
šã§ãããšèããŸããã1ææ1Pull requestã§ããã°ãrevertã²ãšã€ã§è©²åœã®å€æŽã ãå
ã«æ»ããŸãã 3ã€ç®ã¯ äŸåé¢ä¿ãªãã«ããŒãžã§ããããš ã§ããè€æ°ã®Pull requestã1æ¬ã«ãŸãšãããšãã©ãã1ã€ãããŒãžã§ããªãã ãã§å
šäœããããã¯ãããŸããäŸåé¢ä¿ãå°ãªããªãããã«Pull requestãåããŠããã°ãããŒãžã§ãããã®ããé ã«åŠçã§ããŸãã 代åãšããŠãã¬ãã¥ã¢ãŒã¯ãPull requestã®ä»¶æ°ãå¢ãããããšã«ãªããŸãããã ãåPull requestã®å€æŽéã¯å°ããã芳ç¹ãçµãããŠããã®ã§ã1æ¬ãããã®ã¬ãã¥ãŒæéã¯ãããçãã«ãªããŸãã GitHub Actionsã®matrixã䜿ã£ãŠäžŠåã§Pull requestãäœã ææããšã«Pull requestãåããåæã«ç«ã€ãšã次ã¯ãã©ããã£ãŠäžŠåã§å®å
šã«Pull requestãäœããããè«ç¹ã«ãªããŸããããã§æ¡çšããã®ãã GitHub Actionsã® matrix strategy ã«ãã job 䞊ååã§ãã å
·äœçã«ã¯ãjob ã2ã€ã«åããŠããŸãã æåã® jobïŒ extract-findings ïŒã§ã»ã«ãã¬ãã¥ãŒSkillãèµ°ãããææå
容ããŸãšãã åŸç¶ jobïŒ fix-per-finding ïŒã¯ããã®ææå
容ããšã« matrix ã«å±éãããmatrix ã®èŠçŽ æ°ã¶ãã ç¬ç«ãã runner äžã§äžŠåã« job ãèµ·å ãã åmatrix job ã¯ãææå
容ã1ä»¶ã ãåãåºããŠä¿®æ£ããŠãPluginã®Pull requestäœæSkillã§Pull requestãäœããŸãã 䞊ååã§ãããã¡ãªäºæ
ã¯ãç·šéã®è¡çªã§ããè€æ°ã®ãšãŒãžã§ã³ããåããã¡ã€ã«ãåæã«è§Šããšãã©ã¡ããã®å€æŽã倱ãããŸããä»åã¯ãããã matrix ã§åæ£ããå job ãå¥ runner äžã§ç¬ç«ã« checkout ãã ãšããæ§é ã§ãããããçºçããªã圢ã«ããŸããã strategy : fail-fast : false matrix : finding_index : ${{ fromJSON(needs.extract-findings.outputs.finding_indices) }} fail-fast: false ã«ããŠããã®ã¯ã1ã€ã®matrix jobã®ä¿®æ£ã倱æããŠãä»ã® matrix job ãæ¢ããªããããAIãçæããä¿®æ£ã¯åœããå€ããããã®ã§ããäžéšã倱æããŠãæ®ãã¯æµãããšããå§¿å¢ã§éçšããã»ããçŸå®çã§ããã ãã®æ§é ã§å¹ããŠããã®ããPluginãšããŠé
åžãããŠããSkillã®ååšã§ãã extract-findings ã§ã¯ã»ã«ãã¬ãã¥ãŒSkillã fix-per-finding ã§ã¯Pull requestäœæSkillããã®ãŸãŸåŒã³åºãã ãã§ããã¬ãã¥ãŒããâä¿®æ£ããâPull requestãäœãããšããæµããçµã¿äžãããŸãã Pluginã§é
ã£ãSkillããCIã® job åå²ã®åäœãšãã®ãŸãŸåã¿åã ããããããPluginã§é
ã£ãŠããŒã«ã«ã§äœ¿ããã®äžæ©å
ã«ããäœ¿ãæ¹ã§ãã ãŸãšã Pluginã§é
ã£ãSkillãGitHub Actionsã«ãèŒãããå Žåã«äœ¿ãããã€ã³ãããŸãšããŸãã Pluginé
åžçšãªããžããªãWorkflowå
ã§cloneãã plugin_marketplaces ã«æž¡ã ãSkillã®æ¹åã¯Pluginãªããžããªãžã®ããŒãžã ãã§ãããŒã«ã«ã«ãCIã«ãåãå
容ãåæ ããã èªåçæPull requestã«ãCIãåããããªãã GITHUB_TOKEN ã§ã¯ãªãGitHub App tokenã䜿ã ãçºç«ãã§ãŒã³æå¶ã®å¯Ÿè±¡å€ã«ãªã 䞊åã§åãããªããGitHub Actionsã® matrix strategy ã§ job ãåé¢ãã ãå job ã¯ç¬ç«ãã runner ã§æ°èŠ checkout ããã®ã§ãç·šéè¡çªã¯ããããçºçããªã Pluginã§é
ã£ãSkillã¯ãå人ã®éçºäœéšãåºäžãããã ãã§ãªãã CIã«èŒããããšã§ããŒã å
šäœã®ããã»ã¹ã«ãå¹ããŠãã äœ¿ãæ¹ãã§ããŸãããããŒã«ã«ã§é
ã£ãŠäœ¿ããã®æ¬¡ã®äžæ©ãšããŠãåèã«ãªãã°ããããã§ãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ã¯ããã« ããã«ã¡ã¯ããããã¯ãéçºéš 転è·éçºããŒã ã§ãšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒãããŠããæŸæ( @shakemurasan )ã§ãã 2026-04-22(æ°Ž)ãã2026-04-24(é)ãŸã§ã®3æ¥ééå¬ãããŠããRubyKaigi 2026ã«çŸå°åå ããŠããŸãã rubykaigi.org ãã®èšäºã¯ãDay1 13:00-13:30ã®koicããã®ã»ãã·ã§ã³ãExploring RuboCop with MCPãã«ã€ããŠãäºåæºåç·šãšåœæ¥ç·šïŒã»ãã·ã§ã³åœæ¥ã«æ®ããã¡ã¢ãšææ³ïŒã1æ¬ã«ãŸãšãããã®ã§ãã äºåæºåç·šã«ã¯AIã«ããäºæ³ãå«ãŸãããããå®éã®ã»ãã·ã§ã³å
容ãšäžèŽãããšã¯éããªãç¹ããããããæã£ãŠãããŸãã ã¯ããã« äºåæºåç·š koicããã®äººãšãªã AIã«äºæ³ãããŠã¿ãããæ¬äººåç¥ã§çŠç¹ãçµãã æ¬äººããããã®ææãšPRãå°ãèŠãã åœæ¥ç·š åå: MCP Ruby SDKãšStreamable HTTP åŸå: ãã®1幎éã®è©Šè¡é¯èª€ çµã³ãž: æ±ºå®æ§ãšéæ±ºå®æ§ããããŠElicitation èŽãçµããŠè
¹èœã¡ããããš ãããã« äºåæºåç·š koicããã®äººãšãªã koicããã¯RuboCopã®ãããã³ããã¿ãŒã§ã2025幎ã«ã¯MCPã®å
¬åŒRuby SDK ( modelcontextprotocol/ruby-sdk ) ã®ã¡ã³ãããŒã«ãå ãã£ãŠããŸãã github.com ãããŸã§ã®éã®ãã¯Findy Engineer Labã®åæèšäºã 365æ¥æ¬ ãããã³ããããç©ãããªãRuboCopã³ããã¿ãŒäŒè€æµ©äžã¯OSSãšåãåãç¶ããã®ã ããšãçŽè¿ã®ã話ã¯ãæ¬äººã®ããã°ã MCPã®å
¬åŒRuby SDKã®ã¡ã³ãããŒã«å ãã£ã ãã§è©³ããç¶ŽãããŠããŸãã findy-code.io koic.hatenablog.com å人çãªè©±ãããã°ãç§ãRubyãæžãå§ããŠæ°å¹Žã®é ãå°åã®Rubyã³ãã¥ããã£ã§äœåºŠãkoicããããèŠãããããžã¥ãã¢æä»£ã®èªåã«åºæ¿ããããæ¹ã®äžäººã§ããããŸãã AIã«äºæ³ãããŠã¿ãããæ¬äººåç¥ã§çŠç¹ãçµãã ã»ãã·ã§ã³ã¿ã€ãã«ã ãã§ã¯è«ç¹ãèŠãã«ããã£ãã®ã§ãå®ã¯äºåã«äºç¿ã®ææãšããŠãAIã«koicããã®çŽè¿ã®PRãIssueãããšã«å
容ãäºæ³ãããŠããŸããã è¿ã£ãŠããã®ã¯å€§ãã3éãã®æ¡ã§ããã 1ã€ç®ã¯ãstdioå®è£
ãšMCP primitivesïŒtools / resources / promptsïŒã®ååãäžå¿ã«æ®ããæ§æã 2ã€ç®ã¯ãMCPã®tool annotationãšRuboCopã®Cop屿§ã®å¯Ÿå¿ãæ žã«æ®ããæ§æã 3ã€ç®ã¯ãStreamable HTTPãè»žã«æ®ããçµç¹éçšè«ã«ãŸã§åºããŠããæ§æã ããããkoicããã®å
¬éPRãIssueããæŸããããªçã§ã¯ãããæåã¯ããªãã»ã©ãã®ã©ããã ãããªããšçºããŠããŸããã ãã®åŸãkoicãããæ¬äººãã RubyKaigi 2026ã«ç»å£ããŸã ãã§èæ¯ãšäºç¿ã®æ¡å
ããã§ã«å
¬éãããŠããããšã«æ°ã¥ããŸããã koic.hatenablog.com æ¬äººåç¥ã§è»žã«çœ®ãããŠããã®ã¯ãRubyããŒã«ãã§ã€ã³ãžã®AIæä»£ã®èª²é¡æèµ·ãã§ãStreamable HTTPã¯å¯é¡ãšããŠæç€ºãããŠããŸããã äžæ¹ã§ãtool / resource / promptãšãã£ããããæº¢ããŠããæ
å ±ãã¯æ·±æãããªãããšãæèšãããŠããŸãã AIã®äºæ³ãšæ¬äººåç¥ã芳ç¹ããšã«ãŸãšãããšã次ã®éãã§ãã èŠ³ç¹ AIã®äºæ³ æ¬äººåç¥ äžå¿è»ž RuboCopå®è£
詳现 / MCP primitivesã®åå RubyããŒã«ãã§ã€ã³ãžã®AIæä»£ã®èª²é¡æèµ· Streamable HTTP 1æ¡ã®äžå¿ãä»2æ¡ã§ã¯æ«å°Ÿã«è§ŠããçšåºŠ å¯é¡ãšããŠæç€º ãè¬æŒã®å€§ããªããã㯠tools / resources / prompts ååã®äžå¿æŠå¿µãšããŠæ±ã ãããæº¢ããŠããæ
å ±ããšããŠæ·±æãããªãæšãæèš åœãã£ãŠããã®ã¯ãStreamable HTTPãäž»èŠãããã¯ã®1ã€ããšèŠç«ãŠãŠããç¹ã§ã倧ããå€ããã®ã¯ãtool / resource / promptãååã®äžå¿æŠå¿µãšããŠæ±ãããšããæ¹åæ§ã§ããã AIã®äºæ³ã¯äžã«åºãåºåã£ãŠãã話é¡ã®éå¿ã«åŒã£åŒµããããããæ¬äººãããããŠæ·±æãããªãããšå®£èšããŠããé åããããããäžå¿ã«çœ®ãããŠããããšããã³ã³ãã©ã¹ãã«ãªããŸãã ãã®ãããã§ãåœæ¥èãã«è¡ãã¹ãçŠç¹ãäžæ°ã«çµããŸããã æ¬äººããããã®ææãšPRãå°ãèŠãã æ¬äººåç¥ã§ç޹ä»ãããŠããææã®ãã¡ãRubyWorld Conference 2025ã§ã®koicããã®ç»å£ã¢ãŒã«ã€ãã«ç®ãéããŸããã ããªãstdioã ãã§ã¯è¶³ãããåæ¹åã®HTTPéä¿¡ãå¿
èŠãªã®ãããšããéçãç»å£ã®æµãã§è¿œãããããã»ãã·ã§ã³åã®ãŠã©ãŒã ã¢ããã«å©ãããŸããã åœæ¥ç·š æ¬ç·šã¯äºååç¥ã©ããã®2éšæ§æã§ãååãMCP Ruby SDKã®è©±ãåŸåãRuboCop x MCPã®è©±ã§ããã ãªããåœæ¥ã®ã»ãã·ã§ã³è³æã¯ã Exploring RuboCop with MCP ããšããŠãã§ã«å
¬éãããŠããŸãã speakerdeck.com 以éã¯ãçŸå°ã§åãåã£ã枩床æã®èšé²ãšããŠèªãã§ããããã°ãšæããŸãã åå: MCP Ruby SDKãšStreamable HTTP Ruby SDKã¯ããšããšShopify瀟å
ã§å°äººæ°ã®ãšã³ãžãã¢ãå§ãããã®ã§ãkoicããèªèº«ãRuboCopã念é ã«æ©ã段éããåç»ããã³ããã¿ãŒã«æãããã®ã¡ã mcp gemãšããŠå
¬éãããããšããçµç·¯ã玹ä»ãããŸããã MCPã«ã¯Tier1ã3ã®ã©ã³ã¯ãå®çŸ© ãããŠããŠãçŸåšã®Ruby SDKã¯Tier3ã Tier1ãç®æããŠããããšæç¢ºã«å®£èšããŠããŸããã æ¬é¡ã®transportsã®è©±ã§ã¯ãèŠæ ŒãšããŠstdioãšStreamable HTTPã®2ã€ã䞊ã³ãŸãã stdioã®åçŽãã¯ããããšè§Šããæéãå²ãããã®ã¯Streamable HTTPã®ã»ãã§ããã HTTPã®èŠæ Œã®ãŸãŸã§ãWebSocketã®ãããªç¬èªãããã³ã«ã«å¯ããã«åæ¹åéä¿¡ãæç«ãããã å®è£
ã¯Rackã¢ããªã±ãŒã·ã§ã³ãšããŠçµãã§ãããHTTPã§å©ãããã¿ã€ãã³ã°ã§MCPã»ãã·ã§ã³IDãæãåºããŠã»ãã·ã§ã³ã確ç«ããQueueãä»ããŠããåããäœåŸåŸ©ãæç«ãããã 1ãªã¯ãšã¹ã1ã¬ã¹ãã³ã¹ã§ã¯ãªãã1ãªã¯ãšã¹ããèµ·ç¹ã«ãµãŒããŒã»ã¯ã©ã€ã¢ã³ãéã§éä¿¡ãèµ°ãããšããçµµãäžå¯§ã«æãããŠãããŸãã æãåãããªããšå®æãæ¹§ãã«ããé åã§ãããRackã®äžã«çŽ çŽã«ä¹ã£ãŠãããšãã話ãèããç¬éãæ®æ®µè§Šã£ãŠããWebæè¡ã®å»¶é·ç·äžã§æããŠãã話ãªã®ã ããšæ¥ã«è·é¢ãè¿ãæããããŸããã ãããŠååã®ç· ãã§koicããã眮ããæ¬¡ã®ãããªãã¥ã¢ã³ã¹ã®äžèšããå人çã«äžçªåºãã£ãŠããŸãã ãAIã«ãªã£ãŠã¬ã©ããšå€ãã£ããšæãããããLinuxã§ãããšãäœã¬ã€ã€ã®äžçã¯äœãå€ãã£ãŠããªããŠãæã
ã¯ãã®äžã§éçºãããŠããã«éããªãã åŒç€Ÿã§ããã³ãã³è©±é¡ã«äžãããAIã®å°é ã«ãããšã³ãžãã¢èªèº«ã«ãšã£ãŠã¯ãããåºç€ã倧äºã«ãªã£ãŠããããšããèãæ¹ãšäžèŽããŠããã匷ãå
±æããŸããã åŸå: ãã®1幎éã®è©Šè¡é¯èª€ åŸåã¯ããŒã³ãå°ãå€ãããŸããã ã1幎éãããã詊è¡é¯èª€ããŠããããããŸããããªãã£ãããšãå€ãã£ãããã®è©±ãããŸãããškoicãããççŽã«åãåºããŸãã æåèã§ã¯ãªãã詊è¡ã®çµéãšçŸåšå°ã®å
±æã ããšããã¢ãŒãã«åãæ¿ãããŸããã æåã®ã¢ã€ãã¢ã¯ã·ã³ãã«ã§ãRuboCopã®çµæãJSONæ§é ã§MCPåããã°AIãã¬ã³ããªãŒã«ãªã£ãŠè¯ãã®ã§ã¯ãªããããšãããã®ã§ããã ãããå®éã«æãåãããŠã¿ããšãRuboCopã¯ããããèåãªgemãªã®ã§ãAIåŽããã§ã«çžåœåŠç¿ããŠããããã«æããããããšæ¯ãè¿ããŸãã ããããMCPã®ç®ã被ããªããŠããããçšåºŠã®ããšã¯æ¢ã«ã§ããŠããŸãçžæã ã£ãããšããããšã§ãã ã¢ã€ãã¢ãåºãåéããŠè°è«ããããã®ã®ãå¯ãããããã®ããã®ãŸãŸå®è£
ããŠå
šå¡ãåã¶æ©èœã«ãªãèªä¿¡ã¯æãŠãªãã£ãããšãç¶ããŸãã çµã³ãž: æ±ºå®æ§ãšéæ±ºå®æ§ããããŠElicitation ããããçµã³ã«åããŠãRuboCopã¯ãããŸã§ãã€ã³ãããã«å¯ŸããŠçµæãäžæã«å®ãŸããã®ã ã£ãããšæ¹ããŠäœçœ®ã¥ãçŽãããŸãã ãæ±ºå®æ§ãããLinterãšããŠã®äŸ¡å€ã ã£ãããšããåæãèšèã«ããããã§ãããã«éæ±ºå®æ§ãæã€LLMãçµã¿åããããäœãã§ããã®ãããšç¶ããŸããã å
·äœäŸãšããŠäžŠã¹ãããã®ã¯ãLLMåŽã«å§ããSamplingãšããŠãŒã¶ãŒã«èãè¿ãElicitationã§ããã ã©ã¡ãããµãŒããŒããã¯ã©ã€ã¢ã³ãã«åãåãããè¿ããä»çµã¿ã§ãããèªåã®è³ã«ç¹ã«æ®ã£ãã®ã¯Elicitationã®ã»ãã§ãã ãŠãŒã¶ãŒã«å¯ŸããŠå®ãŸã£ããã©ãŒãããã®è³ªåãšåçãã©ãŒã ãè¿ããä»çµã¿ã§ãããã®ä¿®æ£ãã©ãé²ãããïŒããšèãè¿ãäœå°ãMCPã®äžã§äœããããšãã話ãšããŠçœ®ãããŠããŸããã æ±ºå®æ§ã®ããRuboCopã®æµãã®ãªãã«äººéã«åããè¿ããã€ã³ããå·®ã蟌ã¿ããããæãã éæ±ºå®æ§ã蚱容ããã æ±ºå®æ§ãæšãŠã話ã§ã¯ãªããã©ãã§åããç«ãŠãã©ãã§éæ±ºå®æ§ãåãå
¥ãããã®èšèšã®è©±ãšããŠåãåããŸããã ãã®æç§ãæãåºããã®ã¯ãèªããŒã ã§RuboCopã®ã«ãŒã«æ¹å»ãè°è«ããæã®è©±ã§ãã äžå
çã«é©çšãããæ©ãŸãããã®ãåºãŠãããšãããã®æ©ã¿ã«ã¯æ¢åã³ãŒãã®æé»çãªèŠçŽãåãšã³ãžãã¢ã®ææ³ãçµéšãcopãšããŠå®çŸ©ãããŠãããã¹ããã©ã¯ãã£ã¹ããšæ§ã
ãªèŠçŽ ã絡ãã§ããŸãã ãããã¯æ©æ¢°çã«äžæã«ã¯å®ããããªããã®ã§ãã ãã®çµ±æ²»éçšã«LLMãèªç¶ãªåœ¢ã§ä»å
¥ãã察話ãçµãŠLinterã«èœãšã蟌ãã§ããã®ã¯ãããããªåœ¹å²ã ãšæããŸããã (ãããRuboCopã®æ©èœãšããŠæäŸãããŠãŠãŒã¶ãŒãå¬ãããã¯ããŠãã) ã¡ãªã¿ã«MCPã®èŠæ ŒãšããŠElicitationãçºè¡šãããåœæãåŒç€Ÿã§ã管çè
åãã®Local MCP Serverã«ãããçµã¿èŸŒãäºäŸããããã çæAIæä»£ã®ãµãŒãã¹éå¶ç®¡ç - MCP Server for Administratorã®å®è·µ - ãïŒ2025幎9æ16æ¥å
¬éïŒãšããŠãŸãšããããŠããŸãã tech.findy.co.jp äžæ¹éè¡ã«ãªããã¡ãªMCPã®ãããšãã« confirm / approveã®ã¹ããããæããšããèãæ¹ã¯ãkoicãããåœæ¥RuboCopã®æèã§ç€ºããElicitationã®äœçœ®ã¥ããšãã®ãŸãŸéãªããã®ã§ããã èŽãçµããŠè
¹èœã¡ããããš å°ãªããšãã»ãã·ã§ã³ã®å
容ã¯ãRuboCop x MCPã®ãã¹ããã©ã¯ãã£ã¹ããã·ããšæ±ºãŸã£ãŠãããããã§ã¯ãªããšããããšã§ãã ããããåœäºè
ãšããŠèžã¿æãã人ããæã¡åŸãªãèæããèŠåŽããšå
¬éããŠããã£ã30åã ã£ãããšããã®ãè¿ããšæããŸãã æåã«ãããšã·ã³ãã«ã§ãããçŸå Žã§èŽè¬ããçããã«ã¯koicããã®è©Šè¡é¯èª€ãšèŠåŽãçã
ããäŒãã£ãŠããã®ã§ã¯ãªãããšæããŸãã çŸå°åå ããééå³ããããããšããã«ãæ¹ããŠæããŸããã MCPåãæã£ãã»ã©åºãããªãã£ãããšãã¢ã€ãã¢ãéããŠãäžæã®çãã«åæããªãããšãHuman in the Loopãã©ãèšèšããããå®è£
ããå
ã«ããããšã ã©ãããããã¥ã¡ã³ããäºäŸç޹ä»ãçºããŠããŠãæŽããªããåœäºè
ãšããŠèžã¿æããªããšåãããªãçš®é¡ã®æè§Šãã§ãã ååãšåŸåãéããŠäžæ¬ã®ç·ã§ç¹ãã£ãŠããã®ã¯ãRubyããŒã«ãã§ã€ã³ãAIæä»£ã«ã©ãäœçœ®ã¥ãçŽãããšããåãã ã£ãããã«æããŸãã Streamable HTTPãšããå
·äœçãªæè¡åºç€ã®è©±ãšãRuboCop x MCPãšããå¿çšã®è©Šè¡é¯èª€ããããŠãäœã¬ã€ã€ã®äžçã¯äœãå€ãã£ãŠããªãããšããç«ã¡äœçœ®ã 3ã€ãéãªã£ãŠãRubyã®ããŒã«çŸ€ãšAIã®é¢ä¿ãReframingããããšãã茪éãæµ®ãã³äžããæ§æã«ãªã£ãŠããããã«ç§ã¯æããŸããã å
é ã«ç«ã£ãŠããã ãã®é åãèžã¿æããŠããkoicãããžã¯ãæè¬ãšå°æ¬ã®æ°æã¡ã§ãã£ã±ãã§ãã Ruby SDKãžã®è²¢ç®ã¯RuboCopåäœã®è©±ã«çãŸãããRubyããŒã«çŸ€å
šäœãç«ã€è¶³å ŽãæŽããä»äºãªã®ã ããããšèªåã«ã¯åãåããŸããã æ¬ã»ãã·ã§ã³ã¯AIæä»£ã«ãRubyãæåç·ã§äœ¿ãããèšèªã§ããç¶ããããã®éèŠãªæ©ã¿ã®1ã·ãŒã³ãèŠããŠãããã®ã ãšæ¹ããŠæããŸããã ãããã« AIæä»£ã ãããšãã£ãŠéã®åŒŸäžžã¯ãªããRubyããŒã«ãã§ã€ã³ããHTTPãRackãQueueãšãã£ãåå°ã®äžã§å°éã«ç©ãŸããŠãããŸãã ååã®ç· ãã®ãäœã¬ã€ã€ã®äžçã¯äœãå€ãã£ãŠããªããŠãæã
ã¯ãã®äžã§éçºãããŠããã«éããªãããšããèšèã¯ãAIã«æ¯ãåãããã«äœ¿ãåŽã«åãã®ã«å¿
èŠãªã®ã¯è¿éã§ã¯ãªãåºç€ã ããšããããšãæ¹ããŠæãåºãããŠãããŸããã ãã¡ã€ã³ãã£ã§ã¯ãäžç·ã«RubyãRailsã®éçºãããŠããã仲éãåéããŠããŸãã èå³ã®ããæ¹ã¯ããã²ãã¡ããããã§ãã¯ããŠã¿ãŠãã ããïŒ herp.careers
ããã«ã¡ã¯ããã¡ã€ã³ãã£æ ªåŒäŒç€Ÿã§ã¢ãã€ã«ãšã³ãžãã¢ãããŠããå è€ã§ãã å
æ¥ãã React Native Lunch Talk ïœããŸéžã°ããçç±ãšã¢ããªã®çŸåšå°ïœ ãã«ãŠããæ°èŠãµãŒãã¹éçºã«ãããReact Nativeã®ãªã¢ã«ãæè¡éžå®ã®è£åŽãšå®è·µçOSS掻çšãããšããããŒãã§ç»å£ããŸããã æ¬èšäºã¯ããã®çºè¡šå
å®¹ãæ¹ããŠããã¯ããã°ãšããŠæžãèµ·ããããã®ã§ãã çºè¡šã§ã¯æéã®éœåã§é§ãè¶³ã«ãªã£ãéšåãã質çå¿çã§çããããªãã£ãè«ç¹ããã£ããããæ¬èšäºã§ã¯ãã®ããããå«ããŠèžã¿èŸŒãã§æžããŠããŸãã èæ¯ïŒFindy Events βçã®éçº ååã®èšäº ã§ãå°ãè§ŠããŸããããæšå¹ŽãFindyåã®ã¢ãã€ã«ã¢ããªãFindy EventsããαçãšããŠAndroidã¢ããªã®ã¿ãªãªãŒã¹ããŸããã çŸåšã¯Î±çããåŸãåŠã³ãããšã«UIã»UXããã«ãªãã¥ãŒã¢ã«ããæè¡ã«ã³ãã¡ã¬ã³ã¹åãã®iOS/Androidã¢ããªãšããŠÎ²çã®ãªãªãŒã¹ãç®æããŠéçºãé²ããŠããŸãã Findy Eventsãé·æçã«ç®æããŠããã®ã¯ããã«ã³ãã¡ã¬ã³ã¹ã§ã®åŠã³ãšã€ãªãããããã®å Žéãã§çµããããç¶ç¶çãªæé·ã®è³ç£ã«å€ãããããšã§ãã βçã§ã¯ããã®ç¬¬äžæ©ãšããŠãã«ã³ãã¡ã¬ã³ã¹åœæ¥ã®äœéšãã¹ã ãŒãºã«ããæ¬¡ã®ãããªæ©èœãæäŸäºå®ã§ãã QRã³ãŒããæç€ºããŠã®ãã§ãã¯ã€ã³ äºçŽæžã¿ã»ãã·ã§ã³ãã¿ã€ã ããŒãã«ãªã©ãã«ã³ãã¡ã¬ã³ã¹æ
å ±ã®é²èЧ ã«ã³ãã¡ã¬ã³ã¹åæ¥ãã»ãã·ã§ã³éå§åã«å±ããªãã€ã³ããŒPushéç¥ æ¬èšäºã§ã¯ããããªæ°èŠã¢ãã€ã«ã¢ããªã®ç«ã¡äžãã«ããã£ãŠããªãReact Nativeãéžã¶ã«è³ã£ãã®ãããããŠOSSéžå®ãå®è£
ã§çŽé¢ãããªã¢ã«ãªææã«ã€ããŠç޹ä»ããŸãã ååã®èšäº ã§ã¯æè¡éžå®ã®çµè«ã ãã玹ä»ããŸããããæ¬èšäºã§ã¯ãã®å€æã«è³ããŸã§ã®æ¯èŒéçšãOSSéžå®ã®è£åŽãŸã§ãèžã¿èŸŒãã§æžããŠããŸãã èæ¯ïŒFindy Events βçã®éçº React Nativeã®æè¡éžå®ã®èæ¯ OSSã¢ãžã¥ãŒã«ã®éžå®ãšæŽ»çšäºäŸ ç¬èªéžå®ã®äºäŸ1ïŒSign in with Apple ç¬èªéžå®ã®äºäŸ2ïŒUIã©ã€ãã©ãª React Nativeã«å¯Ÿãããªã¢ã«ãªææ ç«ã¡äžããã¯ãAIæä»£ã§ãæ³å以äžã«èŠåŽãã OSS掻çšã§æããããš AIæä»£ã«ãä»ããReact Nativeãããæå³ ãŸãšã React Nativeã®æè¡éžå®ã®èæ¯ ãŸãè§ŠããŠããããã®ã¯ãããªãæ°ããéžæè¢ã®äžããReact Nativeãéžãã ã®ãããšãã話ã§ãã Findyã«ãšã£ãŠåã®ã¢ãã€ã«ã¢ããªéçºãããããæè¡éžå®ãäžããèšèšã§ããããšã³ãžãã¢å¥å©ã«å°œããç°å¢ã§ãã ãã ãèªç±åºŠãé«ããšããããšã¯ãèšãæããã°å€æã®éã¿ã倧ãããšããããšããã¢ãã€ã«ã¢ããªãéçºããããšäžèšã§èšã£ãŠãããã®éçã¯ã²ãšã€ã§ã¯ãããŸããã åºçºç¹ãšããŠçœ®ããã®ããæ¬¡ã®3ã€ã®ã¢ãããŒãã®æ¯èŒã§ãã æé©ãªéçºææ³ã¯ã眮ãããç°å¢ãšèãæ¹ã§å€ããããããç§ã®åºæ¬ã¹ã¿ã³ã¹ã§ãã ãããŠä»åã®åæã¯ããæå°ãªãœãŒã¹ã§æéãªãªãŒã¹ãããã®äžç¹ã«ç
§ãããŠããŸãCross Platformãéžã³ãŸããã æ¬¡ã«ãCross Platformã®äžãããåœå
å€ã§å®çžŸãè±å¯ãªFlutterãšReact Nativeã®2ã€ã«çµã£ãŠæ¯èŒããŸããã æ¬¡ã®è¡šã¯ãiOSãšã³ãžãã¢åºèº«ã§ããç§ã®äž»èгãèžãŸããŠã2025幎8æé ã«æŽçãããã®ã§ãã äžèŠã衚ã ããèŠãã°Flutterãåªäœã«æ ããŸãã æ£çŽãªãšãããç§èªèº«ãæåã¯Flutterã«éŠŽæã¿ãæããŠããŸããã ããã§ãæçµçã«éžãã ã®ã¯ãReact Nativeã§ãã æ±ºãæã¯ããçµç¹ã®ã¢ã»ããããšãã¢ãã€ã«ãšã³ãžãã¢ãšããŠã®èªèº«ã®ãã¬ããžãã®æãç®ããã®2軞ãããåãããããšããããæå°ãªãœãŒã¹ã§æéãªãªãŒã¹ããšããç®æšã«æçã§è¿ã¥ãéã ãšç¢ºä¿¡ããŸããã ä»®ã«Flutterãéžã¹ã°ãç§ã ãã§ãªãå°æ¥åç»ããã¡ã³ããŒå
šå¡ã«äžå®ã®ç«ã¡äžãã³ã¹ããã®ãããããŸããç¹ã«ã¢ãã€ã«ãšã³ãžãã¢åºèº«ã§ãªãã¡ã³ããŒã»ã©ãè² æ
ã¯å€§ããã 察ããŠReact NativeãªããReactãšTypeScriptã®çŽ é€ãæã€ã¡ã³ããŒãå€ãä»ã®çµç¹ã«ãã®ãŸãŸéŠŽæã¿ãŸãã èªåããç«ã¡äžãã£ãŠããŸãã°ããã®åŸã®éçºé床ã¯äžé·æçã«æãåºããããããæçµçãªæ±ºãæã§ãã å
·äœçã«ããçµç¹ã®ã¢ã»ããããšãã¢ãã€ã«ãšã³ãžãã¢ãšããŠã®èªèº«ã®ãã¬ããžãã«ã€ããŠã§ããããçµç¹ã®ã¢ã»ããããšããŠã¯ã 瀟å
ã®åªç§ãªWebããã³ããšã³ããšã³ãžãã¢ããReactãTypeScriptã®ç¥èæäŸãã¬ãã¥ãŒååãåŸããã Reactè£œã®æ¢åãããã¯ãã®èšèšææ³ããœãŒã¹ã³ãŒããåèã«ã§ãã ãšããæåŸ
æããããŸããã ãŸãããã¢ãã€ã«ãšã³ãžãã¢ãšããŠã®èªèº«ã®ãã¬ããžããšããŠã iOS/Androidã®ãã©ãããã©ãŒã ç¹æ§ãžã®çè§£ ããã·ã¥éç¥ãªã©ã®ã¢ãã€ã«åºæã®èª²é¡ãžã®å¯Ÿå¿å ãæŽ»ããããšãã§ãããšèããŠããŸããã ã瀟å
ã®Webè³ç£ãã©ããŸã§æŽ»ããããšãã§ããã®ãïŒããšããéšåãæ°ã«ãªãæ¹ãããã£ããããããããŸãããçµæãšããŠã¯ãæ¬¡ã®æè¡ã¹ã¿ãã¯ã®ãšãããçµç¹ã®ã¢ã»ããããã«æŽ»çšããããšãã§ããŸããã å®ã¯ãã¢ãŒããã¯ãã£ã«é¢ããŠããæ¢åã®Webãããã¯ããã»ãŒæµçšãã圢ã§éçºããŠããŸãã ã€ãŸããèšèšææ³ãå®è£
ãã¿ãŒã³ãŸã§èžã¿èŸŒãã§åèã«ã§ããã»ã©ãReact Nativeã¯ReactãšèŠªåæ§ãé«ããšããããšã§ãã OSSã¢ãžã¥ãŒã«ã®éžå®ãšæŽ»çšäºäŸ ç¶ããŠãOSSã¢ãžã¥ãŒã«ã®éžå®ã«ã€ããŠã§ãã iOSãšã³ãžãã¢åºèº«ã®ç§ãReact Nativeã«è§ŠããŠæåã«æããã®ã¯ãããšã«ããOSSãè±å¯ããšããããšã ãã ãè£ãè¿ãã°ãå€éããŠãã©ããéžã¹ã°è¯ããè¿·ãããšããå¥ã®èª²é¡ãç«ã¡äžãã£ãŠããŸãã ããã§æ¡ã£ãæ¹éã¯ã Expoå
¬åŒããã¥ã¡ã³ã ããçŸ
éç€ããšããŠæŽ»çšããããšã Expoå
¬åŒããã¥ã¡ã³ãã¯éåžžã«å
å®ããŠããŠãExpoå
¬åŒã¢ãžã¥ãŒã«ã¯ãã¡ãããæšå¥šããã3rd Party OSSãæèšãããŠããŸãã第äžåè£ãããã«çœ®ãã ãã§ãéžå®ã³ã¹ãã¯å€§ããå§çž®ã§ãããšããããã§ãã ãã¡ãããããã§100%ãã«ããŒã§ããããã§ã¯ãããŸããããã®å Žåã¯ããããã¯ãã®ã³ã³ããã¹ãã«åãããŠç¬èªã«éžã³ãŸãã ããããã¯ããã®ç¬èªéžå®ãã2ã€ã®OSSã玹ä»ããŸãã ç¬èªéžå®ã®äºäŸ1ïŒSign in with Apple ã¢ãã€ã«ã¢ããªã®èªèšŒã§ã¯ãGitHubã»Googleã»Appleã®3ã€ã®OAuthèªèšŒãæ°èŠã«å°å
¥ããæ¹éãæ¡ããŸãããäžã§ãSign in with Appleã¯ãiOSã®å¯©æ»èŠä»¶ãšããŠå¿
é ã®æ©èœã§ãã ããã§éžå®è»žã«æ®ããã®ã¯æ¬¡ã®2ç¹ã§ãã 審æ»ã§èªèšŒãã¿ã³ã®ãã¶ã€ã³ã峿 Œã«ç¢ºèªããããããiOS SDKæšæºã® ASAuthorizationAppleIDButton ãå
éšã§å©çšããŠããããš iOSã ãã§ãªãAndroidã§ãSign in with Appleæ©èœãæäŸã§ããããš Expoå
¬åŒã«ã¯ expo-apple-authentication ããããã®ã®ãAndroidã察象å€ãä»åã¯èŠéããŸããã æçµçã«éžãã ã®ã¯ãäž¡OSã«å¯Ÿå¿ãã react-native-apple-authentication ã§ãã ç¬èªéžå®ã®äºäŸ2ïŒUIã©ã€ãã©ãª åé ã§è¿°ã¹ãéããèªç€Ÿåã®ã¢ãã€ã«ã¢ããªãšããããšãããã瀟å
ã«ã¢ãã€ã«çšã®ãã¶ã€ã³è³ç£ã¯ãããŸããããæå°ãªãœãŒã¹ã§æéãªãªãŒã¹ããå®çŸããã«ã¯ãUIã©ã€ãã©ãªã®æŽ»çšãæ¬ ãããªãèŠçŽ ã«ãªããŸãã éžå®è»žã«æ®ããã®ã¯æ¬¡ã®2ç¹ã§ãã è±å¯ãªUIã³ã³ããŒãã³ããæäŸãããŠããããš iOSãšã³ãžãã¢åºèº«ã®èªåã«ãšã£ãŠãåŠç¿ã³ã¹ããé«ãããªãããš å®ã¯Î±çã§ã¯ Tamagui ãæ¡çšããŠããŸããããã ãβçã§UIã»UXããã«ãªãã¥ãŒã¢ã«ããããšã決ãŸããããèŠä»¶ã«åèŽããã©ã€ãã©ãªãæ¹ããŠæ¢ãããšã«ã ãã©ãçããã®ããéžå®è»ž2ç¹ããã£ããæºãã HeroUI Native ã§ãã ããã§äžã€é ãæ©ãŸããã®ããæ¡çšã決ããåœæïŒ2026幎1ã2æé ïŒã®HeroUI NativeããŸã βçã ã£ãããšãå©çšã«ãã£ãŠèª²é¡ãé¡åšåãããªã¹ã¯ãæ±ããŠã®å€æã«ãªããŸãïŒâ»çŸåšã¯stableçãæäŸãããŠããŸãïŒã ããã§æ¡ã£ã工倫ãããHeroUI Nativeã®Wrapper Componentãå®è£
ããç»é¢åŽããã¯çŽæ¥HeroUI Nativeã«è§Šããªãæ§æãã«ããããšã 圱é¿ç¯å²ãWrapperå±€ã«éã蟌ããŠããã°ãå°æ¥ã®å·®ãæ¿ãã仿§å€æŽãžã®èæ§ã確ä¿ã§ãããβçOSSãæ¡çšããéã®ãªã¹ã¯ãããžãšããŠãæå¹ãªåã®äžã€ã ãšæããŠããŸãã React Nativeã«å¯Ÿãããªã¢ã«ãªææ ç«ã¡äžããã¯ãAIæä»£ã§ãæ³å以äžã«èŠåŽãã React Nativeãéžãã çµæãšããŠççŽã«æããã®ã¯ããAIæä»£ãšèšãã©ç«ã¡äžããã«ã¯ãããªãã«èŠåŽããããšããããšã å®ã¯10幎ã»ã©åã«å°ãã ãReactã«è§Šããããšããã£ãã®ã§ãããReact HooksãLifecycleã«çžåœããèãæ¹ã¯ã»ãŒååŠè
ã®ç¶æ
ãæŠå¿µã®ååŠç¿ãå¿
èŠã§ããã ãŸããTypeScriptããSwiftãšäŒŒãŠéãªããã®ãã§ããããšãçæããŸãã åã«ããå®å
šæ§ãšããææ³ã¯è¿ããã®ã®ã as ã«ãããã£ã¹ãã enum ããã¹ããã©ã¯ãã£ã¹ãšããŠã¯éæšå¥šãšãããŠããç¹ãªã©ãSwiftæèŠã§æžããšè¶³ããããããå Žé¢ãå°ãªããããŸããã äžæ¹ã§ãReact Nativeèªäœã«å¯ŸããããŒãã«ã¯ããã»ã©æããŸãããçç±ã¯æ¬¡ã®2ã€ã§ãã 宣èšçUIã«ããUIæ§ç¯ã¯ãSwiftUIã§çµéšããŠãã ããã·ã¥éç¥ãªã©ãã¢ãã€ã«åºææ©èœã®ä»çµã¿ãã®ãã®ãçè§£ããŠãã LTäŒã§ã¯ãã©ããã£ãŠReact Nativeãå匷ãããïŒããšãã質åãããã ããŸãããåã£ãã¢ãããŒãã¯ãéå»ã«Swiftã§éçºããŠããå人ã¢ããªãReact Nativeã§æžãçŽããŠã¿ããšãããã®ã 顿ãäžããèããã«æžãäžã«ãSwiftçãšããçãåããã®å¯Ÿè±¡ãããç¶æ
ã§é²ãããããããSwiftUIãšã®å
±éç¹ãå·®åãäœæããªããåŠã¹ãŸãã ããããŠå®æã§ããã®ã¯ãReact Nativeãéžãã§ããã¢ãã€ã«ãšã³ãžãã¢ãšããŠã®çµéšã匷ã¿ã¯ååã«æŽ»ããããšããããšã§ãã OSS掻çšã§æããããš OSS掻çšã®é¢ã§ãã幟ã€ãå°è±¡çãªæ°ä»ãããããŸãã 1ã€ã¯ãOSSã®æŽæ°é床ã®éãã§ãã React / React Nativeçéã¯æŽæ°ãµã€ã¯ã«ãæ©ããiOS Nativeãšã®æåã®éããèã§æããŸãã å ããŠãèåŒ±æ§æ€ç¥ãªã©ã®ãšã³ã·ã¹ãã ãæŽã£ãŠãããéçºè
äœéšãšããŠè¶³ããã«ãªã£ãŠããªãç¹ãå¿åŒ·ããšããã§ãã ãã1ã€ã¯ãExpoã®å©äŸ¿æ§ãžã®é©ãã§ãã Expoã¯React Nativeçéã§ã¯ããã¡ã¯ãã¹ã¿ã³ããŒããšèšããç«å Žã確ç«ããŠãããä¿¡é Œæ§ãé«ããèšŒææžããªãªãŒã¹åšããšãã£ããã¢ãã€ã«ã¢ããªéçºãªãã§ã¯ãã®ç¥èãæåãã«ããŒããŠãããŸãã ããã¯ãWebããã³ããšã³ããšã³ãžãã¢ãã¢ãã€ã«ã¢ããªéçºã«åå
¥ããããŒãã«ãçžåœäžããŠãããšèšã£ãŠè¯ãã§ãããã å®éãWebããã³ããšã³ããšã³ãžãã¢ã®æ¹ãããReact Nativeã£ãŠå®éã©ããªã®ïŒããšèãããéã¯ãExpoã®ãããã§ãã¢ãã€ã«ã¢ããªéçºã¯æ³å以äžã«å§ããããããšçããããšãã§ããŠããŸãã AIæä»£ã«ãä»ããReact Nativeãããæå³ æåŸã«ç»å£ã®äžã§ã¯æéã®éœåã§èžã¿èŸŒããªãã£ãè«ç¹ã«ã€ããŠæžããŠãããŸãã ããã¯ããAIæä»£ã«ãä»ããReact Nativeãããããšã«æå³ã¯ããã®ãïŒããšããåãã§ãã å人çã«ã¯ãå°ãªããšã次ã®3ç¹ã§æå³ããããšèããŠããŸãã 1ã€ç®ã¯ãiOSãšAndroidãåæã«ç«ã¡äžããäžã§ãOSéã®å·®åã«åãåãçµéšãç©ããããšã§ãã Cross Platformãšèšãã©ãããã·ã¥éç¥ãèªèšŒãOSã®äœæ³ãšãã£ãé åã§ã¯å·®åãå¿
ãé¡ãåºããŸãã AIã«ä»»ããã°æžããæä»£ã ãããããå·®åã®åæãèªåã®äžã«æã£ãŠãããã©ãããå¹ããŠãããšèããŠããŸãã 2ã€ç®ã¯ãã¢ãŒããã¯ãã£éžå®ãOSSéžå®ãšãã£ãããããã¯ãã®åå°ãäœã倿ãçµéšã§ããããšã§ãã ãŒãããã¢ãã€ã«ã¢ããªãç«ã¡äžããæ©äŒã¯ããå€ããªãããäœãéžãã§ãäœãéžã°ãªãã£ããããèªåã®èšèã§èªããããã«ãªãçµéšã¯ãAIæä»£ã§ãè²è€ªãã«ããè³ç£ã ãšæããŠããŸãã 3ã€ç®ã¯ãWebããã³ããšã³ããžã®è¶³æããã«ãªãããšã§ãã React Nativeã§ReactãTypeScriptãæžããŠããæéã¯ããã®ãŸãŸWebããã³ããšã³ãã®åŠç¿ã³ã¹ããåæãããŠãããšèšãããããããŸããã ãã®ãããã¢ãã€ã«ãšã³ãžãã¢ãšããŠWebããã³ããšã³ããžé åãåºããã人ã«ãšã£ãŠãReact Nativeã¯èªç¶ãªå
¥ãå£ã«ãªããšæããŸãã ïŒãã¡ãããWebããã³ããšã³ããšã³ãžãã¢ãšããŠãã¢ãã€ã«ã¢ããªãžé åãåºããã人ã«ãšã£ãŠãåæ§ã§ããïŒ ãŸãšã Findyåã®ã¢ãã€ã«ã¢ããªéçºãéããŠãReact NativeãOSSã®éžå®ãšå®è£
ã§å€ãã®ç¥èŠãåŸãããšãã§ããŸããã åãã¯æ
£ããªãReact Nativeã«åèŠå
«èŠããããšããããŸããããäžåºŠæ
£ããŠããŸãã°ãã¢ãã€ã«ãšã³ãžãã¢ãšããŠã®åŒ·ã¿ãååã«æŽ»ããããšãã§ãããšå®æããŸããã AIæä»£ã«ãããŠã¯ã人ãã¬ãŒãã¬ãŒã«ãšããŠãœãããŠã§ã¢ã®è²¬ä»»ãèè² ãå Žé¢ããŸããŸãå¢ããŠãããŸãã ãã®èгç¹ã§èŠãŠããReact Nativeã¯ãAIæä»£ã«ã人ã責任ãåããæè¡ããšããŠååã«éžå®ã«èããããšèããŠããŸãã ã¢ãã€ã«ã¢ããªã®æè¡éžå®ã«è¿·ã£ãŠããæ¹ããiOS/Androidã®çµéšã掻ãããŠReact Nativeã«èžã¿åºãããšããŠããæ¹ã¯ããã²äžåºŠè§Šã£ãŠã¿ãŠãã ããã æ¬èšäºããã®äžæ©ãèžã¿åºããã£ããã«ãªãã°å¹žãã§ãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ããã«ã¡ã¯ã ãã¡ã€ã³ãã£æ ªåŒäŒç€Ÿã§ããã¯ãªãŒããããŒãžã£ãŒãããããŠããã£ãŠããæžç°ã§ãã ãAI掻çšãæšé²ãããããæãããã«é²ãŸãªããââãã®æ©ã¿ãæ±ããŠãããšã³ãžãã¢ã®æ¹ã¯ãå°ãªããªãã®ã§ã¯ãªãã§ããããã ãã¡ã€ã³ãã£ãäŸå€ã§ã¯ãããŸããã§ããã2025幎ã®äžåæãŸã§ã¯ãæ®æ®µã®æ¥åãããã€ã€çæéã§AIã®ãã£ããã¢ããã瀟å
å±éãé²ããŠããŸããã ä»åã¯ãããããæœ®ç®ãå€ãããã£ãããšãªã£ã決æãšããã®åŸ1人ãããã®ãã«ãªã¯ãšã¹ãäœææ°ãå幎æ¯ã§çŽ1.5åã«ãªããŸã§ã®éçšã玹ä»ããŸãã åãããã«AI掻çšã®æšé²ã«æå¿ãã®ãªããæããŠããæ¹ã®åèã«ãªãã°å¹žãã§ãã çæéã§è¿œããããéç 1ã€ã®å°ããªæ±ºæ æåã«ãã£ãããšïŒFindy Team+ã§çŸç¶ãç¥ã Claude Code Pluginsã§å±éãä»çµã¿åãã ç¶ç¶çãªæµžéïŒæ¯æ¥ã®éç¥ãšæäžã®å
±æ çµæïŒPRäœææ°ãå幎æ¯ã§çŽ1.5åã« æ¯ãè¿ã£ãŠæ°ã¥ããããš ãŸãšã çæéã§è¿œããããéç 2025幎ã®äžåæãŸã§ããã¡ã€ã³ãã£ã®éçºçµç¹ã§ã¯èå³ã𿿬²ã®ãããšã³ãžãã¢ããæ®æ®µã®ãããã¯ãéçºãšäžŠè¡ããŠãææ°ã®ååããã£ããã¢ãããã䜿ããããªããŒã«ã瀟å
ã§å
±æããŠããŸããããããã"çæé"ã§é²ããã¹ã¿ã€ã«ã§ãã æåã®ãã¡ã¯ãããã§ãåã£ãŠããŸãããããããæ¬¡ç¬¬ã«ãã®ããæ¹ã§ã¯è¿œãã€ããªããªã£ãŠãããŸããã çç±ã¯åçŽã§ã AIã®ã¢ããããŒããå€ããã ããã§ãã ã»ãŒæ¯æ¥ã®ããã«ã¢ããããŒããå
¬éãããæ°ãããšãŒãžã§ã³ããæ©èœãç»å Žãããäžåæã®åã°ãããããããã£ããã¢ããã«å
ãŠãæéãã©ãããŠãè¶³ããªããšããæèŠã匷ããªã£ãŠãããŸããã åªåã§å·»ãè¿ããã¬ãã«ã®é
ãã§ã¯ãªããç©éçã«äž¡ç«ãäžå¯èœãªç¶æ
ã«è¿ã¥ããŠããŸããã 1ã€ã®å°ããªæ±ºæ ãã®ç¶æ³ãåããããã«åã£ã1ã€ã®æ±ºæãã ãAIæšé²ã ããå°ä»»ã§æ
ãããžã·ã§ã³ãäœãã ãšãããã®ã§ããã ãã®äººãæ®æ®µã®ãããã¯ãéçºæ¥åããå€ããAIæšé²ãã®ãã®ãæ¥åã«ãããå
Œåã§æéãå¢ããã®ã§ã¯ãªããæ¥åããå€ããŠå
šæ¯ããããšããçºæ³ãžã®åãæ¿ããããã®ããžã·ã§ã³ã®æ¬è³ªã§ãã ãã®å€æã®èæ¯ã«ã¯ã ãå
šå¡ãæ¥åã®10%ãAIæšé²ã«å
ãŠããããã1人ã100%ãå
ãŠãã»ããçµç¹ãšããŠã®åé²éã¯å€§ããã ãšãã確信ããããŸããã å
Œåã¹ã¿ã€ã«ã§åèªãå°ããã€åã圢ã§ã¯ãæ¥ã
ã®AIã¢ããããŒãã®é床ã«ã¯è¿œãã€ããªããä»®ã«è¿œãã€ãããšããŠãããããã䜿ã£ãŠã¢ãŠãã«ã ãåºãããŸã§ãé ãããŸãããäžæ¹ã1人ãå°ä»»ã§å
šåã§ã³ãããã§ããã°ãæ
å ±ã®éçŽã»æ€èšŒã»ç€Ÿå
å±éãæéã®ã¹ããŒãã§åãããšå€æããŸããã AIæšé²ããžã·ã§ã³ã®ãšã³ãžãã¢ã®ä»äºã¯ãAI掻çšãšçµç¹ãžã®å±éãã®ãã®ãæ¥ã
ã®ãããã¯ãéçºã¿ã¹ã¯ã¯ååæãããAIé¢é£ã®åå調æ»ã»æ€èšŒã»ç€Ÿå
å±éã»ä»çµã¿åã«éäžããŠããã圢ã«ããŸããã ãããã¯ãéçºã®æãæžããããšã«å¯ŸããŠã¯ãåœç¶ãªãã瀟å
ã§ãèè€ããããŸãããããã§ãèžã¿åããã®ã¯ãçæéã§ç¶ããŠããå幎éãéããŠãå
Œåã§ã¯çµ¶å¯Ÿã«è¿œãã€ããªããšãã確信ããã£ãããã§ãã æåã«ãã£ãããšïŒFindy Team+ã§çŸç¶ãç¥ã å°ä»»ããžã·ã§ã³ã眮ããŠããæåã«åãçµãã ã®ã¯ã掟æãªæœçãã¹ãã«äœæãªã©ã§ã¯ãªãçŸç¶ææ¡ã§ããã çµç¹å
šäœã®AI掻çšãæšé²ãããšãã£ãŠããæèŠã ãã§åããšèªèã®ã®ã£ãããçãŸããŸããããã§ãFindy Team+ã䜿ã£ãŠããŒã åäœã»ã¡ã³ããŒåäœã§AI掻çšã®åºŠåããå¯èŠåãããšããããå§ããŸããã ããã§ããã£ãã®ã¯ãæ³å®ããŠããããAIã®æ©æµãåããããŠããªãããšããäºå®ã§ããã ããå°ãæãäžãããšãããŒã ãäºæ¥éšããšã«AIã®æŽ»çšåºŠåãã«æç¢ºãªå·®ããããåã圹å²ã®ãšã³ãžãã¢ã§ã䜿ã£ãŠããã¹ãã«ã»ãšãŒãžã§ã³ãã«ã°ãã€ããããããšãèŠããŠããŸããããã䜿ããŠãã人ã®å·¥å€«ããä»ã®ã¡ã³ããŒã«èªç¶ã«ã¯äŒãã£ãŠããªãç¶æ
ã§ãã çµç¹ãšããŠå
šå¡ã§åºäžããããŠããã®ã§ã¯ãªããäžéšã®ç±éã®é«ãã¡ã³ããŒãå
è¡ããŠããç¶æ
ã ã£ãããšããã®ãåœæã®å§¿ã§ããã Claude Code Pluginsã§å±éãä»çµã¿åãã çŸç¶ææ¡ã§ããã£ãã¹ãã«ã»ãšãŒãžã§ã³ãã®ã°ãã€ããåããããã«éžãã æã¡æããClaude Codeã®Pluginsæ©èœã䜿ã£ã瀟å
å±éã§ãã Pluginsæ©èœã«ã€ããŠã¯ä»¥åã®èšäºã§ã玹ä»ããŠããŸãã tech.findy.co.jp Claude Codeã®Pluginsã¯ãã¹ãã«ã»ãšãŒãžã§ã³ãã»ã«ã¹ã¿ã ã³ãã³ãã»åçš®èšå®ãªã©ã1ã€ã®ããã±ãŒãžãšããŠé
åžã§ããä»çµã¿ã§ããAIæšé²ã®ãšã³ãžãã¢ãäœæããéçºçšã¹ãã«ãªã©ããã©ã°ã€ã³ãšããŠã€ã³ã¹ããŒã«å¯èœã«ããŠããã°ãåã¡ã³ããŒãèªåã®ç°å¢ã§ã³ãã³ã1ã€ã§äœ¿ããç¶æ
ã«ãªããŸãã ãã®ä»çµã¿ã«ä¹ããããšã§ã䟿å©ãªã³ãã³ããéçºæšæºåã®ã¹ãã«ãªã©ããã®ãŸãŸéçºçµç¹å
šäœã«é
åžã§ããããã«ãªããŸãããæ°ããå
¥ã£ãã¡ã³ããŒã忥ãããã¡ã€ã³ãã£ã®AI掻çšã®æ©æµãåããããããã«ãªã£ãŠããŸãã å®éã«ããã¡ã€ã³ãã£ã®éçºçµç¹ã§éçšããŠããã¹ãã«ã»ãšãŒãžã§ã³ãã®äžéšã¯ã次ã®èšäºã§ã玹ä»ããŠããŸãã tech.findy.co.jp tech.findy.co.jp tech.findy.co.jp ããããå人ã®å·¥å€«ãšããŠå§ãŸã£ããã®ãããã©ã°ã€ã³åããŠå
šå¡ã«é
åžã§ãã圢ã«ãããã®ã§ãã ç¶ç¶çãªæµžéïŒæ¯æ¥ã®éç¥ãšæäžã®å
±æ ãã©ã°ã€ã³ãé
åžãããšãããŸã§äœã£ãŠããæŽæ°ãç¥ã£ãŠããããªããã°æ¬¡ç¬¬ã«å¿ããããŠããŸããŸããããã§ãã¡ã€ã³ãã£ã§ã¯ãé
åžã®ä»çµã¿ã«å ããŠãæŽæ°ãèªç¶ãšç®ã«å
¥ãç¶æ
ãä¿ã€å·¥å€«ã䞊è¡ããŠèµ°ãããŠããŸãã 1ã€ç®ã¯ããã©ã°ã€ã³ã®æŽæ°å
容ãSlackã®å°çšãã£ã³ãã«ã«æ¯æ¥éç¥ããä»çµã¿ã§ããæ°ãã远å ãããã¹ãã«ããã¢ããããŒããããã³ãã³ããç¿æ¥ã«ã¯ç®ã«å
¥ãç¶æ
ã«ããŠããããšã§ããã€ã®éã«ãå€ãã£ãŠããã§ã¯ãªãã仿¥ãããªæ©èœã远å ããããšããé®®åºŠã§æ
å ±ãæµéããŸãã 2ã€ç®ã¯ãæäžã®ãšã³ãžãã¢å®äŸã®ãªãã«ããã©ã°ã€ã³ãAI掻çšã®äœ¿ãæ¹ãå
±æããæéãèšããããšã§ããããã¥ã¡ã³ãã ãã§ã¯æŽã¿ãããªããã¥ã¢ã³ã¹ãã¡ãã£ãšããã³ããå£é ã§æµãå ŽãšããŠãæã£ã以äžã«æ©èœããŠããŸãã ãã©ã°ã€ã³ãšããåå°ã«å ããŠãéç¥ãšå®äŸãšããç¶ç¶çãªé²åºããã®çµã¿åããããAI掻çšãäžéšã®ã¡ã³ããŒã ãã§éãããããçµç¹å
šäœã«æµžéãããåã«ãªã£ãŠããŸãã çµæïŒPRäœææ°ãå幎æ¯ã§çŽ1.5åã« ããããåãçµã¿ãé²ããçµæã 1人ãããã®ãã«ãªã¯ãšã¹ãäœææ°ã¯å幎æ¯ã§çŽ1.5å ã«ãªããŸããã AI掻çšãé²ãã 宿ãšãããããŸããªèšèã§ã¯ãªããéçºã®ã¢ãŠãããããã®ãã®ãå®éçã«äŒžã³ãããšããã®ã倧ããªãã€ã³ãã§ãã ãã¡ããããã«ãªã¯ãšã¹ãäœææ°ã¯éçºã®é床ãã¹ã¿ã€ã«ã®ææšã®1ã€ã«éããŸãããããã§ããçµç¹ãšããŠã®å€åãæ°åãšããŠèŠããç¶æ
ã«ãªã£ãããšèªäœããAI掻çšã®ã©ãã«æè³ãã¹ãããè°è«ãã倧ããªåå°ã«ãªããŸããã æ¯ãè¿ã£ãŠæ°ã¥ããããš å幎ã»ã©åãçµãã§æ°ã¥ããã®ã¯ãå°ä»»ã眮ããããä»»ããããã§ã¯æãç«ããªããšããããšã§ãã å°ä»»1人ã§ãã¹ãŠãèè² ãæ§é ã«ãããšããã®äººèªèº«ãããã«ããã¯ãšãªã£ãŠããŸããŸããå°ä»»ã®åœ¹å²ã¯ãèªåããã¹ãŠãå®è¡ããããšã§ã¯ãªããçµç¹ã®AI掻çšãåã«é²ããããã®ä»çµã¿ãã€ããããšã çŸå Žã®ãšã³ãžãã¢ã»ãããŒãžã£ãŒãèªèµ°ããããã®åå°ãæŽããã¿ããªã§è¯ãããŠãããšããã¹ã¿ã³ã¹ãéèŠã ãšæããŸããã ãŸãšã ãã¡ã€ã³ãã£ã®AIæŽ»çšæšé²ã¯ãç¹å¥ãªããŒã«ã倧ããããªå¶åºŠæ¹é©ã§ã¯ãªãããAIæšé²ã ããå°ä»»ã§æ
ãããžã·ã§ã³ãäœãããšããã·ã³ãã«ã§å°ããªæææ±ºå®ããå éããŸããã ããããå°ä»»ãåãçµãã ã®ã¯ãFindy Team+ã䜿ã£ãçŸç¶ææ¡ãClaude Code Pluginsã䜿ã£ãã¹ãã«ã»ãšãŒãžã§ã³ãã®ç€Ÿå
å±éããããŠSlackéç¥ãšæäžå®äŸã«ããç¶ç¶çãªæµžéã ããããæŽŸæãã¯ãããŸãããããããã®ç©ã¿éãã«ãã£ãŠã1人ãããã®ãã«ãªã¯ãšã¹ãäœææ°ãå幎æ¯ã§çŽ1.5åã«ãªããŸã§ã®å€åãçã¿åºãããšãã§ããŸããã AI掻çšã¯äžæ¥ã«ããŠæãããå°ããªæææ±ºå®ãå°éãªåãçµã¿ã®ç©ã¿éãããçµç¹å
šäœã®å€§ããªå€åã«ã€ãªããããšã宿ããŠããŸãã å
šå¡ã10%ãã€AIæšé²ã«å
ãŠããããã1人ã100%ãå
ãŠãããã®çºæ³ã®è»¢æãããã¡ã€ã³ãã£ã®AI掻çšãåããåååã«ãªã£ãŠããŸãã AI掻çšãæãããã«é²ãŸãªããšæããŠããçµç¹ã®è²¬ä»»è
ã®æ¹ãããã°ãå¶åºŠãç ä¿®ãèããåã«ãå°ä»»ã眮ãïŒæ¥åããå€ãïŒãšããéžæè¢ãæ€èšããŠã¿ãŠãã ããã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ããã«ã¡ã¯ããã¡ã€ã³ãã£æ ªåŒäŒç€Ÿã§ããã¯ãªãŒããããŒãžã£ãŒãããããŠããã£ãŠãæžç°ã§ãã ãã¡ã€ã³ãã£ã§ã¯Claude Codeã®ã¹ãã«ãã«ã¹ã¿ã ã³ãã³ããªã©ãPluginsçµç±ã§ç€Ÿå
å±éããŠããŸãã tech.findy.co.jp ã³ãŒãã¬ãã¥ãŒãã¿ã¹ã¯åè§£ãšãã£ãéçºæ¥åã®å¹çåãé²ãäžæ¹ã§ãç»å£æºåã¯ãŸã æäœæ¥ã®å²åã倧ããé åã§ãã話ãå
容ãåºããŠãæ§æãèããŠãã¹ã©ã€ãã«èœãšã蟌ãã§ããã¶ã€ã³ãæŽããŠâŠâŠãçºè¡šã®æ¬è³ªã¯ãäœãäŒãããããªã®ã«ãæºåå·¥çšã«æéã奪ãããã¡ã§ãã æ¬èšäºã§ã¯ããã®èª²é¡ã«å¯ŸåŠããããã«ç€Ÿå
Pluginsã«äœã£ãç»å£ã¹ã©ã€ãçæã¹ãã«ã玹ä»ããŸãã壿ã¡ã«ããã³ã¢ã¡ãã»ãŒãžã®èšèªåããMarkdownã¹ã©ã€ãçæãGoogle Slidesãžã®ãšã¯ã¹ããŒããŸã§ãäžæ°é貫ã§è¡ãããã®ã§ã壿ã¡ãã宿ãŸã§30åã§çµããããã«ãªããŸããã ç»å£æºåã«ãããæéã®å
èš³ NotebookLMã詊ããŠæããéç Claude Codeã¹ãã«ãšããéžæè¢ ã¯ãŒã¯ãããŒã®å
šäœå 壿ã¡ãã§ãŒãºïŒã³ã¢ã¡ãã»ãŒãžã®èšèªå ãã³ãã¬ãŒãèšèšïŒçºè¡šæéããéç®ããã¹ã©ã€ãææ° Google Slides API ãã³ãã¬ãŒãã³ããŒæ¹åŒ Markdownããã¹ã©ã€ããžã®å€æã«ãŒã« ãã¶ã€ã³ã¬ã€ãã©ã€ã³ã®çµã¿èŸŒã¿ 70ç¹ã®å®æåºŠã§åºãå²ãåã ãŸãšã ç»å£æºåã«ãããæéã®å
èš³ ç»å£æºåã®ã©ãã«æéãããã£ãŠããããæ¯ãè¿ããšãã¹ã©ã€ãã®ãã¶ã€ã³ãé
眮ãããããã®æåã®å·¥çšã倧ããããšã«æ°ã¥ããŸãã ååã¯ãäœã話ãããã®æŽçã§ãã話ãããããšã¯ãŒãããããããã©ãã³ã¢ã¡ãã»ãŒãžãäžæã«ãŸãšããã®ãé£ãããæ§æã決ããŠãããã®æµãã§èŽè¡ã«äŒãããïŒããšäžå®ã«ãªã£ãŠäœåºŠãçµã¿æ¿ããããããäžçªæéãé£ããŸãã åŸåã¯ã¹ã©ã€ãã®äœæãšãªããŒãµã«ã§ããããããæ§æãåºãŸã£ãŠããä»åºŠã¯ã¹ã©ã€ãããŒã«ãéããŠãã©ãŒãããããã¶ã€ã³ãšæ Œéãããååããå¹çåã§ããã°ãçºè¡šå
容ãã®ãã®ã®è³ªãäžããæéã«äœ¿ããã¯ãã ãšèããŸããã NotebookLMã詊ããŠæããéç æåã«è©Šããã®ã¯Googleã®NotebookLMã§ããããœãŒã¹è³æãèªã¿èŸŒãŸããŠã¹ã©ã€ããçæã§ããæ©èœããããæåŸ
ããŠäœ¿ã£ãŠã¿ãŸããã ãã ãå®éã«äœ¿ã£ãŠã¿ããšããã€ãå£ããããŸãããåºåãPDFãç»å圢åŒã®ãããçæåŸã®ç·šéãé£ããç¹ã§ããã¹ã©ã€ãã®é çªãå
¥ãæ¿ããããããã¹ããä¿®æ£ããããšãã£ãåºæ¬çãªæäœãã§ãããçµå±ãŒãããäœãçŽã矜ç®ã«ãªããŸããã ããäžã€ã¯ã瀟å
ã®ã¹ã©ã€ãã¬ã€ãã©ã€ã³ã«æ²¿ã£ãåºåãéåžžã«é£ããã£ãããšã§ãããã©ã³ããã«ã©ãŒã¹ããŒã ãããŽã®é
眮ãªã©ã¯çµç¹ããšã«ã«ãŒã«ããããŸããæ±çšçãªAIããŒã«ã§ã¯ãããŸã§å¶åŸ¡ã§ãããã¬ã€ãã©ã€ã³ã«æºæ ãããããã®æäœæ¥ãçºçããŠããŸããã Claude Codeã¹ãã«ãšããéžæè¢ ãããã®èª²é¡ãèžãŸããŠãClaude Codeã®ã«ã¹ã¿ã ã¹ãã«ãšããŠç»å£ã¹ã©ã€ãçæã¯ãŒã¯ãããŒãèªäœããŸãããClaude Codeã¹ãã«ãéžãã çç±ã¯ã察話çãªã¯ãŒã¯ãããŒãèªç¶ã«çµããããšãMarkdownã§äžéåºåã§ããããšããããŠAPIãå©ããŠå€éšãµãŒãã¹ã«é£æºã§ããããšã®3ç¹ã§ãã éçºããã®ã¯2ã€ã®ã¹ãã«ã§ãã1ã€ç®ãMarkdownã¹ã©ã€ãã®çæã2ã€ç®ãGoogle Slidesãžã®å€æãæ
ããŸãã ã¯ãŒã¯ãããŒã®å
šäœå ã¹ãã«ãå®è¡ãããšãæ¬¡ã®æµãã§åŠçãé²ã¿ãŸãã åèURLãã³ãŒãã¹ããããã®åéïŒä»»æïŒ 壿ã¡ã§ã³ã¢ã¡ãã»ãŒãžãèšèªå ã¿ã€ãã«ã»æŠèŠã»çºè¡šæéã®å
¥å ãã³ãã¬ãŒãã«åºã¥ãæ§æèšèš Markdownã¹ã©ã€ãã®çæ Google Slidesãžã®ãšã¯ã¹ããŒãïŒä»»æïŒ åãã§ãŒãºã詳ããèŠãŠãããŸãã 壿ã¡ãã§ãŒãºïŒã³ã¢ã¡ãã»ãŒãžã®èšèªå ãã®ã¹ãã«ã§æãåãå
¥ããã®ã壿ã¡ãã§ãŒãºã§ããç»å£æºåã§äžçªæéããããã®ã¯ãäœãäŒãããããåºããå·¥çšã ããã§ãã ã¹ãã«ãèµ·åãããšããŸã察象ãªãŒãã£ãšã³ã¹ïŒããã¯ãªãŒããã·ãã¢ãšã³ãžãã¢ãEMãªã©ïŒãéžæããŸããæ¬¡ã«ãçºè¡šå
容ã¯ãã§ã«æ±ºãŸã£ãŠããŸããïŒããšèãããããŸã æŒ ç¶ãšããŠããããéžã¶ãšå£æã¡ã¢ãŒãã«å
¥ããŸãã ? ã¹ã©ã€ãã«åã蟌ã¿ããURLãã³ãŒãã¹ããããã¯ãããŸããïŒïŒä»»æïŒ > ãªã ? 察象ãªãŒãã£ãšã³ã¹ãæããŠãã ããïŒè€æ°éžæå¯ïŒ ãšã³ãžãã¢ç³»: â ããã¯ãªãŒã â ã·ãã¢ãšã³ãžã㢠ãããžã¡ã³ãç³»: â EM ? çºè¡šå
容ã¯ãã§ã«æ±ºãŸã£ãŠããŸããïŒ > ãŸã æŒ ç¶ãšããŠããïŒäžç·ã«èãããïŒ ã©ããªçºè¡šããããã§ããïŒããŒãã話ãããããšãäŒãããããšã èªç±ã«æããŠãã ããããŸã æŒ ç¶ãšããŠããŠã倧äžå€«ã§ãã 壿ã¡ã¯æ¬¡ã®é åºã§é²ã¿ãŸãã ã³ã¢ã¡ãã»ãŒãžã®ç¢ºå® â ããã®çºè¡šã§äžçªäŒãããããšãã1æã«çµã éç®ã«ããæ§æèšèš â ã³ã¢ã¡ãã»ãŒãžãçµè«ãšããŠãèŽè¡ãçŽåŸããããã«å¿
èŠãªæ
å ±ãéé ã«ç©ã¿äžãã ã¿ã€ãã«ã»æŠèŠã®æ±ºå® â æ§æãåºãŸã£ãåŸã«ãã³ã¢ã¡ãã»ãŒãžãäŒããã¿ã€ãã«ãèãã ãã€ã³ãã¯ãéç®ããšããã¢ãããŒãã§ããçµè«ããé¡ã£ãŠæ§æãçµãããšã§ãã話ãããããšãå
šéšè©°ã蟌ãã ãã©çµå±äœãèšãããã®ãããããªãããšãããããã倱æãé²ããŸãã å®éã®ããåãã¯ãããªæãã§ãã > çæAIæä»£ã®ãšã³ãžãã¢è²æã«ã€ããŠè©±ããããã§ããã©ã ãŸã åãå£ãå®ãŸã£ãŠãªã㊠ãšã³ãžãã¢è²æÃçæAIã§ãããããã¯ãªãŒããEMåããªã®ã§ã çŸå Žã®ãªã¢ã«ãªèª²é¡æãæ±ããããŸãã AIå°å
¥åŸã«è²æé¢ã§äžçªå€åãæããã®ã¯ã©ãã§ããïŒ åŠç¿é床ãã³ãŒãã®è³ªããããšãããŒã ã®çç£æ§ã§ããããïŒ > AIå°å
¥åŸã«ã·ãã¢ã®çç£æ§ã¯äžãã£ããã§ããã è¥æã®ã¢ãŠããããã®è³ªããããèœã¡ãŠããŠã AIã®åºåããã®ãŸãŸäœ¿ã£ãŠããŸã£ãŠãçè§£ã远ãã€ããŠãªãæãã§ã ãªãAIã®åºåããã®ãŸãŸäœ¿ã£ãŠããŸããçè§£ã远ãã€ããŠããªããšæããŠããŸããïŒ > AIãåºåããã³ãŒããçè§£ããã«ã¬ãã¥ãŒäŸé Œããã±ãŒã¹ãå¢ããŠããŠã çµæçã«ãªãŒãã¿ã€ã ãæªåããŠããããšã¯ããã£ãã AIæä»£ã®ä»ã ããããåç¹ååž°ãå¿
èŠã ãªãã»ã©ãã€ãŸããçæAIæä»£ã ãããããšã³ãžãã¢ã®åºç€åã®äŸ¡å€ã äžãã£ãŠãããAIã"䜿ã"åŽã«ç«ã€ã«ã¯åç¹ååž°ãå¿
èŠãã ãšããããšãäžçªäŒãããããšããçè§£ã§åã£ãŠããŸããïŒ > ã¯ã Claudeãã³ã¢ã¡ãã»ãŒãžã1æã«èšèªåããŠãããã®ã§ã察話ã§å£æã¡ãé²ããããŸããã³ã¢ã¡ãã»ãŒãžã確å®ãããšãéç®ã§æ§æãçµãã ããã§ãŸãšããæç€ºããŠãããŸãã 壿ã¡ã®çµæããŸãšããŸããïŒ ã¿ã€ãã«æ¡: çæAIæä»£ã®ãšã³ãžãã¢è²æ â å€ããæä»£ãšå€ãããªãã³ã æŠèŠ: çæAIã®å°å
¥ã§ã·ãã¢ã®çç£æ§ã¯äžãã£ãããè¥æã®ã¢ãŠãããã㮠質ã¯äœäžããŠãããAIãåºåããã³ãŒããçè§£ããã«ã¬ãã¥ãŒäŸé Œãã ã±ãŒã¹ãå¢ããçµæçã«ãªãŒãã¿ã€ã ãæªåãåºç€ç¥èãªãAI掻çšã¯ ãAIã«äœ¿ãããŠãããç¶æ
ã§ãããä»ããåç¹ååž°ãå¿
èŠã ãšæ°ã¥ãã å®äœéšãå
±æããã ã³ã¢ã¡ãã»ãŒãž: çæAIæä»£ã ãããããšã³ãžãã¢ã®åºç€åã®äŸ¡å€ã äžãã£ãŠãããAIã"䜿ã"åŽã«ç«ã€ã«ã¯åç¹ååž°ãå¿
èŠã ? ãã®ãŸãšãã§ã¹ã©ã€ãçæã«é²ã¿ãŸããïŒ > é²ã ãã³ãã¬ãŒãèšèšïŒçºè¡šæéããéç®ããã¹ã©ã€ãææ° ã¹ãã«ã«ã¯3çš®é¡ã®ãã³ãã¬ãŒããçšæããŸããã standard â 20ã60åã®ã«ã³ãã¡ã¬ã³ã¹ããŒã¯åããèæ¯âæ¬é¡âãã¢âãŸãšãã®çéæ§æ lt â 5ã10åã®Lightning Talkåãããçµè«ãã¡ãŒã¹ããã§1ç¹çªç Ž tutorial â 30ã40åã®ãã³ãºãªã³åããæé ããšã«æ€èšŒã¹ããããæã çºè¡šæéãéžã¶ãšããã³ãã¬ãŒããèªåéžæãããŸãã5åã10åãªãLTãã³ãã¬ãŒãã15ã20åãªãstandardã30å以äžã§ãã³ãºãªã³åœ¢åŒãªãtutorialã§ãã ã¹ã©ã€ãææ°ã¯ã1å1æããåºæºã«ç®åºããŠããŸãã20åã®çºè¡šãªã15ã20æãã»ã¯ã·ã§ã³ããšã®é
åã¯ãèæ¯10ã15%ãã¡ã€ã³ã³ã³ãã³ã50ã60%ããã¢15ã20%ããŸãšãã»Q&Aã§æ®ããšããå²åã§èªåé
åãããŸãã ? çºè¡šæéãéžæããŠãã ãã > 20å ãã³ãã¬ãŒã: standardïŒã«ã³ãã¡ã¬ã³ã¹ããŒã¯åãïŒãèªåéžæããŸãã ç®æšã¹ã©ã€ãææ°: 15ã20æ æ§æãèšèšããŠããŸã... ? ã¹ã©ã€ãã«åã蟌ã¿ããURLãã³ãŒãã¹ããããã¯ãããŸããïŒïŒä»»æïŒ > https://tech.findy.co.jp/entry/2026/02/20/070000 URLã®å
容ãååŸããŠããŸã... â ååŸå®äº: https://tech.findy.co.jp/entry/2026/02/20/070000 â èŠç¹ãæœåºããèæ¯ã»ã¡ã€ã³ã³ã³ãã³ãã®ã»ã¯ã·ã§ã³ã«åæ ããŸã â åèè³æã¹ã©ã€ãã«ãªã³ã¯ã远å ããŸã Google Slides API Markdownã§çæããã¹ã©ã€ããGoogle Slidesã«å€æããã¹ãã«ãéçºããŸãããGoogle Slides APIãå®è¡ããŠãããOAuth2èªèšŒã§ãŠãŒã¶ãŒã®Googleã¢ã«ãŠã³ãã«çŽã¥ããŠããŸãã developers.google.com ? Google Slidesã«ãšã¯ã¹ããŒãããŸããïŒ > ãšã¯ã¹ããŒããã Google Slidesã«ãšã¯ã¹ããŒãããŠããŸã... â ãšã¯ã¹ããŒããå®äºããŸãã URL: https://docs.google.com/presentation/d/1abc.../edit ãã³ãã¬ãŒãã³ããŒæ¹åŒ ä»åã¯äŒç€Ÿã®ã¹ã©ã€ããã¹ã¿ãŒïŒãã³ãã¬ãŒãïŒãGoogle Drive APIçµç±ã§ã³ããŒããããã«ã¹ã©ã€ãã远å ããŠããæ¹åŒãæ¡çšããŸããããã³ãã¬ãŒãã«ã¯è¡šçŽã»äžæã»è©³çްããŒãžã®ã¬ã€ã¢ãŠããå®çŸ©ãããŠãããMarkdownã®èŠåºãã¬ãã«ã«å¿ããŠé©åãªã¬ã€ã¢ãŠããéžæããŸãã Markdownããã¹ã©ã€ããžã®å€æã«ãŒã« Markdownã®ããŒã¹çµæã¯ãèŠåºãã¬ãã«ãšããã£ã®æç¡ã§ã¹ã©ã€ãã®çš®é¡ãèªååé¡ããŠããŸãã Markdownã®ãã¿ãŒã³ ã¹ã©ã€ãã®çš®é¡ ãã¶ã€ã³ # ã¿ã€ãã« è¡šçŽ èæ¯ç»åãã ## èŠåºã + æ¬æãã 詳现ããŒãž èæ¯ç»åãã ## èŠåºã ã®ã¿ïŒæ¬æãªãïŒ ã»ã¯ã·ã§ã³åºåã ã°ã¬ãŒèæ¯ + çœæå ## ã®äžã« ### ã®å°èŠåºããå«ãŸããå Žåã¯ãèªåçã«ã»ã¯ã·ã§ã³åºåã1æ + å°èŠåºãããšã®è©³çްããŒãžã«å±éããŸããããšãã°ãAIæä»£ã®å°æ¥ãšå€åãã®äžã«ãå€ãã£ãããšããå€ãããªãã£ãããšãã®2ã€ã® ### ãããã°ãèš3æã®ã¹ã©ã€ãã«åå²ãããŸãã ãã¶ã€ã³ã¬ã€ãã©ã€ã³ã®çµã¿èŸŒã¿ äŒç€Ÿæå®ã®ã¹ã©ã€ãã¬ã€ãã©ã€ã³ãã¹ãã«ã®å®çŸ©ãã¡ã€ã«ã«çŽæ¥èšè¿°ããŠããŸãããã©ã³ããã«ã©ãŒãã¬ããããµã€ãºãšãã£ãã«ãŒã«ãã¹ãã«ã®äžã§æã¡ããšã¯ã¹ããŒãæã«åèŠçŽ ã«é©çšããŸãã 70ç¹ã®å®æåºŠã§åºãå²ãåã éçšäžãéèŠã«ããŠããã®ã¯ã70ç¹ã®å®æåºŠã§äžçºåºåããæ®ãã¯äººéãä»äžããããšããå²ãåãã§ãã AIã100ç¹ã®ã¹ã©ã€ããäœãã®ã¯çŸç¶é£ããã§ãããç®æãå¿
èŠããªããšèããŠããŸããã¹ã©ã€ãã®å®æåºŠã70ç¹ãã100ç¹ã«ããã®ã¯äººéã®ææ§ãå¿
èŠãªéšåã§ããéã«ã0ç¹ãã70ç¹ã®å·¥çšïŒæ§ææ±ºããããã¹ãé
眮ããã©ãŒãããçµ±äžïŒã¯AIã®åŸæåéã§ãã ãã®åæ¥ã«ããæéã§ã壿ã¡15å + ã¹ã©ã€ãçæ5å + æå調æŽ10å = 30åãã§ç»å£æºåãå®äºããããã«ãªããŸããã ãŸãšã ä»å玹ä»ããã¹ãã«ã§äœæãããã¹ã©ã€ãããã¡ãã§ãã ç»å£æºåã®å·¥çšãClaude Codeã¹ãã«ã§äžæ°é貫ã«ããããšã§ã壿ã¡ãã宿ãŸã§30åçšåºŠã§çµãããŸããã ãã®ã¹ãã«ã®äŸ¡å€ã¯ãã¹ã©ã€ããèªåçæããããšãèªäœã§ã¯ãªãããã³ã¢ã¡ãã»ãŒãžã®èšèªåãå¯Ÿè©±ã§æ¯æŽããããšãã«ããç¹ã§ããç»å£æºåã§æ¬åœã«æéããããã®ã¯æ§æããã¶ã€ã³ã§ã¯ãªãããèªåãäœãäŒããããããæŽçããå·¥çšã ã£ãã®ã ãšãã¹ãã«ãéçºããéçšã§æ¹ããŠå®æããŸããã ç»å£ã®æ©äŒããããšã³ãžãã¢ã®æ¹ã¯ããã²ææŠããŠã¿ãŠãã ããã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ããã«ã¡ã¯ããã¡ã€ã³ãã£æ ªåŒäŒç€Ÿã§ããã¯ãªãŒããããŒãžã£ãŒãããŠããæžç°ã§ãã 2026幎4æ15æ¥ã«ãFindy AI Meetup in Fukuoka #5ãçŠå²¡ã§éå¬ããŸããã ä»åã®ããŒãã¯ãAIÃè²æ AIæä»£ã®ãšã³ãžãã¢è²æãã§ãã ãã®èšäºã§ã¯ãåœæ¥ã®ç»å£å
å®¹ãæ¯ãè¿ããªãããçæAIæä»£ã«ããããšã³ãžãã¢è²æã§ç§ãã¡ãçŽé¢ãã課é¡ãšãããããèŠããŠãããå€ãããªã倧åãªããšãã玹ä»ããŸãã https://findy-inc.connpass.com/event/383906/ findy-inc.connpass.com åœæ¥åå ãã ãã£ãã¿ãªããŸãããããšãããããŸããïŒ Findy AI Meetup in Fukuokaã«ã€ã㊠ç»å£å
容 æ°ã¡ã³ããŒã®ããã«ãã·ãã¢ãšã³ãžãã¢ãç°å¢ãäœãæä»£ ãšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒãPull requestãäœãããã«ãªã£ã Pull requestã®å質ã課é¡ã« AIæä»£ã®ã·ãã¢ãšã³ãžãã¢ãã§ããããš çæAIæä»£ã®ãšã³ãžãã¢è²æ â å€ããæä»£ãšå€ãããªãã³ã çæAIã§ã³ãŒãã®äœãæ¹ãå€ãã£ã çŸå Žã§èµ·ããé説 AIã«ã䜿ããããã®ã§ã¯ãªãã䜿ãã åç¹ååž° â åºç€åã®äŸ¡å€ãäžãã£ãŠãã ææ¥ãã詊ããã¢ã¯ã·ã§ã³ AIã®åºåãå¿
ãæ€èšŒããç¿æ
£ãã€ãã åºç€ç¥èãäœç³»çã«ã€ã³ããããã ãAIã«èãåã«å
¬åŒããã¥ã¡ã³ããèªããæéãæèçã«äœã ããŒã ã®éçºã«ãŒã«ããšãŒãžã§ã³ãã¹ãã«ãã«ã¹ã¿ã ã€ã³ã¹ãã©ã¯ã·ã§ã³ã«èœãšã蟌ã ãŸãšã Findy AI Meetup in Fukuokaã«ã€ã㊠Findy AI Meetupã¯ããã¡ã€ã³ãã£ã®ãšã³ãžãã¢ãäž»å¬ããæè¡ç³»ãªãã©ã€ã³ã€ãã³ãã§ãã çæAIãAIãšãŒãžã§ã³ãã®æŽ»çšãéããéçºçç£æ§ã®åäžãããŒãã«ã瀟å
ã§ã®å®è·µäºäŸã®ç޹ä»ããšã³ãžãã¢å士ã®äº€æµãç®çãšããŠããŸãã çŠå²¡ã§ã®éå¬ã¯ä»åã§5åç®ãšãªããŸãããåãéããããšã«åå è
å士ã®é¡ãªãã¿ãå¢ããçŠå²¡ã®ãšã³ãžãã¢ã³ãã¥ããã£ãšããŠæ ¹ä»ããŠããããšã宿ããŠããŸãã ç»å£å
容 æ°ã¡ã³ããŒã®ããã«ãã·ãã¢ãšã³ãžãã¢ãç°å¢ãäœãæä»£ 1ã€ç®ã®ç»å£ã¯ãããã³ããšã³ããšã³ãžãã¢/ããã¯ãªãŒãã®æ°çŠãæ
åœããŸããã ãšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒãPull requestãäœãããã«ãªã£ã çæAIã®æ®åã«ããããšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒã§ãã³ãŒããæžããããã«ãªããŸããã ãã¡ã€ã³ãã£ã§ã¯ããã¶ã€ããŒãClaude Codeã䜿ã£ãŠUIããã¥ã¡ã³ããäœæããããPdMãCursorã§ã¢ãã¯ãäœæãããšãã£ãäºäŸã確èªããŠããŸãã çŽè¿ã§ã¯ããšã³ãžãã¢ãBizã¡ã³ããŒåãã«Notion MCPãçšããæ±äººç¥šæ¹åããŒã«ãéçºããŸããã tech.findy.co.jp å®ã¯ãã®è©±ã«ã¯ãŸã ç¶ãããããŸãããã°ãããããšãä»åºŠã¯Bizã¡ã³ããŒãèªåã§ããã³ãããä¿®æ£ãããšã³ãžãã¢ã«Pull requestãéãããã«ãªã£ãã®ã§ãã ã³ããããPull requestã®äœãæ¹ã誰ãã«æãã£ãããã§ã¯ãããŸãããAIãã£ããã«èããªããæäœããPull requestãäœãäžããŠããŸãããAIãã£ãããéçºã®å
¥å£ãšãªãæä»£ããã®æ³¢ã¯æ¢ã«ãšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒã«ãå±ããŠããŸãã Pull requestã®å質ã課é¡ã« äžæ¹ã§ãã³ãããã¡ãã»ãŒãžã®ãã©ãŒããããåœåèŠåãªã©ãéçºã«ãŒã«ãç¥ããªããŸãŸäœãããPull requestã«ã¯å質é¢ã§ã®èª²é¡ããããŸãããã¬ãã¥ã¢ãŒã®è² æ
ãå¢ããææã®ãã³ã«ææ»ããçºçãããããªäºæ
ã¯é¿ãããã§ãã ãã®è§£æ±ºçãšããŠã¯ããšãŒãžã§ã³ãã¹ãã«ã®æŽåãæå¹ãšèããããŸãã AIãã£ããããèªç¶èšèªã§ãšãŒãžã§ã³ãã¹ãã«ãåŒã³åºãã ãã§ã誰ã§ãéçºã«ãŒã«ã«æºæ ããPull requestãäœæã§ããŸãã AIæä»£ã®ã·ãã¢ãšã³ãžãã¢ãã§ããããš ã·ãã¢ãšã³ãžãã¢ã¯ãããŸã§ãç¥èãèšèªåããŠäŒããããšãã³ãŒãã¬ãã¥ãŒã«ããå質æ
ä¿ããã¢ããã§ã®æå°ãšãã£ã圢ã§ãããŒã ã®åè³ªãšæé·ãæ¯ããŠããŸããã ãããã®åœ¹å²ã¯åŒãç¶ãéèŠã§ãããAIæä»£ã¯ããã«å ããŠã«ã¹ã¿ã ã€ã³ã¹ãã©ã¯ã·ã§ã³ããšãŒãžã§ã³ãã¹ãã«ã®æŽåãªã©ãã·ãã¢ãšã³ãžãã¢ã®ä»äºã«ãªããšæãããŸãã 誰ã§ãåå ã§ããä»çµã¿ãäœãããšã¯ãæããçžæãéžã°ãªãè²æã€ã³ãã©ã®æ§ç¯ã«ã€ãªãããŸããå
¥ç€Ÿ1é±ç®ã®æ°ã¡ã³ããŒã忥ããã³ã³ããªãã¥ãŒã·ã§ã³ãäœéšãããäœãäœãããããã«éäžã§ããç°å¢ãæŽããããšââãããAIæä»£ã®ã·ãã¢ãšã³ãžãã¢ã®æ°ãã圹å²ãšãªããããããŸããã çæAIæä»£ã®ãšã³ãžãã¢è²æ â å€ããæä»£ãšå€ãããªãã³ã 次ã«ããã¯ãªãŒããããŒãžã£ãŒã®æžç°ãæ
åœããŸããã çæAIã§ã³ãŒãã®äœãæ¹ãå€ãã£ã çæAIã®ç»å Žã«ãã£ãŠãéçºã®é²ãæ¹ã¯å€§ããå€ãããŸãããã調ã¹ãâ詊ããã ã£ãããã»ã¹ããAIã«èãâã³ãããã«å€ãããè©°ãŸãæéã¯æ¿æžããŸããã åºæ¬çãªç¥èããªããŠãåãã³ãŒããæè»œã«åºããããã«ãªã£ãäžæ¹ã§ãå
¬åŒããã¥ã¡ã³ãããAIãžã®åãåãããå
ã«ãªããã¡ã§ãããªãåãã®ãããç¥ããã«å®è£
ããæ©äŒãå¢ããŠããŸããã çŸå Žã§èµ·ããé説 AIå°å
¥åŸãã·ãã¢ãšã³ãžãã¢ã®ã¢ãŠããããéã¯å¢ããŠããŸããããããè¥æãšã³ãžãã¢ã«ã€ããŠã¯éã®çŸè±¡ãèµ·ããŠããŸããã Pull requestã®è³ªãèœã¡ãAIãåºåããã³ãŒããçè§£ããã«ã¬ãã¥ãŒäŸé Œãåºãã±ãŒã¹ãå¢ããã®ã§ãããã®çµæã¬ãã¥ãŒã³ã¡ã³ããå¢ããã¬ãã¥ãŒè² æ
ãäžæãããªãŒãã¿ã€ã ã¯æªåããŠããŸããã ããŒã¿ã«ã§èŠããšãããŒã å
šäœã®çç£æ§ã¯ãã»ã©å€ãã£ãŠããªãã£ãã®ã§ãããAIã§å¹çåã§ããããšãã宿ãšã®ã®ã£ãããããã«ã¯ãããŸããã AIã«ã䜿ããããã®ã§ã¯ãªãã䜿ãã ãã®ç¶æ³ãæŽçãããšãè¥æãšã³ãžãã¢ã®äžéšã¯AIã«ã䜿ãããŠãããç¶æ
ã§ããã AIãåºåããã³ãŒããæ£ãããã©ããã倿ã§ãããééãã«æ°ã¥ããªããŸãŸã¬ãã¥ãŒãäŸé Œããããã«ã·ããŒã·ã§ã³ãèŠæããã誀ã£ãå®è£
ãããŠããŸããAIã«æ£ããæç€ºãåºããªããããäœã£ãŠãã ããããšããèšãããæå³ãšç°ãªãã³ãŒããåºãŠããã ã䜿ããç¶æ
ã¯ãã®éã§ããèªåã®æå³ã«æ²¿ã£ãŠAIãåããããæ£èª€ã倿ã§ããããééãããã®å Žã§åŒŸãããæ£ããæç€ºãåºããããæå³éãã®åºåãåŸãããã ãã®éããåããã®ã¯ããšã³ãžãã¢ãšããŠã®åºç€åã§ãã åºç€ç¥èããªããã°ãæ£èª€å€å®ãæ£ããæç€ºãã§ããŸãããåããã®ãäœãã¬ãã«ã¯ãAIã«äœ¿ãããŠãããç¶æ
ã§ãããæ£ããæ¹æ³ãšæé ã§äœãã¬ãã«ããAIã䜿ããç¶æ
ã§ãã åç¹ååž° â åºç€åã®äŸ¡å€ãäžãã£ãŠãã çæAIæä»£ã ãããããåºç€åã®äŸ¡å€ã¯ãããäžãã£ãŠããŸããåºç€ç¥èã座åŠãè³æ ŒååŸãšãã£ããäžèŠãããšå°å³ãªåãçµã¿ãéèŠæ§ãå¢ããŠããã®ã§ãã ãã¡ã€ã³ãã£ã§ã¯ãåºæ¬æ
å ±æè¡è
詊éšçžåœä»¥äžã®è³æ ŒãååŸããããšãæšå¥šããŠããŸããåºãæµ
ãåºç€ç¥èãäœç³»çã«ç¿åŸã§ãããšããç¹ã§ãã³ã¹ããã¿ã€ããé«ãåŠç¿æ¹æ³ã§ããåæ Œããå Žåã¯åéšæãäŒç€Ÿãè² æ
ããå¶åºŠãçšæããŠããŸãã åºç€åãã€ããšAIã®åºåã«å¯Ÿããæ£èª€å€å®ã®è³ªãšã¹ããŒããäžãããã¬ãã¥ãŒåã®ã»ã«ããã§ãã¯ã§åé¡ã朰ããããã«ãªããŸãããã«ã·ããŒã·ã§ã³ãèŠæããããã«ãªãããäœãããããããšæ°ã¥ããæèŠã身ã«ä»ããŸãã ããã«ãAIã«æ£ããæ¹æ³ãšæé ã§æç€ºãåºããããã«ãªããããã¬ãã¥ãŒã§ã®è°è«ãèšèšãããã©ãŒãã³ã¹ãUI/UXãšãã£ãæ¬è³ªçãªå
容ã«ãªããŸãã ä»åã®ç»å£ãšè³æãçããã®åèã«ãªããšå¹žãã§ãã â ææ¥ãã詊ããã¢ã¯ã·ã§ã³ â ææ¥ãã詊ããã¢ã¯ã·ã§ã³ ç»å£å
容ãèžãŸããŠãææ¥ããå®è·µã§ããããšãæŽçããŸããã AIã®åºåãå¿
ãæ€èšŒããç¿æ
£ãã€ãã AIãçæããã³ãŒãããã®ãŸãŸã³ããããã®ã§ã¯ãªããããã®ã³ãŒãã¯äœãããŠããããããªããã®å®è£
ãªã®ãããèªåã®èšèã§èª¬æã§ããã確èªããŠããã¬ãã¥ãŒã«åºããŸãããã説æã§ããªãã³ãŒãã¯ã¬ãã¥ãŒã«åºãã¹ãã§ã¯ãããŸããã åºç€ç¥èãäœç³»çã«ã€ã³ããããã åºæ¬æ
å ±æè¡è
詊éšã®ææã¯ããããã¯ãŒã¯ãããŒã¿ããŒã¹ãã»ãã¥ãªãã£ãã¢ã«ãŽãªãºã ãªã©ãéçºã®åå°ãšãªãç¥èãåºãã«ããŒããŠããŸããè³æ ŒååŸãã®ãã®ãç®çã§ã¯ãªããAIã®åºåãæ£ããè©äŸ¡ããããã®ãç©å·®ãããæã«å
¥ããããšãç®çã§ãã ãAIã«èãåã«å
¬åŒããã¥ã¡ã³ããèªããæéãæèçã«äœã ãã¹ãŠãAIçµç±ã«ããã®ã§ã¯ãªãããŸãå
¬åŒããã¥ã¡ã³ãã§åºæ¬ãçè§£ããããã§AIãæŽ»çšããããšããé åºãæèããã ãã§ãã³ãŒãã®ç解床ã¯å€§ããå€ãããŸãã ããŒã ã®éçºã«ãŒã«ããšãŒãžã§ã³ãã¹ãã«ãã«ã¹ã¿ã ã€ã³ã¹ãã©ã¯ã·ã§ã³ã«èœãšã蟌ã ã·ãã¢ãšã³ãžãã¢ãæã€æé»ç¥ãä»çµã¿ãšããŠæŽåããããšã§ãæ°ã¡ã³ããŒããšã³ãžãã¢ä»¥å€ã®ã¡ã³ããŒã§ãéçºã«ãŒã«ã«æºæ ããPull requestãäœããããã«ãªããŸãããæããããããä»çµã¿ã§æ¯ããããžã®è»¢æã§ãã ãŸãšã ä»åã®Findy AI Meetup in Fukuoka #5ã§ã¯ãAIæä»£ã®ãšã³ãžãã¢è²æãšããããŒãã§2ã€ã®ç»å£ãè¡ããŸããã ç»å£ãéããŠäŒãããã£ãã®ã¯ãAIæä»£ã§ç°å¢ã¯å€§ããå€ãã£ãããå€ãããªãããšããããšããããšã§ãã æãåãããæ±ããããç©ã¿éããåºç€ãšçµéšã¯çµ¶å¯Ÿã«è£åããŸãããåæã«ãã·ãã¢ãšã³ãžãã¢ããšãŒãžã§ã³ãã¹ãã«ãã«ã¹ã¿ã ã€ã³ã¹ãã©ã¯ã·ã§ã³ãšãã£ãä»çµã¿ãæŽåãã誰ã§ãéçºã«åå ã§ããç°å¢ãäœãããšãéèŠã§ãã AIæä»£ã ããããã®åç¹ååž°ãšããŠããšã³ãžãã¢ãšããŠã®åºç€åãéããŠãããŸãããã Findy AI Meetup in Fukuokaã¯ä»åŸãç¶ç¶ããŠéå¬ããŠãããŸããçŠå²¡ã®ãšã³ãžãã¢ã®çãããšãªãã©ã€ã³ã§ã€ãªããããã®å Žããããããã倧åã«ããŠãããããšæã£ãŠããŸãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ããã«ã¡ã¯ïŒãã¡ã€ã³ãã£ã§ãããã¯ãéçºéšã®VPoEãããŠãã æµç° ã§ãã AIé§åéçºã浞éãããªãã§ããšã³ãžãã¢1人ãããã®éçºèœåã¯å€§ããåäžããŠããŸããããããåŸæ¥ã®ããŒã åäœã®ã¢ãµã€ã³æ¹åŒã®ãŸãŸã§ã¯ããã®ããã³ã·ã£ã«ãååã«åŒãåºããŠããªããšæããŠããŸããã ãã®èšäºã§ã¯ãç§ãã¡ãéçºããã»ã¹ããããŒã åäœããããå人åäœãã®ã¢ãµã€ã³ãžç§»è¡ããèæ¯ãšããã®çµæåŸãããå€åã«ã€ããŠç޹ä»ããŸããAIé§åéçºãåãå
¥ãããã®ã®ãããŒã ã®éçºããã»ã¹ãã©ãå€ããã¹ããæ©ãã§ããæ¹ã«åããå
容ã§ãã ãããŸã§ã®éçºããã»ã¹ AIé§åéçºã§èŠããŠããèª²é¡ å人ã¢ãµã€ã³æ¹åŒãžã®ç§»è¡ å人ã®ãªãŒããŒã·ãããé«ãã æè¡æ¹åãé²ã¿ããããªã£ã ãŸãšã ãããŸã§ã®éçºããã»ã¹ ãã¡ã€ã³ãã£ã®ãããã¯ãéçºéšã«ã¯è€æ°ã®éçºããŒã ãããããããã5åååŸã®ãšã³ãžãã¢ã«PdMãšãã¶ã€ããŒãå ããæ§æã§ãååããªãããããã¯ãéçºãé²ããŠããŸãã ãããŸã§ã®éçºããã»ã¹ã§ã¯ãæœçéçºãããŒã ã«ã¢ãµã€ã³ããã¡ã³ããŒãããããåªå
床ã®é«ãã¿ã¹ã¯ããã¬ãã·ãã«ã«åã£ãŠããã¹ã¿ã€ã«ã§éçšããŠããŸããã1ã€ã®æœçéçºãããŒã ã«ã¢ãµã€ã³ãããšãçµæçã«4åçšåºŠã®ãšã³ãžãã¢ãéäžããŠåãçµã¿ãäžæ°ã«éçºãå®äºããããšããé²ãæ¹ã§ããããã°ãããŒå¹çãéèŠããéçºã¹ã¿ã€ã«ã§ãæãåªå
床ã®é«ãæœçãæéã§å®äºãããããšã«æ³šåããŠããŸããã ãã®æ¹åŒã¯ããŒã ã®é£æºãçãŸãããããããŸãæ©èœããŠããŸãããè€æ°äººãåãæœçã«åãçµãããšã§ãèšèšã®è°è«ããã®å Žã§çãŸããããå®è£
äžã«è©°ãŸã£ããšããããã«çžè«ã§ããããšãããŒã ã§åãããããã®åŒ·ã¿ããããŸããã AIé§åéçºã§èŠããŠããèª²é¡ AIé§åéçºã®å°å
¥ã«ããããšã³ãžãã¢1人ãåæã«æ±ããéçºéã¯å¢ããŸãããã¿ã¹ã¯åè§£ããããªã£ãŠäŸåé¢ä¿ããæç¢ºã«ã§ããã°ãããªãã®æ°ã®ã¿ã¹ã¯ãAIãšãŒãžã§ã³ãã«æž¡ããŠäžŠåã§é²ããããšãå¯èœã§ããå ããŠããããŸã§ã¯ãã£ããã¢ããã«æéãããã£ãŠãããããªãèªèº«ã®ç¿ç床ãäœãæè¡ã¹ã¿ãã¯ã®éšåã§ãã£ãŠããAIãããŒãããŒã«ããŠèªåã§éçºãé²ããããããã«ãªããŸããã ãããããããŒå¹çãéèŠããåŸæ¥ã®ã¹ã¿ã€ã«ã§ã¯ããã®AIã®ããã³ã·ã£ã«ãååã«åŒãåºããŸããã§ãããè€æ°ã®ãšã³ãžãã¢ã§1ã€ã®æœçãåæ
ããŠããç¶æ
ã§ã¯ãäžäººã²ãšããæã€ã¿ã¹ã¯ã®ç²åºŠã¯ãã§ã«çްãããªã£ãŠããŸããããããããã«ã¿ã¹ã¯ãåè§£ããŠè€æ°ã®AIãšãŒãžã§ã³ãã«äžŠåã§ä»»ããã®ã¯é£ãããAIã®åœ¹å²ã¯ãããŸã§å¯æçžŠå£«ãšããŠã®è£å©ã«ãšã©ãŸã£ãŠããŸããã å ããŠãã¿ã¹ã¯ã®ã¢ãµã€ã³ãæç¢ºã«æ±ºãããæã空ãã人ããåªå
床ã®é«ãã¿ã¹ã¯ãåã£ãŠããã¹ã¿ã€ã«ã§ã¯ãèªåããã®å
ã©ã®ã¿ã¹ã¯ãæ
åœããããèŠéããŸãããå
ã®èšç»ãç«ããªã以äžãAIãšãŒãžã§ã³ãã«å
åãããŠã¿ã¹ã¯ãæž¡ããŠäžŠåã§é²ããŠãããããšãã§ãããçµå±ã¯ç®ã®åã®1ã€ã®ã¿ã¹ã¯ãAIãšäžç·ã«ããªãã ãã«ãªã£ãŠããŸããŸãã å人ã¢ãµã€ã³æ¹åŒãžã®ç§»è¡ ããã§ãæœçéçºãåã
ã®ãšã³ãžãã¢ã«ãŸãããšã¢ãµã€ã³ããæ¹åŒãžãšåãæ¿ããŸããã 1äººãæœçå
šäœãæ
åœããããšã§ãã¿ã¹ã¯ã®åè§£ãšèšç»ãèªåã®è£éã§è¡ããããã«ãªããŸããã©ã®éšåãAIãšãŒãžã§ã³ãã«äžŠåã§ä»»ããã©ã®éšåãèªåã§æãåããããäºåã«æŽçã§ããã®ã§ãAIãå¯æçžŠå£«ã§ã¯ãªããè€æ°ã®äœæ¥ãåæã«é²ããããŒãããŒãšããŠæŽ»çšã§ããããã«ãªããŸããã å
·äœçã«ã¯ãClaude Codeã®ãããªèªåŸåãšãŒãžã§ã³ããçšããŠè€æ°ã®ã¯ãŒã«ãŒãç«ã¡äžããŸãããããŠãããã³ã³ããŒãã³ãã®å®è£
ããã¹ãã³ãŒãçæããããã«äžŠåã§é²ããããªãããèªèº«ã¯å
šäœã®èšèšããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã«éäžããããšãã£ãåãæ¹ã§ãã ãã®ã1人ã®ãšã³ãžãã¢ãè€æ°ã®AIãšãŒãžã§ã³ããææ®ãããå
·äœçãªã¯ãŒã¯ãããŒã«ã€ããŠã¯ã以äžã®èšäºã§è©³ãã解説ããŠããŸãã®ã§ãããããŠã芧ãã ããã tech.findy.co.jp ãããŒå¹çãéèŠããŠããé ãšæ¯ã¹ããšãæãåªå
床ã®é«ãæœçãå®äºãããŸã§ã®é床ã¯äœäžããŸãã4åã§éäžããŠåãçµãã§ãããã®ã1åã§æ
åœããã®ã§ããããããã¯åœç¶ã®ãã¬ãŒããªãã§ãããããããšã³ãžãã¢éã®ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããæžãããšããAIã«ããã¢ãŠããããéãšé床ã®åäžã«ããã倧ããäœäžãããããšãªãéçºãé²ããããŠããŸããããã«ã2çªç®ã3çªç®ã«åªå
床ã®é«ãæœçãå¥ã®ãšã³ãžãã¢ã䞊è¡ããŠéçºãé²ãããããåã
ã®æœçã«ãããæéãå»¶ã³ãŠããçµæãšããŠããå€ãã®æœçãçŽ æ©ããªãªãŒã¹ã§ããããã«ãªããŸããã å®éã«ããã®å€åã¯å®éçãªææšã«ãæç¢ºã«è¡šããŠããŸãã以äžã®ã°ã©ãã¯ç޹ä»ãã倿Žãè¡ãªã£ãéçºããŒã ã®PRïŒãã«ãªã¯ãšã¹ãïŒäœææ°ã®æšç§»ã§ãããå人ã¢ãµã€ã³ãžã®ç§»è¡ãæ¬æ Œçã«é²ãã2026幎2æäžæ¬ä»¥éãPRæ°ãæç¢ºã«äžæ®µå¢ããŠããããšãããããŸããå人ã®ããã³ã·ã£ã«ãåŒãåºãã¢ãããŒãããéçºããŒã å
šäœã®ã¢ãŠããããæå€§åã«ç¹ãã£ã圢ã§ãã äžæ¹ã§ãããŒã å
šäœã®ãŸãšãŸããšããæå³ã§ã¯å€åããããŸããããããŸã§ã®ããã«å
šå¡ã§1ã€ã®éçºã«éäžããå Žé¢ã¯æžããã©ã¡ãããšãããšåã
ã®éãŸãã«è¿ã圢ã«ãªã£ãŠããŸãã ãã ããããŒã ãšããŠã®é£æºãå®å
šã«ææŸããããã§ã¯ãããŸãããããšãã°èšèšã®æ¹éã«é¢ãã倿ã¯ãåäººã§æ±ããããŒã ã§è°è«ããŠããé²ããããã«ããŠããŸãããå®è£
ã«ã€ããŠããå±äººåããé²ãããã«ãã«ãªã¯ãšã¹ããããŸãã«åå²ããŠã¬ãã¥ãŒãåãããã»ã¹ãç¶æããŠããŸããããã«ãåèªãäœã«åãçµãã§ãããã宿çã«å
±æããå Žãèšããããšã§ããäºãã®ç¶æ³ãèŠããªããªãããšãé¿ããŠããŸããã€ãŸããããŒã ãšããŠã®ååããªããªã£ãã®ã§ã¯ãªãããã®é¢ããæ¹ãå€ãã£ããšããã®ãæ£ç¢ºãªè¡šçŸã§ãã å人ã®ãªãŒããŒã·ãããé«ãã AIæä»£ã ãããããå人ãç®ç«ãããããšãéèŠã ãšèããŠããŸãã ããŒã ã®äžå¡ãšããŠéçºã«åå ããã ãã§ã¯ãåã
ã®ãšã³ãžãã¢ã®è²¢ç®ãèŠãã«ãããªããŸããæ¥µç«¯ã«èšãã°ãAIã«ä»£æ¿ãããããããžã·ã§ã³ã«ãªã£ãŠããŸãå¯èœæ§ããããŸããå人ããªãŒããŒã·ãããæã¡ããããã¯èªåããã£ãããšèªä¿¡ãæã£ãŠèšããç¶æ
ãã€ããããšãããšã³ãžãã¢ãšããŠã®äŸ¡å€ãé«ããããšã«ã€ãªãããšæã£ãŠããŸãã å人ã¢ãµã€ã³ã«ç§»è¡ããããšã§ãåãšã³ãžãã¢ãæ
åœããæœçã«å¯ŸããŠåœäºè
æèãæã£ãŠåãçµãããã«ãªããŸãããèšèšã®æææ±ºå®ãããªãªãŒã¹ãŸã§ãäžè²«ããŠæ
ãããšã§ãæœçå
šäœãèªåããšãšããŠæããå§¿å¢ãèªç¶ãšçãŸããŠããŸãããŸããããŒã ã§éçºããŠããé ã¯ã©ãããŠãçªå£ãããŒã ãªãŒããŒã«éäžããã¡ã§ããããæœçããšã«å人ãã¢ãµã€ã³ããŠãããããã¡ã³ããŒãããããPdMãäºæ¥ã¡ã³ããŒãšçŽæ¥ãããšãããããªãããã«ãªããŸããããã®çµæãæœçã®èæ¯ããªãªãŒã¹åŸã®å¹æã«å¯Ÿããæèãäžãããªã©ãè¯ã广ãåºãŠããŸãã ããã¯ãããžã¡ã³ãã®èгç¹ããã奜ãŸããå€åã§ããã誰ãã©ã®æœçãæšé²ããŠããããæç¢ºã«ãªãã®ã§ãææã®å¯èŠåã«ãã€ãªãããŸããããŒã ã®äžã§åãããã®ã§ã¯ãªããäžäººã²ãšãã®ä»äºãèŠããç¶æ
ãã€ããããšãããšã³ãžãã¢ã®ã¢ãããŒã·ã§ã³ã«ããã圱é¿ãäžããŠãããšæããŠããŸãã æè¡æ¹åãé²ã¿ããããªã£ã å人ã¢ãµã€ã³ã«åãæ¿ããããšã§çãŸãããã1ã€ã®å€åãšããŠãæè¡çãªæ¹åãé²ã¿ããããªã£ãããšããããŸãã ããŒã å
šäœã§æœçéçºã«éäžããŠããé ã¯ãæè¡æ¹åããªãã¡ã¯ã¿ãªã³ã°ã¯ã©ãããŠãåŸåãã«ãªããã¡ã§ãããå人ã«ã¢ãµã€ã³ããã圢ã«ãªã£ãããšã§ãèªåã®è£éã§æ¹åã¿ã¹ã¯ãå·®ã蟌ã¿ããããªããŸãããå®éã«ã以åã¯ãªããªãæãã€ããããªãã£ãã©ã€ãã©ãªã®ã¢ããããŒãããã¹ãã®æŽåãšãã£ãå°éãªæ¹åããåãšã³ãžãã¢ã®å€æã§çå®ã«é²ãããã«ãªã£ãŠããŸãã ããŒã ãšããŠããªãœãŒã¹é
åãæç¢ºã«ããŸãããæœçéçºãæ¹åããã®ä»ã®å²åã7:2:1ãšå®ããããšã§ãã2å²ã®ãªãœãŒã¹ã¯æè¡æ¹åã«äœ¿ããããšããå
±éèªèãçãŸããæ¹åæŽ»åã«åãçµã¿ãããç°å¢ãæŽã£ãŠããŸãã ãŸãšã ãããŒå¹çãéèŠããããŒã éçºãããAIã®ããã³ã·ã£ã«ãåŒãåºãå人ã¢ãµã€ã³ãžãšéçºããã»ã¹ãç§»è¡ããŸãããåã
ã®æœçãå®äºãããŸã§ã®é床ã¯äžãããã®ã®ãAIãšãŒãžã§ã³ããæŽ»çšãã䞊åéçºã«ãã£ãŠããŒã å
šäœã®ã¢ãŠããããã¯ãããå¢å ããå®éã«PRæ°ã«ããã®å€åã衚ããŠããŸããå ããŠãå人ã®ãªãŒããŒã·ãããé«ãŸããæè¡æ¹åã«ãæãåãããã«ãªããŸããã ããŒã ã®ãŸãšãŸããèãããªã¹ã¯ã¯ãããŸãããèšèšå€æã®è°è«ãã¬ãã¥ãŒãšãã£ã飿ºãã€ã³ããæèçã«æ®ãããšã§ãã©ã³ã¹ãåã£ãŠããŸããAIé§åéçºãæšé²ãããªãã§éçºããã»ã¹ã®èŠçŽããæ€èšããŠããæ¹ã®åèã«ãªãã°å¹žãã§ãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ããã«ã¡ã¯ã ãã¡ã€ã³ãã£æ ªåŒäŒç€Ÿã§Findy AI+ã®éçºãããŠããdanã§ãã Findy AI+ ã¯ãAIããŒã«ãå°å
¥ããããã©ãå®éã«ã©ãããã广ãããã®ããšããåãã«å¯ŸããŠå®éçã«çããããã®åæã¯ãŒã¯ãããŒãæ°ãã«ãªãªãŒã¹ããŸããã ä»åã¯ããããã®ã¯ãŒã¯ãããŒã䜿ã£ãŠå®éã«ã©ã®ãããªç€ºåãåŸãããã®ãã«ã€ããŠå®è·µåœ¢åŒã§ç޹ä»ããŸããAIããŒã«ãå°å
¥ãããã®ã®å¹æãèŠãã¥ãããšæããŠããEMãPdMãããŒã ã®æŽ»çšç¶æ³ãææ¡ããããšã³ãžãã¢ã®æ¹ã«åããŠãMCPãµãŒããŒãšGitHub Actionsããããã§ã®å®è¡æé ãšãåæçµæããããŒã ã®æ¹åãã€ã³ããèŠã€ãããŸã§ã®æµãã玹ä»ããŸãã Findy AI+ãšã¯ éçºããŒã ã§åæããŠã¿ã AIç°å¢æŽåã³ãããå±¥æŽåæïŒMCPãµãŒããŒçµç±ïŒ AIãšäººã®PRäœæéæ¯çåæïŒGitHub Actionsçµç±ïŒ Findy AI+ã®åæã¯ãŒã¯ãããŒã«ã€ã㊠åæã¯ãŒã¯ãããŒã§ã§ããããš GitHub Actionsã§åæãèªåå ãããã« Findy AI+ãšã¯ Findy AI+ ã¯ãGitHub飿ºãããã³ããæç€ºãéããŠçæAIã¢ã¯ãã£ããã£ãå¯èŠåããçæAIã®å©æŽ»çšåäžãæ¯æŽãããµãŒãã¹ã§ãã 人ãšçæAIã®ååãåŸæŒãããéçºçµç¹ã®å€é©ããµããŒãããŸãã Claude CodeãGitHub CopilotãCodexãDevinãªã©æ§ã
ãªAIããŒã«ã®å©æŽ»çšã暪æçã«åæããŠããŸãã ä»åãªãªãŒã¹ãããåæã¯ãŒã¯ãããŒã¯MCPãµãŒããŒã»GitHub Actionsã®äž¡æ¹ã«å¯Ÿå¿ããŠããã宿çã«éçºçµç¹ã®ç¶æ
ã«ã€ããŠæ¹åãµã€ã¯ã«ãåããä»çµã¿ããµããŒãããŠããŸãã éçºããŒã ã§åæããŠã¿ã ãã¡ã€ã³ãã£ã®ããéçºããŒã ã§åæããŠã¿ãŸããã åæã¯ãŒã¯ãããŒã¯7çš®é¡ãããŸãããä»åã¯ãã®ãã¡2ã€ãMCPãµãŒããŒçµç±ãGitHub Actionsçµç±ã®äž¡æ¹ã§å®è¡ããŠããŸãã AIç°å¢æŽåã³ãããå±¥æŽåæïŒMCPãµãŒããŒçµç±ïŒ AIèšå®ãã¡ã€ã«ãžã®è²¢ç®è
ãåæããããšãã§ããŸããã³ããã¿ãŒçµ±èšãPRäœæè
çµ±èšããã¡ã€ã«å¥ã®åæçµæã衚瀺ããããããæèè
ã®ææ¡ããã¬ããžå
±æã®ãã£ããã«ããããšãã§ããŸãã MCPãµãŒããŒçµç±ã®åæã¯ãVS Codeã䜿çšããŠããã°Chatããã¹ã©ãã·ã¥ã³ãã³ããå®è¡ããã ãã§å§ããããŸãã ã³ãã³ããå®è¡ãããšã察話圢åŒã§ãªããžããªåã»éå§æ¥ã»çµäºæ¥ã®3ã€ã®ãã©ã¡ãŒã¿ãé çªã«å
¥åããŠãããŸãã æ¬¡ã®ãããªããã³ããã§åæãäŸé Œã§ããŸãã 以äžã®æ¡ä»¶ã§AIèšå®ãã¡ã€ã«ãžã®è²¢ç®ãåæããŠãã ããïŒ ãåæå¯Ÿè±¡ã - ãªããžããª: Repository-A - æé: 2025-10-01ãã2026-02-28 ãåæèгç¹ã - AIããŒã«ã®èšå®ã«æãè²¢ç®ããŠããã¡ã³ããŒã®ç¹å® - èšå®ãã¡ã€ã«ããšã®ã¡ã³ããã³ã¹ç¶æ³ - è²¢ç®ãã¿ãŒã³ãåŸåã®æŽå¯ ãã©ã¡ãŒã¿ã®å
¥åãå®äºãããšãMCPãµãŒããŒãžã®ããŒã«å®è¡èš±å¯ãæ±ããããŸããå
容ã確èªããŠèš±å¯ãããšãåæãéå§ãããŸãã MCPãµãŒããŒã®ããŒã«å®è¡çµæã§ãã Ran AI Configuration File Contributions Input { "repository": "Repository-A", "date_from": "2025-10-01", "date_to": "2026-02-28" } Output # AIç°å¢æŽåã³ãããå±¥æŽåæã¬ããŒã **ãªããžããª**: Org/Repository-A **åææé**: 2025-10-01 ã 2026-02-28 **åæå®è¡æ¥**: 2026幎03æ26æ¥ ## ð¯ è«ç¹å¥ãµã㪠### è«ç¹1: 誰ãAI掻çšç°å¢æŽåã«è²¢ç®ããŠãããïŒäžäœã¯èª°ãïŒ **åç**: user1ãå§åçãªè²¢ç®è
ã§å
šäœã®73.5%ãå ãããæ¬¡ãã§user2ã20.6%ãuser3ãšuser4ãå°æ°è²¢ç®ã **ã€ã³ãµã€ã**: user1ãäžå¿ç圹å²ãæ
ããç¹ã«2025幎12æã«éäžçãªãªãã¡ã¯ã¿ãªã³ã°ãšæ¡å
ã宿œãuser2ã¯åææ§ç¯ãšCIæŽåã«è²¢ç®ã ### è«ç¹2: æåŸã«ææ°åãããã®ã¯ãã€ãïŒæŽæ°ãå€ãããªããïŒ **åç**: æçµæŽæ°ã¯2026-01-21ã§çŽ2ã¶æåãæå¹³å7.0ã³ãããã§ç¶ç¶çã«æŽæ°ãããŠããããçŽè¿2ã¶æã¯åæ»æ°å³ã **ã€ã³ãµã€ã**: 2025幎12æã«å€§èŠæš¡ãªæŽåãå®äºåŸãæŽæ°ãæžå°ã宿çãªã¡ã³ããã³ã¹ãµã€ã¯ã«ã®ç¢ºç«ãæãŸããã ## 1. è²¢ç®ãã¿ãŒã³åæ **ã€ã³ãµã€ã**: user1ã¯.claude/context/é
äžã®æ§é åã«æ³šåïŒ11ã³ãããïŒããã¢ãŒããã¯ãã£èšèšãäž»å°ãuser2ã¯CI/CDãšãšãŒãžã§ã³ãåæèšå®ã«ç¹åã圹å²åæ
ãæç¢ºã --- ð è²¢ç®è
å¥ã³ãããå²å user1 ââââââââââââââââââââ 73.5% (25ä»¶) user2 ââââââââââââââââââââ 20.6% (7ä»¶) user3 ââââââââââââââââââââ 5.9% (2ä»¶) user4 ââââââââââââââââââââ 2.9% (1ä»¶) åæãå®äºãããšã次ã®ãããªã¬ããŒããåºåãããŸãããããã³ã³ããªãã¥ãŒã¿ãŒã®äžèЧãèšå®ãã¡ã€ã«å¥ã®ã¡ã³ããã³ã¹ç¶æ³ãæå¥ã³ãããæšç§»ãªã©ãå¯èŠåãããŠããã誰ããã€ã©ã®ãã¡ã€ã«ãæŽåããã®ããäžç®ã§åãããŸãã äžéšåºåå
容ã§ãããåºåããŒã¿ãããšã«ãã¡ã³ããã³ã¹ç¶æ³ãšè²¢ç®ãã¿ãŒã³ã®ãµããªãŒãæŽçãããŸãã ## AIèšå®ãã¡ã€ã«è²¢ç®åæã¬ããŒã **ãªããžããª**: Org/Repository-A | **æé**: 2025-10-01 ã 2026-02-28 ### 1. èšå®ãã¡ã€ã«ããšã®ã¡ã³ããã³ã¹ç¶æ³ | ãã¡ã€ã«/ãã£ã¬ã¯ã㪠| æçµæŽæ° | äž»èŠã¡ã³ãã㌠| ç¶æ
| |----------------------|---------|---------------|------| | CLAUDE.md | 2025-12-10 | user1 | çŽ3.5ã¶ææªæŽæ° | | settings.json | 2026-01-14 | user1 | çŽ2ã¶ææªæŽæ° | | .claude/context/ | 2025-12-09 | user1 | çŽ3.5ã¶ææªæŽæ° | | .claude/agents/ | 2025-12-16 | user1, user2, user3 | çŽ3ã¶ææªæŽæ° | ### 2. è²¢ç®ãã¿ãŒã³ãšåŸå **æç³»åã®åŸå**: - **2025幎10æ**: user2ã«ããåææ§ç¯ãã§ãŒãºïŒClaude CodeãšãŒãžã§ã³ãèšå®ãPRäœæãšãŒãžã§ã³ãïŒ - **2025幎11æ**: user1ãCI/CD軜éåããåå
¥ - **2025幎12æ**: **æã掻çºãªæïŒ23ã³ãããïŒ** â user1ã«ãã`.claude/context/`ãžã®å€§èŠæš¡åå²ãCopilotèšå®çµ±åã@èšæ³å°å
¥ãuser2ã«ããã»ãã¥ãªãã£é¢é£æŽåãåæé²è¡ - **2026幎1æ**: 2ä»¶ã®ã¿ãæŽåå®äºåŸã®å®å®æã«å
¥ã£ãå¯èœæ§ - **2026幎2æ**: ã³ããããªã **圹å²åæ
**: - **user1**: ã¢ãŒããã¯ãã£èšèšã»æ§é åã®ãªãŒãïŒcontextåå²ãèšå®çµ±åïŒ - **user2**: åæèšèšãšCI/CDã»ãã¥ãªãã£åŒ·å - **user3 / user4**: ã»ããã¢ããã¬ã€ããããã¥ã¡ã³ãè£å®ã®ã¹ãããè²¢ç® **æšå¥šã¢ã¯ã·ã§ã³**: - äž»èŠèšå®ãã¡ã€ã«ïŒCLAUDE.mdãcopilot-instructions.mdïŒã3ã¶æä»¥äžæªæŽæ°ã®ããããããžã§ã¯ãã®çŸç¶ãšä¹é¢ããªãã宿çãªã¬ãã¥ãŒãµã€ã¯ã«ã®ç¢ºç«ãæãŸãã - è²¢ç®è
ãuser1ã«éäžããŠããããããã¹ä¿æ°ïŒBus FactorïŒã®èгç¹ãããã¬ããžå
±æã®ä¿é²ãæ€èšãã¹ã AIãšäººã®PRäœæéæ¯çåæïŒGitHub Actionsçµç±ïŒ AIã«ä»»ããããå¯èœæ§ãããæ¥åé åãç¹å®ããæé©ãªåæ
ãææ¡ããããšãã§ããŸããã¡ã³ããŒå¥AI掻çšçãPRäœæéã®ååšåºŠã確èªã§ããã®ã§ãæ°æ©èœéçºãšéçšéçºã®åæ
ãèãçŽããã£ããäœãã«ã€ãªãããŸãã GitHub Actionsã§ã®åæã¯ããªããžããªã®Actionsã¿ãããæåå®è¡ã§ããŸãã察象ãªããžããªåãšåææéãå
¥åããŠãRun workflowããæŒãã ãã§ãã åæãå®äºãããšãçµæã®ãµããªãŒãSlackã«èªåéç¥ãããŸããããŒã ã¡ã³ããŒå
šå¡ãããã«çµæã確èªã§ãã宿å®è¡ãšçµã¿åãããããšã§ææ¬¡ã®æ¯ãè¿ãã«ã掻çšã§ããŸãã çµæã¯GitHub IssueãšããŠãèªåäœæãããŠããã®ã§ãSlackéç¥å
ã®ãªã³ã¯ããé·ç§»ã§ããŸããæ§é åãããã¬ããŒããäœæãããããŒã å
ã§ã®å
±æãè°è«ããã芪IssueãšããŠã掻çšã§ããŸãã 詳ããã»ããã¢ããæ¹æ³ã¯ GitHub Actionsã§ã®åæã»ããã¢ããã¬ã€ã ãã芧ãã ããã Findy AI+ã®åæã¯ãŒã¯ãããŒã«ã€ã㊠ãããŸã§ç޹ä»ããŠããåæã¯ãFindy AI+ãæ°ãã«æäŸãéå§ããåæã¯ãŒã¯ãããŒã䜿ã£ãŠå®è¡ãããã®ã§ããããããã¯ãã¯ãŒã¯ãããŒã®å
šäœåãšæŽ»çšæ¹æ³ã玹ä»ããŸãã åæã¯ãŒã¯ãããŒã§ã§ããããš ä»åã®ãªãªãŒã¹ã§ã¯ã次ã®7çš®é¡ã®åæã¯ãŒã¯ãããŒãæäŸããŠããŸãã ã¯ãŒã¯ãã㌠ã§ããããš Agent Environment Analysis AIåãæç€ºãã¡ã€ã«ã»ãã©ã«ããã¹ã³ã¢åããèªèµ°ç°å¢ã®æŽå床åãã蚺æ PR Reviews Analysis ã³ãŒã倿Žè
ã»éçºç°å¢ã®äŒžã³ãããç¹å®ããæ¹åæœçãææ¡ PR Productivity Analysis AI掻çšã«ããã¢ãŠããããéã®å€åãæ©èœéçºãžã®åœ±é¿ãåæ AI-Human Collaboration Analysis AIã«ä»»ããããæ¥åé åãç¹å®ããæé©ãªåæ
ãææ¡ Multi AI Cost Comparison è€æ°AIããŒã«ã®ROIã人件費察æ¯ã§ç®åº PR Type Summary PRã®äœæ¥çš®å¥ããšã«ãµããªãŒãçæ Findy AI+ PR Review PRãªãŒãã³æã«AIã¬ãã¥ãŒãèªåå®è¡ããçµæãã³ã¡ã³ãæçš¿ ãããã¯MCPãµãŒããŒã»GitHub Actionsã®äž¡æ¹ãããå©çšããã ããŸãã GitHub Actionsã§åæãèªåå GitHub Actionsã䜿ãã°ãäžèšã®åæããªããžããªãã宿å®è¡ã§ããŸããããã©ã«ãã§ã¯æ¯æ1æ¥ã«ã¹ã±ãžã¥ãŒã«å®è¡ãããèšå®ã«ãªã£ãŠãããé »åºŠã¯ã«ã¹ã¿ãã€ãºå¯èœã§ããGitHub Web UIãCLIããã®æåå®è¡ã«ã察å¿ããŠããŸãã åæçµæã¯Slackãã£ã³ãã«ã«èªåéç¥ããããããããŒã å
šäœã§å®æçã«ç¢ºèªãæ¹åãµã€ã¯ã«ãåãéçšãå®çŸã§ããŸããããŒã åäœã§ã®åæã«ã察å¿ããŠããã®ã§ãçµç¹å
šäœã ãã§ãªãããŒã ããšã®åŸåææ¡ãå¯èœã§ãã æ°ã«ãªããã€ã³ãããã£ãšç¢ºèªããããšãã¯MCPãµãŒããŒããã£ããæ·±å ãããããšãã¯GitHub Actionsãšãã䜿ãåããããããã§ãã ãããã« ä»åã¯ãFindy AI+ã®åæã¯ãŒã¯ãããŒã䜿ã£ãŠãããéçºããŒã ã®AI掻çšç¶æ³ãçŽ1幎ã«ããã£ãŠè¿œããããŠã¿ãŸããã AIç°å¢æŽåã³ãããå±¥æŽåæã§ã¯ã誰ãAIèšå®ãæŽåããŠããã®ããã©ã®ãã¡ã€ã«ãã©ã®ææã«éäžçã«æŽæ°ãããã®ããèŠããŠããŸãããAIãšäººã®PRäœæéæ¯çåæã§ã¯ãAI掻çšçã®æšç§»ãã¡ã³ããŒéã®æŽ»çšåºŠã®å·®ãå¯èŠåãããŸãããããããæ°åãããããšã§ãããªããšãªãAIã䜿ã£ãŠããããšããæèŠã§ã¯ãªããå
·äœçã«ã©ãã«èª²é¡ããããäœãæ¹åãã¹ãããè°è«ã§ããããã«ãªããŸãã AIããŒã«ãå°å
¥ãããã®ã®å¹æãèŠãã¥ãããšæããŠããæ¹ã¯ããŸãèªåãã¡ã®ããŒã ã®çŸç¶ãå¯èŠåãããšããããå§ããŠã¿ãŠãã ãããããŒã¿ãããã°ã次ã®äžæãèŠããŠããŸãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ãã£ãªã¢ãããã¯ãéçºéšã®æ£® ïŒ jiskanulo ã§ãã ç§ããšã§ããä»å¹Žã§45æ³ãWEBãµãŒãã¹ã®éçºæŽã¯20幎以äžã«ãªããŸããäžéçã«ã¯ããã©ã³ãšã³ãžãã¢ãšãã·ãã¢ãšã³ãžãã¢ãšããšç§°ãããé¡ã ãšèªèªããŠããŸãã ãããªç§ã§ãã2026幎1æã«åºæ¬æ
å ±æè¡è
詊éšãåéšããŠåæ ŒããŸããã ãã®èšäºã¯ãããã©ã³ãšã³ãžãã¢ãåºæ¬æ
å ±æè¡è
詊éšãã¹ãã«æ£åžãããŒã«ãšããŠæŽ»çšããäœéšãšãåéšããªããŠã䜿ããã»ã«ããã§ãã¯ã®æ¹æ³ã玹ä»ããŸãã www.ipa.go.jp åéšã®åæ© çµæ åŸæãšèŠæãå¯èŠåããã åŸæã ã£ãé å èŠæã ã£ãé å åŸæãšèŠæã®ã³ã³ãã©ã¹ããæå³ããã㮠詊éšç¯å²ã§ã¹ãã«ãæ£åžãããæ¹æ³ åéšã®Tips CBTåéšã®é°å²æ° éäžåã®ç¶æã«èª²é¡ ãŸãšã åéšã®åæ© åéšãããã£ããã¯æšä»ã®AIãšãŒãžã§ã³ããåæãšããéçºææ³ã®å€åã§ãã ãã¡ã€ã³ãã£ã§ã¯AIãšãŒãžã§ã³ãã®å°å
¥ã»æ€èšŒãç©æ¥µçã«è¡ã£ãŠããŸãã ç§ãDevin, GitHub Copilot Chat, Cline, Claude Codeãªã©ããŸããŸãªããŒã«ããµãŒãã¹ãæ¥ã
ã®éçºæ¥åã«å°å
¥ãã¹ãæ€èšŒããŠããŸããã 2025幎6æé ããClaude Codeãæ¬æ Œçã«äœ¿çšãã¯ããã2026幎3æçŸåšã§ã¯ç§èªèº«ãæã§ã³ãŒããæžãããšã¯å
šããªããªããŸããã æšä»ã®AIãšãŒãžã§ã³ããäž»ãšãªãéçºãé²ããäœå¶ã§ã¯ãAIãšãŒãžã§ã³ããžé©åãªæç€ºãåºãåãAIãšãŒãžã§ã³ãããã®ææ¡ãå€æãæ¿èªã»ä¿®æ£ããããã®åãæ±ããããŸãã ãã®åãã€ããããã®åºç€ç¥èãšããŠãåºæ¬æ
å ±æè¡è
詊éšã®å
容ã¯ã¡ããã©ãããšæããŠããŸãã ãŸãã2025幎æ«ã«éçºéšã§ãåºæ¬æ
å ±æè¡è
詊éšã®åæ Œãç®æããŸãããããšããæ¹éãåºãããšãããã瀟å
ã®ã¡ã³ããŒãç¶ã
ãšåéšã»åæ ŒããŠããæµãã«ä¹ããŸããã åéšçç±ãããäžã€æãããšãå®ã¯åºæ¬æ
å ±æè¡è
詊éšã20幎ã»ã©åã«åéšããŠäžåæ Œã«ãªã£ãŠããåææŠãããªããŸãŸã§ããã ããã«åŸå¹Žã«å¿çšæ
å ±æè¡è
詊éšãåéšãåæ ŒããŠããã®ã§ãããå¿çšæ
å ±ã¯æã£ãŠããã®ã«åºæ¬æ
å ±ã¯æã£ãŠããªããšãããã°ãã°æãè§£æ¶ãããã£ãã®ã§ãã è¿ããã¡ã«ããŒã¿ããŒã¹ã¹ãã·ã£ãªã¹ã詊éšãåããããšèããŠãããšããã2026幎床ããCBTïŒã³ã³ãã¥ãŒã¿ããŒã¹ã®è©ŠéšïŒæ¹åŒã«ç§»è¡ãããšããæ
å ±ããããCBTã®é°å²æ°ãå
ã«äœéšããŠãããããšããæãããããŸããã ãã ããŒã¿ããŒã¹ã¹ãã·ã£ãªã¹ã詊éšã®å®æœãã®ãã®ã2026幎äžã¯äžæçãªç¶æ³ã§ããååãæ³šèŠãã€ã€ãç³ã蟌ã¿ãåéãããããããšã³ããªãŒãããã§ããã www.ipa.go.jp çµæ ç§ç®Aã¯705ç¹ãç§ç®Bã¯680ç¹ãšãªããšãåæ Œã§ããŸãããããå°ãäœè£ãæã£ãŠåæ Œãããã£ãã®ã§ãããããã¯ä»åŸã®äŒžã³ãããšããŸãã åŸæãšèŠæãå¯èŠåããã åéšããŠæãåç©«ã ã£ãã®ã¯ãèªåã®ã¹ãã«ã®èŒªéãã¯ã£ããèŠããããšã§ãã åŸæã ã£ãé å èšç®åé¡ãã³ãŒããªãŒãã£ã³ã°ãããŒã¿ããŒã¹æ£èŠåã皌åçèšç®ãªã©ã®åé¡ã¯ã¹ã ãŒãºã«è§£ããŸããã æ¥åžžæ¥åã§ã³ãŒããæžããã¬ãã¥ãŒããèšèšã»éçšãèããããšãæ¯æ¥ãã£ãŠããã®ã§ãå®åçµéšããã®ãŸãŸåŸç¹ã«çµã³ã€ããŸããã éå»åã®æš¡æ¬è©Šéšã§ããããã®åéã¯æ£ççãé«ããç¹å¥ãªå¯ŸçãããªããŠãå®å®ããŠè§£ããç¶æ
ã§ããã èŠæã ã£ãé å äžæ¹ãäŒèšç®¡çãè²¡åææšã«é¢ããåé¡ã«ã¯èŠæŠããŸãããæçåå²ç¹ãROIãæžäŸ¡ååŽãšãã£ãããŒãã¯éå»åãè§£ããŠããŠãæ£ççãç®ã«èŠããŠäœãåéã§ããã æ¯ãè¿ã£ãŠã¿ããšãæ¥ã
ã®éçºæ¥åã§è²¡åææšãæèããå Žé¢ã¯ã»ãšãã©ãããŸããã§ããã æ¥åã§è§Šããªãé åã¯çµéšå¹Žæ°ã«é¢ä¿ãªã穎ã®ãŸãŸæ®ã£ãŠããããã®æ°ã¥ãããåéšããŠåŸãæå€§ã®åç©«ã§ããã åŸæãšèŠæã®ã³ã³ãã©ã¹ããæå³ãããã® ãã®çµéšããèŠããããšã¯ããšã³ãžãã¢ã®ã¹ãã«ã¯å®åã§ã«ããŒããŠããç¯å²ã«ã¯èªç¶ãšåŒ·ããªããããéã«è§ŠããŠããªãç¯å²ã¯äœå¹Žçµã£ãŠãç²ç¹ã®ãŸãŸã ãšããããšã§ãã åºæ¬æ
å ±æè¡è
詊éšã®åºé¡ç¯å²ã¯ITãšã³ãžãã¢ã®åºç€ç¥èãåºãã«ããŒããŠããŸãã ã ãããããåéšãããšèªåã®ã¹ãã«ãããã®äžã§ãã©ããåãŸã£ãŠããŠãã©ãã空çœãããæµ®ã圫ãã«ãªããŸãã 詊éšã®ããã®å匷ãããã«ãµãŒãã¹éçºã«æŽ»ãããããšãããšããã§ããªãã®ã§ãããèªåã®åºç€ç¥èã®å
šäœåãææ¡ããã«ã¯ã¡ããã©ããç²åºŠã ãšæããŸããã 詊éšç¯å²ã§ã¹ãã«ãæ£åžãããæ¹æ³ åéšããã«ããããåºæ¬æ
å ±æè¡è
詊éšãããã³ã ã«å€§å€ãäžè©±ã«ãªããŸããã www.fe-siken.com ç§ã®å Žåã¯1æ¥30åã20æ¥éã»ã©ã§åèš600åãåçããŸãããç¡æãµãŒãã¹ã®ç¯å²ã§ãååã«éå»åã詊ãããšãã§ããŸãããææã®ã¡ã³ããŒç»é²ããããšåŠç¿ã®èšé²ç®¡çããããããªããŸãã ã¹ãã«æ£åžããããããã«ããŸãç§ç®Aã®éå»åãè§£ããŠã¿ãŠãã ããã åéããšã®æ£ççãèšé²ãããã®ã§ãèªåãã©ã®åéã«åŒ·ããã©ã®åéã«ç©Žãããããæ°å€ã§å¯èŠåãããŸãã åèãšããŠãåºæ¬æ
å ±æè¡è
詊éšã®ç§ç®Aåºé¡ç¯å²ãããšã«ããã»ã«ããã§ãã¯è¡šãèŒããŠãããŸããèªåããåŸæããèŠæããè§Šããããšããªããã®ã©ãã«åœãããæ¯ãè¿ã£ãŠã¿ãŠãã ããã åé èªå·±è©äŸ¡ïŒçè
ã®äŸïŒ åºç€çè«ïŒé¢æ£æ°åŠãæ
å ±çè«çïŒ åŸæ ã¢ã«ãŽãªãºã ãšããã°ã©ãã³ã° åŸæ ã³ã³ãã¥ãŒã¿æ§æèŠçŽ åŸæ ã·ã¹ãã æ§æèŠçŽ åŸæ ãœãããŠã§ã¢ åŸæ ããŒããŠã§ã¢ èŠæ ããŒã¿ããŒã¹ åŸæ ãããã¯ãŒã¯ èŠæ ã»ãã¥ãªãã£ åŸæ ãããžã¡ã³ãïŒãããžã§ã¯ãã»ãµãŒãã¹ïŒ èŠæ ã¹ãã©ããžïŒçµå¶æŠç¥ã»æ³åïŒ èŠæ 衚ã®ãšãããå®åã§æ¥åžžçã«äœ¿ãåéã¯åŸæãããã§ãªãåéã¯èŠæãšããåŸåãã¯ã£ããåºãŸããã æ£ççãå®å®ããŠé«ãåéã¯å®åã§ã«ããŒã§ããŠããåºç€ç¥èãäœãåéããŸã£ããåãããªãåéã¯ãæ¥åã§è§ŠããŠããªãç²ç¹ã§ãããç¥ã£ãŠããã€ããã ã£ããæ£ç¢ºã«ã¯çè§£ã§ããŠããªãã£ãããšããææ§ãªé åãèŠã€ãããããããŸããã åéšã®Tips CBTåéšã®é°å²æ° åœæ¥ååŸã«åéšäŒå Žã«çããšã詊éšéå§æå»åã§ãåéšãå§ããŠãããšæ¡å
ãããŸããã ããœã³ã³ã«åããåã«æã¡ç©æ€æ»ãçµããŠçåžã ããŒããŒãã¯ãã°ã€ã³æã«ãã䜿ããã詊éšäžã¯ããŠã¹æäœã®ã¿ãçŽãšãã³ã¯è²žããŠããããçç®ãã³ãŒãã®ãã¬ãŒã¹ãããªããåçããŸããã åçå®äºãã¿ã³ãæŒããšããã«åŸç¹ã衚瀺ãããååŠããã®å Žã§ç¢ºèªã§ããŸãããçµæåŸ
ã¡ã®ã¢ã€ã¢ã€ããªãã£ãã®ã¯å¬ãããã€ã³ãã§ããã éäžåã®ç¶æã«èª²é¡ ç§ç®Bã®æç¹ã§éäžåãåããŠããŸã£ãã®ãä»åã®åçç¹ã§ãã 20幎åã¯åååé¡ã®ããšã«2æéã»ã©ã®æŒäŒã¿ãããããªãã¬ãã·ã¥ããŠããååŸåé¡ã«èšããŸãããçŸåšã®åœ¢åŒã§ã¯ç§ç®Aã®ããš10åã®äŒæ©ã§ç§ç®Bãå§ãŸããããäœåçã«ã粟ç¥çã«ãæ¶èããç¶æ
ã§åŸåæŠã«å
¥ãããšã«ãªããŸãã åéšããåã«ã¯ååã«äœèª¿ãæŽããŠèšãããšãããããããŸãã ãŸãšã åºæ¬æ
å ±æè¡è
詊éšã¯ãè³æ ŒååŸãšããç®çã ãã§ãªããèªåã®ã¹ãã«ã®åŸæãšèŠæãå¯èŠåããããŒã«ãšããŠæŽ»çšã§ããŸããã ã¹ãã«ãå¯èŠåã§ããããšããããä»å¹Žäžã«ããŒã¿ããŒã¹ã¹ãã·ã£ãªã¹ã詊éšã®åæ Œãç®æããŠæºåãé²ããŠããããšæããŸãã ã¿ãªããã詊éšãåããŠã¿ãŠãã ãããåéšããªããŠããéå»åã詊ãã ãã§ã¹ãã«ã®æ£åžãã«ãªããŸããã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ããã«ã¡ã¯ã Findy AI+ éçºããŒã ã®danã§ãã ãã®èšäºã¯ã ãšã³ãžãã¢éã®äººçãå€ããäžå ããšããŠããã¡ã€ã³ãã£ã®ãšã³ãžãã¢ã人çãå€ããæ¬ã玹ä»ããŠããã·ãªãŒãºã§ãã äžåã®æè¡æžããã£ããã§ãæ°ããåéã«è¶³ãèžã¿å
¥ããããæ¥ã
ã®ã³ãŒãã®æžãæ¹ãå€ãã£ããããçµéšã¯ãããŸãããïŒä»åã¯ç§ã»danãšãåç°ããã®2åããèªåã«ãšã£ãŠè»¢æ©ãšãªã£ãæ¬ããå±ãããŸãã ããã§ã¯ããã£ãã玹ä»ããŠãããŸãããïŒ SREã®ç¥èå°å³ââåºç€ç¥èããçŸå Žã§ã®å®è·µãŸã§ ãã®æ¬ãèªãã ãã£ãã æ¬ã®å
容 ãã®æ¬ãã圱é¿ãåããç¹/åŠãã ç¹ ç¹ã«å°è±¡ã«æ®ã£ãéšå ãã®ãããªæ¹ã«ãããã 仿°ã«ãªã£ãŠãæ¬ ãªãŒããã«ã³ãŒã âããè¯ãã³ãŒããæžãããã®ã·ã³ãã«ã§å®è·µçãªãã¯ãã㯠ãã®æ¬ãèªãã ãã£ãã æ¬ã®å
容 ãã®æ¬ãã圱é¿ãåããç¹/åŠãã ç¹ ç¹ã«å°è±¡ã«æ®ã£ãéšå ãã®ãããªæ¹ã«ãããã ãããã« â dan / ãšã³ãžãã¢ â æ®æ®µã¯ Findy AI+ ã§ããã¯ãšã³ãã»ããã³ããšã³ãã®éçºãããŠããdanã§ããè¥å¹²Terraformããã¥ãŒãããŸããã SREã®ç¥èå°å³ââåºç€ç¥èããçŸå Žã§ã®å®è·µãŸã§ SREã®ç¥èå°å³ââåºç€ç¥èããçŸå Žã§ã®å®è·µãŸã§ äœè
: åé åä¹
, è¿è€ å¥åž , å°æ è¯å€ªé , æž¡éš éŸäž , éœè€ ææ , ææ€ ç¿å€ª , 暪山 éç· æè¡è©è«ç€Ÿ Amazon ç§ã玹ä»ãããSREã®ç¥èå°å³ãã¯ãSite Reliability Engineeringã®å
šäœåãäžåã§èŠæž¡ããããã«æžãããæžç±ã§ãã ãã®æ¬ãèªãã ãã£ãã SREé åã«ã¯ãã£ãšèå³ããããŸããããµãŒãã¹ãå®å®ããŠå±ããããšã®éèŠæ§ã¯æ¥ã
ã®éçºã§å®æããŠãããã®ã®ãèªåã®äžã§SREã¯ããµãŒãã¹ãæ¯ããŠãããããã人ãã¡ããããã®è§£å床ã§ããã ãããªãšã Findy AI+ ã®æ¥åã§ãã¡ã€ã³åãæ¿ãã®å¯Ÿå¿ãæ
åœããããšã«ãªããŸãããã€ã³ãã©å¯ãã®ç¥èãæ±ããããå Žé¢ãå¢ããããã¯ããæ©äŒã ãšæããSREã«ã€ããŠäœç³»çã«åŠãã§ã¿ãããšæ±ºããŸããã ãšã¯ããäœããæãã€ããã°ãããããããã瀟å
ã®SREããŒã ã«ãã©ãããè§ŠããŠããã®ãããããšçžè«ãã«è¡ã£ããšããããã®æ¬ã玹ä»ããŠããããŸããã æ¬ã®å
容 æ¬æžã¯SLOã»ãšã©ãŒããžã§ããã®èšèšãããã¢ãã¿ãªã³ã°ãšãªãã¶ãŒãããªãã£ããã¹ãã¢ãŒãã ããªã³ã³ãŒã«äœå¶ããã€ã«åæžãæ¬çªãªãªãŒã¹ã¬ãã¥ãŒ(PRR)ãŸã§ãSREã®äž»èŠãªæŠå¿µã9ç« ã«ããã£ãŠç¶²çŸ
ããŠããŸããçµç¹æ§é ã®éžæãšå®éã®å°å
¥äºäŸã«ãè§ŠããããŠããŸãã ã¿ã€ãã«ã®ãç¥èå°å³ããçãå°ãŠããŠãåç« ãç¬ç«ãããããã¯ã§ãããªãããç« ããŸããã§èªããšSREãšããé åã®èŒªéãã¯ã£ããæµ®ãã³äžãã£ãŠããæ§æã§ãã æè¡çãªãã©ã¯ãã£ã¹ã ãã§ãªããSREããŒã ãã©ãçµç¹ã«æ ¹ã¥ããããããšãã話ãŸã§æžãããŠããã®ãããã®æ¬ã®ç¹åŸŽã ãšæããŸããã ãã®æ¬ãã圱é¿ãåããç¹/åŠãã ç¹ äžçªå€§ããã£ãã®ã¯ããä¿¡é Œæ§ã¯100%ãç®æããã®ã§ã¯ãªãããšããèãæ¹ã«è§Šããããšã§ããSLOãšãšã©ãŒããžã§ããã®ä»çµã¿ãç¥ããä¿¡é Œæ§ãšéçºã¹ããŒãã®ãã©ã³ã¹ãå®éçã«è°è«ã§ãããšããçºæ³ã«è¡æãåããŸããã æ®æ®µã®ã¢ããªã±ãŒã·ã§ã³éçºã§ã¯ãèœã¡ãªãããšããåœç¶ã®åæã«ãªããã¡ã§ãããSREã®èŠç¹ã§ã¯ãšã©ãŒããžã§ãããæ®ã£ãŠããéããªã¹ã¯ãåã£ãŠãªãªãŒã¹ã§ãããã䜿ãåã£ããä¿¡é Œæ§ã®æ¹åã«éäžããããã®ãã¬ãŒããªãã®èšèšææ³ã¯ãéçºè
ãšããŠã®ãã®ã®èŠæ¹ãå€ããŠãããŸããã çŸåšãSREããŒã ãšéé±ã§å®ç¹èŠ³æž¬äŒãè¡ã£ãŠããã®ã§ãããæ¬æžã§SLOã®æŠå¿µãçè§£ããŠããèšããããšã§ãèŠ³æž¬çµæã®åãåãæ¹ãå€ãããŸããã æ°å€ã®å€åãã仮説ãç«ãŠãæèããã»ã¹ããããããNext Actionã«ã€ãªããåãæ¹ãªã©ãSREããŒã ã®å®è·µãèã§åŠã¹ãŠããŸããæ¬æžããªããã°ã芳枬äŒã«åå ããŠã衚é¢çãªæ°åãçºããã ãã§çµãã£ãŠãããããããŸããã ç¹ã«å°è±¡ã«æ®ã£ãéšå ãã¹ãã¢ãŒãã ã®ç« ã§è§ŠããããŠãããé害ãèµ·ããåã®å°ããªç°å€ããåŠã³ãåŸããšããèãæ¹ãå°è±¡ã«æ®ã£ãŠããŸãã Findy AI+ ã§ã¯ã¢ã©ãŒãäœå¶ã®åºç€ã匷åããäœå°ããããŸãããSREããŒã ãšäžç·ã«ããŸããããæŽãããšããããå§ããã¢ãã¿ãªã³ã°ã®ããã·ã¥ããŒããäœããããããå®ç¹èŠ³æž¬ã§æ¯ãè¿ããäŒãéããããšã«çå®ã«åé²ã§ããŠãããšå®æããŠããŸããæ¬æžã§èªãã ã軜éã«åããåŠç¿ãµã€ã¯ã«ããããŸãã«ä»ã€ãã£ãŠããæäžã§ãã ããã²ãšã€ã第9ç« ã®ãSREã®å®è·µãã§æžãããŠãããéçºããŒã ã®èª²é¡ã«å¯ãæ·»ããšããã¢ãããŒãã«ã匷ãå
±æããŸããããã¡ã€ã³å€æŽã®å¯Ÿå¿ã§SREããŒã ãšäžç·ã«åãããšãããã ãµããŒããããŠããã®ã§ã¯ãªããåãç®ç·ã§äžç·ã«é²ããŠãããšããæèŠããããŸããã SREãã©ã¯ãã£ã¹ãäžæ¹çã«æšé²ããã®ã§ã¯ãªããããŒã ãçŽé¢ããŠããå
·äœçãªèª²é¡ã«ãŸãå¯ãæ·»ã ããã¯SREã«éã£ã話ã§ã¯ãªããèªåãäœããææ¡ãããšãã«ãåãããšãèšãããšæããŸããæ°ããããŒã«ãããã»ã¹ãæã¡èŸŒã¿ãããšãããŸãçžæãä»äœã«å°ã£ãŠãããããå
¥ãããšã§ææ¡ã¯æŒãä»ãã§ã¯ãªã解決çã«ãªãã®ã§ã¯ãšæããŸããã ãã®ãããªæ¹ã«ãããã èªåã®ããã«ã¢ããªã±ãŒã·ã§ã³éçºãã¡ã€ã³ã ãã©ãã€ã³ãã©ãéçšã«ãé¢å¿ãåºãŠãããšã³ãžãã¢ã«ã¯ãŽã£ããã®äžåã§ããSREã®å
šäœåãçæéã§ã€ãããã®ã§ãããããSREé åã«èžã¿åºãæåã®äžåãšããŠæ©èœããŸãã ãŸãããã§ã«SREçãªæ¥åã«æºãã£ãŠããæ¹ã«ãšã£ãŠããèªåã®å®è·µãäœç³»ã®äžã«äœçœ®ã¥ãçŽãæ©äŒã«ãªããšæããŸãã ç§ã®çµéšã§ã¯ãšã©ãŒã®çºçã§SLOã®æ°å€ãäžãã£ãŠãããšããè°è«ããã£ããšãã«ããªããšã©ãŒãSLOã«åœ±é¿ããã®ãããµãŒããŒãè¿ããšã©ãŒã®ä»çµã¿ãå€ãããããããèããåå°ã«ãªã£ãã®ã¯ãæ¬æžã§åŸãç¥èã§ããã 仿°ã«ãªã£ãŠãæ¬ LLMã®åçãRAGã»ãšãŒãžã§ã³ãéçºããèªã¿è§£ããã³ã³ããã¹ããšã³ãžãã¢ãªã³ã° LLMã®åçãRAGã»ãšãŒãžã§ã³ãéçºããèªã¿è§£ããã³ã³ããã¹ããšã³ãžãã¢ãªã³ã° ãšã³ãžãã¢éžæž äœè
: è²ç åŒé· æè¡è©è«ç€Ÿ Amazon Findy AI+ ã§ã¯LLMãåæãããã®ããµãŒãã¹ã«åãå
¥ããŠããŸããçŸåšãæ©èœãå¢ããŠããäžã§åæã®ç²ŸåºŠãããã¯ã«ãªã£ãŠãããããã³ããã®èª¿æŽã«èª²é¡ãæããŠããŸãã ãã®æ¬ã§ã¯LLMãã©ã®ããã«è§£éããŠåæãããŠããã®ãããªã«ããããŠã¯ãããªãã®ããªã©ãæžãããŠããããµãŒãã¹ã®ããã®ãã£ããã¢ãã以å€ã§ã¯ãçŸåšã®AIé§åéçºã«ã掻ãããæ¬ãªã®ã§ã¯ãªãããšæã£ãŠããŸãã ç¶ããŠã¯ããã£ãªã¢ãããã¯ãéçºéš 転è·éçºããŒã ã®åç°ããã§ããåç°ãããéžãã ã®ã¯ãå€ãã®ãšã³ãžãã¢ã«ãšã£ãŠãã€ãã«ãšãããããã®äžåããè¯ãã³ãŒããšã¯äœãããèãããã£ããããããæ¬ã«ã€ããŠèªã£ãŠããããŸããã â åç° / ãšã³ãžã㢠â ãã£ãªã¢ãããã¯ãéçºéš 転è·éçºããŒã ã®åç°ã§ãã ãªãŒããã«ã³ãŒã âããè¯ãã³ãŒããæžãããã®ã·ã³ãã«ã§å®è·µçãªãã¯ãã㯠ãªãŒããã«ã³ãŒã âããè¯ãã³ãŒããæžãããã®ã·ã³ãã«ã§å®è·µçãªãã¯ãã㯠(Theory in practice) äœè
: ãã¹ãã£ã³ã»ããºãŠã§ã« , ãã¬ã-ã»ãã©ã·ã§ , è§åŸå
ž ãªã©ã€ãªãŒãžã£ãã³ Amazon ç§ã玹ä»ããããªãŒããã«ã³ãŒããã¯ãã³ãŒãã®èªã¿ãããã«çŠç¹ãåœãŠãå®è·µçãªæžç±ã§ãã ãã®æ¬ãèªãã ãã£ãã æ°äººãšã³ãžãã¢ãšããŠåãå§ãããšãããæ£ããã³ãŒãã®æžãæ¹ããããããªããŠæ©ãã§ããŸãããåãã³ãŒãã¯æžããããã©ããããè¯ãã³ãŒããªã®ãèªä¿¡ãæãŠãªããã¬ãã¥ãŒã§ææãããŠãããªãããæžãã¹ããªã®ãè
ã«èœã¡ãªãããšããããŸããã ãããªãšãã«åºäŒã£ãã®ããã®æ¬ã§ãããšã³ãžãã¢ã®éã§å®çªæžãšããŠååãèãããšãå€ãããŸãã¯ããããå§ããŠã¿ãããšæã«åããŸããã æ¬ã®å
容 æ¬æžã¯ãã³ãŒãã¯ä»ã®äººãæçæéã§çè§£ã§ããããã«æžããªããã°ãããªãããšããååã®ããšã倿°åã®ä»ãæ¹ãã³ã¡ã³ãã®æžãæ¹ãæ¡ä»¶åå²ã®æŽçãåŒã®åå²ãšãã£ãããŒãã13ç« ã«ããã£ãŠè§£èª¬ããŠããŸãã Before/Afterã®ã³ãŒãäŸãè±å¯ã«èŒã£ãŠããŠããèªã¿ãããã³ãŒããšã¯äœãããå®è·µçã«èª¬æããŠãããŸãã ã³ãŒãã¬ãã¥ãŒã®ãšãããªããšãªãããã£ã¡ã®ã»ãããããšæãããšã¯æããã®ã«ãèšèã«ã§ããªããããããçµéšãæã£ãŠããæ¹ã¯å€ãã®ã§ã¯ãªãã§ããããããã®æ¬ãèªããšãããªãèªã¿ããããšæããã®ãããè«ççã«èª¬æã§ããããã«ãªããŸãã ãã®æ¬ãã圱é¿ãåããç¹/åŠãã ç¹ äžçªå€§ããã£ãã®ã¯ãã³ãŒããæžãäžã§ã®èªä¿¡ãçãŸããããšã§ãã æ¬æžãèªãåã¯ãã¬ãã¥ãŒã§ãããçŽããã»ããããããšèšãããŠãããããäžè¬çãªã«ãŒã«ãªã®ãããã®äººã®å¥œã¿ãªã®ãåºå¥ãã€ããŸããã§ãããæ¬æžã¯ãçè§£ãããŸã§ã«ãããæéããçããããšããæç¢ºãªå€æè»žã瀺ããŠãããŸãã ãã®è»žãæã«å
¥ããããšã§ãããªãããæžããã®ãããèªåã®èšèã§èª¬æã§ããããã«ãªããŸããã äŸãã°ã1è¡ã«è©°ã蟌ãã è€éãªåŒããã2è¡ã«åããã»ããçè§£ããããã±ãŒã¹ããããçãã³ãŒãããè¯ãã³ãŒãã ãšæã蟌ãã§ããåœæã®èªåã«ãšã£ãŠãã³ãŒãã®è¯ãæªãã¯è¡æ°ã§ã¯ãªãèªã¿æã®çè§£ã³ã¹ãã§æ±ºãŸããšããèãæ¹ã¯æ°é®®ã§ããã ç¹ã«å°è±¡ã«æ®ã£ãéšå 2ã€ãããŸãã ã²ãšã€ã¯ã³ã¡ã³ãã«ã€ããŠã®ç« ã§ããæ°äººã®é ã¯ã³ã¡ã³ããã©ãã«æžãã°ããã®ããããããçµå±ã»ãšãã©æžããŠããŸããã§ãããæ¬æžã§ã¯ãã³ãŒãããããã«ãããããšãã³ã¡ã³ãã«æžããªãããšãã€ã€ãèšèšæå³ãã³ãŒãã®æ¬ é¥ãªã©ãç£ç£ã®ã³ã¡ã³ã¿ãªãŒããšããŠã®ã³ã¡ã³ãã¯ç©æ¥µçã«æžãã¹ãã ãšè¿°ã¹ãŠããŸãã ã³ã¡ã³ããæžããæžããªããã§ã¯ãªãããèªã¿æã«ãšã£ãŠæ°ããæ
å ±ãæäŸããããã§å€æããããã®åºæºãç¥ã£ãããšã§ãã³ã¡ã³ããæžãå Žé¢ãšæžããªãå Žé¢ã®åºå¥ãã€ãããã«ãªããŸããã ããã²ãšã€ã¯ã説æå€æ°ãšèŠçŽå€æ°ã®èãæ¹ã§ããæ¬æžã§ã¯ãè€éãªåŒãç¹°ãè¿ãç»å Žããæ¡ä»¶ã倿°ã«åãåºãããšã§ãã³ãŒãã®æå³ãæç¢ºã«ããææ³ã玹ä»ãããŠããŸãã äŸãã° request.user.id == document.owner_id ãšããåŒã¯ãèŠçŽ ãå€ããŠèªã¿è§£ãã®ã«å°ãæéãããããŸããã§ãããã user_owns_document ãšãã倿°ã«çœ®ãæãããšãã³ãŒããäŒãããããšã¯ããŠãŒã¶ãŒããã®ææžã®ææè
ãã©ãããã ãšããã«ããããåŒããäœãããŠããããã§ã¯ãªããäœãæå³ããŠãããããäŒããããã«ãªãããã§ãã ãã®èãæ¹ãç¥ã£ãŠãããæ¡ä»¶åå²ãifæã®äžã«é·ãåŒããã®ãŸãŸæžãããšã«éåæãèŠããããã«ãªããŸããã倿°åãã€ãããšããå°ããªå·¥å€«ããã³ãŒãå
šäœã®èªã¿ãããã«å€§ãã圱é¿ããããšãæããŠãããäŸã§ããã ãã®ãããªæ¹ã«ãããã ã³ãŒããæžãå§ãããã®ã®ãäœãè¯ãã³ãŒããªã®ãããããªããšããæ¹ã«ã¯ãŽã£ããã®äžåã§ããèšèšãã¿ãŒã³ãã¢ãŒããã¯ãã£ã®ãããªå€§ããªè©±ã§ã¯ãªããæ¥ã
ã®ã³ãŒãã£ã³ã°ã§ããã«å®è·µã§ããå
容ãè©°ãŸã£ãŠããŸãã ãŸããçµéšãç©ãã ãšã³ãžãã¢ã«ãšã£ãŠããæ®æ®µç¡æèã«ãã£ãŠããããšãèšèªåãçŽããã£ããã«ãªããšæããŸããã¬ãã¥ãŒã§ããªããšãªããã£ã¡ã®ã»ããããããšããèšããªãã£ãæèŠã«ãèšèãäžããŠãããæ¬ã§ãã ãããã« SREã®å
šäœåãã€ããããã®å
¥éæžãšãæ¥ã
ã®ã³ãŒãã£ã³ã°ãæ¯ããå®çªæžãä»åã®2åã¯æ¹åæ§ããç°ãªããŸãããç§ã¯SLOãšãšã©ãŒããžã§ãããšããå®éçãªèŠç¹ããåç°ããã¯ãèªã¿æã®çè§£ã³ã¹ãããšããã³ãŒãã®è¯ãæªããæž¬ãåºæºããããããæ¬ããåŸãŠããŸããã å€æè»žããããšãè¿·ã£ããšãã«ç«ã¡è¿ãå Žæãã§ãããæè¡æžãšã®åºäŒãããããããã£ããã«ãªãããšããå°ãã§ããäŒãã§ããŠããã°å¬ããã§ãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«åãã¡ã³ããŒãåéããŠããŸããå°ãã§ãèå³ãæã£ãŠããã ããæ¹ã¯ããã²ãã¡ããã芧ãã ããïŒ