Slide 1

Slide 1 text

2025年10月29日 コドモン 友野 敬大 長期運用プロダクトこそ効く コンテキスト管理の妙 生成AIと共に、長期運用プロダクトのさらなる成長を加速させるための実践知 LT

Slide 2

Slide 2 text

2 友野 敬大(ともの あきひろ) ● 2025/03 コドモン ジョイン ● 使っているAIエージェント ○ Claude Code(2025/07~) ● 好きなもの ○ 型、柄シャツ ● 特技 ○ おいしい焼きそばを作る スパゲッティコードは作りません

Slide 3

Slide 3 text

3 ● コドモンレコ ○ こども施設の入退室打刻サービス ○ 1st commitが2017年8月(8年経過) ● 誤帰宅防止アラート機能追加PJの 生成AI活用の学びをお話します ○ 2025/07~09の約3ヶ月 * エンジニア3人 ○ 打刻種類、兄弟パターン、入退室切替など 考慮すべき既存仕様が多いPJ 8年来サービスの機能追加時の生成AI活用の話です

Slide 4

Slide 4 text

4 いい感じによろ!ではうまくいかない 開発者 AIエージェント ソースコード この機能作って

Slide 5

Slide 5 text

5 いい感じによろ!ではうまくいかない 開発者 AIエージェント ソースコード この機能作って これでどう? (うーん、微妙)

Slide 6

Slide 6 text

6 いい感じによろ!ではうまくいかない 開発者 AIエージェント ソースコード この機能作って これでどう? (うーん、微妙) これでどう?

Slide 7

Slide 7 text

7 いい感じによろ!ではうまくいかない 開発者 AIエージェント ソースコード この機能作って これでどう? (うーん、微妙) これでどう? 間違っていました。 これが正しいです。

Slide 8

Slide 8 text

8 いい感じによろ!ではうまくいかない 開発者 AIエージェント ソースコード この機能作って これでどう? (うーん、微妙) これでどう? 間違っていました。 これが正しいです。 こちらも直します

Slide 9

Slide 9 text

9 いい感じによろ!ではうまくいかない 開発者 AIエージェント ソースコード この機能作って これでどう? (うーん、微妙) これでどう? 間違っていました。 これが正しいです。 こちらも直します 完璧です!

Slide 10

Slide 10 text

10 いい感じによろ!ではうまくいかない 開発者 AIエージェント ソースコード この機能作って これでどう? (うーん、微妙) これでどう? 間違っていました。 これが正しいです。 こちらも直します 完璧です! すみません 勘違いです

Slide 11

Slide 11 text

11 なぜこうなるのか

Slide 12

Slide 12 text

12 長期運用プロダクトには 特徴がある

Slide 13

Slide 13 text

13 長期運用プロダクトの特徴と課題(抜粋) class hoge { 責務1 責務2 責務3 … 責務n } // 公式仕様に従う と動かなくなる $awesome.exec( do(), hack(another()), ) 1クラスが大きく コード量が多い 様々なアーキテクチャの 書き方がある ベストプラクティスに 則っていない その時々のベストを尽くし た歴史があり、今どの処理 方式か分からない ライブラリをハックした使い 方が散見され、特定バージョ ン以外で動かないことも あいまいな指示のままファ イル全体を読ませると推測 の割合が増える v1 v2 v2’ v3 v4 2000年~ 2020年~ 2010年~

Slide 14

Slide 14 text

14 どうする?

Slide 15

Slide 15 text

15 ● あいまいさを残すと情報量の多さゆえ暴走する ● GitHub Issueでチェックボックス形式で細かくタスク分解 ○ インタフェース設計 ○ Redなテストコード ○ レイヤーごとの実装 ○ 環境変数の設定 etc. ● タスクごとに /clear する ○ コンテキストをリセットして、 前のタスクの影響を受けないようにする 指示は細かく明確に 1クラスが大きくコード量が多い 開発者 AIエージェント ソースコード GitHub Issue

Slide 16

Slide 16 text

16 ● 例えば ○ 現在のアーキテクチャとレイヤー責務 ○ 採用している技術スタックとバージョン ○ 大切にすべき設計原理原則 ○ マルチテナント環境のテナントID解決方法 ● 他にも ○ 段階的なタスクの進め方 ○ コミットタイミングの明示 ○ コーディング規約 ○ テスト戦略と実行ガイドライン 長年の暗黙知を教え込む CLAUDE.md 様々なアーキテクチャの書き方がある ベストプラクティスに則っていない 開発者 AIエージェント ソースコード GitHub Issue

Slide 17

Slide 17 text

17 ● いつどうやって作り込む? ○ 暗黙知はタスクごとにClaudeとふりかえりをしてCLAUDE.mdをアップデート ○ 最初は毎回、慣れてくれば適宜 ● 例えば ○ 「タスク着手時から私の指示で矯正されたコンテキストに不足している情報は何?」 ○ 「迷いなく進めるためにタスクの粒度はふさわしかった?」 ふりかえりをしてコンテキストを育てる

Slide 18

Slide 18 text

18 ● 充分に育ったコンテキスト環境下では「LGTM」「次へ進みましょう」だけでおおよそ のタスクは進められます ○ 生成AIなしで2~3日見積もりのAPI実装は、 1行もコードを書かずに0.5日未満で完了 💡モデリングは人がちゃんとやる! ふりかえりをしてコンテキストを育てる

Slide 19

Slide 19 text

19 ● 長期運用プロダクトこそ効くコンテキスト管理の妙 ○ 情報量が 多い 長期運用プロダクトだから こそ、 生成AI活用には情報の取捨選択が 肝に なる ■ タスク指示を明確にする:ユーザープロンプト(GitHub Issue) ■ 暗黙知の制約を注入する:システムプロンプト(CLAUDE.md) ○ AIエージェントとふりかえりながらコンテキストを育てる 他、懇親会でお話しましょう! ○ Claude Code Hooksで何を自動化している? ○ サブエージェントの使い所? ○ おいしい焼きそばの作り方? まとめ - ご清聴ありがとうございました