Upgrade to Pro — share decks privately, control downloads, hide ads and more …

速習AGENTS.md:5分で精度を上げる "3ブロック" テンプレ

速習AGENTS.md:5分で精度を上げる "3ブロック" テンプレ

2025/10/14(火) の Codex Meetup Japan #1 (https://aid.connpass.com/event/369420/) で登壇した際のスライドです。

Avatar for Izumu KUSUNOKI

Izumu KUSUNOKI

October 14, 2025
Tweet

More Decks by Izumu KUSUNOKI

Other Decks in Technology

Transcript

  1. "(&/54NE ͱ͸ʁ ʮΤʔδΣϯτͷͨΊͷ 3&"%.&ʯ 㾎 ΤʔδΣϯτͷԠ౴ਫ਼౓ͱҰ؏ੑΛ޲্ ਓ͕ؒ 3&"%.&NE ΛಡΜͰϓϩδΣΫτΛཧղ ͢ΔΑ͏ʹɺΤʔδΣϯτ͕

    "(&/54NE ΛಡΜ Ͱ։ൃͷࢦ਑Λ೺Ѳɻ 㾎 $PEFY $VSTPS 'BDUPSZͳͲଟ਺ͷΤʔδΣϯτʹରԠ 㾎 "(&/54NE ͸ɺ"*ίʔσΟϯάΤʔδΣϯτ͕ ϓϩδΣΫτͷϧʔϧ΍࡞๏Λཧղ͢ΔͨΊͷΦʔ ϓϯϑΥʔϚοτɻ ඪ४తͳ .BSLEPXOܗࣜͰهड़Մೳ 㾎 ϓϩδΣΫτϧʔτʹ഑ஔ͢Δ͚ͩͰಈ࡞
  2. લఏ3&"%.&ͱͷ੗Έ෼͚͸ʁ 3&"%.&NE ର৅ಡऀ ਓؒʢ։ൃऀɺίϯτϦϏϡʔλʔʣ ໨త ϓϩδΣΫτͷഎܠɺ໨తɺ࢖͍ํΛ఻͑Δʮ෺ޠʯ ಺༰ ϏδϣϯɺΞʔΩςΫνϟɺηοτΞοϓखॱɺͳͥ͜ͷٕ ज़ΛબΜͩͷ͔ͳͲؚΉ͜ͱΛਪ঑ "(&/54NE

    ର৅ಡऀ "*ΤʔδΣϯτ BTίϯτϦϏϡʔλʔ ໨త ։ൃϧʔϧɺن໿ɺखॱΛఆٛ͢Δʮܖ໿ʯ ಺༰ ίʔσΟϯάن໿ɺςετํ਑ɺίϚϯυҰཡɺ඼࣭؅ཧͷ ج४ͷΈΛఏࣔ͢Δ͜ͱΛਪ঑ ˠ ໾ׂΛ෼཭͢Δ͜ͱͰɺ৘ใͷ௠෗ԽΛ๷͗ɺͦΕͧΕʹ࠷దԽ͞Εͨ৘ใΛఏڙͰ͖Δ
  3. $PEFY͸ɺෳ਺ͷ "(&/54NE ϑΝΠϧΛ ֊૚తʹಡΈࠐΈɺͭͷࢦࣔॻͱͯ݁͠߹ ͠·͢ɻ ͜ΕʹΑΓɺάϩʔόϧͳڞ௨ϧʔϧͱϓϩδΣΫτݻ༗ͷࢦࣔΛ૊Έ߹ΘͤΔ͜ͱ͕Ͱ͖·͢ɻ ಡΈࠐΈͷྲྀΕ άϩʔόϧઃఆ dDPEFY"(&/54NE ˠ

    ϦϙδτϦϧʔτ QSPKFDU"(&/54NE ˠ αϒσΟϨΫτϦ QSPKFDUTVC"(&/54NE ˞࡞ۀσΟϨΫτϦʹ͍ۙϑΝΠϧ΄Ͳޙ͔ΒಡΈࠐ·ΕɺΑΓ۩ମతͳࢦࣔͰ্ॻ͖Ͱ͖·͢ લఏ"(&/54NE ͷಡΈࠐΈ࢓༷
  4. લఏ"(&/54NE ಡΈࠐΈॱংͷৄࡉ dDPEFY"(&/54NEͷ಺༰  QSPKFDUEPD ϦϙδτϦϧʔτ"(&/54NEͷ಺༰  QSPKFDUEPD αϒσΟϨΫτϦ"(&/54NEͷ಺༰ ෳ਺ͷ

    "(&/54NE ϑΝΠϧ͸ɺ͜ͷΑ͏ʹ ্Ґ֊૚͔ΒԼҐ֊૚΁ॱ൪ʹ݁߹ ͞ΕɺҰͭͷࢦࣔͱͯ͠ಡΈࠐ·Ε·͢ɻ ޙ͔ΒಡΈࠐ·ΕΔʢ֊૚͕ਂ͍ʣࢦࣔ΄ͲɺΑΓ۩ମతͳ಺༰ʹͳΔΑ͏ʹظ଴͞Ε͍ͯ·͢ɻ 㾎 άϩʔόϧઃఆʢdDPEFY"(&/54NEʣ͕ৗʹ࠷ॳʹద༻͞ΕΔ 㾎 ϓϩδΣΫτଆͷࢦ͕ࣔޙஈͰิ଍ɾ্ॻ͖͢ΔܗʹͳΔ 㾎 Լ૚σΟϨΫτϦͷࢦࣔͰಛఆͷ߲໨Λʮ্ॻ͖ʯͰ͖Δ
  5. #MPDL  άϩʔόϧ dDPEFY"(&/54NE ݸਓͷڞ௨ϧʔϧɻ͢΂ͯͷ ϓϩδΣΫτͰద༻͞ΕΔج ຊํ਑Λఆٛ ݴޠن໿ʢԠ౴ɾίϝϯτʣ ڞ௨ϑΥʔϚοτ ݸਓͷ޷ΈɾελΠϧ

    #MPDL ϦϙδτϦϧʔτ QSPKFDU"(&/54NE ϓϩδΣΫτશମͷڞ௨ϧʔ ϧɻνʔϜશମͰकΔ΂͖։ ൃن໿Λهࡌ ίʔσΟϯάن໿ ςετํ਑ɾΧόϨοδ ίϛοτن໿ #MPDL αϒσΟϨΫτϦ QSPKFDUGFBUVSF"(&/54NE ಛఆػೳɾϞδϡʔϧݻ༗ͷϧ ʔϧɻہॴతͳٕज़ελοΫ΍ υϝΠϯϧʔϧΛఆٛ ಛఆٕज़ελοΫͷࢦࣔ υϝΠϯݻ༗ͷϧʔϧ ྫ֎తͳॲཧํ਑ "(&/54NE ࢓༷͔Βߟ͑Δ̏ϒϩοΫઓུ
  6. #MPDLάϩʔόϧઃఆͷ׆༻ྫ dDPEFY"(&/54NEʹهࡌ͢Δ಺༰ͷ۩ମྫ ೔ຊޠ؀ڥͰͷݴޠن໿ʢొஃऀͷέʔεʣ 㾎 νϟοτͷԠ౴ݴޠ͸೔ຊޠ 㾎 ίϝϯτ΍EPDTUSJOH͸ӳޠ 㾎 ಛʹݴٴ͕ͳ͚Ε͹3&"%.&΍EPDTจॻੜ੒΋ӳޠ 㾎

    ϨϏϡʔίϝϯτͷఏҊ͸೔ӳซه ݸਓͷ޷ΈɾશମͰڞ௨͍ͤͨ͞ελΠϧ 㾎 ৗʹ BTZODBXBJUΛ࢖༻ 㾎 ؔ਺ܕϓϩάϥϛϯάΛ༏ઌ 㾎 ΤϥʔϋϯυϦϯά͸໌ࣔతʹ 㾎 ܕ҆શੑΛ࠷༏ઌ άϩʔόϧઃఆ͸ɺ͢΂ͯͷϓϩδΣΫτͰҰ؏ੑΛอͭͨΊͷج൫ͱͳΓ·͢ɻ ϓϩδΣΫτݻ༗ͷઃఆ͸ɺ#MPDL ʢϦϙδτϦϧʔτʣ΍#MPDLʢαϒσΟϨΫτϦʣͰ্ॻ͖ɾ௥ՃͰ͖·͢ɻ
  7. just fmt just fix –p <project> cargo test –p codex-tui

    #MPDL࣮ྫ0QFO"*$PEFY :VNF຋༁ 0QFO"*$PEFYͷϦϙδτϦʹ͸ 3VTU։ൃʹಛԽͨ͠ "(&/54NE ͕഑ஔ͞Ε͍ͯ·͢ɻ ໋໊نଇͱίʔσΟϯάن໿ ϏϧυɾςετίϚϯυ ΫϨʔτ໊͸ DPEFY ϓϨϑΟοΫεͰ࢝ΊΔ ՄೳͳݶΓ GPSNBUϚΫϩͰΠϯϥΠϯϑΥʔϚοτ ΫϩʔδϟΑΓ΋ϝιουͷࢀরΛར༻ ςετͰ͸ΦϒδΣΫτશମͷൺֱ͕޷·͍͠ ˞KVTU͸ KVTUGJMF ͷఆٛͰಈ͘ NBLFGJMF ͷ਌ੰ ϓϩδΣΫτݻ༗ͷ੍໿ $0%&9@4"/%#09@ ؀ڥม਺Λઈରʹ͍͡Βͳ͍ αϯυϘοΫε؀ڥͰ͸ωοτϫʔΫ௨৴ͳ͠ 4FBUCFMU .BD04TBOECPY Λ࢖ͬͨϓϩηεੜ੒ͷ੍໿ʹ͍ͭͯ 56* 5FYUCBTFE6TFS*OUFSGBDF ελΠϧن໿ 56*ϥΠϒϥϦ 3BUBUVJ ͷ 4UZMJ[FUSBJUͷϔϧύʔΛ࢖͏͜ͱ TUZMFEͷ௚઀ར༻͸ආ͚ lUFYUzSFE lUFTUzEJN ͳͲΛ࢖͓͏ XIJUF ͷϋʔυίʔυ͸΍ΊͯσϑΥϧτϑΥΞάϥ΢ϯυ࢖༻ ςετن໿ DBSHPJOTUBΛ࢖ͬͨεφοϓγϣοτςετ QSFUUZ@BTTFUJPOTBTTFSU@FR Λ࢖༻
  8. #MPDL ͷڞ௨ύλʔϯ ϓϩδΣΫτߏ଄ ڞ௨͢Δઃܭࢥ૝ Ϗϧυɾςετ ϦϙδτϦͷߏ੒΍Ϟδϡʔϧ഑ஔΛઆ໌ʢ$PEFYΫϨʔτ໋໊ɺ5FNQPSBMͭͷαϒϞδϡʔϧʣ ίʔσΟϯάن໿ ςετઓུ 13ɾίϛοτ ֎෦ࢀর

    ۩ମతͳίϚϯυϥΠϯΛఏࣔʢ$PEFYKVTUDBSHPɺ"JSGMPXVWCSFF[Fɺ5FNQPSBMHSBEMFXʣ ϓϩδΣΫτݻ༗ͷελΠϧ΍ϕετϓϥΫςΟεʢ$MJQQZ SVMFTɺ+BWB ޓ׵ੑͳͲʣ ςετͷ࣮ߦํ๏΍࡞੒࣌ͷن໿ʢ4OBQTIPU UFTUTɺ4%,5FTU8PSLGMPX3VMF࢖༻ͳͲʣ ϓϧϦΫΤετ΍ίϛοτϝοηʔδͷܗࣜʢ$ISJT #FBNTTUZMFɺSFCBTFਪ঑ͳͲʣ ৄࡉ͸ผυΩϡϝϯτʹҕৡʢ"JSGMPXSTUϑΝΠϧɺ5FNQPSBM࠷ۙ $0/53*#65*/(NE ʹ SFOBNFʣ ؆ܿੑ dޠఔ౓ʹऩΊɺৄࡉ͸֎෦ʹҕৡ ֊૚తࢀর ΑΓৄࡉͳ৘ใ΁ͷύεఏڙ ࣮ߦՄೳੑ ίϐʔˍϖʔετͰ͖ΔίϚϯυྫ ϓϩδΣΫτݻ༗ੑ Ұൠ࿦Ͱͳ͍ϦϙδτϦಛ༗ͷϧʔϧهड़ "*࠷దԽ આ໌తͰͳ͘ࢦࣔతͰ؆ܿͳදݱ ن໛ରԠ খن໛ͳΒࣗݾ׬݁ɺେن໛͸֎෦ࢀর׆༻
  9. #MPDLΛੜ੒͢Δ JOJU ίϚϯυͷ࢓૊Έ JOJU ίϚϯυ͸ɺ"(&/54NE ͷ਽ܗΛ"*ʹ࡞ͬͯ΋Β͏ͨΊͷγϣʔτΧοτɻ#MPDL ͷϓ ϩϯϓτΛθϩ͔Βॻ͘खؒΛল͖ɺϓϩδΣΫτʹ࠷దԽ͞ΕͨΨΠυϥΠϯΛࣗಈੜ੒͠·͢ JOJU ͜ͷίϚϯυΛ࣮ߦ͢Δͱɺ$PEFY

    $-*͸಺෦ςϯϓϨʔτʢQSPNQU@GPS@JOJU@DPNNBOENEʣΛϓϩϯϓτͱ͠ ͯૹ৴͠ɺΤʔδΣϯτ͕ϦϙδτϦΛղੳͯ͠࠷దͳ "(&/54NE ΛఏҊ͠·͢ɻ  Ϣʔβʔ͕ JOJUΛ࣮ߦ  $PEFY͕ QSPNQU@GPS@JOJU@DPNNBOENEΛಡΈࠐΈ  ςϯϓϨʔτΛϓϩϯϓτͱͯ͠ΤʔδΣϯτʹૹ৴  ΤʔδΣϯτ͕ϓϩδΣΫτΛղੳ͠ɺ"(&/54NE Λੜ੒ ˞ੜ੒͞Εͨ಺༰͸ɺνʔϜͷϧʔϧʹ߹Θͤͯ௥هɾฤूΛਪ঑
  10. ͓·͚JOJU ͕ੜ੒͢Δ಺༰ͬ͘͟Γղઆ υΩϡϝϯτཁ݅ w λΠτϧ͸ʮ3FQPTJUPSZ(VJEFMJOFTʯ w ʙޠʹऩΊΔ w ϓϩϑΣογϣφϧͰࢦࣔతͳτʔϯ w

    આ໌͸୹͘ɺ௚઀తʹɺϦϙδτϦݻ༗ͷ಺༰ʹ w ίϚϯυɺύεɺ໋໊ύλʔϯͳͲͷྫΛؚΊΔ ਪ঑ηΫγϣϯ ϓϩδΣΫτߏ଄ͱϞδϡʔϧߏ੒ Ϗϧυɾςετɾ։ൃίϚϯυ ίʔσΟϯάελΠϧͱ໋໊نଇ ςετΨΠυϥΠϯ ίϛοτʗϓϧϦΫΤετͷΨΠυϥΠϯ ηΩϡϦςΟɾઃఆͷώϯτʢ೚ҙʣ ΞʔΩςΫνϟ֓ཁʢ೚ҙʣ
  11. #MPDL ׆༻ྫϞϊϨϙͰͷ࢖͍෼͚ ϑΥϧμߏ଄ྫ monorepo/ ├── AGENTS.md # ルーター + 共通ルール

    ├── frontend/ │ ├── AGENTS.md # React固有 │ └── components/ ├── backend/ │ ├── AGENTS.md # Node.js固有 │ └── api/ └── shared/ └── AGENTS.md # 共有ライブラリ ϧʔτ "(&/54NE ͷ໾ׂ αϒσΟϨΫτϦ͝ͱʹ "(&5/4NE Λ഑ஔ͢Δ͜ͱͰɺٕज़ελοΫ΍υϝΠϯʹԠͨ͡ࡉ͔͍ࢦࣔ Λఏ ڙͰ͖·͢ɻಛʹ NPOPSFQP Ͱ͸ GSPOUFOECBDLFOEͳͲ໾ׂ͝ͱʹ෼཭͢Δ͜ͱͰޮՌΛൃش͠·͢ɻ λεΫʹԠͯ͡ద੾ͳ "(&/54NE Λࢦࣔ͢͠ʮϧ ʔλʔʯͱͯ͠ػೳ શମʹڞ௨͢ΔϧʔϧʢQOQN ࢓༷ɺίϛοτن໿ͳ ͲʣΛఆٛ ֤αϒσΟϨΫτϦͷ໾ׂͱ੹೚ൣғΛ໌ࣔ ˞0QFO"*ͷϝΠϯϦϙδτϦʹ͸ݸͷ "(&/54NE ϑΝΠϧ͕ ଘࡏ͍ͯ͠ΔΒ͍͠ ˠ ˠ ˠ
  12. ӡ༻ͷϕετϓϥΫςΟε 3&"%.&NE ෺ޠ ϓϩδΣΫτͷഎܠ΍ࢥ૝Λ఻͑Δɻͳͥ͜ͷٕज़Λબ Μͩͷ͔ɺϓϩδΣΫτ͕໨ࢦ͢ΰʔϧ͸Կ͔ɺͱ͍ͬ ͨจ຺Λఏڙ͢Δɻ "(&/54NE ܖ໿ ։ൃͷϧʔϧΛఆٛ͢Δɻؔ਺͸Ͳ͏ςετ͢Δ΂͖͔ ɺϓϧϦΫΤετͷܗࣜ͸Ͳ͏͋Δ΂͖͔ɺͱ͍࣮ͬͨ

    ຿తͳن໿Λ໌ࣔɻ ෼཭ͷҙٛ 3&"%.&NE ʹ͸ എܠ৘ใ΍ %FTJHO%PDTతͳଆ໘ Λ࢒͠ɺ "(&/54NE ͸ ݕূɾ඼࣭؅ཧͷͨΊͷυΩϡϝϯτ ͱͯ͠෼཭͞ΕΔɻ ॏཁͳͷ͸ʮ੗Έ෼͚ʯͷҙࣝ ৘ใΛॏෳͤͣ͞ɺ"*ͱਓؒͷͦΕͧΕʹͱͬͯ࠷దͳυΩϡϝϯτ͸Կ͔ Λߟ͑Δ͜ͱ͕ɺੜ࢈ੑ޲্ͷݤ
  13. "QQFOEJY SFWJFXίϚϯυͱ "(&/54NE SFWJFXίϚϯυ͸ɺ"(&/54NE Λಡ·ͳ͍ SFWJFXίϚϯυ͸ʢ͓ͦΒ͘ʣୈࡾऀͷࢹ఺Ͱ٬؍తͳίʔυϨϏϡʔΛߦ͏ͨΊʹɺҙਤతʹ "(&/54NE ͷࢦ ࣔΛແࢹ͠·͢ɻ୅ΘΓʹɺϨϏϡʔઐ༻ͷϓϩϯϓτʢSFWJFX@QSPNQUNEʣʹैͬͯಈ࡞͠·͢ɻ ઃܭࢥ૝

    ϓϩδΣΫτݻ༗ͷϧʔϧʹറΒΕͣɺୈࡾऀͷࢹ఺ ͔Β٬؍తʹίʔυͷ໰୊఺Λࢦఠ͢ΔͨΊɺ "(&/54NE ʹΑΔࢦࣔʹӨڹ͞Εͯ͸͍͚ͳ͍ͱ͍͏ઃܭʹͳ͍ͬͯΔͷͰ͸ͳ͍ͩΖ͏͔ʁ ୅ସखஈɿ"(&/54NE ͷϧʔϧͰΧελϚΠζͨ͠ϨϏϡʔڍಈ͕ඞཁͳ৔߹͸ɺ௨ৗͷνϟοτͰίʔυΛషΓ෇͚ ʮ͜ͷίʔυΛϨϏϡʔͯ͠ʯͱґཔ͍ͯͩ͘͠͞ɻ ·ͨɺΧελϜϨϏϡʔϓϩϯϓτΛ༻ҙ͢Δ͜ͱͰɺग़ྗܗࣜΛ੍ޚ͢Δ͜ͱ΋ՄೳͰ͢ɻ ެࣜͷϓϩϯϓτΛࢀߟʹ͠·͠ΐ͏ɻ
  14. ൑அج४ʢόάͱͯ͠ࢦఠ͢΂͖͔ʣ ίʔυͷਖ਼֬ੑɺੑೳɺηΩϡϦςΟɺอकੑʹӨڹΛ༩͑Δ͔ όά͸཭ࢄతͰ࣮ߦՄೳͳ΋ͷ͔ ࠓճͷίϛοτͰಋೖ͞Εͨόά͔ ࡞ऀ͕஌Ε͹मਖ਼͍ͨ͠ͱࢥ͏Մೳੑ͕ߴ͍͔ ະهࡌͷԾఆʹґଘ͍ͯ͠ͳ͍͔ ग़ྗܗࣜ ༏ઌ౓λά <1>ʙ<1>Λ෇͚ͨ+40/ܗࣜ ֤ࢦఠʹϑΝΠϧύεͱߦൣғΛؚΊΔ

    શମతͳਖ਼֬ੑͷ൑ఆΛؚΊΔ ίϝϯτͷτʔϯ ࣄ࣮ϕʔεͰɺඇ೉΍ա౓ͳ৆ࢍΛආ͚Δ "*Ξγελϯτͱͯ͠ͷॿݴΒ͠͞Λอͭ ؆ܿʹʢຊจ͸࠷େஈམʣ ίʔυνϟϯΫ͸ߦҎ಺ʹ੍ݶ ໰୊͕ൃੜ͢ΔγφϦΦ΍؀ڥΛ໌ࣔ ༏ઌ౓Ϩϕϧ <1>͙͢ʹमਖ਼ʢϦϦʔε΍ΦϖϨʔγϣϯΛϒϩοΫʣ <1>ۓٸʢ࣍ͷαΠΫϧͰରԠʣ <1>௨ৗʢ͍ͣΕमਖ਼ʣ <1>௿ʢ͋Ε͹ྑ͍ʣ "QQFOEJY SFWJFX@QSPNQUNE ͷงғؾ
  15. υΩϡϝϯτཁ݅ λΠτϧ͸ʮ3FQPTJUPSZ(VJEFMJOFTʯ .BSLEPXOݟग़͠ʢ ʣͰߏ଄Խ ʙޠʹऩΊΔ આ໌͸୹͘ɺ௚઀తʹɺϦϙδτϦݻ༗ʹ ίϚϯυɺύεɺ໋໊ύλʔϯͷྫΛؚΊΔ ϓϩϑΣογϣφϧͰࢦࣔతͳτʔϯ ˞JOJU ίϚϯυ࣮ߦ࣌ʹɺ͜ͷςϯϓϨʔτ͕ϓϩϯϓτͱͯ͠

    ΤʔδΣϯτʹૹ৴͞Ε·͢ ਪ঑ηΫγϣϯ ϓϩδΣΫτߏ଄ͱϞδϡʔϧߏ੒ Ϗϧυɾςετɾ։ൃίϚϯυ ίʔσΟϯάελΠϧͱ໋໊نଇ ςετΨΠυϥΠϯ ίϛοτʗϓϧϦΫΤετͷΨΠυϥΠϯ ηΩϡϦςΟɾઃఆͷώϯτʢ೚ҙʣ ΞʔΩςΫνϟ֓ཁʢ೚ҙʣ ΤʔδΣϯτݻ༗ͷࢦࣔʢ೚ҙʣ ˞ϓϩδΣΫτʹ౰ͯ͸·Βͳ͍ηΫγϣϯ͸লུՄೳ "QQFOEJY QSPNQU@GPS@JOJU@DPNNBOENEͷงғؾ