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

知らん巨大なプラグインだ……生成AIを活用して乗り切る

 知らん巨大なプラグインだ……生成AIを活用して乗り切る

WordCamp Kansai 2025の登壇資料です。

https://kansai.wordcamp.org/2025/session/facing-a-massive-unknown-plugin-surviving-with-generative-ai/

「このプラグイン使えますか」と言われたプラグインの動作を検証しようとしたら、ファイル数がとんでもなく多かった……稼働していたWordPressサイトを受け取ったら横にLaravelがくっついていた……

そんなケース、あなたも経験ありませんか? このセッションでは生成AIツール(Claude, CLINEなど)を利用して、私がこれまで関わってきたプロジェクトの例を元に、自分の能力や時間的制約を超えたコードベースをなんとかする方法を紹介します。

一緒に「知らんプラグインだ……」を乗り切りましょう!

動画でもはこちら:
https://takahashifumiki.com/wp-content/uploads/cline4x.mp4

Avatar for Takahashi Fumiki

Takahashi Fumiki

November 04, 2025
Tweet

More Decks by Takahashi Fumiki

Other Decks in Technology

Transcript

  1. 1

  2. Ͱ΋͓ߴ͍ΜͰ͠ΐ͏ʁ • Claude͸Pro Maxϓϥϯʢ݄100$ʙʣ͕͋Γɺ࢖͍์୊ɻ • CLINE͸ར༻͢Δੜ੒AIͷϞσϧΛબ΂Δɻैྔ՝੍ۚͰνʔϜػೳ΋͋Δɻ • ແྉͰར༻Ͱ͖Δ࿮΋͋Δ͕ɺ͔ͳΓগͳ͍ɻ΄Μͱʹ͓ࢼ͠ɻ݄20υϧʙ͕໨҆ɻ • Cursor͸2ि͙ؒΒ͍ͷແྉ͓ࢼ͠ظ͕ؒ͋ΔͷͰɺ·ͣ͸ͦΕͰࢼ͢ͷ͕͍͍͔΋ʁ

    • ࠷৽Ϟσϧʢ2025೥8݄ͳΒClaude Opus 4.1ʣΛͿΜճ͢ͱ݁ߏ஋ஈ͕͔͔Γ·͢ɻࢲ͕࢖ͬͨ࣌͸࣌څ6000ԁ͙Β ͍͔͔Γ·ͨ͠ʢหޢ͔࢜ʁʣ • AIͷར༻ྉۚ͸ࠓޙ্͕͍ͬͯ͘ͱࢲ͸༧૝ɻʮ։ൃʹ͔͔Δిؾ୅ʯͱߟ͑Δͷ͕Α͍ͷͰ͸ɻ • ΦʔϓϯιʔεͷLLMΛϩʔΧϧϚγϯͰಈ͔͢ํ๏͸ੑೳ্͕͕ΓͮΒ͍ʢಈ͔ͨ͢ΊͷGPU͕֬อͰ͖ͳ͍ʣͷ ͰɺLLMࣗମʹڵຯ͕ͳ͍৔߹͸αʔϏεΛར༻͢Δ΂͠ɻ 16 ʲجຊʳϞσϧͷੑೳ×τʔΫϯྔʢจࣈྔʣͰֹ͕ܾۚ·Δɻ
  3. 18 TODO: • ड͚औͬͨαΠτͰ͸ςʔϚͷߋ৽ΛࣗಈͰߦͬ ͍ͯͨͬΆ͍ɻ • ࣗࣾ؀ڥʹҾ͖औͬͨ͋ͱʹɺͪΌΜͱಈ͔֬͘ ೝ͍ͨ͠ɻ • ͦͯ͋͠ΘΑ͘͹ʮެࣜσΟϨΫτϦҎ֎ʹ͋Δ

    ϦιʔεͰςʔϚΛΞοϓσʔτ͢Δʯͱ͍͏ػ ೳͷݪཧΛநग़͍ͨ͠ɻ ͜͏͍͏෩ʹ֘౰͢ΔϓϥάΠϯΛҰͭͷϑΥϧμ ʹ·ͱΊͯίʔσΟϯάɾΤʔδΣϯτΛ։͘ ྫɾςʔϚΛΞοϓσʔτ͢ΔϓϥάΠϯ
  4. 21

  5. 23

  6. 27

  7. 29 Tipsͦͷ3ɿੜ੒AI͕ϩʔΧϧͷWordPressΛૢ࡞Ͱ͖ΔΑ͏ʹᶄ wp-env͸dockerίϯςφ಺ͰphpunitΛ࣮ߦͰ͖·͢ʢυΩϡϝϯτࢀরʣ
 w p - e n v r

    u n < c o n t a i n e r > [ c o m m a n d … ] • ʮίϛοτ͢Δલʹnpm run testʯΛ࣮ߦͯ͠ʯ • ʮphpcsͰߏจमਖ਼Λͯ͠ɺࣗಈमਖ਼Ͱ͖ͳ͔ͬͨͱ͜ΖΛશ෦ͳ͓ͯ͠ʯˡ͜Ε࠷ߴɻ αϯϓϧ͸taro-ad-fieldsͷGitHubϦϙδτϦΛࢀߟʹ͍ͯͩ͘͠͞ɻ # p a c k a g . j s o n { “ s c r i p t s ” : { " t e s t ": "R E S U L T = $ { P W D # # * / } & & w p - e n v r u n t e s t s - c l i . / w p - c o n t e n t / t h e m e s / $ R E S U L T / v e n d o r / b i n / p h p u n i t - c . / w p - c o n t e n t / t h e m e s / $ R E S U L T / p h p u n i t . x m l . d i s t ", } }
  8. 30 Tipsͦͷ3ɿੜ੒AI͕ϩʔΧϧͷWordPressΛૢ࡞Ͱ͖ΔΑ͏ʹᶅ ϩʔΧϧ؀ڥ͕Local(by Flywheel)ͷ৔߹ɺʮଞͷΞϓϦͷૢ ࡞ʯ͕Ͱ͖ͳ͍ίʔσΟϯάɾΤʔδΣϯτͱ૬ੑ͕ѱ͍ ※MCPαʔόʔ͕ඞཁ • ࢲ͕ChatGPTͱ࡞ͬͨόογϡΛ૸ΒͤΔɻLocal಺ʹ ύεΛ௨ͯ͘͠ΕΔɻ •

    local-wp site-name — [ίϚϯυ] ͕࢖͑Δ͜ͱΛ CLAUDE.mdͳͲͰΤʔδΣϯτʹ఻͑Δ ʮ/var/www/html/wp-content/debug.logʹ͋ΔΤϥʔΛશ෦ ͳ͓͍ͯͩ͘͠͞ʯ ίʔσΟϯάΤʔδΣϯτ͸ ͜ΕΛԡͤͳ͍
  9. 31 Tipsͦͷ3ɿੜ੒AI͕ϩʔΧϧͷWordPressΛૢ࡞Ͱ͖ΔΑ͏ʹᶆ ʮϩάΠϯ͍ͯ͠ͳ͍ͱಈ࡞͠ͳ͍ػೳʯΈ͍ͨͳ΋ͷ͸֬ೝ͕೉͍͠ ͷͰɺʮϩʔΧϧઐ༻ͷηΩϡϦςΟϗʔϧʯΛ༻ҙͯ͋͛͠·͢ɻ wp-content/mu-plugins/claude-hole.php Έ͍ͨͳͷΛ࡞Γɺclaude͔Β ͷΞΫηεͷ৔߹͸ಛఆͷϢʔβʔͱͯ͠ϩάΠϯ͍ͯ͠Δѻ͍ʹ͠· ͢ɻ CLAUDE.mdʹॻ͍͓ͯ͘ࢦࣔ
 ʮHTTPϔομʔʹx-claude-debugΛ͚ͭΔͱadminͱͯ͠ΞΫηεͰ͖

    ·͢ɻʯ ϓϩϯϓτ
 ʮhttp://localhost:8888/dashboard/ ʹΞΫηε͢ΔͱμογϡϘʔυʹ ࣗ෼ͷ৘ใ͕දࣔ͞ΕΔΑ͏ʹ͍ͨ͠Ͱ͢ɻ͜ͷϓϩϑΟʔϧϘοΫε Λ࡞੒͍ͯͩ͘͠͞ɻϢʔβʔ͸adminͳͷͰɺwp-cliͰσʔλΛ֬ೝͰ ͖·͢ɻʯ ※Claude͸ΘΓͱcURLΛ࢖͍·͢ɻCLINE΍CursorɺWindsurf͸಺෦ϒϥ΢βΛ্ཱͪ͛Δͷ Ͱɺ΍Γํ͕ͪΐͬͱҧ͏͔΋͠Ε·ͤΜɻʮChromiumΛ࢖͏࣌͸ϔομʔʹX-AI-ACCESSΛ ͚͍ͭͯͩ͘͞ʯͱ͔ʁ < ? p h p / / G i t H u b にサンプルあります。 a d d _ a c t i o n ( ‘ i n i t ’ , f u n c t i o n ( ) { / / セキュリティチェック:ローカル環境でのみ動作 i f ( w p _ g e t _ e n v i r o n m e n t _ t y p e ( ) ! = = ' l o c a l ' ) { r e t u r n ; } / / 既にログインしている場合はスキップ i f ( i s _ u s e r _ l o g g e d _ i n ( ) ) { r e t u r n ; } / / C l a u d e 識別ヘッダーをチェック i f ( e m p t y ( $ _ S E R V E R [ ' H T T P _ X _ C L A U D E _ D E B U G ' ] ) ) { r e t u r n ; } / / a d m i n ユーザーを取得 $ u s e r = g e t _ u s e r _ b y ( ' l o g i n ' , ' a d m i n ' ) ; / / ログイン実行 w p _ s e t _ c u r r e n t _ u s e r ( $ u s e r - > I D ) ; w p _ s e t _ a u t h _ c o o k i e ( $ u s e r - > I D , t r u e ) ; } ) ;
  10. 32 Tipsͦͷ3ɿੜ੒AI͕ϩʔΧϧͷWordPressΛૢ࡞Ͱ͖ΔΑ͏ʹᶇ GitHubͷΠγϡʔొ࿥ͳͲ΋ੜ੒AIʹ΍ͬͯ΋Β͍·͠ΐ͏ɻ 1. ghίϚϯυͱ͍͏CLIͰGitHubͷૢ࡞͕Ͱ͖ΔπʔϧΛೖΕ Δ 2. MCPαʔόʔΛઃఆ͢ΔɻMCPαʔόʔ͕Կ͔ʹ͍ͭͯ͸ੜ ੒AIʹฉ͘ͱڭ͑ͯ͘Ε·͢ɻ CLAUDE.mdʹʮghίϚϯυ͕࢖͑·͢ʯͱॻ͍͓ͯ͘ͱɺ࣍ͷΑ

    ͏ͳϓϩϯϓτ͕༗ޮʹɻϩʔΧϧͷmd΋ݮΒͤ·͢ɻ ʮʓʓͱ͍͏ػೳΛ࣮૷͍ͨ͠ͷ͚ͩͲɺ·ͣGitHubʹ࣮૷ܭըΛ Πγϡʔͱͯ͠ొ࿥͍ͯͩ͘͠͞ʯ ʮΠγϡʔ #42 ʹ͍ͭͯɺ࣮૷͍ͯͩ͘͠͞ʯ ʮίϛοτͯ͠ϓϧϦΫΤετΛ࡞͍ͬͯͩ͘͞ʯ
  11. 35 ਓ͕ؒۤखͰػց͕ಘҙͳ͜ͱ ਓؒͷμϝͳͱ͜Ζ • ർΕΔ
 ௕࣌ؒ࿑ಇΛ͢Δͱੜ࢈ੑ͕མͪΔɻ • ௕͍จষΛಡΊͳ͍
 ͦͷͤ͘YouTubeͷγϣʔτಈըΛ2͙࣌ؒΒ͍Έͯ Δɻ

    • ͙͢๨ΕΔ
 ʮ͋ΕͳΜ͚ͩͬʯͱ1೔5ສճ͙Β͍ݴ͏ɻ • ܭࢉ͕Ͱ͖ͳ͍
 ਺ֶ͕ಘҙͳํͱ͞ΕΔ೔ຊਓͰ͢Βɺ2ܻͷ۝۝Λ΄ ͱΜͲͷਓ͕Ͱ͖ͳ͍ɻ ػց͕ಘҙͳ͜ͱ • ർΕͳ͍
 ՝ۚ͸͞ΕΔ͕ɺർΕͳ͍ɻ࿑ಇج४๏΋ͳ͍ɻ • ௕͍จষΛಡΊΔ
 τʔΫϯͷ੍໿͸͋Δ͕ɺͦΕͳΓʹ௕͍จষ͸ಡΊΔɻউ खʹYouTubeγϣʔτΛݟ࢝Ίͳ͍ɻ • ๨Εͳ͍
 จॻʹ࢒͓͚ͯ͠͹ͦΕΛ΋͏ҰճಡΉ͠ɺGit΋࢖͑Δɻ • ܭࢉ͕ಘҙ
 ܭࢉ͕ΊͪΌͪ͘Όಘҙɻͦ΋ͦ΋Computer͸ʮܭࢉػʯɻ
 ※ͪͳΈʹɺίϯϐϡʔλʔ͕ੜ·ΕΔલ͸ʮܭࢉखʯͱ͍͏ܭࢉ͢Δ࢓ࣄ ͷ୲͍खΛҙຯͨ͠ɻөըʰυϦʔϜʱࢀরɻ
  12. ࣗ෼ʹͰ͖ͳ͍͜ͱΛػցʹͤ͞Δ ·ͬͨ͘Ͱ͖ͳ͍͜ͱΛػցʹ΍ΒͤΔ͜ͱ͕Ͱ͖Ε͹ɺϝϦοτ͕͍͢͝ɻͨͱ͑͹…… 1. Google Cloudͷ஌͕ࣝશ͘ͳ͍ਓ͕Google Croud RunͰʮຖ݄n೔ʹಛఆͷϑΥʔϚοτʹଇͬͨ౤ߘΛ࡞ ΔʯΈ͍ͨͳఆظ࣮ߦλεΫΛ࡞ΕΔɻ 2. ϑϩϯτΤϯυʹ͍ͭͯ΄ͱΜͲ஌͕ࣝͳͯ͘΋ɺtailwind.css+ReactίϯϙʔωϯτΛ࡞ΕͪΌͬͨΓ͢Δɻ

    ϩγΞͷ௕ฤখઆ͙Β͍௕͍classଐੑ΋ࣗ෼Ͱॻ͔ͳ͚Ε͹ແ໰୊ɻ 3. MySQLͷ஌͕ࣝͳͯ͘΋ɺςʔϒϧߏ଄͕ཧղͰ͖·͢ɻWordPressΛ௕೥࢖͍ͬͯΔਓͰ΋ɺMySQLͷςʔ ϒϧߏ଄Λ׬ᘳʹઆ໌͢Δࣗ਎͕͋Δਓ͸গͳ͍͸ͣɻ ࣗ෼ͷಘҙͳ͜ͱΛੜ੒AIʹ΍ΒͤΔΑΓɺࣗ෼͕ෆಘҙͳ͜ͱΛ΍ΒͤΔํ͕ϝϦοτ͕େ͖͍ɻ 90→99ʹAIΛ࢖͏ͷͰ͸ͳ͘ɺ0→80ʹAIΛ࢖͏ɻ 36