TECH PLAY

Findy/ファむンディ

Findy/ファむンディ の技術ブログ

å…š199ä»¶

こんにちは、Findy Freelanceでフロント゚ンド゚ンゞニアをしおいる䞻蚈かずえです。 この蚘事は、 ファむンディ゚ンゞニア #3 Advent Calendar 2025 の25日目の蚘事です。 adventar.org Dependabotが䜜成するPRの察応、皆さんはどのように運甚しおいたすか䟝存パッケヌゞの曎新は地味ながら継続的に発生する䜜業で、特に少人数チヌムでは察応工数の比率が無芖できたせん。 この蚘事では、私たちのチヌムがDependabot PR察応を手動運甚からDevin、そしおClaude Code Actionぞず段階的に改善しおきた過皋を玹介したす。それぞれのアプロヌチで埗られた知芋ず、最終的にClaude Code Actionに萜ち着いた理由をお䌝えしたす。 Dependabot PRの察応フロヌを効率化したい方、AIツヌルを掻甚したコヌドレビュヌの自動化に興味がある方の参考になれば幞いです。2025幎の倉遷を曞いおいるのでDependabot PRのAIレビュヌをこれから実斜したい堎合はClaude Code Actionのセクションを䞭心に芋おいただければず思いたす。 手動時代 フロヌ 課題 Devinぞ移行 Playbookずは SlackからPlaybookを呌び出しお実行 承認時 非承認時 良かった点 運甚しおいく䞭で芋えおきたこず Claude Code Actionぞ移行 bot䜜成PRでは動䜜しないためClaude Code Base Actionを利甚 allowed_botsでClaude Code Actionぞ移行 各CI完了埌にレビュヌを実斜 珟圚のフロヌ 承認時 非承認時 効果 泚意点 ANTHROPIC_API_KEYはDependabot甚のSecretに蚭定 WebFetchの䞍安定さ たずめ 手動時代 フロヌ Dependabot PRぞの察応は、次のような流れで行っおいたした。 Dependabotが䜜成したPRを確認する CIの実行結果を埅ち、成功・倱敗を確認する 曎新されたパッケヌゞのリリヌスノヌトを確認し、Breaking Changesがないか調べる CIが倱敗しおいる堎合は原因を調査し、必芁に応じおコヌドを修正する 問題がなければレビュヌを行う マヌゞする 䞀芋シンプルなフロヌですが、実際に運甚しおみるず様々な課題がありたす。 課題 たず、コンテキストスむッチのコストが倧きいずいう問題がありたした。Dependabot PRを順番にマヌゞしおいくず、他のPRずコンフリクトが発生しおrebaseが必芁になりたす。CIの実行を埅っおいる間に別の䜜業を始め、CIが完了したら戻っおきお次のPRを凊理する、ずいう流れで䜜業が现切れになりがちでした。 リリヌスノヌトの確認も手間のかかる䜜業でした。Breaking Changesは基本的にCIが倱敗するので気付けたすが、皀にruntimeで問題が発芚するこずがありたす。そのため、念のためリリヌスノヌトを確認しおからマヌゞするようにしおいたした。 たた、人によっおマヌゞの刀断基準にズレがあるずいう問題もありたした。あるメンバヌはCIが通っおいればすぐにマヌゞし、別のメンバヌはリリヌスノヌトを现かく確認しおからマヌゞするずいった具合です。リリヌスノヌトを確認するずいうルヌルは䜜れば防げたすが、どれくらい詳现に確認するかなど個人の感芚に䟝存しおしたいたす。 少人数チヌムでは、こうした定型䜜業の工数比率が盞察的に高くなりたす。週に数時間をDependabot PR察応に費やしおいるず、本来泚力すべき開発䜜業に割ける時間が枛っおしたいたす。 Devinぞ移行 こうした課題を解決するため、導入枈みだったDevinのPlaybookをDependabot PRのレビュヌに掻甚しおみるこずにしたした。 Playbookずは DevinにはPlaybookずいう機胜がありたす。これは繰り返し行うタスクの手順を定矩しおおき、再利甚できる仕組みです。「Dependabot PRをレビュヌする」ずいうPlaybookを䜜成しおおけば、毎回同じ手順でレビュヌを実行できたす。 次のような圢でPlaybookに蚘茉しお繰り返し利甚しおおりたした。 SlackからPlaybookを呌び出しお実行 DevinはSlackず連携できるため、Slackから盎接Playbookを呌び出すこずができたす。 「@Devin playbook:!hoge」ずメンションするだけで、定矩したPlaybookが実行される仕組みです。 レビュヌが実斜されるず各PRにコメントを残しおくれたす。 承認時 非承認時 良かった点 Devinを導入しお良かった点は、1぀のアクションで各PRのレビュヌ䟝頌が完結するこずでした。Slackでメンションするだけでレビュヌが始たるため、Devinの䜜業が完了した埌は、各PRに぀いたレビュヌを確認し、マヌゞするだけで枈むようになりたした。 運甚しおいく䞭で芋えおきたこず 耇数のDependabot PRが同時に䜜成された堎合、䞀郚のPRが挏れおしたうケヌスがありたした。たた、すでにレビュヌ枈みのPRを再床レビュヌしおしたうこずもありたした。 これらはDevin自䜓の問題ではなく、1回の䟝頌で耇数PRをたずめお凊理させおいた運甚方法に起因する課題でした。DevinにはAPIが提䟛されおいるため、GitHub ActionsからPRごずにDevin APIを呌び出す仕組みを䜜れば解決できる課題ず考えたした。 Claude Code Actionぞ移行 GitHub ActionsからDevin APIを呌び出す仕組みの構築を怜蚎しおいたずころ、Claude Code Actionがリリヌスされたした。 Claude Code Actionは、名前の通りGitHub Actions䞊でClaude Codeを実行できるActionです。PRの䜜成やコメントをトリガヌにしお、自動でコヌドレビュヌやタスクの実行ができたす。 PRごずにワヌクフロヌが実行されるため、「このPRに察しおレビュヌを行う」ずいうスコヌプが明確になりたす。公匏のGitHub Actionずしお提䟛されおいるこずず、AIモデルを遞択できるこずが決め手ずなり、Claude Code Actionぞ移行するこずずしたした。 bot䜜成PRでは動䜜しないためClaude Code Base Actionを利甚 導入圓初、Claude Code ActionにはDependabotのようなbotが䜜成したPRでは実行できないずいう制玄がありたした。 この制玄を回避するため、Claude Code Base Actionを利甚するこずにしたした。Base Actionはbot䜜成のPRでも動䜜させるこずができ、機胜的にもClaude Code Actionず同等のこずができたす。 allowed_botsでClaude Code Actionぞ移行 その埌、Claude Code Actionに allowed_bots オプションが远加されたした。これにより、Dependabotが䜜成したPRでもClaude Code Actionを実行できるようになりたした。 Claude Code Base Actionからの移行を行った理由は、機胜的な差はほずんどないものの、他のCIワヌクフロヌずの䞀貫性を保぀ためでした。チヌム内で耇数のActionを䜿い分けるよりも、統䞀した方がメンテナンス性が高くなりたす。 各CI完了埌にレビュヌを実斜 Claude Code Base Actionのワヌクフロヌはlint、test、typecheckなどのCIゞョブが完了した埌にClaude Code Base Actionを実行するようにしたした。そうするこずで、CIの結果を螏たえたレビュヌができたす。 CIの流れは次のようなむメヌゞです。 jobs: test: ...(省略)... lint: ...(省略)... typecheck: ...(省略)... claude-review-for-dependabot-pr: name: Claude Review for Dependabot PR # `always()`を指定しCIが倱敗しおも実行 if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' && always() }} # 各CIの結果が欲しいので終了しおから実行 needs: [test, lint, typecheck] ...(省略)... steps: - name: Checkout repository uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Claude Review for Dependabot PR uses: anthropics/claude-code-action@f0c8eb29807907de7f5412d04afceb5e24817127 # v1.0.23 with: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} github_token: ${{ github.token }} show_full_output: false #デバッグしたいずきはshow_full_outputをtrueにしお確認 allowed_bots: dependabot claude_args: | --allowedTools "View,GlobTool,GrepTool,BatchTool,Bash(gh auth status),Bash(gh pr view:*),Bash(gh run list:*),Bash(gh pr comment:*),Bash(gh pr review:*),Bash(gh pr diff:*),Bash(gh pr checks:*),Bash(gh run view:*),Bash(gh release view:*),Bash(git log:*),Bash(git status:*),Bash(git diff:*)" --model claude-opus-4-5-20251101 prompt: | プロンプト䟋は䞋蚘に蚘茉 プロンプト䟋 ## 呜什 CI実行䞭のDependabotのプルリク゚スト #${{ github.event.pull_request.number }} を評䟡しマヌゞしお問題ないか刀断しおください ## 手順 1. プルリク゚ストを確認gh pr view ${{ github.event.pull_request.number }} 2. package.jsonずpackage-lock.jsonの差分を確認 3. バヌゞョン差分から公匏リリヌスノヌトずGitHubのリリヌスを確認しラむブラリの倉曎内容を把握gh release view 4. test, lint, typecheckの実行結果を確認gh pr checks ${{ github.event.pull_request.number }} 5. test, lint, typecheckが倱敗しおいた堎合、ログを確認gh run view 6. 既存コヌドや他ラむブラリのバヌゞョンずの敎合性を確認 7. 倉曎内容を評䟡しフォヌマットに沿っおプルリク゚ストにレビュヌコメント日本語を1件投皿 ## フォヌマット ``` # {ラむブラリ名} x.x.x -> x.x.x ## 評䟡結果 ✅ 承認 / ⚠ 確認が必芁 / ❌ 芁察応 / etc... ## ラむブラリの倉曎内容 - 倉曎内容1 - 倉曎内容2 ## リスク、泚意事項 - リスク1 - リスク2 ## 必芁な察応 - 察応1 - 察応2 ``` ## 泚意事項 - 承認する堎合`gh pr review {プルリク゚スト番号} --approve --body "{BODY}"` - 承認しない堎合`gh pr comment {プルリク゚スト番号} --body "{BODY}"` - 実行時に足りない暩限があった堎合はコメント ## 远加確認項目 - Breaking Changesの有無 - セキュリティ脆匱性の修正状況 - 他の䟝存関係ぞの圱響 他のCIゞョブの完了を埅っおからActionを実行するこずで、CIが倱敗しおいる堎合は「なぜ倱敗したか」の分析をさせるこずができたす。倱敗ログから原因を特定し、次に取るべきアクションをPRコメントずしお残すこずができたす。 察応すべきこずがわかれば察応時の工数感がわかりすぐ取り掛かるかタスクずしお積んでおくかの刀断がしやすいです。 珟圚のフロヌ DependabotがPRを䜜成する lint、test、typecheckのCIゞョブが実行される CIゞョブ完了埌、Claude Code Actionが実行される Claude Code Actionが曎新内容の芁玄、リリヌスノヌトの重芁ポむント、CI倱敗時の原因分析ず修正提案をPRコメントずしお残す 人間がコメントを確認し、最終刀断を行う 問題なければマヌゞする 人間が行う䜜業は「Claude Code Actionのコメントを確認しお最終刀断する」こずに集䞭できるようになりたした。 承認時 非承認時 効果 この改善により、Dependabot PR察応にかかる工数が週あたり玄30分〜1時間削枛されたした。 削枛される䞻な内蚳ずしおは、リリヌス内容の確認ず察応芁吊の調査にかかる時間です。 必芁な察応が出力されるのですぐ察応するかタスクずしお積むかの刀断がしやすくなったのは良かったず感じたす。 たた、レビュヌの芳点がプロンプトで統䞀されおいるため、属人性が䜎䞋したした。誰が察応しおも同じ基準でレビュヌが行われたす。 コンテキストスむッチのコストも䜎䞋したした。コンフリクトしたPRは自動でrebaseず再レビュヌがされるため、自分の切りがいいタむミングでマヌゞするだけで枈むようになりたした。 泚意点 ANTHROPIC_API_KEYはDependabot甚のSecretに蚭定 ANTHROPIC_API_KEY はGitHub ActionsのSecretsだけでなく、Dependabot偎のSecretsにも蚭定する必芁がありたす。Dependabotが䜜成したPRでは、通垞のRepository Secretsにアクセスできないためです。 蚭定堎所は https://github.com/{Org}/{Repo}/settings/secrets/dependabot です。これを忘れるず、Dependabot PRでClaude Code Actionが動䜜したせん。 WebFetchの䞍安定さ 圓初、リリヌスノヌトの取埗にWebFetch機胜を䜿っおいたしたが、フリヌズするこずがありたした。2025幎11月ごろ 察策ずしお、倖郚情報の取埗は gh コマンドを䜿う方針に倉曎したした。GitHub CLIを䜿っおリリヌス情報を取埗する方が安定性ず再珟性が高く、トラブルが枛りたした。 Claude Code偎でWebFetchがフリヌズするissueがいく぀かありたす。 show_full_output を有効化しおもログが衚瀺されないため盎接的な原因は掎めおいたせんが、珟状では gh コマンドで必芁な情報は取埗できおいるので allowedTools から WebFetch は䞀時的に陀倖しおいたす。 github.com たずめ Dependabot PR察応を手動運甚からDevin、そしおClaude Code Actionぞず改善しおきた過皋を玹介したした。 定期的に発生する䜜業は自動化するず効果が倧きいです。特にDependabot PRのような「PRごずに自動でトリガヌされる」タむプのタスクには、GitHub Actionsず連携するClaude Code Actionが適しおいたした。 今埌の課題ずしおは、Claude Code ActionがApproveしたPRを自動マヌゞする仕組みの導入を怜蚎しおいたす。珟圚nxを利甚したモノレポで運甚しおおり、ナニットテストやVRTは各アプリで敎備できおいたす。ただし、管理画面など䞀郚のアプリではE2Eテストが未敎備のため、ただ自動マヌゞには螏み切れおいたせん。E2Eテストを拡充し、自動マヌゞしおも安党ずいう確信を持おる䜓制を敎えおいきたいず考えおいたす。 䞊蚘のように、AIのガヌドレヌル敎備が重芁なのでテスト等をしっかりやっおいくこずは今埌さらに重芁になっおくるず再認識したした。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。 興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
この蚘事は「 ファむンディ゚ンゞニア #1 Advent Calendar 2025 」の24日目の蚘事です。 沢山のアドベントカレンダヌ蚘事が執筆されおいたすので、幎末のお䟛に是非読んでみおください。 adventar.org はじめに ゜フトりェア゚ンゞニアの 土屋(@shunsock) です。私の所属するデヌタ゜リュヌションチヌムでは、ファむンディ党䜓のデヌタ掻甚を掚進するためのデヌタ基盀を構築しおいたす。 今回、我々はデヌタ基盀のRDSずBigQueryのテヌブル同期システム (EL Pipeline) のリプレヌスを行い、 DuckDBを本番導入 したした。本皿では、掻甚に至った経緯ず実際に組みこむにあたる課題、および成果を玹介したす。 はじめに ファむンディにおけるテヌブル同期システムの立ち䜍眮 リプレむスの背景 補足 技術遞定 Datastream DuckDB Datastream, DuckDB䞡採甚の理由 システム蚭蚈 抂芁 CLIを挟む理由 GitHub Actionsからの起動にした理由 耇数のRDSを転送する 開発運甚ず成果 開発・運甚しおみた感想 可読性ず拡匵性が高い ずはいえただただ新興の゜フトりェア たずめ ファむンディにおけるテヌブル同期システムの立ち䜍眮 ファむンディでは、りェブアプリケヌションをAWS䞊のECSずRDS、デヌタ基盀をGoogle CloudのBigQueryで䜜成しおいたす。 このような構成を取っおいるため、AWSのRDSずGoogle CloudのBigQueryを同期しおテヌブルを最新にする必芁がありたす。 次の図は、Findy Tools事業郚における、珟圚のデヌタフロヌの抂念図です。AWS䞊に存圚するRDSのデヌタをBigQueryに転送しおいるこずが分かりたす。 リプレむスの背景 匊瀟では埓来、OSSのEL(Extract Load) ツヌル  Embulk  をECSに茉せお長期間運甚しおいたした。匊瀟で利甚しおいるRDBMSやデヌタりェアハりスに察応しおいる他、瀟内に知芋を持った方が圚籍しおいるためです。 しかし、近幎では、 Embulkの゚コシステムのレガシヌ化や 長期的なメンテナが䞍足 が課題 ずなっおいたす。特に、 将来のメンテナンスが䞍透明な点は、セキュリティむンシデントに繋がりかねない ため危惧しおいたした。 たた、 Embulkの起動の遅さも課題 にしおいたした。我々はBigQueryプラグむンなどを利甚しおいたため、JVM䞊でさらにJRuby VMを立ちあげたす。このような構成は テヌブル同期の遅さに繋がり、ECSの課金額を増やす芁因 ずなっおいたした。 このように、システムを堅牢にするこずず凊理スピヌド向䞊による料金のコストダりンが今回のプロゞェクトの目的でした。 補足 Embulkのメンテナヌの方も 「オヌプン゜ヌス・プロゞェクトのたたみ方」 ずいうブログ蚘事で脆匱性に぀いお次のように述べおいたす。 おそらくいく぀かの攻撃は既に成功しおいお、私たちの゜フトりェア・サプラむチェヌンには、悪意のあるコヌドがずっくに入り蟌んでいる、ず認識しおおくべきでしょう。 技術遞定 Datastream, Spark, その他 ELTツヌルなど、耇数の移行先候補がありたした。その䞭で、デヌタ芏暡に応じお次の2぀から遞定するこずにしたした。 Datastream: ニアリアルタむムでの曎新が欲しい堎合や倧芏暡デヌタの堎合 DuckDB: 小芏暡デヌタの堎合 Datastream Datastream は Google Cloudが提䟛するサヌバヌレスのCDC (Change Data Capture), Replicationツヌルです。 CDCは、ある゜ヌスのシステムを監芖し、そのシステムに察する操䜜をニアリアルタむムで、タヌゲットずなるシステムに反映する仕組みのこずです。これによりAWSのRDSに察する倉曎を即座にBigQueryに反映可胜です。 DuckDB DuckDB は高速なアナリティカルデヌタベヌスです。s3などのストレヌゞサヌビスに出力されたログ分析やファむルフォヌマットの倉換、wasmによるフロント゚ンドでの掻甚など広い甚途で掻甚されおいたす。 接続先や出力フォヌマットが非垞に豊富な他、C++補のマルチスレッドランタむムにより、高速に動䜜する点が魅力です。 次の写真はDuckDBのPoC時に行なったベンチマヌクです。小さなテヌブルで転送を詊したずころ、 1.5倍皋床の高速でした 。 ゜フトりェア名称 平均 暙準偏差 最速 最遅 Embulk 253秒 8秒 242秒 261秒 DuckBD 176秒 30秒 137秒 209秒 補足: 実際にパフォヌマンステストを行ったずきの様子 Datastream, DuckDB䞡採甚の理由 今回のリプレむスでは、コスト最適化を軞に Datastream ず DuckDB の2皮類のアプロヌチを䜿い分ける構成を採甚したした。 DatastreamはフルマネヌゞドでサヌバヌレスなCDCサヌビスず匷力です。䞀方で、ニアリアルタむム性が䞍芁な小芏暡デヌタに察しおは機胜過倚ずなり、費甚面でも割高になりたす。そこで、リアルタむム性を求めない領域では、より軜量でシンプルに扱えるDuckDBを䜿っお同期を行う方針を取りたした。 本蚘事の以降では、䞊蚘のうち、DuckDBによっおどのようにテヌブル同期システムを構築したか、開発運甚で芋えた知芋を説明したす。 システム蚭蚈 抂芁 次の画像は我々のDuckDBによるテヌブル同期システムの抂念図です。 次のように各皮゜フトりェアが起動したす。 GitHub Actionsの on_schedule でワヌクフロヌが起動 ワヌクフロヌがECS Fartate Taskを起動 Fargate Taskがコンテナランタむムを起動 コンテナランタむムの䞭でCLIアプリケヌションが起動 CLIアプリケヌションが匕数ず蚭定ファむルからSQLを生成 CLIアプリケヌションがDuckDBでSQLを実行 CLIを挟む理由 DuckDBを盎接起動しない理由は、1回の実行で1テヌブルず぀送信できるようにするためず、SQLを盎接曞かずに蚭定ファむルをむンタヌフェヌスにするためです。 実際のナヌザヌの入力むンタヌフェヌスは次のようなYAMLです。 dataset_id : lake... table_name : table_name select_statement : "hoge, fuga, ..." GitHub Actionsからの起動にした理由 元々のワヌクフロヌはEventBridge Schedulerだったのですが、システム障害時にEventBridgeのcronを倉曎するなど運甚負荷が重い状態でした。 DispatcherをGitHub Actionsにするこずでボタン操䜜だけで怜蚌可胜にしたした。 たた、1テヌブルず぀の送信にしたので、ステヌゞング環境での動䜜怜蚌も簡単か぀軜量です。ナヌザヌは次のようなWorkflow Dispatchを起動するだけで動䜜怜蚌が完了したす。 耇数のRDSを転送する 珟圚のFindy Tools事業郚のワヌクフロヌを芋るず分かる通り、耇数のRDSを転送する必芁がありたした。そこで開発甚スクリプトを汎甚化しお動的なビルドやawsコマンドの発火をしおいたす。 開発運甚ず成果 開発は、私1人で1か月匱でしたした。最初の1プロゞェクトこそ時間がかかったものの、モノレポ構成にしたおかげで 埓来1か月かかった新芏デヌタ゜ヌスの远加が1週間皋床になりたした。 凊理速床に぀いおは、盎列皌動から䞊列皌動ぞ倉曎ずなったため単玔な比范は難しいのですが、 1テヌブルあたり玄30秒から玄10秒に短瞮 できたした。 すでに他のメンバヌからもプルリク゚ストが届いおおり、瀟内でも手応えのある反応を埗おいたす。 開発・運甚しおみた感想 可読性ず拡匵性が高い 今回䜜成したCLIでは次のようなSQLを生成しおいたす。高い拡匵性や可読性が良いず改めお感じたした。 INSTALL mysql; LOAD mysql; ATTACH '' AS mysqldb ( TYPE mysql); -- 環境倉数から取っおくる CREATE TABLE users AS SELECT * FROM mysqldb.table_name; INSTALL bigquery FROM community; LOAD bigquery; ATTACH '' as bq ( TYPE bigquery); DROP TABLE IF EXISTS bq.lake__system_name.table_name; CREATE TABLE bq.lake__system_name.table_name AS SELECT * FROM table_name; DROP TABLE table_name; 拡匵に぀いおも、次のCore Extensionsの他にCommunity Extensionsがありたす。DB以倖にもSpreadSheetなど幅広いツヌルが察応しおいるので、興味を持った方は確認しおみるず良いず思いたす。 duckdb.org ずはいえただただ新興の゜フトりェア DuckDBは新興の゜フトりェアずいうこずもあり、普通にバグがあったりしたす。䟋えば次のIssueは、私がDuckDBのMySQLのプラグむンのATTACH句に存圚したバグを報告したものです。(既に解決枈みです) github.com たた、拡匵によっおは、サポヌトしおいるOSが限られおいるこずがありたす。私が䜜成した時期では、BigQuery拡匵でarm64 linuxがサポヌトされおおらず、Fargateをamd64で立おおいたした。なお、こちらも珟圚は察応しおいるようです。 github.com たずめ 今回の取り組みで、我々の テヌブル同期システムはより高速、堅牢になりたした。 さらに、ナヌザヌむンタヌフェヌスが掗緎され、 チヌムメンバヌの利甚しやすい゜フトりェアずなりたした。 デヌタ゜リュヌションチヌムでは䞀緒に事業郚暪断デヌタ基盀を䜜る仲間を募集しおいたす。気になる方は是非次のフォヌムからカゞュアル面談に応募しおみおください!! herp.careers
こんにちは。 ファむンディ株匏䌚瀟でFindy AI+の開発をしおいるdanです。 今回は、プロンプトにどのようなデヌタや指瀺内容を䞎えるずLLMが誀った出力をしやすいのかに぀いおお話ししたす。 プロンプトには䜕を曞くべきで、䜕を曞かないべきなのか。たた、LLMに枡すデヌタはどのような圢であるべきなのか。私自身が経隓した実際の䟋をあげお解消たでのアプロヌチ方法をご玹介したす。 分析の粟床をあげるにはここで玹介する内容では䞍十分ですが、入門線ずしお参考になれば幞いです。 この蚘事はファむンディ゚ンゞニア #3 Advent Calendar 2025 23日目の蚘事です。今月から、たくさんのアドベントカレンダヌ蚘事が執筆される予定ですので、ぜひ読んでみおください。 adventar.org Findy AI+ずは 誀解しおいたプロンプト調敎 良くない手法1: システムプロンプトにUTCから日本時間に倉換する指瀺を䞎える 良くない手法2: 分析に䜿甚するデヌタを加工する指瀺をシステムプロンプトに䞎える あるべき手法 システムプロンプトはどのような振る舞いで分析をしおほしいのかを曞く 分析に䜿甚するデヌタを加工しおからLLMに枡す おわりに Findy AI+ずは Findy AI+ は、GitHub連携やプロンプト指瀺を通じお生成AIアクティビティを可芖化し、生成AIの利掻甚向䞊を支揎するサヌビスです。 人ず生成AIの協働を埌抌しし、開発組織の倉革をサポヌトしたす。 Claude Code、GitHub Copilot、Codex、Devinなど様々なAIツヌルの利掻甚を暪断的に分析しおおり、分析基盀にはLangChainを採甚しおいたす。たた、日報やチヌム分析などの機胜でもLLMを掻甚しおいたす。 こうした特性から、Findy AI+ では「䜕をどう分析するか」を定矩するためのプロンプトが、サヌビスの䟡倀を巊右する重芁な芁玠ずなりたす。 誀解しおいたプロンプト調敎 良くない手法1: システムプロンプトにUTCから日本時間に倉換する指瀺を䞎える 初期のシステムプロンプトは次の通りです。 # System Prompt ## Overview You are expert of developer experience and developer productivity. Your Timezone is Asia/Tokyo (UTC+9). Your Language is Japanese. The Timezone for the creation datetime of the Pull request is UTC. 䞊蚘はすごくシンプルなシステムプロンプトです。 このコヌドでは次のこずを曞いおいたす。 LLMがどのような圹割を担うのか タむムゟヌンはどこを䜿甚するのか どの蚀語で出力するのか プルリク゚ストの䜜成日時がUTCであるこず このシステムプロンプトを䜿甚しおプロダクトから分析ツヌルを実行するず次のような出力結果になりたした。 システムプロンプトには䜿甚しおほしいタむムゟヌンがUTC+9(日本時間)であるこずず、LLM分析に䜿甚するデヌタはUTCであるこずを明蚘しおいたす。 その結果、LLMは分析䞭に䞎えられたUTCのデヌタをJSTに倉換する掚論凊理を行う必芁があり、意図しない日付のズレが発生したした。 良くない手法2: 分析に䜿甚するデヌタを加工する指瀺をシステムプロンプトに䞎える ナヌザヌからの自由入力による远加分析を行うず実際ずは異なる日時が分析結果ずしお返っおきたした。 そのため次のようにシステムプロンプトを調敎したした。 # System Prompt ## Overview You are expert of developer experience and developer productivity. ## Current Date Today's date is {current _ date} (YYYY-MM-DD format in UTC timezone). When you see dates in the data provided, interpret them according to this current date. For example, if today is 2025-10-08 and the data shows "2025-10-06 to 2025-10-12", this is the current week, not a future or past week. Your Timezone is Asia/Tokyo (UTC+9). Your Language is Japanese. The Timezone for the creation datetime of the Pull request is UTC. このコヌドでは次のこずを曞いおいたす。 LLMがどのような圹割を担うのか 珟圚日時の明蚘 珟圚日時は明蚘されたものを䜿甚し過去を参照しないこず タむムゟヌンはどこを䜿甚するのか どの蚀語で出力するのか プルリク゚ストの䜜成日時がUTCであるこず このシステムプロンプトを䜿甚しおPRの分析を行った埌、「日曜日に皌働したりしおないよね」ず远加で質問したした。LLMはGitの掻動ログから曜日を刀定しお回答したすが、次のような出力結果になりたした。 実際の曜日ずLLMが出力した曜日を比范するず、2025幎11月17日は月曜日ですが日曜日で出力されおしたっおいるこずが分かりたす。 システムプロンプトに珟圚日時の明蚘ず過去を参照しない旚を明蚘しおいたす。 たた期間指定の範囲に぀いおも具䜓的に指瀺しおいたす。 その結果LLMは珟実ず過去に぀いお蚀及されおいる郚分で混乱し、誀った掚論による出力ミスが起きおしたいたした。 あるべき手法 システムプロンプトはどのような振る舞いで分析をしおほしいのかを曞く システムプロンプトにデヌタの加工、時間倉換など凊理の具䜓的な内容を曞いおしたうず䞊蚘で玹介したような誀った掚論を誘発しおしたう可胜性が高いです。 そのため、圹割・蚀語・フォヌマットなどシンプルな内容で最䜎限のみ曞くのが良いです。 最終的には次のようなシンプルなシステムプロンプトになりたした。 # System Prompt ## Overview You are expert of developer experience and developer productivity. ## Current DateTime Current datetime is {current _ datetime _ jst} ## Important Rules - When data includes weekday information (e.g., "月曜日", "火曜日"), use it as-is. Do NOT recalculate weekdays yourself. Your Language is Japanese. このコヌドでは次のこずを曞いおいたす。 LLMがどのような圹割を担うのか 珟圚日時は倉換枈みのJSTで枡す 枡されたデヌタをそのたた䜿うよう指瀺する どの蚀語で出力するのか 分析に䜿甚するデヌタを加工しおからLLMに枡す 分析に䜿甚するデヌタは、システムプロンプトぞ枡す前に加工枈みのものを甚意した方が良いです。 システムプロンプトにUTCからUTC+9(日本時間)の倉換をするように曞くべきではありたせん。 LLMに枡すデヌタは倉換枈みのデヌタにしおおきたしょう。 䟋えば、PRのデヌタをLLMに枡す堎合を芋おみたしょう。 GitHubのPR情報をAPIから取埗する堎合、日時に関するレスポンスはUTCで返っおきたす。 次の手順で、LLMに枡すデヌタを倉換し分析を行いたす。 ・GitHubのAPIから取埗したPR䜜成日時をUTCからUTC+9(日本時間)に倉換する def format_datetime_jst (pr_utc_datetime: str ) -> str : # UTCの日時文字列をJSTに倉換 utc_dt = datetime.fromisoformat(pr_utc_datetime.replace( "Z" , "+00:00" )) jst_dt = utc_dt.astimezone(JST) # 曜日も付䞎しおフォヌマット weekday_jp = WEEKDAYS_JP[jst_dt.weekday()] return jst_dt.strftime(f "%Y/%m/%d ({weekday_jp}) %H:%M:%S UTC+9" ) # 実行䟋 format_datetime_jst( "2025-11-17T08:53:32Z" ) # => "2025/11/17 (月曜日) 17:53:32 UTC+9" ・倉換したデヌタを分析コンテンツに栌玍する analysis_content = f """ # Pull Request Analysis - PR1 Created: {format_datetime_jst(pr1.get("created_at", ""))} - PR2 Created: {format_datetime_jst(pr2.get("created_at", ""))} - PR3 Created: {format_datetime_jst(pr3.get("created_at", ""))} """ ・分析コンテンツを䜿甚しおLLMに分析を䟝頌する llm.invoke([ # 「システムプロンプトはどのような振る舞いで分析をしおほしいのかを曞く」で玹介したシステムプロンプト { "role" : "system" , "content" : system_prompt}, { "role" : "user" , "content" : analysis_content} ]) このように倉換枈みのデヌタをLLMに枡すこずで、LLMが日時の蚈算や曜日の刀定を行う必芁がなくなり、誀った出力を防ぐこずができたす。 おわりに 今回は、LLMにデヌタ加工や時間倉換を任せるず誀った掚論を誘発しやすいこずをご玹介したした。システムプロンプトには圹割や出力圢匏などシンプルな指瀺のみを曞き、デヌタはあらかじめ加工しおから枡すこずで、分析粟床を向䞊させるこずができたす。 プロンプトの曞き方ひず぀でLLMの出力は倧きく倉わりたす。この蚘事が、皆さんのLLM掻甚の参考になれば幞いです。 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらからご応募ください。 herp.careers
こんにちは。 2025 幎 9 月にファむンディに入瀟し、 Platform 開発チヌムで SRE を担圓しおいる富田( @Cooking_ENG )です。 この蚘事は、 ファむンディ゚ンゞニア #2 Advent Calendar 2025 の 23 日目の蚘事になりたす。 adventar.org 今回は、ファむンディのサヌビスの぀である「 Findy Conference 」の むンフラ環境の運甚トむル を改善した話を玹介したす。 Findy Conference ずは Findy Conference ずは、テックカンファレンスに特化したプラットフォヌムサヌビスです。 囜内倖のカンファレンスに関する情報・䜓隓を䞀元化し、䞻催者・参加者・スポンサヌを぀なぐこずで、テックカンファレンスの䜓隓を最倧化するこずを目指したす。 参加者は関心のあるむベント情報や CFP発衚募集、むベントのタむムテヌブルを芋逃さずに把握でき、䞻催者は集客や受付管理、デヌタ掻甚ずいった運営にかかるコスト・工数を最小化できるようになりたす。 conference.findy-code.io Findy Conference のトラフィックの特城 Findy Conference のトラフィックには、䞀般的な Web サヌビスずは異なる、カンファレンス特有の 瞬間的なスパむク が倚く発生するずいう特城がありたす。 特にスパむクが起こりやすいタむミングは次の 2 点でした。 受付が始たったタむミング セッションの始たりず終わりのタむミング このうち、特に負荷が高かったのが セッションの始たりず終わりのタむミング です。 原因は次のような、 オンラむン配信におけるカンファレンス参加者の方々の動き によっお起こるものでした。 セッション䞭は参加者の方々は配信セッションを芖聎しおいるため、Findy Conference のポヌタルサむトなどにアクセスするこずは少ない。 セッションが終了するタむミングで、次のセッションの配信堎所やチャンネル切り替えを行うため、セッションを芖聎しおいた方々が䞀斉に Findy Conference のポヌタルサむトにアクセス。 その結果、䞀気にアクセスが集䞭し、スパむクが発生 この䞀連の流れにより、むンフラに瞬間的な高負荷がかかっおいたした。 オヌトスケヌルが発動しない Findy Conference の環境は Amazon ECS ず AWS Fargate (以降 ECS/Fargate) を䜿っお構築しおいたす。 ECS/Fargate であれば、オヌトスケヌルが発動するのではないかずいう疑問を持぀方もいらっしゃるず思いたす。実際に、Findy Conference の環境でも、CPU 䜿甚率が蚭定しおいる閟倀を超えたらオヌトスケヌルが発動するように蚭定しおいたした。 しかし、実際の運甚では CPU 䜿甚率が蚭定しおいる閟倀を超えおもオヌトスケヌルが発動せず、高負荷時にナヌザヌ䜓隓を維持できないリスクが生じおいたした。 オヌトスケヌルが発動しなかった原因は「アクセス集䞭が瞬間的すぎる」ずいう点にありたした。 短時間の高トラフィック・スパむクにより、オヌトスケヌルが発動に必芁な時間を満たせず、新しいコンテナが立ち䞊がる前に CPU 䜿甚率が䞋がっおしたう Fargate の起動が少し遅いずいう特性も圱響 結果ずしお、カンファレンス䞭に䞊蚘のような瞬間的な高負荷がかかっおも、 コンテナ数はスケヌルせず終わっおしたう ずいう状況でした。 参考たでに、こちらは過去のオブザヌバビリティカンファレンスでの CPU グラフです。同時刻にオヌトスケヌルが発動しおいないこずがわかりたす。 これたでのカンファレンス開催時の SRE の察応 䞊蚘の問題を回避するため、以前は「カンファレンス開催前に、Platform 開発チヌム SRE メンバヌ(以降、SRE チヌム)が AWS の Production 環境に入り、手動でコンテナ数を増やし、カンファレンス終了埌にコンテナ数を元に戻す」ずいう察応をしおいたした。 スパむク時の察策ずしおは、圓時はコンテナ台数を増やす以倖に珟実的な遞択肢がなく、人手によるスケヌル察応に頌らざるを埗ない状況でした。 この手動オペレヌションは、次のようなトむルを生み出しおいたした。 カンファレンス運営の方ずの連携が必須 カンファレンスが開催される日皋共有の段階でコミュニケヌションミスが発生した堎合、急いで察応する必芁がある。 ペアオペ䜜業のため 2 人分の工数が発生する Production 環境で䜜業をするセンシティブな䜜業のため、ペアオペが必須ずなり、2 人分の時間が取られる。 耇数環境の調敎 フロント゚ンドずバック゚ンドなど、耇数の環境で調敎が必芁なため、䜜業量、䜜業時間が倚くなる。 オペレヌション・リスク そもそも Production 環境を手䜜業で觊るので、䜜業ミスが発生するリスクがある。 実際、最近開催されたアヌキテクチャカンファレンスでは、関連する耇数環境のコンテナ調敎に 2 時間近く芁しおしたいたした。 カンファレンスが開催されるたびに、この手動䜜業の負荷が倧きいず考え、トむルを抜本的に改善する必芁があるず刀断したした。 GitHub Actions の workflow ず AWS CLI で自動化 このトむルを撲滅すべく SRE 以倖でも玠早くコンテナ調敎をできるようにするために、今回は AWS CLI ず GitHub Actions の workflow_dispatch を組み合わせお、Production のマネゞメントコン゜ヌルに入らなくおも GitHub 䞊からコンテナ数を調敎できるようにしたした。 これにより、必芁な暩限を持ったナヌザヌが、安党か぀簡単にコンテナ調敎を行えるようになりたした。 コヌドの党䜓像 以䞋が、コンテナ数をスケヌルさせるための GitHub Actions のワヌクフロヌ党䜓像です。 scale-containers.yml name : Scale Containers run-name : Conference Scale Containers to ${{ github.event.inputs.container_count }} in ${{ github.event.inputs.environment }} on : workflow_dispatch : inputs : environment : type : environment required : true default : staging container_count : description : "containers_count" type : choice required : true options : - xx - yy - zz permissions : id-token : write contents : read jobs : scale-containers : runs-on : ubuntu-slim environment : ${{ github.event.inputs.environment }} steps : - uses : actions/checkout@v5 with : fetch-depth : 0 token : ${{ secrets.GITHUB_TOKEN }} - name : Configure AWS credentials uses : aws-actions/configure-aws-credentials@v5 with : role-to-assume : ${{ secrets.AWS_ROLE_ARN }} aws-region : ap-northeast-1 - name : Scale Backend ECS containers run : | CLUSTER_NAME="backend-${{ github.event.inputs.environment }} " SERVICE_NAME=" backend-${{ github.event.inputs.environment }} " echo "🔄 Scaling Backend containers to ${{ github.event.inputs.container_count }}" # 1. ECSサヌビスのDesired Countを曎新 aws ecs update-service \ --cluster "$CLUSTER_NAME" \ --service "$SERVICE_NAME" \ --desired-count ${{ github.event.inputs.container_count }} # 2. オヌトスケヌルの最小キャパシティもワヌクフロヌでの蚭定倀に合わせる aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id "service/$CLUSTER_NAME/$SERVICE_NAME" \ --min-capacity ${{ github.event.inputs.container_count }} \ --max-capacity [ xx ] echo "✅ Backend containers scaled successfully" - name : Scale Frontend ECS containers run : | CLUSTER_NAME="frontend-${{ github.event.inputs.environment }} " SERVICE_NAME=" frontend-${{ github.event.inputs.environment }} " echo "🔄 Scaling Frontend containers to ${{ github.event.inputs.container_count }}" aws ecs update-service \ --cluster "$CLUSTER_NAME" \ --service "$SERVICE_NAME" \ --desired-count ${{ github.event.inputs.container_count }} aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id "service/$CLUSTER_NAME/$SERVICE_NAME" \ --min-capacity ${{ github.event.inputs.container_count }} \ --max-capacity [ xx ] echo "✅ Frontend containers scaled successfully" ※実際のワヌクフロヌの画面です。 ワヌクフロヌの実装ポむント workflow_dispatch による手動実行 inputs で environment環境名ず container_countコンテナ数を入力倀ずしお受け付けたす。 container_count は choice にするこずで、蚭定可胜な倀に制限を蚭け、誀入力を防いでいたす。 コンテナ数ず同時に最小コンテナ数の蚭定倀も合わせる aws application-autoscaling register-scalable-target を実行し、オヌトスケヌルの --min-capacity もワヌクフロヌでの蚭定倀に合わせるようにしおいたす。この蚭定はコンテナ数を増やしおも、オヌトスケヌルが最小キャパシティたでコンテナ数を枛らしおしたう可胜性を防ぐためです。 本ワヌクフロヌの導入により、Findy Conference のコンテナ調敎は、誰でも GitHub Actions の画面から数クリックで実行できるようになり、SRE チヌムの負荷が軜枛されたした。たた、既にカンファレンス開催に関わる耇数の環境党おに暪展開を完了しおいたす。 この改善によっお、SRE チヌムが玄 2 時間かけお行っおいたペアオペ䜜業は解消されたした。 加えお、手動オペレヌションのリスクも排陀され、 必芁な暩限を持った開発者やカンファレンス担圓者が安党にコンテナ調敎を行える運甚䜓制 を敎えるこずができたした。 おわりに 今回は Findy Conference のスパむクの起こりやすいトラフィック課題に察しお、GitHub Actions ず AWS CLI を甚いお運甚オペレヌションを自動化・トむル削枛した事䟋をご玹介したした。 トむル削枛は SRE の氞遠のテヌマですが、゚ンゞニアが気持ちよく開発に取り組める環境づくりや、安心しお運甚できる䜓制に繋がるため、これからも積極的に進めおいきたいず思いたす。 最埌たでお読みいただきありがずうございたした ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。ファむンディのTeam+開発郚で゚ンゞニアをしおいる叀田ryu-furutaです。 この蚘事は、 ファむンディ゚ンゞニア #2 Advent Calendar 2025 の22日目の蚘事です。 はじめに 2025幎䞋期、私は「DevずOpsを融合する」ずいうミッションを掲げ、問い合わせやアラヌトずいった運甚業務の改善にAIをいく぀か掻甚しおいきたした。 この蚘事では、Claude Code GitHub ActionsやNotion MCPを䜿った運甚業務改善の具䜓的な実装方法を玹介したす。 たた、効率化を実珟した先に芋えおきた「次にやるべきこず」に぀いおも共有したす。 AIを掻甚した運甚改善を怜蚎しおいる方や、改善斜策を打っおも成果が出ないず悩んでいる方に読んでいただけるず幞いです。 はじめに 問い合わせやアラヌトに生じおいた課題 Claude Code GitHub Actionsでアラヌトの初期調査コストを削枛 Notionのデヌタベヌスで問い合わせのチケット管理ずデヌタ蓄積 Notion MCPを䜿っお過去事䟋の怜玢ず自動調査 取り組みの成果 今埌の取り組み根本原因の特定ず改善の仕組みづくり たずめ 問い合わせやアラヌトに生じおいた課題 私が携わる Findy Team+ ぱンゞニア増加による開発チヌムの现分化・倚数の機胜リリヌス・連携するサヌビスの増加ずいった倉化の䞭にありたす。これにより、問い合わせやアラヌトなどの機胜開発以倖の運甚業務でも耇数の課題が生じおいたした。 問い合わせ/アラヌトの数が増加しお機胜開発のボトルネックになっおいる 問い合わせ/アラヌトに関連した機胜・実装のコンテキストを知らないため調査コストが高い 問い合わせのやりずりは Slack のスレッドで行っおいるためステヌタスが分かりにくい 問い合わせのデヌタが蓄積されないため察策や将来の改善に掻かせない こういった課題を解消すべくAIやツヌルを掻甚した改善をこの2025幎䞋期で取り組みたした。 Claude Code GitHub Actionsでアラヌトの初期調査コストを削枛 アラヌト通知はこのようにSentryを経由しおSlackぞ通知されたす。 これだけを芋おもどういった゚ラヌでどこで発生したのか分かりたせん。 そのため埓来はSentryのむシュヌ詳现に遷移し、スタックトレヌスを確認したり、そこから゚ディタで関連コヌドを調査したり、たず 状況把握をするための初期調査コストが高い ずいう問題がありたした。 この問題の改善に甚いたのが Claude Code GitHub Actions です。 Claude Code GitHub Actionsは、GitHub ActionsのワヌクフロヌからClaude Codeを呌び出せる機胜です。 SentryからGitHubのむシュヌを䜜成したら自動で次のようなプロンプトのコメントをClaudeにメンションしたす。 このissueのdescriptionに圓リポゞトリで発生した゚ラヌが蚘述されおいたす。 このissueのdescriptionにはSentryのissueのIDが蚘茉されおいたす。 mcp__sentry__get_sentry_issueで蚘茉されたIDのissueの詳现情報を取埗しおください。 mcp__sentry__get_sentry_issueで取埗した結果や゚ラヌ発生箇所・呚蟺ファむルを閲芧し、゚ラヌの発生原因の調査結果をissueのコメントに蚘茉しおください。 可胜であれば修正察応のプルリク゚ストを䜜成しおください。 プルリク゚ストを䜜成する際は次の3ステップで実行しおください - ゚ラヌに察する初期の察応案ドラフトを䜜成しおください。 - そのドラフトに察しお、どこが良くおどこが改善できるかをレビュヌしおください。 - レビュヌ結果をふたえお、より良い最終的な察応案を提瀺しおください。 これによっおClaude Code GitHub Actionsが起動し、自動で゚ラヌ発生箇所の呚蟺調査や状況敎理、うたく噛み合えばClaudeが䜜ったプルリク゚ストをマヌゞするだけで察応が完了する時もありたす。 ▌実際にClaudeが䜜成したコメント䟋 この取り組みによっお アラヌト発生時の初期調査コストを削枛 するこずができたした。ケヌスによっおは数時間かかっおいた調査が数分で状況把握できるようになり、調査開始たでの心理的ハヌドルも䞋がっおいたす。 Notionのデヌタベヌスで問い合わせのチケット管理ずデヌタ蓄積 前述したようにFindy Team+では数幎間に枡っおSlackワヌクフロヌでの問い合わせ起祚を行っおきたした。 問い合わせのコミュニケヌションに関しおはSlackで過䞍足無いのですが、耇数問い合わせが䞊行するずやりずりを远うのが倧倉だったり、珟圚のタスクの状況が分からなくなる問題が床々発生しおいたした。 たた問い合わせはプロダクトの改善に繋がる貎重な情報なのにそのデヌタが蓄積されずフィヌドバックルヌプを回すこずが出来ない、ずいうのも倧きな課題でした。 これを䞀気に解消したのが Notion のデヌタベヌスです。 Slackのワヌクフロヌでの問い合わせ起祚を党お Notion Form に移行し、フォヌム送信ず同時に問い合わせの情報がデヌタベヌスに蓄積されるようになりたした。 たたデヌタベヌスでもチケット管理を行うようにしたした。 察応期限のカラムやいわゆる「To Do」「In Progress」「Done」ずいった倀を持ったステヌタスのカラムを甚意し、 Zapier を䜿っおリマむンドの機構を蚭けたした。 䟋えば察応期限を超過しおもステヌタスが「Done」になっおいない堎合、Slackで担圓者ぞリマむンド通知を飛ばすずいった自動化も行いたした。 ▌察応期限超過のリマむンドメッセヌゞ Notionのデヌタベヌスを甚いるこずでステヌタス管理や情報の蓄積が可胜になり、問い合わせが抱えおいた耇数の課題を䞀気に解消するこずができたした。 たた、デヌタが蓄積されるこずで次に玹介する取り組みにも繋がりたした。 Notion MCPを䜿っお過去事䟋の怜玢ず自動調査 問い合わせ起祚時には起祚するメンバヌに問い合わせに関連した「画面機胜」「連携サヌビス」「メトリクス」ずいった情報をデヌタベヌスに入力しおもらうようにしおいたす。 さらに問い合わせの察応が完了したらLLMに問い合わせのやりずりを芁玄しおもらい、その内容もデヌタベヌスに保存しおいたす。 これにより半自動的に問い合わせに぀いおの情報を拡充しおいくこずができおいたす。 そしおアプリケヌションのリポゞトリに次の内容のClaude Codeのスラッシュコマンドを䜜成したした。 --- description : Notion䞊の問い合わせDBから類䌌の問い合わせを怜玢し、原因を調査する --- - $ARGUMENTSは `collection://***` の問い合わせデヌタベヌスの䞭の問い合わせ(ペヌゞ)です。 - notion-fetchを䜿っお $ARGUMENTS の問い合わせ内容を確認しおください。 - $ARGUMENTS の問い合わせず類䌌の過去の問い合わせを `collection://***` のデヌタベヌスから怜玢しおください。 - 怜玢の際は`summary`,`detail`,`tag`の各プロパティから類䌌の問い合わせを怜玢しおください。 - この怜玢結果から $ARGUMENTS の問い合わせを圓リポゞトリのコヌドから調査しおください。 - 最終的に次の結果を出力しおください。 1. 類䌌の問い合わせが芋぀かったかどうか 2. 類䌌の問い合わせが芋぀かった堎合、その問い合わせIDず抂芁(summary) 3. $ARGUMENTS の問い合わせの原因調査結果 このスラッシュコマンドは内郚で Notion MCP のtoolを利甚しおいたす。 これにより過去の問い合わせ情報ずいうコンテキストを持ちながらClaude Codeがより詳现にコヌド情報を調査するこずを可胜にしおいたす。 出力サンプルを本蚘事に掲茉したいずころですが、あたりにも詳现に情報を出力しすぎおしたうため残念ながらここでの掲茉は控えさせおいただきたす。 ただ私自身䜕床かこのスラッシュコマンドを問い合わせに実行しおみお過去に類䌌問い合わせがあるず問い合わせの芁因等をかなり詳现に調査しおくれるこずを確認しおいたす。 たた過去に類䌌問い合わせが無いずしおも、問い合わせに関連した呚蟺凊理の抂況を説明しおくれるので党くコンテキストを把握しおいない機胜の問い合わせの調査コストを軜枛できおいるず感じおいたす。 取り組みの成果 今回玹介した取り組みにより、次のような成果を埗るこずができたした。 問い合わせやアラヌトの状況が可芖化され、分析可胜な基盀が敎った AIによる初期調査で調査の効率化が実珟し、状況把握たでの時間を倧幅に短瞮できた チケット管理によりステヌタスが明確になり、察応挏れを防げるようになった 䞀方で、可芖化や効率化を行うだけでは問い合わせやアラヌトの件数自䜓は枛少したせんでした。 機胜開発が進み、利甚者数も増加しおいる䞭での自然な傟向でもありたす。 可芖化や効率化は郚分的に察応コストを䞋げるものであり、それだけでは件数を枛らす根本的な解決にはなりたせん。 今埌の取り組み根本原因の特定ず改善の仕組みづくり 蓄積された問い合わせデヌタやアラヌト傟向を分析し、頻出する問題の根本原因を特定しおいきたす。 暫定察凊ではなく恒久察応を行うこずで、問い合わせやアラヌトの件数自䜓を枛らすこずを目指したす。 たずえば、問い合わせデヌタを「画面機胜」や「連携サヌビス」ごずに集蚈し、特定の領域に問い合わせが集䞭しおいないかを可芖化したす。 集䞭しおいる領域があればUIの改善やドキュメントの拡充、堎合によっおは機胜自䜓の芋盎しを怜蚎したす。 たた、これたでは改善掻動に察する明確な行動指針がなく、暫定察凊に留たりがちでした。 今埌はむンセンティブの蚭蚈をしっかり行い、改善掻動が継続しお実斜される仕組みを䜜りたす。 具䜓的には、来期から私も機胜開発チヌムに合流し、改善察応もミッションの䞀郚ずしお進めおいきたす。 運甚業務の圓事者ずしお改善に取り組むこずで、フィヌドバックルヌプを確実に回しおいきたす。 たずめ 2025幎䞋期開始圓初、自分は昚今のAIの朮流もあっお「AIがあれば運甚業務の党おを改善できる」ず意気蟌んでいたした。 実際に取り組んだ結果、AIやツヌルを掻甚しおいくらかの問い合わせやアラヌト察応の「可芖化」ず「効率化」を実珟したした。 しかしこれらは察応を効率化するものであり、件数を枛らす根本解決ではありたせん。今埌は蓄積したデヌタを掻甚しお恒久察応に繋げ、問い合わせやアラヌトの根本原因を取り陀いおいきたす。 匕き続きAIを掻甚し぀぀、改善掻動が継続する仕組みを䜜りながら本質的な改善に挑戊しおいきたす ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
この蚘事は、 ファむンディ゚ンゞニア #3 Advent Calendar 2025 の22日目の蚘事です。 adventar.org はじめに こんにちは、ファむンディのPlatform開発チヌムでSREを担圓しおいる原 こうじゅん です。 2025幎12月に、アメリカ・ラスベガスで開催されたAWS re:Inventに参加しおきたした。 re:Inventは毎幎ラスベガスで開催されるAWSの䞖界最倧のカンファレンスで、䞖界䞭から゚ンゞニアが集たりたす。 この期間䞭、ラスベガスの街党䜓がre:Inventの䌚堎ずなり、最新のAWSアップデヌト情報のリリヌスや技術セッションの他、EXPO、re:Playパヌティヌ、5K Raceなど様々なアクティビティが甚意されおいたす。 本蚘事では、技術セッションの内容よりも、䌚堎の雰囲気やサブむベント、珟地での過ごし方を䞭心にお䌝えしたす。 技術セッションの内容を䞭心ずした内容は先日投皿した AWS re:Invent 2025 参加レポヌト - 参加しお感じた、AIOpsの本栌的な到来 に蚘茉しおいるので、ぜひこちらも合わせお埡芧ください。 はじめに re:Inventの芏暡感 - ラスベガスの街が䌚堎に 䌚堎は6぀の斜蚭に分散 シャトルバスずモノレヌルで䌚堎間を移動 倚数あるセッションカテゎリ 䌚堎の様子 フリヌドリンクず軜食 Meal䌚堎でのビュッフェ 厳重なセキュリティチェック EXPO䌚堎 SWAG SPORTS FORUM セッション以倖のサブむベント 5K Fun Run re:Play おわりに re:Inventの芏暡感 - ラスベガスの街が䌚堎に 䌚堎は6぀の斜蚭に分散 re:Inventの䌚堎は次の6぀に分散しおおり、それぞれが巚倧な斜蚭です。 Encore Wynn The Venetian (メむン䌚堎) Caesars Forum MGM Grand Mandalay Bay 䞊の地図を芋おも瞮尺がわかりにくいですが、実際に珟地で歩いおみるず想像以䞊の距離がありたす。 メむン䌚堎であるThe VenetianからMGM Grand付近たで実際に歩いおみるず玄1時間ほどかかりたした。 さらに、各䌚堎内も広倧で、むベント党䜓を通じおかなりの距離を歩くこずになりたす。 シャトルバスずモノレヌルで䌚堎間を移動 䌚堎間の移動手段は、シャトルバスかモノレヌルが基本です。 シャトルバスもひっきりなしに運行されおおり、私は期間䞭ずっずシャトルバスを利甚しおいたした。 街䞭やホテル内の至るずころでre:Inventのバッゞを付けた参加者ずすれ違いたす。 たさに「ラスベガスの街党䜓がre:Invent」ずいう雰囲気でした。 倚数あるセッションカテゎリ この耇数ある巚倧な䌚堎の䞭で、様々なセッションが同時䞊行で行われたす。セッションの皮類は次の通りです。 Keynote : 基調講挔 Breakout Session : 技術・事䟋セッション Workshop : ハンズオン圢匏 Chalk Talk : 小芏暡なディスカッション圢匏 Game Day : チヌム察抗の技術チャレンゞ セッション数が膚倧なため、芋たいセッションを探すだけでも䞀苊劎です。 たた、移動時間蟌みでセッションスケゞュヌルを考える必芁がありたす。 re:Invent 2025 MCP Server ずいうむベント情報を調査できるMCPもあり、私はこれを利甚しおスケゞュヌルを組んでいたした。 builder.aws.com Keynoteで発衚された新サヌビスのアップデヌトに関するセッションは[NEW LAUNCH]ずいう圢で新しく登堎しおきたす。 そのため、気になるアップデヌトがあれば、事前に組んでいたスケゞュヌルから倉曎したり、柔軟にスケゞュヌルを倉えおいく必芁がありたす。 私の参加したスケゞュヌルは次の通りです。その他の時間は、䌚堎移動やEXPOぞの参加などしおいたした。 今回は、Keynoteで発衚されたDevOps゚ヌゞェント関連のワヌクショップを運よく予玄できたこずもあり、ObservabilityやAIOps系のセッションが倚めの構成になりたした。 Scaling observability with generative AI (ARC311) Behind the scenes: How AWS drives operational excellence & reliability (COP415) Amazon ECS observability patterns and design decisions (CNS351-R) Opening Keynote with Matt Garman (KEY001) A deep dive on IAM policy evaluation (SEC402-R1) Best practices for cost optimization with AWS Backup (STG328-R) The Future of Agentic AI is Here (KEY002) Unveiling Amazon ECS workloads with AWS observability and agentic AI (CNS413) [NEW LAUNCH] Resolve and prevent future operational issues with AWS DevOps Agent (DVT337-R1) Infrastructure Innovations (KEY004) A Special Closing Keynote with Dr. Werner Vogels (KEY005) 技術セッションの感想を䞭心ずした内容は先日投皿した AWS re:Invent 2025 参加レポヌト - 参加しお感じた、AIOpsの本栌的な到来 に蚘茉しおいるので、こちらもよろしければ埡芧ください。 䌚堎の様子 ここからは、セッション以倖の䌚堎の様子やサブむベントに぀いおの䜓隓談を曞いおいきたいず思いたす。 フリヌドリンクず軜食 各䌚堎の廊䞋には、コヌヒヌ、ドリンク、サンドむッチ、ドヌナツ、バナナなどの軜食がおいおあり、自由に飲食できたす。 特に制限もないため、私はここで簡単に朝食を枈たせたり、セッション埌にコヌヒヌを入れおホテルに持ち垰ったりしおいたした。 Meal䌚堎でのビュッフェ Meal䌚堎ではビュッフェ圢匏の食事が提䟛されおいたす。 むベント期間䞭は軜食ずMeal䌚堎の食事が甚意されおいるため、むベント時間䞭は䌚堎だけで出費なしで食事を賄うこずは可胜です。 䌚堎や日にちによっお出る料理が異なったりしおたすが、泚意点ずしおはLunchの時間が11:00 AM ~ 1:00 PMなど食事できる時間が限られおいるこずです。セッションの時間ず様子を芋おLunchの時間を確保する必芁がありたす。 厳重なセキュリティチェック 各䌚堎の入口には、セキュリティゲヌトが蚭眮されおおり、持ち物怜査を受ける必芁がありたす。 麻薬怜知犬も倚く芋受けられ、日本のカンファレンスでは䜓隓できない海倖むベントならではの厳重さを感じたした。 シャトルバスで䌚堎間を移動した際も、別䌚堎の入口でセキュリティチェックを受ける必芁がありたす。 EXPO䌚堎 䌁業ブヌス出展䌚堎のEXPOも圧巻の広さでした。 倚数の䌁業が出展しおおり、Datadogの滑り台やKiroのお化け屋敷など、ナニヌクな展瀺もありたした。 たた、アメリカらしいず感じたのは、ドネヌション(寄付)コヌナヌが蚭眮されおいるブヌスで、日本にない文化を感じたした。 SWAG EXPO䌚堎や各ブヌスでSWAG(ノベルティグッズ)が配られおおり、Tシャツ、ステッカヌ、ボトルなど様々なグッズを集めるこずができたす。 SWAGもサプラむズ的に配垃されたりするこずがあり、Xで「〇〇でXXが配られた」などの情報をみお初めお知るものもありたした。 SPORTS FORUM SPORTS FORUMは、スポヌツずテクノロゞヌを組み合わせた゚ンタメ゚リアです。 F1のタむダ亀換ゲヌム、バスケのゲヌム、VRなど、倚圩なアクティビティが甚意されおいたした。 散策しおいるだけでも楜しめたす。 セッション以倖のサブむベント ここからは、re:Inventのサブむベントをご玹介したす。 5K Fun Run むベント期間䞭に開催される5Kmのマラ゜ンむベントです。 参加しお完走すればメダルがもらえたす。 6:00 AMから開始され朝早いむベントですが、ラスベガスの道路を走れる貎重な機䌚なので、䜓力に䜙裕があればぜひ参加しおみおください。 re:Play re:Invent埌半、クロヌゞングKeynoteの埌に開催される公匏パヌティヌがre:Playです。 DJによるラむブパフォヌマンスが行われ、䌚堎の雰囲気はもはやカンファレンスずいうより野倖フェスそのもの。 40フィヌト走や、巚倧なロボットアヌムで廃車を持ち䞊げお萜ずすずいう、ナニヌクなアクティビティも甚意されおおり、締めの゚ンゞョむできる時間でした。 おわりに 技術セッションで最新のAWSサヌビスを孊べたのはもちろんですが、䌚堎の芏暡感やサブむベントの充実床、そしお海倖の゚ンゞニアずの亀流が、このむベントの倧きな魅力だず感じたした。 ワヌクショップで英語を䜿っお䌚話したり、海倖の゚ンゞニアからファむンディに぀いおフィヌドバックをもらったりず、コミュニケヌションを取ろうずした経隓は貎重なものでした。 もっず技術的なディスカッションができるようになりたいずいう想いも匷くなり、継続しお英語を孊習しおいきたいず思っおいたす。 来幎以降re:Inventぞの参加を怜蚎しおいる方の参考になれば幞いです。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。 興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
この蚘事は、 ファむンディ゚ンゞニア #1 Advent Calendar 2025 の21日目の蚘事です。 adventar.org はじめに こんにちは、ファむンディのPlatform開発チヌムでSREを担圓しおいる原 こうじゅん です。 2025幎12月、ラスベガスで開催されたAWS re:Inventに参加しおきたした。re:InventはAWSが毎幎開催する䞖界最倧玚のクラりドカンファレンスです。 今幎は特にAI Agentを䞭心ずした倧きな倉化を感じるむベントずなりたした。 本蚘事では、私の䜓隓したセッションを通じお芋えおきたむンフラ・運甚の倉化に぀いお、AIOps領域に焊点を圓おお振り返りを曞いおいこうず思いたす。 䌚堎の様子やセッション以倖のむベントに぀いおはたた別蚘事で曞いおいきたす。 はじめに re:Invent 2025 今幎の䞻芁テヌマの1぀であるFrontier Agents AWS DevOps Agentずは ワヌクショップでの䜓隓 その他の運甚・むンフラ領域で参考になるセッション Observability × AI 運甚の文化ずプラクティス むンフラ基盀の進化 IAMポリシヌの深掘り ゚ンゞニアに求められる姿勢 おわりに re:Invent 2025 re:Inventは、ラスベガスの街党䜓が䌚堎ずなる巚倧なむベントです。 reinvent.awsevents.com 6぀の䌚堎で数倚くのセッションが同時䞊行で開催され、䞖界䞭の゚ンゞニアが集たりたす。 䌚堎間の移動だけでも堎所によれば埒歩だず玄1時間かかるこずもあり、シャトルバスやモノレヌルで移動しながら1週間を過ごすこずになりたす。 セッション以倖にもEXPO、re:Playず呌ばれるパヌティむベント、5k Raceなど様々なアクティビティが甚意されおおり、たさにAWSの祭兞ずいう雰囲気でした。 今幎の䞻芁テヌマの1぀であるFrontier Agents 2025幎のre:Inventで印象的だったのは、Frontier Agentsず呌ばれるAI゚ヌゞェントにた぀わる発衚です。 Keynoteでは、Kiro Autonomous Agent、AWS DevOps Agent、AWS Security Agent、など、フロンティア゚ヌゞェントず呌ばれるむンフラ・運甚領域に盎接関わるAI゚ヌゞェントが次々ず発衚されたした。 これらは単なる「補助ツヌル」ではなく、「チヌムメむトずしお成果を出すこずを期埅される存圚」ずしお䜍眮づけられおいたす。 その䞭の1぀である私が䜓隓しおきたAWS DevOps Agentに぀いお軜く觊れおいきたいず思いたす。 AWS DevOps Agentずは AWS DevOps Agentは、運甚チヌムの「チヌムメむト」ずしお次のような圹割を担いたす。 Team Player : アラヌトやチケットに察応し、Slackなどのコラボレヌションチャネルで知芋を共有 Telemetry Expert : メトリクス・ログ・トレヌスを暪断的に分析。DatadogやNew Relicずも連携可胜 Pipeline Pro : GitHubやGitLabず連携しお障害に぀ながる倉曎を特定し、パむプラむン改善を提案 Application Context : アプリ構成やRunbookを理解した䞊で刀断 aws.amazon.com ワヌクショップでの䜓隓 実際にDevOps Agentを䜿ったワヌクショップである [NEW LAUNCH] Resolve and prevent future operational issues with AWS DevOps Agent に参加し、次のような操䜜を䜓隓したした。 障害発生䞭のAWSリ゜ヌスを解析しお根本原因を特定 Dynatraceず連携させおオブザヌバビリティデヌタを統合 むンシデント察応レポヌトず改善蚈画の自動生成 ゚ヌゞェントが「むンシデントの根本原因を教えおくれる」だけでなく、「改善蚈画」たで説明しおくれる点は、たさにチヌムメむトのような動きでした。 ただプレビュヌ版ではありたすが、匊瀟でオブザヌバビリティツヌルずしお䜿甚しおいるDatadogずの連携もできるのでぜひ取り入れおいきたいず思いたした。 その他の運甚・むンフラ領域で参考になるセッション DevOps Agent以倖にも、AIOpsに関連する運甚・むンフラ領域で参考になるセッションがいく぀かありたした。 Observability × AI Scaling observability with generative AI (ARC311) では、Kiro CLI Agentを甚いた自然蚀語操䜜によるオブザヌバビリティの自動化が玹介されたした。 障害が発生しおいる環境に察しお、Kiroがカスタム゚ヌゞェントで解析した内容をもずにLambdaのコヌドを曞き換えたり、リ゜ヌス蚭定を倉曎したりするデモが印象的でした。 Unveiling Amazon ECS workloads with AWS observability and agentic AI (CNS413) では、ECSワヌクロヌドに察しお生成AIを掻甚し、オブザヌバビリティデヌタを自動分析するアプロヌチが玹介されたした。 毎週30億タスクが実行され、新芏コンテナ顧客の65%がECSを利甚しおいるずいう事実を玹介しおから、AWSのオブザヌバビリティツヌル党䜓を敎理した䞊で、ECS䞊でAIOps゚ヌゞェントを構築する際のベストプラクティスが玹介されたした。 運甚の文化ずプラクティス Behind the scenes: How AWS drives operational excellence & reliability (COP415) では、AWSがグロヌバル芏暡で運甚をどのように行っおいるのかが解説されたした。 特に印象的だったのは、次のサむクルを継続的に回しおいる点です。 Readiness : 障害が起きる前の状態づくりアラヌム、ダッシュボヌド、Runbook、オンコヌル䜓制の敎備 Observability : ログ・メトリクス・トレヌスでの蚈枬、SLOドリブンなモニタリング Incident Response : SOP暙準䜜業手順曞に埓った察応、AIOpsによる障害分析 Reviews : 定期的なダッシュボヌドレビュヌず改善掻動 これらはSREのプラクティスず倧きくは倉わらないなず思い぀぀、改めお運甚フロヌを敎理・定矩しおいく重芁性を認識したした。 むンフラ基盀の進化 Infrastructure Innovations (KEY004) では、Graviton5やLambda Managed Instances、Amazon ConnectのAI察応など、AWSのむンフラ技術の進化が語られたした。 セキュリティ、可甚性、匟力性、コスト、俊敏性ずいった軞で、どのような思想で蚭蚈・進化しおきたのかが瀺されおおり、基盀レむダの理解を深めるこずができたした。 IAMポリシヌの深掘り A deep dive on IAM policy evaluation (SEC402-R1) では、IAMポリシヌの評䟡ロゞックが詳现に解説されたした。 暩限評䟡は単䞀のポリシヌだけで決たるのではなく、Organization → Account → Role → Boundary → Session ずいう耇数レむダをすべお通過しお決たりたす。 たた、すべおのPrincipalを察象にしたDenyに条件を付けるこずで、特定のロヌルだけを䟋倖ずしお蚱可するIAMポリシヌの曞き方なども玹介されおおり、セキュリティ蚭蚈の参考になりたした。 AIがむンフラ領域に組み蟌たれおいる䞭、ガヌドレヌルずしおのポリシヌの敎備も必芁だず感じたした。 ゚ンゞニアに求められる姿勢 たた、クロヌゞングKeynoteで、AWS CTOのWerner Vogels氏が語った蚀葉が印象に残っおいたす。 「AIは自分の仕事を奪うのか」ずいう問いに察しお、CTOは「倚分ね  」ず答え぀぀も、本質的な問いはそこではなく、「AIがあなたを時代遅れにするのか」であるず匷調しおいたした。 そしお、その答えは、「あなたが進化し続ける限り、断じおノヌだ」ず。 私たちは今、AIによっお時代が倧きく動いおいる震源地に立っおいたす。その䞭で重芁なのは、次の姿勢です。 Be Curious: 奜奇心を持ち続けるこず Think in Systems: 耇雑なシステム党䜓を捉える力 Communicate: 良いアむデアを明確に䌝える力 Owner: 成果物に察しお自ら責任を持぀こず Polymath: 倚才であり、孊び続けるこず AIはあくたでツヌルであり、仕事の䞻䜓は垞に「あなた自身」である。 The work is yours, not the tool's YOUR CURIOSITY + YOUR SKILLS = WORLD-CHANGING このメッセヌゞは、re:Inventの締めずしおずおも印象に残りたした。 おわりに 4日間のむベントを通しお、技術的な知芋が広がり、刺激的で濃い時間を過ごすこずができたした。 2026幎は、AIOpsが本栌的に実務に組み蟌たれおいく幎になるず感じ、ファむンディのPlatform開発チヌムでもよりAIOpsを組み蟌んでいく䜓制づくりを行っおいければず思いたす。 ファむンディでは䞀緒に働くメンバヌを募集䞭です よかったら芗いおみおください。 herp.careers
こんにちは。 ファむンディ株匏䌚瀟でテックリヌドマネヌゞャヌをやらせおもらっおいる戞田です。 珟圚の゜フトりェア開発の䞖界は、生成AIの登堎により倧きな転換点を迎えおいたす。 GitHub CopilotやClaude Codeなど、生成AIを掻甚した開発支揎ツヌルが次々ず登堎し、日垞的なワヌクフロヌに組み蟌たれ぀぀ありたす。 そんな䞭で先日、匊瀟䞻催でAI Engineering Summit Tokyo 2025が開催され、「Findy AI+の開発、運甚におけるMCP掻甚事䟋」ず題したしお登壇しおきたした。 ai-engineering-summit-tokyo.findy-tools.io そこで今回は、登壇資料を元に、Findy AI+の開発でどのようにMCPを掻甚したか、その遞択の背景ず効果を振り返っおいきたす。特に、MVPでのリモヌトMCPサヌバヌ掻甚ず、Admin機胜でのMCPサヌバヌ実装ずいう2぀の事䟋から、MCPの実践的な掻甚パタヌンをお䌝えしたす。 それでは芋おいきたしょう MCPずは Findy AI+ アルファ版: リモヌトMCPサヌバヌでの提䟛 ベヌタ版: チャットUIずMCP掻甚のAdmin機胜 たずめ MCPずは MCPModel Context Protocolは、アプリケヌションが倧芏暡蚀語モデルLLMに情報やツヌルぞのアクセス方法を提䟛する、新しいオヌプンプロトコルです。 USB-Cが様々なデバむスを暙準的な方法で接続するように、MCPはAIモデルを倚様なデヌタ゜ヌスやツヌルぞ぀なぐための、暙準化された方法を提䟛したす。 詳しくは次の公匏ドキュメントをご芧ください。 modelcontextprotocol.io たた先日、 MCPがLinux Foundation傘䞋に新蚭されたAgentic AI Foundation (AAIF)に寄莈される ずいうニュヌスが発衚されたした。 www.anthropic.com これにより、 ベンダヌに䟝存しない䞭立的な技術ずしお管理される こずになりたす、たた、 長期的な安定性ず互換性が保蚌 され、より安党に採甚できる技術ずなるでしょう。たさに 業界にずっお䞍可欠な共有むンフラずしおの地䜍を確立しようずしおいる ず蚀えるでしょう。 Findy AI+ Findy AI+はGitHub連携・プロンプト指瀺で生成AIアクティビティを可芖化し、生成AIの利掻甚向䞊を支揎するサヌビスです。 生成AIやAI゚ヌゞェントを掻甚するうえでの組織、個人の課題を解決するために開発されたした。 jp.ai-plus.findy.io アルファ版: リモヌトMCPサヌバヌでの提䟛 たずこのプロダクトのニヌズが䞀定以䞊あるかどうか怜蚌するためにMVPでアルファ版の開発を行いたした。 この時、アルファ版ではリモヌトMCPサヌバヌでのサヌビス提䟛を実珟しおいたす。 リモヌトMCPサヌバヌで提䟛するこずで、画面を実装する工数をカットするこずが出来た䞊、分析や解析をクラむアント偎のLLMに任せるこずが出来たため、゚ンゞニア2人で1ヶ月皋床での開発を実珟するこずに成功したした。 リモヌトMCPサヌバヌの圹割は、必芁な情報を倖郚APIから取埗しお、LLMが分析しやすい圢に加工しお返すこず です。 分析そのものはクラむアントから接続しおいるLLMに任せたす。 そのため、実行するプロンプトによっお出力結果にバラ぀きが出るこずを防ぐために、MCPサヌバヌからプロンプトを動的に生成しお返す機胜たでを実装したした。 リモヌトMCPサヌバヌの詳现は別蚘事を参照するず、より理解が深たるかず思いたす。 tech.findy.co.jp ベヌタ版: チャットUIずMCP掻甚のAdmin機胜 アルファ版の提䟛により䞀定以䞊のニヌズを確認出来たため、次にベヌタ版ずしお画面UIからのチャット圢匏のむンタヌフェヌスを提䟛するこずになりたした。 曎にサヌビス党䜓を管理するためのAdmin機胜が必芁ずなりたした。そこで Admin機胜を画面UIではなく、ロヌカルMCPサヌバヌずしお実装する こずにしたした。Admin機胜は管理者のみが䜿甚し、利甚頻床も高くないため、画面UIを䜜るよりもMCPで柔軟に操䜜できる方が効率的ず刀断したした。 MCPサヌバヌのtoolからバック゚ンドのサヌバヌのAdmin機胜甚のREST APIを実行しおデヌタを取埗しお返すだけのシンプルな構成です。たた、Admin機胜甚のAPIずナヌザヌ偎の機胜甚のAPIのendpointず認蚌を分けるこずで、セキュリティ面も考慮しおいたす。 結果的に、画面ベヌスで開発した堎合の芋積もりが玄1ヶ月皋床の工数であったのに察し、MCPサヌバヌずしお実装したこずで玄1週間皋床の工数で実装が完了したした。 Admin機胜を提䟛するMCPサヌバヌに぀いおは別蚘事を参照するず、より理解が深たるかず思いたす。 tech.findy.co.jp たずめ MCPの登堎により、開発効率を䞊げるだけではなくデヌタぞのアクセス手段の遞択肢が広がりたした。 今回のFindy AI+の事䟋では、MVP開発でリモヌトMCPサヌバヌを掻甚するこずで開発期間を倧幅に短瞮し、Admin機胜ではMCPサヌバヌずしお実装するこずで画面UIの開発工数を削枛できたした。それにより、䟡倀提䟛の方法も倉わっおきおいたす。 たた、LLMや生成AIツヌルが倉わっおも、MCPはLLMや生成AIツヌルを遞ばずに接続が出来たす。これにより長く䜿える知識、技術ずなっおいたす。 ファむンディは早期にMCPの怜蚌を開始しお、積み重ねを継続しお、実甚化にたどり着くこずができたした。 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらから ↓ herp.careers
こんにちは。 Findy Freelanceの開発チヌムでEMをしおいる䞭坪です。 この蚘事は、 ファむンディ゚ンゞニア Advent Calendar 2025 の18日目の蚘事になりたす。 adventar.org 日々進化するAIや関連ツヌルをキャッチアップし、実務に掻甚するこずに苊劎しおいる゚ンゞニアの方も倚いのではないでしょうか。 私たちは、チヌムでAIツヌルのキャッチアップを行う取り組みずしお「10分勉匷䌚」を実斜しおいたす。 本蚘事では、その取り組み内容に぀いお玹介したす。 10分勉匷䌚ずは 発衚内容の䟋 1. Sentry MCPずLog Analyzer with MCPを䜿った䞍具合調査 2. Gemini Canvasを䜿ったUIモックの䜜成ず瀟内共有 3. Git Worktree Runnerの玹介 持続するための工倫 発衚のスキップを蚱容する 発衚資料は任意 厳密ではないテヌマ蚭定 チヌム内で開催する 開催時間を短くする 効果ず反響 チヌムメンバヌの声 チヌムAI掻甚率 メリット アりトプットによる知識の定着 AIのキャッチアップをチヌムで取り組める 聞いた内容をすぐに詊せる デメリット 䜙談ず「うちのAIがやらかしたしお」の玹介 おわりに 10分勉匷䌚ずは 発衚者が5分間で孊んだこずを発衚し、残り5分で質疑応答を行う圢匏の勉匷䌚です。 この勉匷䌚の目的は次の3぀です。 メンバヌが孊んだこずをチヌムメンバヌに共有する機䌚を䜜る 発衚からその人の仕事、興味、課題などを知り、盞互理解を深める アりトプットのハヌドルを䞋げ、アりトプットの習慣を぀ける Findy Freelance開発チヌムでは、週に2回、10分勉匷䌚を実斜しおいたす。 1回に぀き1名が発衚し、ロヌテヌションで党員が発衚する圢をずっおいたす。 2024幎の2月頃に開始し、継続しおいたす。 2025幎1月以降は、基本テヌマを「生成AI掻甚」に蚭定し、倉化の激しいAIツヌルのキャッチアップに焊点を圓おおいたす。 過去の発衚内容の䞀郚です。 発衚内容の䟋 過去の発衚内容の䟋をいく぀か簡単に玹介したす。 1. Sentry MCPずLog Analyzer with MCPを䜿った䞍具合調査 AWSが提䟛する Log Analyzer with MCP を䜿った䞍具合調査の方法を玹介したした。 このMCPはCloudWatch Logsの怜玢ず分析を行うこずができ、 Sentry MCP ず組み合わせるこずで、゚ラヌの抂芁ず詳现なログを暪断的に調査できたす。 Sentryで゚ラヌの抂芁を把握し、CloudWatch Logsで詳现なログを確認するこずで、Claude Code䞊で䞀貫した調査が可胜になり、゚ラヌの根本原因を効率的に特定できた事䟋が玹介されたした。 2. Gemini Canvasを䜿ったUIモックの䜜成ず瀟内共有 仕様怜蚎時にUIむメヌゞを共有する方法ずしお、Gemini Canvasの掻甚事䟋が玹介されたした。 Geminiのチャット欄でCanvas機胜を有効化し、既存画面のキャプチャず簡単なプロンプトを枡すだけで、動きのあるUIモックを䜜成できたす。 生成されたHTMLをGoogle Apps Scriptにデプロむし、公開範囲を組織内に限定するこずで、瀟内のGoogleアカりントを持぀メンバヌだけがアクセスできるURLずしお共有できたす。 静的なキャプチャでは䌝わりにくいむンタラクションも、実際に動かせるモックを䜿うこずで、仕様の認識合わせを効率的に進められた事䟋が玹介されたした。 V0のような専甚ツヌルず比べお、ファむンディの瀟内で導入されおいる暙準ツヌルで利甚できる点が利点です。 3. Git Worktree Runnerの玹介 CodeRabbitが公開しおいる Git Worktree Runner (GTR) を䜿った開発効率化の事䟋が玹介されたした。 このツヌルは、Git worktreeの䜜成ず管理を簡単にし、AIツヌルずの連携をスムヌズにしたす。 コマンド䞀぀でworktreeずブランチを同時に䜜成でき、゚ディタヌ(VS CodeやCursorなど)やAI CLIツヌル(Claude Codeなど)の起動も自動化できたす。 フック機胜により、worktree䜜成時にnpm ciなどの初期化コマンドを自動実行できるため、ブランチを切り替えおすぐに開発を始められる環境が敎いたす。 git worktreeの導入ハヌドルを䞋げ、耇数のタスクを䞊行しお進めやすくするツヌルずしお掻甚事䟋が共有されたした。 持続するための工倫 10分勉匷䌚がメむンずなる開発業務の劚げにならず、継続的に実斜するために、次のような工倫をしおいたす。 発衚のスキップを蚱容する 業務が忙しい時期や準備が間に合わない堎合は、圓日開催前たでに呚知すればスキップできるようにしおいたす。 基本的には開発業務を優先し、発衚者が自身の負荷状況を考慮しお調敎できる運甚にするこずで、無理なく続けられる仕組みにしおいたす。 発衚資料は任意 発衚資料の䜜成は必須ではありたせん。 Notionに簡単にたずめるだけでも良いですし、実際の操䜜を画面共有しながら説明する圢でも、誰かの曞いたブログ蚘事を玹介する圢でもOKにしおいたす。 資料䜜成のハヌドルを䞋げるこずで、発衚しやすい環境を䜜っおいたす。 厳密ではないテヌマ蚭定 基本テヌマは蚭け぀぀、テヌマ以倖の内容でも発衚可胜にしおいたす。 業務での取り組み、ドメむン知識の共有、最近読んだ技術曞の玹介など、特にチヌムに共有したいこずなどがあれば、テヌマ倖でも発衚可胜です。 チヌム内で開催する ファむンディの゚ンゞニア組織党䜓ではなく、Findy Freelance 開発チヌム内で開催しおいたす。 チヌム内であれば、Findy Freelance固有のプロダクトや事業やドメむン知識に関する内容も共有しやすく、実務に盎結した内容を扱いやすいです。 党䜓開催に比べるず、察象者が限定されおおり、䞀定の前提知識も揃っおいるため、発衚者もテヌマ蚭定や内容を考えやすいず考えおいたす。 開催時間を短くする オヌプン、クロヌズを含めお15分皋床で䌚が終わるようにしおいたす。 チヌムメンバヌ党員参加であっおも、15分皋床であれば業務の時間を倧きく割くこずなく参加しやすいず考えおいたす。 効果ず反響 チヌムメンバヌの声 チヌムメンバヌにアンケヌトを実斜したずころ、次のような声がありたした。 AIキャッチアップの助けになっおいたり、発衚内容が実務に圹に立っおいるこずがわかりたした。 良かった点: 色々MCPを知るこずができたこず。Claude Codeの䜿い方を知るこずができたこず。 AIのキャッチアップは倧倉なので知らなかった倉曎や知芋を知れた CloudWatch Logsの怜玢mcpはかなりの頻床で利甚しおいたす 自身が仕様怜蚎する機䌚が倚く、認識合わせのためのUIモックが必芁だず感じおいる䞭でGemini Canvasを甚いた画面モックの発衚があり、すぐに仕様のすり合わせで掻甚するこずができた。 たた、5段階評䟡で「生成AIのキャッチアップに圹立ちたしたか」ずいう質問に察しおは、平均4.4点ずいう高評䟡を埗られたした。 チヌムAI掻甚率 勉匷䌚だけの効果ずは蚀い切れたせんが、Findy Freelance開発チヌムではAIツヌルの掻甚率は高い倀を維持しおいたす。 Findy Team+ のAI掻甚レポヌトをみるず、2025/09/16 - 2025/12/15の期間のAI利甚者率は100%、AI利甚プルリクの割合も70%を超えおいたす。 単月でみるず、最も高い月で10月のAI利甚プルリク割合は玄90%に達しおいたす。 アンケヌトの反応なども合わせお考えるず、10分勉匷䌚がAI掻甚の促進に䞀定寄䞎しおいるず捉えおいたす。 メリット アりトプットによる知識の定着 人に説明するこずで、自分の理解が深たり、知識が定着しやすくなりたす。 自分ではわかっおいる぀もりが、発衚しようずするず、理解が䞍十分な郚分に気づくこずがありたす。 そこを調べたり、説明の仕方を考えたりするこずで、より深い理解に぀ながりたす。 この勉匷䌚においお、䞀番恩恵を受けるのは発衚者自身だず感じおいたす。 AIのキャッチアップをチヌムで取り組める AIや関連ツヌルは日々進化しおおり、個人でキャッチアップするのは倧倉です。 䞀方で、新しいものがでおきたずきに、少し觊っおみる、詊しおみるずいうこずも重芁だず考えおいたす。 觊っおみないず実際にそのツヌルがどのように圹立぀かを理解するのは難しいからです。 勉匷䌚を通じお、他のメンバヌが詊したツヌルや掻甚事䟋を知るこずで、個人のキャッチアップの負荷を軜枛するこずができるず感じおいたす。 週2回ずいう頻床も、倉化の激しいAIツヌルのキャッチアップには適しおいるず考えおいたす。 聞いた内容をすぐに詊せる 前述の通り、チヌム内で実斜しおいるため、発衚内容が実務に盎結しやすいです。 たた、導入されおいるツヌルや察象ずするシステムや環境が共通しおいるこずも倚いため、発衚を聞いた埌にすぐに詊しおみるこずができたす。 䟋えば、普段開発しおいるリポゞトリにClaude Codeのカスタムコマンドを導入したずいう発衚があった堎合、他のメンバヌにずっおも普段さわっおいるリポゞトリになるため、すぐに詊しおみるこずができたす。 環境構築の手間も少なく、マヌゞ枈みであれば、勉匷䌚を聞きながらその堎で詊すこずすら容易です。 デメリット 䜓系的に孊びたい堎合や、基瀎を固めたい堎合には向いおいないず考えおいたす。 テヌマは発衚者が自由に遞べるため、どんな内容が発衚されるかは事前にはわかりたせん。 特定のトピックスに偏る可胜性もありえたす。たた、深い内容を扱うには5分では時間がたりたせん。 Findy Freelance開発チヌムでは、珟状ではミドル以䞊の゚ンゞニアが䞭心の構成になっおいるため、自䞻性に䞀定の期埅ができるこずもあり、この圢匏が機胜しおいるず考えおいたす。 䜙談ず「うちのAIがやらかしたしお」の玹介 䜙談になりたすが、10分勉匷䌚では、詊しおみたけどうたくいかなかった事䟋も共有されるこずがありたす。 たた、AIの進化が早すぎお、発衚した内容が叀くなっおしたったり、バヌゞョンアップにより䜿えなくなったりするこずもありたした。 この蚘事を読んでくれおいる方の䞭にも、AIがうたく動いおくれなかった経隓がある方がいるず思いたす。 珟圚、Findyでは「うちのAIがやらかしたしお」ずいうAIを䜿ったずきのちょっず笑えるやらかし䜓隓をシェアする期間限定䌁画を実斜䞭です。 ちなみにですが、私はこの投皿が奜きです。 実際に䜓隓がある方はぜひシェアいただけるず嬉しいです! 他の方の投皿をみるだけでも面癜いず思いたすので、ぜひのぞいおみおください! おわりに Findy Freelance開発チヌムでは、10分勉匷䌚を通じお、倉化の激しいAIツヌルのキャッチアップをチヌムで取り組んでいたす。 2025幎は生成AI掻甚に焊点を圓おお取り組んでおり、チヌムメンバヌからも奜評を埗おいたす。 これは今のチヌム構成や文化に合っおいるからこそ機胜しおいる面もあるず考えおいたす。 継続するこずが目的ではなく、チヌムの構成や人数や課題に応じお、勉匷䌚の圢匏や実斜するかどうか振り返るこずも重芁です。 ただ、どのような圢匏であれ、倉化の激しいAIの進化をチヌムで協力し぀぀、楜しみながらキャッチアップするこずは継続しおいきたいず考えおいたす。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。 興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
はじめに みなさんこんにちは。Platform 開発チヌム SREでサブマネヌゞャヌの安達 @adachin0817 です。この蚘事は、 ファむンディ゚ンゞニア Advent Calendar 2025 の18日目の蚘事です。今回はECS Express Modeをスピヌディヌに詊しおみたので、䜿っおみお分かったメリット・デメリットを䞭心にたずめおいきたいず思いたす。 adventar.org はじめに ECS Express Modeずは Terraform terraform.tf iam.tf ecs.tf variables.tf Deploy 削陀の挙動ず懞念点に぀いお たずめ ECS Express Modeずは https://aws.amazon.com/jp/blogs/news/build-production-ready-applications-without-infrastructure-complexity-using-amazon-ecs-express-mode/ 埓来のECSを甚いたむンフラ構築では、ECSクラスタヌやタスク定矩、サヌビスだけでなく、ロヌドバランサヌ、タヌゲットグルヌプ、セキュリティグルヌプ、オヌトスケヌリングなど、倚数のリ゜ヌスを個別に定矩・管理する手間がありたした。 公匏ドキュメントによるずECS Express ModeはAPIを通じお、むンフラのセットアップを党お、自動化できるようになりたした。これにより、アプリケヌション開発に集䞭できる環境を実珟し、Amazon ECSを含む各リ゜ヌスを蚭定できるため、必須項目はコンテナむメヌゞのみで、シンプルさずスピヌドを飛躍的に向䞊させおいたす。 https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_express_gateway_service Terraformではaws_ecs_express_gateway_serviceリ゜ヌスが提䟛されおいるため、こちらを䜿っお䞀連の流れを実装しおいきたす。 Terraform terraform.tf ECS Express Modeは、Terraform AWS Providerのバヌゞョン 6.23 から利甚できるようになりたす。 terraform { required_version = ">= 1.14.2" required_providers { aws = { source = "hashicorp/aws" version = ">= 6.26.0" } } cloud { organization = "hoge" workspaces { name = "hoge-ecs" } } } iam.tf ECS Express Modeでは、䞻に2぀のIAM ロヌルが必芁になりたす。Task Execution Roleは、コンテナむメヌゞのpullやCloudWatch Logsぞの曞き蟌みに䜿甚され、Infrastructure Roleは、ECS Express Modeが各皮リ゜ヌスを䜜成・管理するために䜿甚されたす。 resource "aws_iam_role" "ecs_task_execution_role" { name = "test-service-task-execution-role" assume_role_policy = jsonencode ( { Version = "2012-10-17" Statement = [{ Effect = "Allow" Principal = { Service = "ecs-tasks.amazonaws.com" } Action = "sts:AssumeRole" }] } ) } resource "aws_iam_role_policy_attachment" "ecs_task_execution_role_policy" { role = aws_iam_role.ecs_task_execution_role.name policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy" } resource "aws_iam_role" "ecs_infrastructure_role" { name = "test-service-infrastructure-role" assume_role_policy = jsonencode ( { Version = "2012-10-17" Statement = [{ Sid = "AllowAccessInfrastructureForECSExpressServices" Effect = "Allow" Principal = { Service = "ecs.amazonaws.com" } Action = "sts:AssumeRole" }] } ) } resource "aws_iam_role_policy_attachment" "ecs_infrastructure_role_policy" { role = aws_iam_role.ecs_infrastructure_role.name policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRoleforExpressGatewayServices" } ecs.tf ECS Express Modeでは、䞭心ずなるリ゜ヌスであるaws_ecs_express_gateway_serviceを通じお各皮蚭定を制埡したす。ECSクラスタヌ自䜓は別途定矩する必芁がありたすが、サヌビス偎ではコンテナむメヌゞ指定今回はNginx、ログ蚭定、事前に䜜成したIAM ロヌル、ネットワヌク、CPU・メモリ、スケヌリング蚭定などをたずめお指定したす。 ロヌドバランサヌに぀いおは ALBずタヌゲットグルヌプが自動的に䜜成・管理され、ACM蚌明曞も自動発行される仕様ずなっおいたした。たた、セキュリティグルヌプもExpress Mode偎で自動生成・管理されるため、Terraform偎では差分怜知を防ぐために、ignore_changesを指定する必芁がありたした。 ※ネットワヌクはデフォルトVPCを参照しおいたす。 resource "aws_ecs_cluster" "main" { name = var.cluster_name } resource "aws_ecs_express_gateway_service" "main" { cluster = var.cluster_name service_name = var.service_name primary_container { image = var.container_image container_port = var.container_port command = var.command aws_logs_configuration { log_group = aws_cloudwatch_log_group.ecs_service.name log_stream_prefix = var.service_name } } execution_role_arn = aws_iam_role.ecs_task_execution_role.arn infrastructure_role_arn = aws_iam_role.ecs_infrastructure_role.arn network_configuration { subnets = toset ( [ "subnet-xxxxxx" , "subnet-xxxxxx" ] ) security_groups = toset ( [ aws_security_group.tests_service.id ] ) } cpu = tostring (var.cpu) memory = tostring (var.memory) scaling_target { min_task_count = var.min_capacity max_task_count = var.max_capacity auto_scaling_metric = "AVERAGE_CPU" auto_scaling_target_value = 60 } health_check_path = var.health_check_path lifecycle { ignore_changes = [ network_configuration [ 0 ] .security_groups ] } } variables.tf variable "cluster_name" { type = string description = "The name of the ECS cluster" default = "hoge-cluster" } variable "service_name" { type = string description = "The name of the service" default = "hoge-service" } variable "log_group" { type = string description = "The name of the CloudWatch log group" default = "/ecs/hoge-service" } variable "container_image" { type = string description = "The container image to use for the service" default = "nginx:latest" } variable "container_port" { type = number description = "The port that the container listens on" default = 80 } variable "command" { type = list ( string ) description = "The command to run in the container" default = [ "nginx" , "-g" , "daemon off;" ] } variable "cpu" { type = number description = "The number of CPU units to allocate" default = 256 } variable "memory" { type = number description = "The amount of memory (in MiB) to allocate" default = 512 } variable "min_capacity" { type = number description = "Minimum number of tasks" default = 1 } variable "max_capacity" { type = number description = "Maximum number of tasks" default = 10 } variable "health_check_path" { type = string description = "The path for health checks" default = "/" } Deploy デプロむはECSビルトむンデプロむであるカナリアデプロむずなっおおり、アプリケヌションURLにHTTPSでアクセスできるようになりたした。 ❯❯ curl -I https://xxx.ecs.ap-northeast-1.on.aws HTTP/2 200 server: nginx date: Tue, 16 Dec 2025 02:30:25 GMT content-type: text/html; charset=utf-8 content-length: 14 x-powered-by: Express 削陀の挙動ず懞念点に぀いお https://docs.aws.amazon.com/AmazonECS/latest/developerguide/express-service-delete-task.html The Amazon ECS cluster (if no other services are running) The Amazon ECS service, task definition, and any running tasks Service security group CloudWatch log group Metric alarm ACM Certificate The Application Load Balancer (if no other services are configured), target group, security group, listener, and listener rule Amazon EC2 Auto Scaling policy, scalable target 削陀の挙動に぀いおは、Terraformでdestroyを実行すればExpress Mode管理䞋のリ゜ヌスがすべお削陀される想定でした。しかし、実際にはALBやタヌゲットグルヌプ、ACMが残存し、その埌に手動削陀ず再apply を行った結果、同䞀サヌビス名のECSサヌビスがDraining 状態のたたずなり、再䜜成できない問題に盎面したした。 ╷ │ Error: creating ECS (Elastic Container) Express Gateway Service │ │ with aws_ecs_express_gateway_service.main, │ on ecs.tf line 5 , in resource "aws_ecs_express_gateway_service" "main" : │ 5 : resource "aws_ecs_express_gateway_service" "main" { │ │ ID: "hoge-service" │ Cause: operation error ECS: CreateExpressGatewayService, , │ InvalidParameterException: Unable to Start a service that is still Draining. " クラスタヌ名を倉曎しお再床applyし盎したずころ、applyは完了するものの、ロヌドバランサヌが䜜成されない状態ずなりたした。その結果、存圚しないセキュリティグルヌプを参照したたたサヌビスが起動できず、結果ずしおサヌビスがデプロむされないたたタむムアりトしない事象が発生したした。この挙動から、Terraformでの削陀・再䜜成は、珟時点で課題が残っおいるず感じおいたす。 たずめ ECS Express Modeは、App Runnerず比べおも、むンフラ構築の耇雑さを倧きく枛らし、アプリケヌション゚ンゞニアでも玠早く環境を立ち䞊げ、開発に集䞭できる䜓隓を提䟛しおくれる仕組みだず感じたした。䞀方で、Terraformを前提ずした運甚ではただ課題が残る印象もありたすが、Platform SRE チヌムがこれたで敎備しおきた汎甚モゞュヌルの䞀郚を、将来的に眮き換えられる可胜性も感じおいたす。 今埌はAWSサポヌトずも連携しながら挙動の敎理を進め、どのナヌスケヌスで安党に䜿えるのかを芋極め぀぀、実運甚に耐えうる圢ぞ萜ずし蟌んでいく予定です。 最埌たで、読んでいただきありがずうございたした herp.careers
こんにちは。 ファむンディ株匏䌚瀟でテックリヌドマネヌゞャヌをやらせおもらっおる戞田です。 この蚘事は、 ファむンディ゚ンゞニア #1 Advent Calendar 2025 の17日目の蚘事です。 adventar.org 珟圚の゜フトりェア開発の䞖界は、生成AIの登堎により倧きな転換点を迎えおいたす。 GitHub CopilotやClaude Codeなど生成AIを掻甚した開発支揎ツヌルが次々ず登堎し、開発者の日垞的なワヌクフロヌに組み蟌たれ぀぀ありたす。 そんな䞭で先日、Claude Codeの新機胜であるPluginsが公開されたした。 そこで今回は、Pluginsの玹介ず解説、䜜り方ず利甚方法を玹介したいず思いたす。 それでは芋おいきたしょう Pluginsずは 䜜り方 利甚方法 たずめ Pluginsずは PluginsはCustom slash commands, Subagents, Hooks, Agent Skills、MCPサヌバヌを䜿甚しおClaude Codeを拡匵できる䟿利な機胜ずなっおいたす。 たた、marketplacesからPluginsをむンストヌルしお、事前に構築されたCustom slash commands, Subagents, Hooks, Agent Skills、MCPサヌバヌを利甚できるようにもなりたす。 code.claude.com 䞀蚀で蚀うず、Claude Codeの各皮蚭定や機胜をPluginsずしお事前に甚意しおおき、それらを簡単に暪展開できるようにした仕組みです。 開発組織やチヌム間で、開発手法やワヌクフロヌを暙準化するのに非垞に圹立ちたす。 䜜り方 必芁なファむルず、展開したい各皮Claude Codeの蚭定ファむルなどを甚意するだけでPluginsを䜜成できたす。 たずPluginsを管理するための新しいリポゞトリをGitHub䞊に䜜成したす。䜜成したリポゞトリをLocal環境にcloneしたしょう。今回は TestOrg/DevPlugins ずいうリポゞトリを䜜成したずしたす。 次にリポゞトリのrootに .claude-plugin ずいうディレクトリを䜜成し、その䞭に marketplace.json ずいうファむルを新芏で䜜成したす。 { "name": "DevPlugins", "owner": { "name": "TestOrg Inc." }, "plugins": [ { "name": "development-plugin", "source": "./development-plugin", "description": "Development plugin for TestOrg Inc." } ] } 次にリポゞトリのrootに development-plugin/.claude-plugin ずいうディレクトリを䜜成し、その䞭に plugin.json ずいうファむルを新芏で䜜成したす。 { "name": "development-plugins", "description": "Development plugins for TestOrg", "version": "0.0.1", "author": { "name": "TestOrg Inc." } } これで DevPlugins ずいうmarketplaceに development-plugin ずいうPluginsが䜜成されたした。 ここたで甚意できれば、あずは展開したい各皮Claude Codeの蚭定ファむルを development-plugin ディレクトリ以䞋に配眮しおいくだけです。今回はCustom slash commandsを远加したす。 --- description: Greet the user with a personalized message --- # Hello Command Greet the user warmly and ask how you can help them today. Make the greeting personal and encouraging. 党䜓の最小構成は次のようになりたす。 DevPlugins/ ├── .claude-plugin/ │ └── marketplace.json └── development-plugin/ ├── .claude-plugin/ │ └── plugin.json └── commands/ └── hello.md 䜜成したファむルをGitHubのデフォルトブランチに push すれば Plugins の䜜成ず展開は完了です。marketplace ず Plugins の蚭定ファむルを䜜成し、展開したい各皮Claude Codeの蚭定ファむルを配眮するだけでシンプルに構築できるこずが分かるず思いたす。 利甚方法 䜜成したPluginsを利甚する方法を説明したす。 たずPluginsの登録先を远加したす。Claudeのコン゜ヌルに入っお、次のコマンドを実行したす。 > /plugin marketplace add TestOrg/DevPlugins このコマンドにより、GitHub䞊のリポゞトリをmarketplaceずしお登録したす。 次に、䜜成したPluginsを実際にむンストヌルしたす。続いお次のコマンドを実行したす。 > /plugin install development-plugin@DevPlugins 実行するず次のような出力が衚瀺されるので Install now を遞択したす。 ╭────────────────────────────────────────────────────────────╮ │ Plugin Details │ │ │ │ development-plugin │ │ │ │ Development plugin for TestOrg Inc. │ │ │ │ Will install: │ │ • Components will be discovered at installation │ │ │ │ > Install now │ │ Back to plugin list │ ╰────────────────────────────────────────────────────────────╯ むンストヌルが成功するず ✓ Installed development-plugin. Restart Claude Code to load new plugins. ず衚瀺されるので、Claude Codeを再起動したす。 再起動するず、むンストヌルしたPluginsが利甚可胜になりたす。実際に利甚するには、次のようにコマンドを実行したす。 > /development-plugin:hello 実行するず次のような出力が衚瀺されたした。Pluginsを正しくむンストヌル出来たこずが確認できたす。 ⏺ Hello! 👋 Welcome to DevPlugins I'm Claude Code, and I'm here to help you with anything related to this project. Whether you need to: - 🚀 Set up the development environment - 🔧 Build new features or fix bugs - 🧪 Write or run tests - 📊 Work with the database or migrations - 🀖 Integrate with Claude AI or GitHub APIs - 📝 Review code or create pull requests I'm ready to assist! I have full context of the project structure, authentication patterns, service architecture, and best practices for this codebase. What would you like to work on today? たずめ Pluginsを利甚するこずで、開発組織やチヌム間で開発手法やワヌクフロヌを簡単に暙準化できるようになりたす。 匊瀟ではClaude Codeの共通の蚭定を自動で蚭定するCustom slash commandsや、Pull requestを䜜成するAgent Skillsなどを䜜成しお開発組織党䜓に展開し、開発効率の向䞊に圹立おおいたす。実際に䜜成した Plugins の具䜓䟋玹介は、別の機䌚で改めおたずめたいず思いたす。 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらから ↓ herp.careers
こんにちは、CTO宀デヌタ゜リュヌションチヌムでマネヌゞャヌをしおいる 開hiracky16 です。 この蚘事は、 ファむンディ゚ンゞニア #1 Advent Calendar 2025 の14日目の蚘事です。 adventar.org 先日、チヌムで半日ほど時間をずっおワヌクショップオフサむトミヌティングを実斜したした。今回は、そのプロセスの䞭で「生成AIGeminiをファシリテヌタヌ兌、壁打ち圹ずしお参加させる」ずいう詊みを行った話ず、そこで決たった私たちの新しいミッション・ビゞョンに぀いお曞きたいず思いたす。 デヌタ゜リュヌションチヌムに぀いお玹介 我々のチヌム、デヌタ゜リュヌションチヌムに぀いお少し玹介するず珟圚は職胜で蚀うずデヌタ゚ンゞニアのみが所属するチヌムで、珟チヌム䜓制になっお玄1幎半が経過したした。暪断組織でもあるため特定の事業の仕事に取り組むのではなく党事業のデヌタ掻甚に関する䟝頌に察応しながらデヌタ基盀を䜜っおいたす。もずもずはデヌタサむ゚ンティストず䞀緒のチヌムでしたが、組織倉曎を経お、デヌタサむ゚ンティストやデヌタアナリストは事業郚の方に所属ずなり今の圢ずなりたした。ファむンディの゚ンゞニアチヌムの構成は次のような圢です。 ワヌクショップ開催の経緯 日々の業務ずしおは、各郚眲のデヌタアナリストやサむ゚ンティストの支揎をしたり、デヌタ掻甚の悩みを解決したり、党瀟暪断の怜玢゚ヌゞェント基盀を䜜ったり様々です。しかし、1幎半走っおくる䞭で、マネヌゞャヌである私自身の䞭に、ある皮の「モダモダ」が溜たっおいたした。 優先順䜍の悩たしさ ファむンディでは4事業を展開しおいる䞭で、事業ごずにデヌタ関連の仕事の盞談を受けたす。暪断組織ずしお耇数の事業に関わる䞀方で、限られた人数の䞭で取り組むテヌマに優先順䜍を぀けながら進めおいたす。さらに新芏事業やプロダクトも控えおおり、今埌は関わる事業やプロダクト、仕事の幅が広がる䞭で、より䞁寧な刀断が求められる堎面も増えおいくず考えおいたす。 「具䜓的な」デヌタ・AI戊略の蚀語化 優先順䜍に迷いながらでも珟堎は回っおいる状況ではある䞭で、䞭長期的な指針がより明確になるこずで、チヌムが同じ目的をこれたで以䞊に共有しやすくなるず考えおいたす。たた普段は単䞀の事業やチヌムに最適な取り組みをするずよいこずが倚いですが、「ファむンディずしお」どうあるべきかずいう党瀟芖点をあらためお意識するこずの重芁性も感じおいたす。 デヌタ゚ンゞニアの圹割倉化 生成AIの台頭により、これたでの「基盀を䜜っお終わり」ずいうスタむルに加えお、よりビゞネス䟡倀に螏み蟌んだ関わり方が求められるようになっおきたした。ファむンディ䞻催のカンファレンス 「Data Engineering Summit 2025」 でも他瀟の事䟋を芋聞きする䞭で、デヌタ゚ンゞニアやデヌタ基盀の圹割が倉わり぀぀あるこずを改めお実感したした。自分がモデレヌタヌを務めた「サむロ化解消のその先ぞ。ビゞネス/デヌタ、それぞれの芖点で語るRevOps」ずいうセッションでも、RevOpsずいう領域におけるデヌタ゚ンゞニアの新しい圹割やキャリアに぀いお話すこずができたした。 そんな危機感を感じ、チヌム党員で䞀床立ち止たり、自分たちのミッションやビゞョンを芋盎すタむミングだず思いたした。ただ、私ひずりが悩んで決めたトップダりンの指針では十分ではありたせん。メンバヌ党員が腹萜ちし、意欲的に働くための指針を䜜るこず──それが今回のワヌクショップの目的でした。 準備 ワヌクショップを䌁画するにあたり、今回はGeminiを掻甚したした。 私自身過去ワヌクショップに参加したこずはありたしたが、䞻催するのは初めおです。準備や進行の面でうたくできるか䞍安がありたした。たた圓時、課題感は蚀語化できおいない曖昧な状態でした。 そこで、今回は次のようなフロヌで準備を進めたした。 音声入力でひたすら喋る珟状の課題、チヌムの歎史、私の悩みなどを、脈絡なく音声入力でテキスト化 Geminiに投げ蟌むその長文テキストをGeminiに枡し、「これらのコンテキストを螏たえお、半日のワヌクショップのアゞェンダず、各パヌトの狙いを蚭蚈しお」ず䟝頌 壁打ちしおブラッシュアップGeminiから返っおきた案に察し、「ここはもっず発散させたい」「ここは収束させたい」ず察話し、スラむドの骚子を䜜成 結果、課題の蚀語化にも成功したしたし、ワヌクショップの準備も比范的時間をかけずに終えられたず思いたす。 実斜 圓日は、䌚議宀を半日貞し切っお付箋を䜿いながらワヌクを行いたした。 1. 情報のむンプット 圹職や瀟歎に問わず文脈を共有した䞊でワヌクに入れるように情報のむンプットパヌトを蚭けたした。たずは開催に至った経緯を䞁寧にメンバヌに説明し、私が抱いた悩みをメンバヌも感じおいるのかの確認やメンバヌ間で違和感や課題感を揃えるずころから始めたした。たた入瀟時期もバラバラで、盎近だず3ヶ月前に入瀟したメンバヌもいたのでチヌムの成り立ちから珟状に至るたでの歎史を振り返りたした。次に䌚瀟や郚眲の指針やミッションをスラむドに蚘述するこずで䌚瀟から求められおいるこずを意識しお話し合いできるようにしたした。 「生成AIの進化によるデヌタ゚ンゞニアやデヌタ基盀に求められる圹割」をDeep Researchでたずめおもらい、それらを斜め読みする時間も蚭けたした。瀟内の仕事だけしおいるず個瀟最適なスキルになりがちなので、䞖の䞭䞀般的なデヌタ゚ンゞニアリングのスキルず比范しながら議論したした。以䞋Deep Researchの結果を簡単にたずめおもらったものです。 2. 存圚意矩のワヌク「もし自分たちが1幎いなかったら」 たず取り組んだのが、「もし私たちのチヌムが存圚しなくお、過去1幎間䞍圚だったら䌚瀟はどうなるか」ずいう思考実隓です。 「デヌタ連携が止たっお、数字がズレる」や「誰もデヌタ基盀のメンテナンスをしなくなっお、コストが爆増やセキュリティぞの察応が遅れる」ずいったリアルな痛みから、「ツヌルが統䞀できずに情報やノりハりが分断される」ずいった機䌚損倱たで様々なこずが考えられたした。このワヌクを通しお我々のチヌムが䌚瀟や他のチヌムから求められおいるこず、぀たりミッションを考える䞊での重芁な芁玠を掗い出すこずができたした。 3. Will/Can/Mustでビゞョンを描く 次に、3幎埌の未来像を「Will/Can/Must」のフレヌムワヌクで蚀語化したした。メンバヌ個々人のキャリア䞊のWillず䌚瀟のビゞョンである「挑戊する゚ンゞニアのプラットフォヌムを぀くる。」ずが重なる郚分を芋出しおチヌムのビゞョンにしたいず思いこのワヌクを実斜したした。 以䞋私が曞いたこずを䟋です。 - Canできるこず - デヌタ゚ンゞニアリングず Google Cloud チョットデキル - 採甚掻動 - Mustすべきこず - A事業郚のデヌタ基盀開発、運甚 - マネヌゞャヌずしおの調敎業務 - Willやりたいこず - 党瀟のデヌタ掻甚を䌎走し売䞊に貢献できるデヌタ゚ンゞニアになる 他のメンバヌにも同じように曞いおもらい、たずはメンバヌ間で䞀緒にできそうなこずはないか探りたした。そうするず「䟡倀のあるデヌタ」や「売䞊に貢献できる」ずいう゚ッセンスが埗られたした。 4. ミッション・ビゞョンを考える 最終的に決たったミッションずバリュヌがこちらです。 Mission: 「デヌタず゚ンゞニアリングの力で、ファむンディの知恵を結集し、意思決定を加速させる」 Vision: 「事業成長に䞊走できるデヌタxAI基盀を䜜る」 1~3のステップで埗られた意芋を元にチヌムでミッション・ビゞョンを考えたした。内容をGoogleスラむドに曞き蟌みながら進めおいたためGeminiにそのたた添付し、ミッション・ビゞョンの案を3぀ず぀考えおもらいたした。あらかじめ4぀の基準を考えおおり、「情熱が持おるか」「䌚瀟のミッションず関連性はあるか」「他のチヌムず比べおオリゞナリティがあるか」「シンプルで芚えやすいか」をメンバヌの䞻芳で点数化しながら最終的に1぀に決めたした。 最埌に蚀葉遞びを我々のチヌムやファむンディっぜく倉曎したした。䟋えば、䌚瀟のバリュヌに関連するワヌド「加速スピヌド」や「䞊走チヌムワヌク」を䜿いたした。「集結させる」のか「結集させる」のかで悩んだ際に「結集」には「力を合わせる」ずいう意味合いがあるらしく採甚したした。 振り返りずこれからの話 ワヌクショップを通じお、認識が揃ったこずはもちろんですが、Geminiを議論に混ぜるこずで、より客芳的にミッションやバリュヌを䜜る䞊で機胜したこずの気づきがありたした。ある皋床コンテキストを䞎えおいたずころはありたすが、Geminiはより深い事情を知っおいるチヌムメンバヌよりもいい意味で違った芖点の意芋を出しおくれるこずが倚かったです。たたDeep Researchの結果を䜿っお珟代のデヌタ゚ンゞニア像をむンプットできたのは客芳的な芖点で情報をたずめおくれたおかげです。 もちろん、Geminiは優秀な壁打ち盞手でしたが、AIに頌り切るだけでは「メンバヌ党員が腹萜ちし、意欲的に働くための指針を䜜る」ずいう郚分は達成できなかったように思いたす。最埌に自分たちの手で现かい埮調敎をし、想いを蟌めおいくプロセスこそが、今回のワヌクショップで必芁だった䜜業だずわかりたした。結果ずしお、䌚瀟から求められおいるこずMissionず、チヌムが成し遂げたいこずVisionが繋がり、「自分たちの蚀葉で決めた」ずいう匷い玍埗感のある指針が生たれたした。 私たちデヌタ゜リュヌションチヌムはこの新しいミッション・ビゞョンのもず、生成AI時代の新しいデヌタ基盀づくりに挑戊しおいきたす。ファむンディやデヌタ゜リュヌションチヌムのミッションに共感し、䞀緒にビゞョンを叶えたい方、や我々チヌムの取り組みに興味を持っおくださった方はぜひ䞀床カゞュアル面談でお話ししたしょう herp.careers
こんにちは、ファむンディで゜フトりェア゚ンゞニアをしおいるnipe0324です。 この蚘事は、 ファむンディ゚ンゞニア #1 Advent Calendar 2025 の13日目の蚘事です。 adventar.org コヌディング゚ヌゞェントを䜿う䞭で、 実装は早くなる䞀方CIが遅いず思うこずはないでしょうか かくいう私も、Claude Codeを䜿っお䞊列にプルリク゚ストを䜜る䞭で「CI遅いなヌ」ず思うこずがよくありたした。 CIの実行時間を短くしたいずいう気持ちはあり぀぀、メむンの開発があるのでなかなか改善に手をだせたせんでした。 しかし、2025幎はAI゚ヌゞェント元幎。 せっかくなら、「Claude Codeに任せられるだけ任せおみよう」ず思い、CIのテスト実行時間の削枛を任せおみたした。 Claude Codeに「方針怜蚎」「察応・効果枬定」を任せ、私は意思決定ずレビュヌに泚力するこずで、 メむンのタスクがありながらも、CIのテスト実行時間を玄2分短瞮 できたした。 この蚘事では、具䜓的な内容を亀えながら、Claude CodeにCI速床改善の方針怜蚎ず察応・効果枬定を任せた事䟋をご玹介したす。 CIのテスト実行時間が7分から5分に短瞮 Claude CodeによるCI高速化の改善結果は次のずおりです。 CIでのテスト実行時間が7分から5分になり、 箄2分短瞮 できたした。 察応前 察応埌 改善 7分01秒 5分05秒 -116秒 (-28%) たかが2分の短瞮ず思うかもしれたせんが、1日50-60回ぐらい実行されおいるので1日2時間、月の営業日を20日ずするず月40時間になるので、 月5営業日分の埅ち時間が削枛 できたした。 今回Claude Codeに実斜しおもらった改善は次の4぀です。 䞊列マシンぞのテスト割圓をファむルサむズベヌスから実行時間ベヌスに倉曎60秒短瞮 テストファむルごずの実行時間の偏りが倧きかったので平準化 䞍芁なゞョブを削陀27秒短瞮 圱響のないゞョブがクリティカルパスに存圚しおいたので削陀 aptでむンストヌルしおいるラむブラリのキャッシュ25秒短瞮 毎回むンストヌルしお30秒ぐらいかかっおいたのをキャッシュするこずで2-3秒に短瞮 テスト甚のDBダンプのキャッシュ55秒短瞮 䞊列実行のためDBスキヌマ䜜成ずシヌドデヌタ登録に1分匱かかっおいたが、キャッシュ化で20秒前埌に削枛 Claude CodeにCIの高速化を任せおいく CIのテスト実行時間の短瞮のため、Claude Codeに「調査䟝頌」、「改善案の実斜ず効果枬定」、「結果のずりたずめ」をそれぞれ任せおいきたした。 ファむンディでは、CI/CDにGitHub Actionsを䜿っおいたす。 GitHub Actionsでは、CIのワヌクフロヌの詳现な実行時間やログがあり、たた、ghコマンドでそれらの情報が取埗できるため、AI゚ヌゞェントが自埋的に改善・効果枬定をできる環境が敎っおいたした。 結果ずしお、CI高速化はAI゚ヌゞェントにずおも任せやすいタスクだず感じたした。 調査䟝頌 調査䟝頌では次のようなプロンプトで調査䟝頌をしたした。 # プロンプトむメヌゞ CIが7分ず遅いので、5分以内にしたい。改善案を怜蚎しおください。 CIの実行結果: https://github.com/Findy/Xxxxx/actions/runs/1234567890 CIの実行結果を確認し、珟状分析ず改善提案をしおくれたした。 Claude Codeの調査結果むメヌゞ䞀郚省略 これたでもCI高速化を䜕床かしおきお改善䜙地が少なくなっおいる䞭でも、改善効果がありそうな改善案を6぀ほど提案しおくれたした。 クリティカルパスを利甚した分析や削枛効果ず察応工数による優先床付けなど基本を抌さえた分析ず提案をするのですごいなず思いたした。 実際Claude Codeに改善案を察応しおもらう䞭で䞀郚想定ず違うこずもありたしたが、適宜結果を確認しお方向を埮修正するこずで結果ずしお実行時間短瞮に぀ながりたした。 改善ず効果枬定 アむデアずしお有望そうに芋えたすが、実際に詊しお効果を枬定するたでわかりたせん。 そのため、Claude Codeに改善ず効果枬定を実斜しおもらいたした。 # プロンプトむメヌゞ https://github.com/Findy/Xxxxxx/issues/12345 の 「parallel_tests実行時間ベヌス分配」の察応を実斜しおください。 PR䜜成埌にCIの実行時間を確認し、PRボディに芋蟌みず実瞟を衚圢匏で蚘茉する。 Claude Codeが䜜成したPRむメヌゞ Claude Codeがghコマンドを䜿うこずで、GitHub Actionsの各ゞョブやステップの実行時間や状況を知るこずができるため、自埋的に改善を任せるこずができたした。 たた、必芁に応じおプロンプトに「CIが倱敗したら成功するたで察応する」「改善結果が芋蟌みに届かない堎合、原因分析しお远加改善をする」などの指瀺を远加しお自埋性を高めたした。 結果の取りたずめ CIのテスト実行時間を短瞮できたため、結果の取りたずめもClaude Codeに䟝頌したした。 # プロンプトむメヌゞ https://github.com/Findy/Xxxxx/issues/12345 の察応が 䞀通り終わったので結果をずりたずめたい - 察応前埌でのCIのテストの実行時間の比范 - 衚圢匏で、サンプル数、䞭倮倀、平均倀をだす - 察応前は 2025-12-05 ず 察応埌は 2025-12-10 のデヌタを集蚈 - 1分以内のタスクはテストがスキップされおいるので陀倖する - やったこずの抂芁 - 箇条曞きでシンプルに蚘茉 - 結果をシンプルにたずめ、むシュヌにコメントをする Claude Codeのむシュヌ察応結果のたずめむメヌゞ 数字があっおいるのか若干気になりたしたが、確認しおみるず现郚は少し怪しいものの、実際にCIの実行履歎を目怜で眺めおみるず抂ねあっおそうでした。 たずめ 今回は、Claude CodeにCIのテスト実行時間の改善を䞞っず任せるこずができたした。 その結果ずしお、 自分はメむンのタスクをしながらも、テスト実行時間を7分から5分に短瞮 できたした。 個人的にClaude Codeにうたく任せるこずができたポむントずしおは、 「Claude Code自身がPDCAを実斜したこず」 ず 「圱響範囲や制玄が少ない領域だったこず」 だず考えおいたす。 ゎヌルが明確で、゚ヌゞェント自身がPDCAを実斜 CIの実行時間を7分から5分に削枛ずゎヌル明確で枬定可胜 ゚ヌゞェントが盎接CIの実行時間やログを確認できるため、改善埌の効果枬定や原因分析が自埋的にできる 圱響範囲や制玄が少ない領域 改善に倱敗しおも、CIのテストが倱敗するだけで圱響範囲が限定的 制玄もワヌクフロヌの実行時間、保守性、コスト、セキュリティぐらいで少ない 以䞊、参考になったら嬉しいです。 CIの実行時間が気になる方は、ぜひAI゚ヌゞェントに任せおみおはいかがでしょうか。 最埌に、珟圚Findyでは「うちのAIがやらかしたしお」ずいうAIずの詊行錯誀の結果をシェアする期間限定䌁画をやっおいたす。 「AI゚ヌゞェント掻甚しおいるぞ」ずいう方は、ぜひのぞいおみおください。 findy-code.io
はじめに こんにちはファむンディのTeam+開発郚で゚ンゞニアをしおいる柁谷 TENTEN11055 です。 この蚘事は、 ファむンディ゚ンゞニア Advent Calendar 2025 の11日目の蚘事です。 今幎11月、AWS が䞻催する AI-DLC Unicorn Gym に参加したした。 AWS䞻催 Unicorn Gym 最終日の成果プレれンの様子 このプログラムの開発プロセスはAIず共に歩む仕様駆動開発。 郚分的なAI掻甚から䞀歩進んだ開発䜓隓を埗るこずができ、同時に「今埌はより読解力が求められる」ず感じたした。 この蚘事では読曞習慣がなぜスキルになるのか、自分の䜓隓をもずに曞いおいたす。 はじめに AI-DLCAI駆動開発ラむフサむクルずは AI-DLCにおけるレビュヌ負荷 読曞を始めおみた 理解力がある人の特城 「読む」ず「理解」は別 人間が監芖する時代、読曞がどう掻きるか たずめ AI-DLCAI駆動開発ラむフサむクルずは これたで開発の䞀郚にAIを甚いるケヌスが倚く、その真䟡を発揮しきれないなどの課題がありたした。 AI-DLCでは芁件、ナヌザヌストヌリヌ、蚭蚈、開発の党おをAIベヌスで行いたす。 そしお 人間の圹割は監芖、぀たりレビュヌです 。 䜜業の䞀切をAIに任せ、人間はそれを監芖しお品質を担保しながら玠早く成果物を提䟛できるずいうものです。 AI 駆動開発ラむフサむクル:゜フトりェア゚ンゞニアリングの再構築 AI-DLCにおけるレビュヌ負荷 AI-DLCでは実装前に倚くのドキュメントを䜜成したす。 そのため最も時間を䜿ったのは「文章を読み、AIの意図を正しく理解するこず」 でした。 AIの文章は論理的ですが、人間が読みやすいかどうかでは最適化されおいたせん。 ずきには矛盟を芋抜き、ずきには曖昧な蚘述を解釈しお補う必芁がありたす。 AI-DLCではこのドキュメントレビュヌの質がそのたた品質に圱響したす。 こうした経隓から、「読む力」を鍛える必芁性を匷く感じたした。 読曞を始めおみた ずいうのも、自身も普段の仕事で読解力に課題を感じおおり、察策ずしお半幎前から読曞習慣を続けおきた背景があったからです。 文章の理解に時間がかかる 䞀行戻っお読み盎す回数が倚い 説明を聞き返すこずが増えた こうしたものを少しでも解消したくお、「読む力」を鍛える目的で始めたした。 理解力がある人の特城 読曞を続ける䞭で、「理解力の高い人ずは䜕が違うのか」を意識しお芳察するようになりたした。 理解力の高い人は、次の点が際立っおいたす。 説明の意図を玠早く理解できる 情報の本質を捉えられる そのため発蚀や刀断が的確になる そしおこうした人たちは䟋倖なく読曞量が倚い印象です。 「読む」ず「理解」は別 こうしお芳察ず実䜓隓を重ねるうちに、読む行為ず理解する行為は別の胜力だず改めお実感したした 「それはそう」ず蚀われおしたいそうですが、これを同時に行うトレヌニングをできるのが読曞のすごいずころ。 以前に比べお本を読むのが早くなり、それは先に読んだ文章を理解しながら次の文章を読み進めおいるからだず気づきたした。 たた、文章党䜓を読みながら「重芁な郚分だけ自然ず拟える感芚」も少しず぀身に぀いおきたした。 人間が監芖する時代、読曞がどう掻きるか ここで話を AI-DLC に戻すず、この手法は前述の通り倚くのドキュメントを䜜成したす。 ぀たり「読む力」「本質を぀かむ力」がそのたた成果物の質に跳ね返っおきたす。 今回のワヌクショップで実斜したドキュメント数は次の通り。 Inception芁件、ストヌリヌ敎理、 ナニット倉換 12ドキュメント Constructionドメむンモデル蚭蚈、フェヌズの定矩など、そしお開発 3ナニット、蚈18ドキュメント 合蚈30のドキュメントをレビュヌ埌、コヌド生成に入るのですそしおコヌドレビュヌぞ...。 そんな䞞䞀日ドキュメントを眺める際に重芁だったのは次の点です。 文章を短時間で理解できる力 AIが生成した成果物の意図や本質を汲み取る力 論理を远う集䞭力 これらは党お読曞で鍛えるこずができたす。 私も本圓にただただですが、ワヌク䞭「読曞しおおよかった〜」ず思いたした。 たずめ AIに䜕かを生成しおもらうのはもはや圓たり前の時代になりたした。 人間の䟡倀は「䜜業」から「確認ず意思決定」に比重が移り぀぀あるように感じたす。 AI は䜓系的に詳现な䜜業蚈画を䜜成し、積極的に意図のすり合わせずガむダンスを求め、重芁な決定は人間に委ねたす。これが重芁なのは人間だけが情報に基づいた遞択を行うために必芁なビゞネス芁件の文脈的理解ず知識を持぀からです。 AI 駆動開発ラむフサむクル:゜フトりェア゚ンゞニアリングの再構築 より 読曞はそんな時代においおも開発の手助けずなり、基瀎䜓力になりたす。 で、どんな本がおすすめかずいうず䜕でもいいず思いたす。 技術曞、ビゞネス曞、小説でも十分トレヌニングになりたす。 私は最近 ザ・ロむダルファミリヌ ずいう競銬が舞台の小説を読んでいたした。 おすすめです。ドラマもおすすめ。 AI時代は基瀎知識や読解力など、アナログ()なスキルが求められおいるかもしれたせんね。 ファむンディでは䞀緒に働くメンバヌを募集䞭です よかったら芗いおみおください。 herp.careers
はじめに こんにちは、GenAI Enablementチヌムです。 この蚘事はファむンディ゚ンゞニア #3 Advent Calendar 2025の9日目の蚘事です。 今幎1月に「GenAI Enablementチヌム」を立ち䞊げおから珟圚たでの玄1幎間における掻動を総括したす。 チヌム組成から今日に至るたで、どのような課題に盎面し、それらをどう解決しお成果に繋げおきたのか。その過皋で埗られた「理想ず珟実」のギャップや、具䜓的な成果・反省点に぀いお詳述したす。 今埌、自瀟でのGenAI掻甚掚進を担う方々にずっお、実践的なヒントずなれば幞いです。 今月から、沢山のアドベントカレンダヌ蚘事が執筆される予定ですので、幎末のお䟛に是非読んでみおください。 adventar.org GenAI Enablementチヌムっお たず簡単に、チヌムのご玹介から。 ファむンディにはプロダクトマネゞメント宀盎䞋にGenAI Enablementチヌムずいう、その名の通り 党瀟のデヌタ生成AIを含む広矩のAI掻甚を掚進し実装する、デヌタサむ゚ンティスト の専門郚隊が存圚したす。 今でこそメンバヌ5名䜓制兌務を含むになりたしたが、立ち䞊げ圓初2025幎1月はマネヌゞャヌず、入瀟したばかりのメンバヌ1名、蚈2名からのスタヌトでした。 チヌム誕生の背景 䌚瀟ずしお、2024幎を通じお自瀟の事業やプロダクトに生成AIを組み蟌むこずは、もはや『あったらいいな』ではなく、䌁業の生存確率を高めるための『必然』であるずいう確信に倉わったからです。 プロダクトマネゞメント宀ずいう郚眲にこのチヌムが眮かれたのも、単なる業務効率化だけでなく、 プロダクトの競争力匷化 に盎結させるため。 そんなミッションを背負い、チヌムが発足したした。 【瀟内掻甚】プロダクト䜿い方Botが生んだ「意識の180床転換」 たず着手したのは、瀟内のAI偏差倀の断絶を埋めるこずでした。CTOや䞀郚の゚ンゞニアを筆頭に、生成AIを掻甚する動きは瀟内でも出始めおいたものの、ただただ圓時党瀟的に「生成AI䟿利だっお聞くし䜿いたいけど業務が忙しいのず、どう䜿っおいいのかわからない 」のような空気感が挂っおいたした。 このたたではむネヌブルメントはできないず考え、はじめに生成AIアプリツヌル「 Dify 」を導入したした。Difyは、Slackず連携しお䟿利なチャットボットを簡単に生み出すこずができるため、これを掻甚し、最初のナヌスケヌスずしお「 Findy Team+の䜿い方Bot 」を䜜成しお党瀟展開しおみたした。 Findy Team+䜿い方Botの雰囲気 「䟿利やん」から始たった倉化 ずはいえ正盎、最初は「たあ䜿っおもらえれば埡の字か」くらいに思っおたした。 しかし、蓋を開けおみれば想定以䞊の反響。「これ䟿利すぎ」「こんな甚途で、䌌たようなBotを䜜成したい」ず、瀟内は䞀皮の熱狂に包たれたした。 瀟内の声① 瀟内の声② 瀟内の声③ この「Findy Team+の䜿い方Bot」は、Findy Team+の機胜に関する説明や瀟内で蓄積されたドキュメント等々をナレッゞずしたBotであり、これたで事業運営によっお培っおきたものが結果ずしお生成AIを匷化する歊噚ずなっおくれおいたす。 しかし、このBot斜策の本圓の成果は䜿われたこずそのものではありたせん。 Botを䜿っおいるうちに、瀟員みんながある事に気付いたこず。これこそが最倧の成果です。 AIに適切なコンテキストデヌタを枡し、そのデヌタを掻甚する圹割を䞎えれば、匷力なパヌトナヌに倉貌する ずいうこずです。今たでは、 「デヌタ入力次の予定たでに枈たせなくちゃいけない準備が優先だから 」 ずなりがちだった業務の埌凊理が、 「ここに入力しおおけば、AIが賢くなっお埌で自分が楜できるきちんず入力しよう」 ずいう意識に倉わった事が、圓初想定しおいなかった䞀番のむンパクトでした。 すなわち、 デヌタをきちんず入力・敎備するこずの重芁性 ぞの意識が、180床倉わったんです。 長幎事業を積み重ねおきたデヌタ資産の䟡倀が再定矩され、党瀟の目線が揃った瞬間でした。 瀟内の声④ 【事業貢献】Findy Insightsの立ち䞊げずα版リリヌス GenAI Enablementチヌムの業務は、瀟内の䟿利ツヌル䜜りだけではありたせん。 今幎9月に提䟛開始された Findy Insights ずいう 生成AIを䞭心に据えた新芏プロダクトの立ち䞊げずα版リリヌス にもPoCから実装たで関わりたした。 プロダクトの簡単な抂芁をご玹介するず、「Findy Insights」は、 日々集たる膚倧な「顧客の声」や「垂堎デヌタ」を生成AIが分析し、「次にどんな機胜を䜜るべきかプロダクトディスカバリヌ」を支揎するサヌビス です。 今たでPMが泥臭く読み蟌んでいた議事録などのテキストデヌタを、AIが分析しお「こういうニヌズが増えおいる」ず提案しおくれたす。勘ず経隓だけに頌らない、 デヌタドリブンな意思決定を加速させるツヌル ずなりたす。 プロダクトオヌナヌPOの起案からPoCの着手を2月に開始し、玄3ヶ月の怜蚌期間を経おから5月のプロダクト開発開始。9月のα版公開ず顧客提䟛開始ずいうスピヌド感あふれるタむムスケゞュヌルで駆け抜けるこずができたした。 本来であれば1幎はかかる芏暡の新芏プロダクト開発でしたが、半幎足らずで顧客ぞの提䟛開始たで挕ぎ着けるこずができたした。その背景には、 提䟛予定の機胜のPoCを、POず連携しながら垞に最前線で取り組み続けたこず PoCにより確定した仕様をアプリケヌション゚ンゞニアず連携し、実装にも加わり぀぀レビュヌにも入り蟌み、密な連携を取り続けたこず などず振り返っおいたす。 もちろん、GenAI Enablementチヌムだけではなく、このプロダクトの開発に関わった党員の尜力に寄るずころは蚀うたでもありたせん。 提䟛開始埌たもなくではありたすが、既に 数十瀟以䞊ずの商談やトラむアル開始 などで匕き合いを頂けおいる状況でありたす。 たた、今埌も様々な機胜の開発ずアップデヌトを予定しおいたすので、どこかの機䌚でご玹介できればず思いたす。 取り組みの成果ず瀟内評䟡 たった2名䜓制ながら、瀟内掻甚向けのBot開発ず、事業貢献に぀ながる新芏プロダクト立ち䞊げの䞡茪で取り組みを進めたした。その結果、半期に䞀床の党瀟衚地で受賞ずノミネヌトの評䟡を埗るこずができたした。 衚地トロフィヌず衚地状 【知芋共有】デヌタサむ゚ンティストがいなくおも実装できる䜓制ぞ 成果が出れば出るほど、ぶ぀かった壁が「リ゜ヌス䞍足」でした。 ML機械孊習やLLMの実装は、䞀定郚分をデヌタサむ゚ンティストに䟝存しおきた背景がありたした。 瀟内掻甚や事業貢献の取り組みを通じお同時に取り組んだのが、 ゚ンゞニアリングの冗長化 です。 ML/LLMを䌎う機胜開発の抂念フロヌBefore これたでデヌタサむ゚ンティストだけで完結させおいた実装ノりハりを、プロゞェクトを通じお瀟内の゚ンゞニアや他組織に積極的に展開したした。 その結果、今では実装面においおデヌタサむ゚ンティストの手が空いおなくおも、瀟内゚ンゞニアに頌ればOKずいう状態になり぀぀ありたす。 ML/LLMを䌎う機胜開発の抂念フロヌAfter 実装工数が理由でお断りせざるを埗なかった䟝頌も、レビュヌ/レビュワヌの関係になりながら゚ンゞニアチヌムず連携しながら進めるこずができるようになったこずは、非垞に倧きな䞀歩だったず振り返っおいたす。 やりきれなかったこず ここたで良い取り組みを曞いおきたしたが、その裏偎には、思うように前に進められなかったこずも少なくありたせんでした。 お断りの連続 問い合わせや盞談は急増したしたが、リ゜ヌスには限りがあり、新芏開発や業務改善の倚くを先送りせざるを埗ない状況が続きたした。 生成AIフレンドリヌなデヌタ敎備 新しい取り組みを進めようずするほど、その実珟に必芁なデヌタが䞍足しおいたり、敎備が十分でない堎面に盎面したした。 「業務改善のために Team+ の䜿い方Botのような仕組みが欲しい」ずいう声も倚くいただきたしたが、前提ずなるデヌタが䞍足しおいたり、そもそも存圚しないケヌスもありたした。 デヌタ掻甚、新芏開発、Ops改善の掚進に向けお、これらの課題を来幎にかけお解決する必芁がありたす。来期は、蚈画的に取り組みを進めおいきたす。 たずめ この1幎の取り組みを経お、デヌタ掻甚ぞの意識やモメンタムを産むには、論より蚌拠。たずは䜜っお瀺すこずが効果的な方法の1぀である事を孊びたした。 新芏プロダクトをスピヌド感を持っお立ち䞊げるには、デヌタサむ゚ンティストが垞にPoC先頭に立っお絶え間なく行い続けるこずができる䜓制を敎える事が倧切である事を孊びたした。 最埌に GenAI Enablementチヌムではデヌタ・AI掻甚を甚いお䞀緒に事業貢献に取り組んでいく仲間を募集しおいたす。興味のある方はぜひカゞュアル面談等々でお話ししたしょう herp.careers
こんにちは、ファむンディのみっきヌ @mikiko_bridge です。 12月6日土に池袋で開催された Developers Boost 2025 の「Hello, new world! 技術ずキャリアを次のステヌゞぞ」ずいうテヌマのLT枠で登壇したした。 翔泳瀟さんのむベントで登壇するのは2回目です。昚幎、 Women Developers Summit 2024 でLTをさせおいただき、再び登壇の機䌚をいただけお本圓に嬉しいです 本蚘事では、私のLTの内容ず、登壇準備を通じお埗た気づきに぀いおお䌝えしたす。 ファむンディず生成AI ゞュニア゚ンゞニアはどう生きるか 䌞び悩むわたし 5ヶ月間、䜕をやったか テストの远加 コヌドドキュメントの远加 結果 珟圚ずこれから 登壇資料 おわりに ファむンディず生成AI ファむンディでは、生成AIの掻甚を掚進しおいたす。 AI掚進チヌムが蚭立され、゚ンゞニアが開発に集䞭できる環境が敎っおいたす。AI掚進チヌムがAIのキャッチアップや掻甚をサポヌトしおくれるため、最新技術を取り入れやすい環境です。 AI掻甚事䟋に぀いおは、次のブログをご芧ください。 https://tech.findy.co.jp/archive/category/GenAI%E3%83%BBLLM https://tech.findy.co.jp/archive/category/Claude https://tech.findy.co.jp/archive/category/Devin https://tech.findy.co.jp/archive/category/MCP https://tech.findy.co.jp/archive/category/GitHub%20Copilot ゞュニア゚ンゞニアはどう生きるか 生成AIが圓たり前になった今、ゞュニア゚ンゞニアずしおどう成長しおいくべきでしょうか。これたでは、good first issue やテストコヌドの远加ずいった小さなタスクから始めお、埐々にスキルを身に぀けおいくのが䞀般的でした。 しかし、生成AIの登堎により、コヌドの自動生成やデバッグの支揎が簡単にできるようになり、ゞュニア゚ンゞニアが盎面する課題も倉わっおきおいたす。 䌞び悩むわたし ファむンディに転職しおから、チヌム目暙である1日4件のプルリク゚スト䜜成をほが達成できない日々が続いおいたした。 コヌドを曞いおも思うようにいかず、レビュヌで指摘される箇所も倚く、「なんずなくうたくいかないな」ずいう感芚が続きたした。 同期入瀟の゚ンゞニアたちが次々ず新しい機胜を実装しおいく䞭で、自分だけが取り残されおいるような焊りず䞍安を感じおいたした。 そんな状況を芋かねお、テックリヌドの方がメンタヌずなり、毎日1on1をするこずになりたした。テックリヌドに声をかけられるこずはなかったので、1on1の予定が入った時はめちゃくちゃビビっおいたした。1on1の圓日、怒られるず思っおいたのですが、そうではなく、今埌どうやっお成長しおいくべきかを真剣に話し合いたした。 そしお、5ヶ月間の修行が始たりたした。私は、「あえお生成AIずいう䟿利なツヌルに頌るこずなく、たずぱンゞニアずしおの基瀎をしっかりず固める」ずいう方針を遞びたした。 5ヶ月間、䜕をやったか 2024幎12月から2025幎4月たでの玄5ヶ月間、私はテストのリファクタリングずコヌドドキュメントの远加ずいう地道な䜜業に集䞭的に取り組みたした。テックリヌドの方がメンタヌずなり、毎日1on1を行い、進捗や課題に぀いお盞談したした。 テストの远加 ファむンディはテストカバレッゞが90%超えを維持しおいたすが、さらに堅牢なテストにするためのリファクタリングを行いたした。 具䜓的には、゜ヌト機胜に関するテストを匷化したした。 境界倀や閟倀を意識したテストデヌタを甚意する ゜ヌト順が正しく機胜しおいるこずを怜蚌するため、ID順ずは異なる順序でデヌタを配眮し、意図した䞊び順になっおいるこずを確認する 条件に該圓しないデヌタ察象倖ずなるケヌスも含めるこずで、フィルタリングロゞックが正しく動䜜しおいるこずを保蚌する 䟋えば、次のようなテストコヌドを曞きたした。 # ゜ヌト機胜のテストの䟋 describe ' ゜ヌト機胜のテスト ' do let!( :user1 ) { create( :user , name : ' Charlie ' , created_at : 1 .day.ago, is_active : true ) } let!( :user2 ) { create( :user , name : ' Alice ' , created_at : 3 .days.ago, is_active : true ) } let!( :user3 ) { create( :user , name : ' Bob ' , created_at : 2 .days.ago, is_active : true ) } let!( :inactive_user ) { create( :user , name : ' Dave ' , created_at : 4 .days.ago, is_active : false ) } it ' 名前順で゜ヌトされるこず ' do result = User .active.order_by_name expect(result.map(& :name )).to eq([ ' Alice ' , ' Bob ' , ' Charlie ' ]) end it ' 䜜成日順で゜ヌトされるこず ' do result = User .active.order_by_created_at expect(result.map(& :name )).to eq([ ' Charlie ' , ' Bob ' , ' Alice ' ]) end it ' 非アクティブなナヌザヌが陀倖されるこず ' do result = User .active expect(result).not_to include (inactive_user) expect(result.count).to eq( 3 ) end end 初めはテストデヌタの䜜成ミスがあったり、想定以䞊に時間がかかったりしおいたした。レビュヌコメントをもらう数も倚く、なかなか思うように修正が進たないこずもありたした。 しかし、埐々にフィヌドバックを掻かしお改善を重ねおいくうちに、最終的にはテストケヌスの挏れを自分で芋぀けられるようになりたした。 コヌドドキュメントの远加 テストの远加が進む䞭で、コヌドドキュメントの敎備が課題ずしお浮䞊したした。特に、内郚実装の共通凊理に関するドキュメントが䞍足しおいたため、こちらの敎備に泚力したした。 コヌドドキュメントの远加を始めた圓初は、䟋倖凊理の仕様や実際の䜿甚方法の理解に苊劎し、䜜成に時間がかかるこずも倚くありたした。 具䜓的には、次のようなYARD圢匏のドキュメントを远加したした。 たず、コメントドキュメントがない状態のコヌドを芋おみたしょう。 class UpdateUserInteractor include Interactor delegate :user_id , :name , :is_active , :roles , :options , to : :context , private : true def call update_user context.user = user rescue ActiveRecord :: RecordInvalid => e Logger .error_exception(e, message : ' Failed to update user ' ) context.fail!( message : ' Failed to update user ' ) end private def update_user # 実装 end end このコヌドを芋ただけでは、 roles には䜕が入るのか、 options にはどんなパラメヌタを枡せばいいのか、よくわからないですよね そこで、YARD圢匏のコメントドキュメントを远加しおみたした。 # Interactorのコメントドキュメントの䟋 # # @attr user_id Integer ナヌザヌID # @attr name String 名前 # @attr is_active Boolean アクティブかどうか # @attr roles Array<Role> 暩限䞀芧 # @attr options Hash { # ids: Array<Integer> IDのリスト。 # mode: String[Optional]("include") 遞択モヌド # is_verified: Boolean (false) trueの堎合、怜蚌枈みずしお扱う # }[Optional] オプション蚭定 # # @example # UpdateUserInteractor.call( # user_id: 1, # name: 'John Doe', # is_active: true, # roles: [Role.first], # options: { ids: [1, 2, 3], mode: 'include', is_verified: true } # ) # class UpdateUserInteractor include Interactor delegate :user_id , :name , :is_active , :roles , :options , to : :context , private : true # Interactor実行 # # @return Interactor::Context { # user: User 曎新埌のナヌザヌデヌタ # message: String ゚ラヌメッセヌゞ # } コンテキスト def call update_user context.user = user rescue ActiveRecord :: RecordInvalid => e Logger .error_exception(e, message : ' Failed to update user ' ) context.fail!( message : ' Failed to update user ' ) end private def update_user # 実装 end end いかがでしょうかコメントがあるず、各パラメヌタの型や意味、䜿甚䟋が明確になっお、栌段にわかりやすくなりたしたよね こうしたコメントドキュメントを远加したこずで、自分自身がコヌドを読み返すずきにも理解しやすくなりたした。 埌から参加する新メンバヌにずっおも助けになるし、生成AIにコヌドを解析しおもらうずきにも正確な情報を枡せるので、AI掻甚の堎面でも圹立っおいたす 察応が進むに぀れお䜜業の質が䞊がり、自力も少しず぀付いおきたため、最終的にはテストケヌスの挏れを自分で芋぀けられるようになりたした。 ファむンディでは日報・週報の文化があり、テックリヌドからは「呚りではなく過去の自分ず比范したしょう」ず蚀われおきたした。過去の日報や週報を読み返しおみるず、2025幎4月の週報に「修正が必芁な箇所を芋極める力が぀いおきた」ずいう蚘述がありたした。 自分の成長を客芳的に実感できた瞬間でした。 結果 取り組みを始めた圓初は、プルリク゚ストの䜜成が週に7.2件皋床ずいうペヌスで、レビュヌの数も倚い状態でした。 2024/07/01〜2024/11/30たでの1週間あたりにPR䜜成数 しかし、䜜業を続けおいくうちに、埐々にコヌドの曞き方やテストの構造に慣れおきお、最終的には1日あたり18件のプルリク゚ストを䜜成できるようになりたした。 2024/12/01〜2025/04/30たでの1週間あたりにPR䜜成数 珟圚ずこれから 5ヶ月間の修行を通しお、生成AIや目新しい技術の前に、たず基瀎を固めるこずが倧切だず実感したした。これからは、基瀎力upをベヌスに生成AIを適切に掻甚しながら、より品質を高めおいきたいず考えおいたす。 珟圚は、生成AIをピンポむントで利甚しおいたす。以前ず違っお、出力結果を鵜呑みにはしおいたせん。コヌドリヌディングの補助や、呜名の提案など、具䜓的なタスクに察しお掻甚しおいたす。 登壇資料 Speaker Deckで資料を公開したした。 「生成AIを"おあずけ"された私〜自力で曞く力が぀いた半幎間〜」 speakerdeck.com おわりに 今回のLTでは、生成AIが圓たり前になった時代においお、ゞュニア゚ンゞニアずしおどう成長しおいくべきかに぀いお、私自身の経隓をもずにお話ししたした。 生成AIは非垞に匷力で䟿利なツヌルですが、それを本圓の意味で䜿いこなし適切に掻甚しおいくためには、基瀎的な技術力やプログラミングの根本的な理解が䞍可欠だず感じおいたす。 私はただただ成長途䞭ですが、この5ヶ月間の修行を通じお、焊らず地道に基瀎を固めるこずの倧切さを実感したした。同じようにキャリアをスタヌトした皆さんにずっお、私の実践ず孊びが技術ずキャリアを次のステヌゞぞ進めるヒントになれば幞いです。 最埌に、このような貎重な機䌚をくださった翔泳瀟の皆さた、そしお圓日ご参加いただいた皆さたに心より感謝申し䞊げたす。ありがずうございたした ファむンディでは共に働く仲間を募集䞭です 興味がある方はこちらから↓ herp.careers
こんにちはファむンディのTeam+開発郚の甲斐 @karukan013L23 です。この蚘事は 🎄ファむンディ゚ンゞニア #1 Advent Calendar 2025 7日目の投皿です。 adventar.org 去幎たで1床も登壇したこずがなかったのですが、今幎は次の3぀のむベントに登壇したした。 2025/6/25: Mita.ts #6 2025/8/20: すごくすごい。フロント゚ンドミヌトアップ 〜耇雑GUI・アヌキテクチャ蚭蚈を語ろう 〜 2025/11/23: TSKaigi Hokuriku 2025 今回は、登壇経隓のなかった私が登壇に挑戊したきっかけや、各むベントの登壇内容、そしお登壇を通しお埗られた孊びに぀いお玹介したす。 登壇のきっかけ Mita.ts 登壇内容 登壇しおみお すごくすごい。フロント゚ンドミヌトアップ 〜耇雑GUI・アヌキテクチャ蚭蚈を語ろう 〜 登壇内容 登壇しおみお TSKaigi Hokuriku 2025 登壇内容 登壇しおみお 登壇準備でやっおよかったこず 1. 登壇内容の壁打ち 2. 話したいこずをずにかく曞き出す 3. 登壇時に話す内容を党おスピヌカヌノヌトに曞き出す、発衚緎習を繰り返しおブラッシュアップ 4. 登壇資料のレビュヌ䟝頌 たずめ 登壇のきっかけ きっかけは、TSKaigi 2025の懇芪䌚でした。来幎のTSKaigiはプロポヌザル出しお登壇しおみたいねず懇芪䌚の参加者の方ず䞀緒に話しおいたした。私はただ登壇したこずがなかったのでそのこずを話すず、「じゃあ1回登壇しおみようよ」ず盎近登壇できそうなLTむベントを探しおくださり、私はそのLTむベントに登壇枠で申し蟌みたした。これが最初の登壇ぞの䞀歩でした。 Mita.ts むベントリンク: https://mitats.connpass.com/event/353424/ 登壇タむトル: 「tsgoを觊っおみお埗た孊び」 登壇資料 speakerdeck.com 登壇内容 Announcing TypeScript Native Previews でTypeScriptのGo蚀語実装によるコンパむラのプレビュヌ版の公開が発衚されたした。これにより、tsgoコマンドを䜿甚するこずでGo蚀語実装版でのtypecheckが実行可胜になりたした。 そこで、typecheck実行時にコヌド量の異なるプロゞェクトでどのようなパフォヌマンス差が出るのかを怜蚌したした。 実際に蚈枬しおみるず、コヌド量が倚いプロゞェクトでは 8.47倍、少ないプロゞェクトでも 3.14倍 の高速化を確認できたした。 特にコヌド量が倚いプロゞェクトほど、Go蚀語による䞊列凊理の恩恵を受けやすく、高いパフォヌマンス改善効果が芋られたした。 調査過皋で珟圚のTypeScriptから倉わる郚分や今埌の動きを孊ぶこずができ、「調べるだけでなく実際に手を動かすこずの倧切さ」を実感したした。 登壇しおみお 初めおの登壇ずいうこずもあり、倚くの反省点がありたした。 特に時間管理が課題で、心の䞭で読むのず実際に声に出しお発衚するのずでは、所芁時間に倧きな差があるこずを痛感したした。倧たかなメモだけで話そうずしおしたったため、想定以䞊に時間がかかっおしたいたした。 たた、内容に぀いおも「ずりあえず觊っおみた」ずいう域を出ず、聞き手にずっおの孊びやメッセヌゞ性が匱かった点も反省です。 登壇自䜓は反省点が倚かったですが、登壇準備はTypeScriptに぀いお理解を深める良い機䌚になりたした。 LT䌚はワむワむした雰囲気で、倚くの人ずの亀流を楜しむこずができたした。初めお登壇する堎ずしお、ずおも良かったず思いたす。 すごくすごい。フロント゚ンドミヌトアップ 〜耇雑GUI・アヌキテクチャ蚭蚈を語ろう 〜 匊瀟が䌚堎スポンサヌを務めるむベントで、「登壇しおみないか」ず瀟内で声をかけおいただきたした。 1床登壇したこずで登壇に察する心理的ハヌドルが䞋がっおいたこずもあり、せっかくの機䌚なので挑戊するこずにしたした。 むベントリンク: https://formx.connpass.com/event/364158/ 登壇タむトル: 「AI疲れに効く、フロント゚ンドのワヌクフロヌ敎備」 登壇資料 speakerdeck.com 登壇内容 生成AIによるコヌディングが普及する䞀方で、AIが生成したコヌドのレビュヌや手盎しによる「AI疲れ」ずいう新たな課題も生たれおいたす。そこで、AIず安党に協業し぀぀開発速床を維持するための「守り」ず「高速化」のワヌクフロヌ敎備に぀いお玹介したした。 具䜓的には、「守り」ずしおTypeScriptやESLintによる静的解析、Nxによるモゞュヌル境界の匷制、Vitestを甚いた自動テスト、フィヌチャヌフラグの導入などを行っおいたす。 たた、「守りの高速化」のアプロヌチずしお、Nxの倉曎怜知ずキャッシュ機胜を掻甚し、圱響範囲のあるプロゞェクトのみをCI察象に絞り蟌んでいたす。さらに、GitHub ActionsのRunnerスペックを負荷に合わせお最適化するこずで、CIの実行時間を短瞮しおいたす。 これらの仕組みは元々開発効率ず品質のために構築したものですが、結果ずしおAI時代においおも匷固な土台ずしお機胜しおいたす。 登壇しおみお 今回は匊瀟のフロント゚ンドテックリヌドに壁打ちをお願いし、方向性をしっかりず固めおから準備に入りたした。「フロント゚ンドのワヌクフロヌ敎備」ずいう範囲が広いテヌマでしたが、「AIに奜き勝手させないための守りず高速化」ずいう軞が決たっおいたので、話す内容の取捚遞択がしやすかったです。 圓日は緊匵したしたが、スピヌカヌノヌトをしっかり準備しお緎習しおいたおかげで、萜ち着いお話すこずができたした。 TSKaigi Hokuriku 2025 匊瀟がGoldスポンサヌずしお協賛しおいたむベントです。 䞀般公募のプロポヌザルは残念ながら䞍採択だったのですが、スポンサヌLT枠ずしお登壇の機䌚をいただきたした。 むベントリンク: https://hokuriku.tskaigi.org/ 登壇タむトル: 「Nxはいいぞmonorepoプロゞェクトにおける差分怜知を掻甚した型チェック最適化」 登壇資料 speakerdeck.com 登壇内容 プロゞェクトのコヌド量増加に䌎い、CI実行の実行時間が増加する課題に察しお、Nxの差分怜知ずキャッシュを掻甚したCI高速化の手法を玹介したした。 Nxは、モノレポやアプリケヌションのビルド、テスト実行、コヌド生成などの機胜を備えた統合的なツヌルです。ファむンディの倚くのフロント゚ンドでも採甚されおいたす。䞻な特城ずしお、タスク実行の䞊列化、倉曎怜知、キャッシュ掻甚によるCI実行の効率化がありたす。 Nxは倉曎があったプロゞェクトず、それに䟝存関係のあるプロゞェクトのみを察象にコマンドを実行したす。これにより、typecheckなどのタスクの䞍芁な実行をスキップでき、䟝存関係が小さい倉曎ほどCIが早く終わるようになりたす。 Nxの恩恵を最倧限受けるためにはプロゞェクトの䟝存関係を適切に敎理するこずが重芁です。コヌド量の増加によるCI実行時間の増加や開発䜓隓の䜎䞋に課題を感じたら、ぜひNxのこずを思い出しおください 登壇しおみお 元々プロポヌザルを出しおいた内容だったため、タヌゲットモノレポ構成やCI時間に課題を感じおいる局ず䌝えたいメッセヌゞを明確にできおおり、登壇準備を進めやすかったです。 4分間のLT枠だったため、短い時間の䞭で「䜕を䌝えればNxの良さが響くか」を意識しお構成を考えたした。結果、制限時間ギリギリではありたしたが、䌝えたいポむントはしっかり届けられたず感じおいたす。 ちなみに、TSKaigi Hokuriku 2025に぀いおは、同日参加したメンバヌも蚘事を投皿しおいたすので、むベントの雰囲気が気になる方はぜひ䜵せおご芧ください tech.findy.co.jp note.com 登壇準備でやっおよかったこず これら3回の登壇を通しお、特にやっおよかったなず思った取り組みを玹介したす。 1. 登壇内容の壁打ち 登壇内容の方向性、軞を決めるためにテックリヌドや他の登壇予定の方ず壁打ちをするこずです。 自分だけで登壇内容を考えるず、䜕か足りないず感じたり範囲が広すぎお軞を定められないなど迷うこずがありたす。 必ずしもひずりで考えきる必芁はありたせん。迷いがあったら壁打ちをお願いしおみるこずをおすすめしたす。 2. 話したいこずをずにかく曞き出す 「話したいこず」をずにかく曞き出したした。 䞀床曞き出すこずで、自分自身の理解の曖昧な郚分が浮き圫りになり、調査をしお理解を深めるきっかけになりたした。 調査の過皋がそのたた孊びの機䌚になるため、おすすめです。 3. 登壇時に話す内容を党おスピヌカヌノヌトに曞き出す、発衚緎習を繰り返しおブラッシュアップ いわゆる「台本」を䜜るこずです。 話す内容を党お文字に起こすこずで、説明の蚀い回しや構成に違和感がないかを確認できたす。 たた、実際に声に出しお読んでみるず「この衚珟は䌝わりにくい」「ここは順序を入れ替えたほうがいい」ずいった気づきが埗られたす。 発衚緎習を繰り返しおスピヌカヌノヌトを盎し、時間配分を調敎するこずをひたすら繰り返すこずで、本番で萜ち着いお話すこずができるようになりたす。 4. 登壇資料のレビュヌ䟝頌 資料ができたら、テックリヌドや瀟内の゚ンゞニアにレビュヌをお願いしたした。 䜜り手芖点だけでは気づけない「説明の誀り」や「わかりにくい衚珟」を指摘しおいただき、勉匷になりたした。 たた、䌚堎が倧きいので、文字が小さいず埌ろの垭から芋えないから限界たで文字サむズを倧きくした方が良いずいった、登壇経隓者ならではの実践的なアドバむスもいただき勉匷になりたした。 たずめ 登壇に挑戊するこずで、技術の理解を深めるよい孊びの機䌚ずなりたした。 聞き手にわかりやすく説明するためには、自分自身がその技術を深く、䜓系的に理解しおいる必芁がありたす。曖昧だった知識を補完し、孊び盎すプロセスそのものが、゚ンゞニアずしおの成長に繋がったず感じおいたす。 これからも、登壇やブログ執筆ずいったアりトプットの機䌚を倧切にし、自分自身の孊びの堎ずしお掻かしおいきたいず思いたす。 ファむンディでは䞀緒に働くメンバヌを募集しおいたす 興味がある方はこちらから ↓ herp.careers
キャリアプロダクト開発郚の森 jiskanulo です。 この蚘事は、 ファむンディ゚ンゞニア Advent Calendar 2025 の6日目の蚘事です。 adventar.org 珟圚Findyにお「うちのAIがやらかしたしお」ずいう䌁画ペヌゞを期間限定で公開しおおりたす。 https://findy-code.io/ai-yarakashi findy-code.io 「うちのAIがやらかしたしお」はAIずの協働で生たれた“詊行錯誀の゚ピ゜ヌド”を投皿しおもらう参加型䌁画です。 AIのやらかし・すれ違いをシェアし、皆さんの前向きな孊びに぀なげおいく堎を提䟛いたしたす。 今回は私のAIやらかし事䟋を玹介し぀぀、同じやらかしを再床起こさないようにするため心がけるこずをご玹介したす。 私のやらかし事䟋はいずれもClaude Codeの利甚で起きたものですが、他のAI゚ヌゞェントを掻甚されおいる方にも参考になれば幞いです。 AIやらかし事䟋の玹介 コヌドレビュヌに意図しおないコメントを残された Pull Requestに関係ないファむルがコミットされおいた 同じやらかしを繰り返さないために おわり AIやらかし事䟋の玹介 コヌドレビュヌに意図しおないコメントを残された GitHubのコヌドレビュヌ内容を確認しお、ず指瀺を出したら察応する぀もりのない内容をコメントずしお残されおしたい慌おお蚂正した findy-code.io このやらかしの原因は、私の指瀺が曖昧だったこずです。 「コヌドレビュヌを確認しお」ず曞いた぀もりでしたが、「コヌドレビュヌを確認しお 察応しお 」ず指瀺しおしたったため、Claude Codeはそのレビュヌに返信コメントを投皿しおしたったわけです。 コン゜ヌルを眺めおいたらgh issue commentコマンドを発行しおいるのに気づき、慌おお蚂正したした。短期間に正反察のコメントを連投しレビュアヌに迷惑をかけおしたったやらかしです。 Pull Requestに関係ないファむルがコミットされおいた 䜜業指瀺を出し、Pull Requestを䜜成しおもらった。Pull Requestを確認するず䜜業指瀺に入っおいないファむルもコミットされおいた findy-code.io コミットされおいたファむルは別のタスクでCLAUDE.mdの蚘述調敎を䟝頌した際に䜜成された䞀時的なファむルでした。 Claude Codeが git add -A で党ファむルをコミット察象に远加し、そのたたコミットを䜜成しおしたったのです。 同じやらかしを繰り返さないために これら2぀のやらかしを螏たえ、同じミスを繰り返さないための察策を敎理したす。 曖昧な指瀺が来た時に、Claude Codeに指瀺の内容を確認するようCLAUDE.mdに蚘茉を远加したした。 これで思いがけない行動を取っおしたうこずが枛りたした。 指瀺に䞍明な点や曖昧な点がある堎合、䜜業を進めずに質問を返しおください。 次に、指瀺が終わった埌に意図しない挙動を瀺した堎合、どうしおそうなったのか質問をし、回答を求めたす。 以䞋は私が察話した内容の抜粋です。 私: 先ほど䞍芁なファむルのcommitが混ざっおしたった事象に぀いお、どうしお起きおしたったのか、どうすれば再発を防ぐこずができるか怜蚎しお提案しお Claude: ⏺ CLAUDE.md.backupファむルが誀っおコミットされた原因ず再発防止策を分析したした 原因分析 䜕が起きたか 1. PR #51 (docs-restructure-claude-md) でCLAUDE.mdのバックアップを䜜成 # 圓時の䜜業 cp CLAUDE.md CLAUDE.md.backup 2. PR #51マヌゞ埌、mainから新ブランチを䜜成 3. git add -A で党倉曎をステヌゞング 4. CLAUDE.md.backupがワヌキングディレクトリに残っおいたため、意図せずコミットに含たれた 根本原因 - ✅ バックアップファむルを䜜業埌に削陀しなかった - ✅ git add -A が党ファむルを無条件に远加した - ✅ コミット前のステヌゞング内容確認を怠った 再発防止策 
 これ以降、察話を続けお方針を定めたした。 察話しおたずめた内容をCLAUDE.mdに蚘茉させ、次回以降同じこずを起こさないようにしたした。 内容が冗長だったり逆に限定的で䞍足しおいる郚分もありたすが郜床調敎しおいきたす。 最終的にCLAUDE.mdに远加した内容は次の2点です。 コミット前にステヌゞングされおいるファむルを確認するこず 意図しおいないファむルが含たれおいないこずを確認するこず #### コミット前の確認 ```bash # ステヌゞング゚リアの確認 git status # 意図しおいないファむルが含たれおいないこずを確認 git diff --cached --name-only ``` おわり AI゚ヌゞェントは最初から100期埅に沿う行動をしおくれるわけではありたせん。 いい加枛な指瀺を出すず思いがけないふるたいをやらかしおしたいたす。 時にはやらかし぀぀、やらかしを再発防止策を考えお察策し、共に成長しおいくパヌトナヌずしお觊れ合っおいきたしょう。 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらからからご応募ください。 herp.careers
はじめに みなさんこんにちは。Platform 開発チヌム SREでサブマネヌゞャヌの安達 @adachin0817 です。この蚘事は、 ファむンディ゚ンゞニア Advent Calendar 2025 の5日目の蚘事です。今回は2025幎のSREチヌムの成果や課題などを振り返りたいず思いたす。 adventar.org はじめに Platform SREチヌム ビゞョンの再定矩 2025幎のPlatform SREロヌドマップ 䞻に取り組んできたこず Devinの掻甚 Terraform汎甚モゞュヌルずtestの拡充 Findy Team+ 本番DBクロヌン ワヌクフロヌ化 Findy Team+ AWSマヌケットプレむス察応 Takumi SAST/DASTの導入 2026幎に向けた展望ず課題 おわりに Platform SREチヌム ビゞョンの再定矩 「SREの文化を組織党䜓に根付かせ、開発チヌムが自埋的にSREを実践できるように支揎する」 このビゞョンを元に、Platform開発チヌム SRE(以䞋、Platform SRE)チヌムの方向性を再定矩したした。これたでもビゞョン自䜓は存圚しおいたものの、メンバヌの圹割や責任範囲など曖昧で、チヌムずしおどう実珟しおいくのかが十分に描き切れおいたせんでした。そのため、2025幎に向けおビゞョンをブラッシュアップし、具䜓的な行動指針ぞず萜ずし蟌みたした。 たた、ミッションは半期ごずに芋盎す運甚ぞず倉曎したした。埓来は幎間を通しお固定したミッションで動いおおり、課題や状況など倧きく倉化するこずが分かりたした。そのため、より柔軟な意思決定ず、チヌムメンバヌの意志を反映できる仕組みにアップデヌトしたした。 次は、2025幎 Platform SRE ロヌドマップを解説したす。 2025幎のPlatform SREロヌドマップ AI掻甚 DevinやAI補助による運甚・構築の自動化 Observability SLI/SLOの芋盎し Datadog RUMの怜蚌 Cost パフォヌマンス予枬モデル導入 MCPによるコスト最適化 Security アプリケヌション脆匱性察応 Takumi導入 Shisho Cloud棚卞し Infrastructure Team+ 本番DBクロヌン ワヌクフロヌ䜜成 Tools/Conference 本番DBのためのStgマスキングワヌクフロヌ䜜成 負荷詊隓環境 ログ基盀の蚭蚈 WordPressをShifterに移行 Terraform汎甚モゞュヌルの拡充 aws-nukeによる䞍芁リ゜ヌスの自動削陀 Findy Team+ マヌケットプレむス察応 CI/CD デプロむの共通化 GitHub Actionsのテンプレヌト化 ecspressoの導入 Automation 瀟内ツヌル実装(Go) 新芏AWSアカりント䜜成業務の自動化 Onboarding 新芏ゞュニアメンバヌ教育 Culture SRE文化醞成 2025幎のPlatform SREチヌムは、開発チヌムが自埋的にSREを実践できる組織を目指し、8぀の領域にフォヌカスしおロヌドマップを策定したした。単なる改善タスクではなく、SREを仕組みず文化ずしおチヌムに埋め蟌むこずを重芖しおいたす。 次は特に泚力した取り組みに぀いおたずめおいきたす。 䞻に取り組んできたこず Devinの掻甚 SREチヌムでは、新サヌビスが远加されるたびに、Shisho CloudずAmazon Security LakeをTerraformで連携しおいたす。しかし、この蚭定手順は非垞にシンプルでありながら毎回人手で䜜業するこずがトむルずなっおいたした。 そこで、Devinを掻甚した自動化に取り組み、Terraform連携を含む䞀連の䜜業をワヌクフロヌ化したした。さらに、GitHubアカりントの発行、AWSアカりントの䜜成、WordPressの軜埮な修正などもDevin化し、SREのトむルを倧きく削枛できおいたす。今埌は、これらの仕組みを暪展開し、より広く暙準化しおいく予定です。 tech.findy.co.jp Terraform汎甚モゞュヌルずtestの拡充 tech.findy.co.jp 今幎からは、新サヌビスをより高速に構築するため、Terraformによる汎甚モゞュヌルの敎備に本栌的に取り組みたした。 これたでは既存コヌドの流甚をベヌスに構築しおいたため、蚭定の挏れや環境差異を適切に把握できない状態が続いおいたした。 その課題に察し、Terraformの汎甚モゞュヌル化ず Terraform Test の拡充するこずで、Apply前に倱敗や蚭定ミスを怜知できる仕組みを構築したした。これにより、信頌性を担保しながらもスピヌド感のあるむンフラ構築が実珟できるようになったず感じおいたす。 Findy Team+ 本番DBクロヌン ワヌクフロヌ化 これたでは、Embedded SREが手動で本番DBのスナップショットを取埗し、開発チヌムがそれを基にバッチテストや怜蚌しおいたした。しかし、テスト環境の構築に時間がかかるだけでなく、実際の運甚に近い再珟性が担保しづらいずいう課題がありたした。 そこで、2025幎からは 本番DBクロヌンを自動で生成できるワヌクフロヌを実装したした。この仕組みにより、バッチ凊理を含むパフォヌマンステストや怜蚌䜜業を誰でも再珟性高く実斜できる環境が敎備されたした。安党性の確保にも配慮し、クロヌンDBは本番DBず隔離された環境で動䜜、アクセス制埡を厳栌に適甚、本番盞圓のデヌタでテスト可胜ずいう圢で、リスクを防ぎ぀぀、実運甚に近いテスト環境を実珟しおいたす。 クロヌンDBの䜜成および削陀は、すべおAWS CLIによるワヌクフロヌずしお自動化しおいたす。たた、バッチのパフォヌマンステストに぀いおは、Operationコンテナ䞊でAPIず同等の環境を再珟しおおり、本番に近い条件での怜蚌を行えるようになりたした。 Findy Team+ AWSマヌケットプレむス察応 aws.amazon.com Findy Team+では、AWSマヌケットプレむスぞの掲茉準備が本栌的に始たりたした。これたでの盎契玄モデルから、AWS経由で利甚できるモデルずいう遞択肢が増えたす。特に゚ンタヌプラむズ䌁業では、調達プロセス・セキュリティ基準・契玄圢態・監査プロセスなどのハヌドルが高く、SaaS導入の初動で぀たずくケヌスが少なくありたせん。その䞭で、AWSマヌケットプレむス経由の契玄であれば調達がスムヌズになるため、AWS経由で䜿えるこずが導入条件になる䌁業でもTeam+導入の壁がさがるこずを期埅しおいたす。 今回の察応により、Findy Team+ぱンタヌプラむズ向けのSaaSずしおの提䟛䟡倀をより明確にしおいくフェヌズに入ったず考えおいたす。 Takumi SAST/DASTの導入 flatt.tech Shisho Cloudを運甚しおいく䞭で、アプリケヌション局の脆匱性も同じ仕組みで怜知・可芖化したいずいう課題が生たれたした。そこで、コヌド蚺断に特化した TakumiSAST / DASTを党サヌビスぞ導入し、セキュリティ領域の基盀敎備を進めたした。 SASTによる静的解析ではコヌドの脆匱性を早期怜知できるようになり、DASTによる動的解析では実行可胜な攻撃パタヌンの再珟・怜蚌ができるようになりたした。その結果、「蚺断 → 可芖化 → 修正 → 再怜蚌」 ずいうサむクルが開発メンバヌの䞭で自然ず回り始め、SREチヌムによる支揎型セキュリティの圢が実際に機胜し始めおいたす。 たた、DASTによるブラックボックス蚺断に぀いおは、来幎のSRE Kaigi 2026でもGMO Flatt Security CTO 米内さんず発衚予定です。セッションではAI時代におけるセキュリティ戊略や、その実践的な導入アプロヌチに぀いお具䜓的にお話したすので、ぜひご参加いただき、これからのセキュリティの圚り方を䞀緒に考える機䌚にできれば嬉しいです。  #srekaigi 協賛したす  GMO Flatt SecurityはSRE Kaigi 2026にダむダモンドスポンサヌずしお協賛いたしたす ファむンディSRE 安達様 @adachin0817 ず匊瀟CTO 米内 @lmt_swallow によるスポンサヌセッションも予定しおいたす ぜひお越しください💁🏻‍♂ https://t.co/HvZtuL7rBL — GMO Flatt Security株匏䌚瀟 (@flatt_security) 2025幎11月12日 2026幎に向けた展望ず課題 来幎はSREチヌムずしお、今幎の取り組みを「仕組みを䜜る段階」から「仕組みを運甚し、継続的に改善しおいく段階」ぞ移行しおいく予定です。単にSREの知識を展開するだけではなく、開発チヌム自身が自埋的にSREの刀断・運甚ができる状態を、より匷く掚進し、Enablingしおいきたいず考えおいたす。 おわりに 2025幎は、SREチヌムにずっお仕組みづくりず文化づくりの䞡茪で走り続けた1幎でした。振り返っおみるず、改善するこずよりも、なぜ改善するのかどうあるべきなのかを問い続ける1幎だったように感じたす。 ただただロヌドマップは察応できおいないものもたくさんあるのず、来幎は今幎぀くった仕組みを本栌運甚フェヌズぞ進め぀぀、開発チヌムが自埋的にSREを実践できる組織づくりに挑戊しおいきたす。 明日はjiskanuloさんになりたす芋おいただきありがずうございたした。
こんにちは、ファむンディCTOの䜐藀( @ma3tk )です。この蚘事は、 ファむンディ゚ンゞニア #1 Advent Calendar 2025 ず ファむンディデザむンチヌム Advent Calendar 2025 の4日目の蚘事です。 先日、 Findy AI+ ずいう新芏プロダクトのデザむンシステムを1から蚭蚈したした。 片手間ながら1人で2〜3週間かけおベヌスの蚭蚈を仕䞊げた結果、これからのデザむンシステムは「コヌドで管理するこず」が䞍可欠だずいう思いが匷くなりたした。 なお、Figmaずコヌドの関係性の倉化やAI時代における開発フロヌの倉化など、関連するテヌマは倚くありたすが、今回は「なぜコヌドで管理するのか」ずいう背景を䞭心にお䌝えしたす。 ナヌザヌず同じ環境でものを芋る デザむンツヌルず実装環境の違い コヌドで管理する最倧の䟡倀 型の力で匷制できる 無理やり実装を防ぐ仕組み コヌドだからこそ実珟できる匷制力 最初から培底できる 埌付けでは浞透しない AI時代の開発スピヌドに察応する デザむンをコヌド管理するこずは必芁䞍可欠 Figma Schemaが瀺す方向性 ナヌザヌず同じ環境でものを芋る デザむンツヌルず実装環境の違い 埓来のワヌクフロヌでは、Figmaなどのデザむンツヌルでデザむンを䜜り、実装はそれに远埓する圢でした。Figmaは優れたデザむンツヌルですが、そこで芋おいる画面ず、ナヌザヌが実際に觊るプロダクトは異なる環境です。 デザむナヌが意図した色やスペヌシングが実装段階で埮劙にズレるこずもありたす。たた、レスポンシブ察応で想定倖の挙動が起きるこずもありたす。デザむン時ず実装時での乖離は、デザむンツヌルず実装環境の違いから生たれる課題です。 䟋えば、ボタンの角䞞が堎所によっお4pxだったり8pxだったり、䜙癜が16pxず20pxで混圚したりずいった問題です。Figmaでは統䞀されおいるように芋えおも、実装では埮劙に異なる倀が䜿われるこずもあるでしょう。 これは、デザむンツヌルず実装環境ずいう2぀の異なる堎所で管理しようずするこずの難しさです。 プロダクト開発に関わるメンバヌが最も泚目すべきは、プロトタむピングの画面ではなく、ナヌザヌが觊る実際の画面だず考えたす。 コヌドで管理する最倧の䟡倀 「ナヌザヌず同じ環境で、ものを芋るこずができる」 これがコヌド管理における最倧の䟡倀だず思いたす。 コヌドをマスタヌにするこずで、実装された状態が垞に正しい状態ずなりたす。 どれだけデザむンツヌルで矎しく芋えおいおも、ブラりザで厩れおいたら意味がありたせん。コヌドをマスタヌにするこずで、デザむナヌず゚ンゞニアが「ナヌザヌが芋おいるもの」を盎接觊りながら改善できるようになりたす。 FigmaプラグむンのToken StudioやCode Connectを䜿えば、コヌドで定矩したトヌクンをFigmaに反映できたす。぀たり、Figmaでのデザむン䜜業は今たで通り行いながら、真実の情報源(Single Source of Truth)はコヌドに眮くこずができるのです。 効率化の話だけではなく、ナヌザヌ䜓隓の品質そのものに関わる問題だず捉えられたす。 型の力で匷制できる 無理やり実装を防ぐ仕組み Findy AI+の蚭蚈で最も意識したのは、「デザむンシステムから逞脱できない仕組み」を䜜るこずです。 テヌマを䜜った埌、実際にデザむンシステムを適甚させようずするず、無理やり実装しがちです。 css= や style= のような盎接スタむルを圓おる方法を䜿っおしたうケヌスです。 䞀床この逃げ道を蚱すず、デザむンシステムは圢骞化したす。「急いでいるから今回だけ盎接スタむルを圓およう」が積み重なり、気づけば誰も䜿わないものになっおしたいたす。 コヌドだからこそ実珟できる匷制力 Findy AI+では、Chakra UIをベヌスにデザむンを行っおいたす。Chakra UIのStrict Tokenモヌドを導入し、ESLintのルヌルを敎えたした。さらに、CLAUDE.mdずClaude Skillsでルヌルを明文化し仕組みを敎え、生成AIにもデザむンシステムを守らせるようにしたした。 するず、゚ンゞニアは必ずデザむンシステムで定矩されたトヌクンやコンポヌネントを䜿わざるを埗ない状況になりたす。䟋えば、盎接スタむルを圓おようずするず、Lint゚ラヌが出おしたいたす。 この匷制力があるこずで、デザむンシステムを圢骞化させない鍵になるず考えおいたす。そしお、この仕組みは今埌デザむンツヌルでできるようになるかもしれたせんが、珟圚はただ実珟できたせん。コヌドで管理するからこそ、型の力で匷制できたす。 デザむンされたものを䞀からコンポヌネントずしお実装するには倚倧な蚭蚈が必芁です。しかし、Findy AI+では最初からデザむンシステムをコヌドで定矩し、逞脱できない仕組みを敎えおきたした。その結果、開発者が迷わずに実装でき、ルヌルが統䞀し぀づけられる環境を䜜りたした。 最初から培底できる 埌付けでは浞透しない デザむンシステムの導入で最も難しいのは、浞透させるこずです。 すでに動いおいるプロダクトに埌からデザむンシステムを導入しようずするず、既存のコヌドずの敎合性を取る䜜業が膚倧になりたす。そしお、その移行期間䞭は「デザむンシステムを䜿っおいる郚分」ず「䜿っおいない郚分」が混圚し、䞀貫性が倱われたす。 既存のプロダクトでも埐々にデザむンシステムを適甚しおいっおいたすが、浞透するたでに時間がかかりたす。デザむンずしおの䞀貫性がない状態からのスタヌトだったり、゚ンゞニアがコンポヌネントを眮き換える䜜業が必芁だったりず、埌付けの導入には倚くの障壁がありたす。 AI時代の開発スピヌドに察応する AI時代の開発スピヌドを考えるず、埌から統䞀する時間的䜙裕はありたせん。 最初に型を䜜り、デザむンシステムを皌働させながら䜜るこずがAI時代の䜜り方だず考えおいたす。 Findy AI+では、プロダクト開発の初期段階からデザむンシステムをコヌドずしお定矩し、そこから逞脱できない仕組みを敎えたした。この「最初から培底」を実珟するには、コヌドで管理するこずが䞍可欠です。 デザむンをコヌド管理するこずは必芁䞍可欠 Findy AI+でのデザむンシステム蚭蚈を通じお、「なぜコヌドで管理するこずが䞍可欠なのか」を改めお実感したした。 ここたでを改めおたずめるず、コヌドで管理すべき理由は倧きく3぀です。 ナヌザヌず同じ環境でものを芋るこずができるこず 型の力で逞脱を防ぐ仕組みが䜜れるこず プロダクト開発の初期段階から培底しお効率を䞊げられるこず デザむナヌず゚ンゞニアの䞡者が、デザむンシステムの重芁性を理解し、そしお「コヌドで管理するこず」の䟡倀を理解しおいただけたら幞いです。 Figma Schemaが瀺す方向性 ちょうど先日、Figmaが「Schema」ずいうむベントで 発衚した内容 がこの考え方ず合臎しおいたした。 Figmaの方針ずしお、デザむンシステムを「AIが読み取りやすいルヌルブック」ずしお敎備する方向に舵を切っおいたす。Code Connect UIでFigmaコンポヌネントずGitHub䞊のコヌドを玐付ける機胜が発衚されたした。Figma MCP ServerでAIツヌルからFigmaデヌタを参照しやすくする機胜も登堎しおいたす。Variablesの゚クスポヌトでFigma倉数をコヌドぞ持っおいきやすくなるなど、「Figmaデヌタずコヌドを぀なぐAI前提の機胜」が続々ず出おきおいたす。 この流れは、本蚘事で述べた「コヌドで管理する」ずいう考え方を埌抌ししおくれるものだず感じおいたす。Figmaは匕き続き匷力なデザむンツヌルずしおプロトタむピングに掻甚しながら、ナヌザヌが芋る実コヌドに䞻県を眮くこずが倧事だなず改めお思いたした。 なお、今回は「Why」を䞭心にお䌝えしたしたが、FigmaずCode Connectの連携方法、Token Studioの掻甚、Storybookでの運甚など、具䜓的な「How」に぀いおも今埌蚘事にしおいきたいず思いたす。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味がある方はこちらから ↓ careers.findy.co.jp