Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AIコーディングをセッションで終わらせない: PHPライブラリ開発におけるコンテキスト承継設計
Search
ICKX
November 14, 2026
Programming
48
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AIコーディングをセッションで終わらせない: PHPライブラリ開発におけるコンテキスト承継設計
ICKX
November 14, 2026
Transcript
82 slides
~AIコーディングをセッションで終わらせない~ PHPライブラリ開発 における コンテキスト承継設計 同人ソフトサークル Project ICKX 若葉 章 @effy_staffs
(EFFY開発チーム)
自己紹介 • 若葉 章(わかば あきら) • 2010年~ 同人ソフトサークル project ickx
• プロデューサー / 営業 / インフラ / サーバサイド... / ゲームの実開発以外全部 • 本職はスタッフエンジニアっぽいこともするphpエンジニア • php続けてもうすぐ27年 php3の頃からお世話になっています • 趣味は自転車とコーヒーとアマチュア無線、最近BEVも始めました • Nintendo Switch で『VERTICAL STRIKE ENDLESS CHALLENGE』販売中 • 早ければ来年度中に処女作にして最高傑作『Effy one of unreasonable “if”』を Steamでリリースします • Qiitaで『phpで高速に・省メモリ・確実に日本語csvを扱う方法』公開中 https://qiita.com/wakabadou/items/84b48ca12f25fb2fb69c 「composer require fw3/streams」をよろしくね。 「composer require tacddd/tacddd」もよろしくね。 「composer require bypassflow/crypt」もよろしくね。
Tyrell IVE Sports complete Santillo Cicli RB-01e
icom IC-705 Toyota bZ4X Z FWD
Effy one of unreasonable “if”
宣伝 SJIS CSVを直接扱えるライブラリ “fw3/streams“ 来るべきAI化時代に輝く “bypassflow/*” をよろしくね
お知らせ と 前提条件
本登壇の知見はVS Codeにおける ChatGPT Codex拡張利用時に 最大の効果を発揮します
なんでわざわざ VS Code拡張なの?
以前より適当(*1)な冪等性を発揮する AIによる実装を研究していました *1) てき‐とう〔‐タウ〕【適当】[名・形動](スル) ある条件・目的・要求などに、うまくあてはまること。 かなっていること。ふさわしいこと。また、そのさま。 コトバンク https://kotobank.jp/word/%E9%81%A9%E5%BD%93-575436
同じ入力に対して安定すべき部分は 極力揺らがない出力が欲しい
え??? それはAIの旨味を無効化するのでは?
この辺りはPHPカンファレンス香川2026でお話した AIの揺らぎに “コシ” を与える階層化品質設計 をご参照ください
閑話休題
なぜ適当な冪等性が 欲しいのか
組織として開発する場合 『いつ誰が作業してもほぼ同じ結果』 を得られる必要がある
そのため
組織における実行環境として 過去の会話で結果が変化してしまう パーソナライズされたAI環境は 目的に対して極めて低品質といえる
個人が思索を深める分には 問題ないんです むしろあるべき
個人化のための記憶は 便利な機能として提供されています 例:Codexメモリ
つまり Codex拡張ならば
画像の通りの設定とすれば
セッション単位で パーソナライズがない フラットな環境をほぼ保証できる
PHPライブラリ開発 における コンテキスト承継設計
なんで個人で開発している ライブラリで組織を前提とした 開発スタイルを要求しているんです?
(1) 3日経ったら自分も他人って 言うでしょ
(2) 毎度出来がバラバラのコード 出されたらレビューしんどくね? 俺はしんどいしこれ以上 胃にポリープ作りたくない
(3) 安定して出力できるのなら 『正しく』ゼロレビューで 出力を利用できるよね
『正しく』ゼロレビューについては 他に品質保証・品質管理の観点が 必要ですが、本日は対象外となります
AI時代のソースコード品質 -定義・管理・保証を考える-
としてどこかで登壇するので その際はよろしくお願いします
閑話休題
(1)(2)(3)の課題解決ためには 組織開発と同じ要求が必要と 定義できました
さて
セッション単位で パーソナライズされていない フラットな環境
から始めると何が発生するのか
AIは毎回、身に覚えのない 前回の作業の続きを要求される
これの顕著な例としては /home/vscode/.codex/ をマウントしていない環境での devContainerリビルド
チャット履歴が全て吹き飛ぶので 文字通り何もかも知らない状態から 再開を求められる
AI『コードは残っている』 AI『なぜそうしたかが判らん』
そこで用意した概念がこちら
セッション トピック ノート
一続きの会話をセッション 現在の主題をトピック 判断・未決・次の一手など 続きを始めるために残すノート
セッション • • • 一続きの会話とその場で行う作業の区切り 同じセッションの中でトピックが変わることも セッションが終わっても作業が完了したとは 限らない
トピック • • • 現在取り組むタスクや論点の単位 会話の途中で切り替わり、 別のセッションへ持ち越すこともできる 判断や残件は、セッションではなくトピックに ひもづける
セッションを超えてトピックは続く セッション1 同じトピックの現在地 セッション2
ノート • • • 次の作業に必要な判断記録 決定とその理由、採らなかった案、未決事項、 次の一手、参照先が記録される 会話の逐語録ではなく、続きを始めるための記録
これらを残す事で 会話やログそのものが途切れても 全体の流れと作業の節目をたどり 再接続は出来るようになります
セッションをまたいで進捗を残す
これだけだと Anthropicの公開例と同じに見えます
ですが、継続の単位と残す内容が異なります 本登壇 Anthropicの公開例 • 作業をセッションで区切る • 進捗ファイルで作業状態を引き継ぐ • 実装項目の一覧で残件を確認する •
セッションとトピックを分ける • ノートに判断・未決・次の一手を 残す 共通点:会話の外に、次へ渡す状態を残す
そしてもう一つ
人格スナップショット
同一内容の意思決定に対して 冪等性に影響を与えるものとして 仮想的な人格を定義してみました 厳密には『人格の輪郭を残す』
判断だけでなく、その時、そのAIが • 何を面白がり • 何に違和感を持ち • どこで慎重になったか を保存します これは次の対話へ渡す人格の輪郭です
AI『かつてこういう在り方だった』 AI『こういう話の流れだった』 AI『そこではこれを重視していた』 AI『なぜそうしたのかもある』
チャット履歴が全て無くとも ある程度は取り組み方も含めて 再開出来る
何を続けるか、どう向き合うか セッション・トピック・ノート 決定・未決・次の一手を残す 人格スナップショット 何を面白がり、どこに違和感を 持ち、何に慎重になるかを残す 作業の現在地と、取り組む姿勢を別々に引き継ぐ
記録のタイミング
何をいつ残すか セッション 会話を区切るとき、区切りと参照先を残す トピック 話題を移すとき、現在地を残す ノート 判断や未決事項がまとまったとき、要点を残す 人格 関心や違和感が見えたとき、姿勢を残す
残した記録をどう読み直すか まずトピック トピックの現在地と次の一手 ノート 採った判断、退けた方向、未決事項 人格 何を面白がり、どこで慎重になったか 必要ならセッション 会話の区切りと、参照先をたどる
リポジトリに残す文脈 入口・規約 最初に読む場所とプロジェクト固有の約束 手順・レビュー 進め方、判断規範、確認する観点 作業の記録 セッションの区切りとトピックの現在地 判断の記録 理由、退けた方向、失敗、次の一手
実例 ファイル検査をどこまで引き受けるか
ファイルの「値」と「中身」は同じ要求か 値として扱う 中身を調べ、扱い方を決める ファイル名・パス・容量 アップロード情報の形 形式・内容・一時ファイル 保存先・権限・信頼境界
規則ライブラリが受け持つ範囲 ファイルの値 名前・パス文字列・容量など ファイルの状態 存在や可読性の確認 アップロード情報 配列の形と付随する値の検証
ファイルの内容の検査と 保存・権限の方針は 別の要求として扱う
セッションを閉じ、判断を残す セッション 判断の詳細 ファイル検査の話題を区切る この記録の判断欄は空欄 会話の区切りと、判断を残す場所は別
トピックに残る現在地 状態 規則ライブラリの責務整理は完了 決定 実体の検査を規則ライブラリへ戻さない 未決 この境界の整理については、なし 次の入口 実体の検査を別の要求として検討
ノートには判断の理由も残す 理由 既存のファイル基盤の構想と責務が重なる 境界 規則ライブラリは値と低い水準の確認まで 禁止事項 実体の詳しい検査を規則ライブラリへ戻さない レビュー観点 今回の変更が、この責務境界を越えないか
次のセッションは、トピックから始める 1 トピック 現在地と次の入口を知る 2 ノート 境界を分けた理由を確かめる 3 現行の実装 新しい要求に照らして判断する
前のセッションの記録は、必要なときにたどる
記録は再開の入口 現行の実装と次の要求で確かめる
もう一つの実例 設計への向き合い方も残す 題材:クラス構造を扱うライブラリ
人格には判断の姿勢を残す 関心 難しさを面白がり、整理しがいを感じる 違和感 利用者の「筋が悪い気がする」を信号にする 慎重さ 長期で崩れない境界を選ぶ 設計の結論と、次の判断の仕方を別々に渡す
何を残し何をその場で判断するか プロジェクト資産として残す 次のAIが行う 固有の規約・禁止事項 判断の理由と、失敗した試行 レビュー観点・現在地・姿勢 今回の要求を読み取る 現行の実装と照らす 変更案を考え、検証する 残した文脈を入口に、判断は現在の状況で行う
ライブラリの責務を分けるように 引き継ぐ情報の役割も分ける
ここまでの経緯と結果 発端 開発環境の再構築で、チャット履歴が消えた 残したもの 現在地・判断の理由・取り組む姿勢 結果 別の会話から、現行の実装と照らして再開できる
最初は一つのトピックから 1 止める前に、現在地と次の一手を書く 2 判断の理由と退けた方向をノートに残す 3 次のセッションで読み、現行の実装と照らす 関心や違和感が見えたら、人格の輪郭も残す
コンテキスト承継設計とは
現在地や判断理由、規約、取り組む姿勢を リポジトリに残し、次のAIが現行の実装と 照らして再開できるようにする
その保存先と読み順まで含めて コンテキスト承継設計と呼んでいます
次の問い 引き継いだ先で AIが書いたコードを 何を根拠に通すのか
ありがとうございました
More Decks by ICKX
See All by ICKX
AIの揺らぎに“コシ”を与える階層化品質設計
ickx
0
740
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
230
階層化自動テストで開発に機動力を
ickx
1
1k
検索条件にCRITERIAを
ickx
0
110
「兵法」から見る質とスピード
ickx
1
630
あなたの知らない新潟
ickx
0
120
香川にはTyrellがあるからね
ickx
0
480
品質が高いコードって何?Rev2.1
ickx
2
1.2k
品質が高いコードって何?
ickx
7
5.1k
Other Decks in Programming
See All in Programming
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
250
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
210
SODA - FACT BOOK(EN)
sodainc
1
240
はじめてのPLATEAU
nokonoko1203
1
650
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
Claude Code ハーネスDeep Dive – 君はどこまで制御する? -
takateeen_knj
6
5.7k
Getting Started with Vibe Coding
miccheng
0
220
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
240
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
240
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
180
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.9k
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.2k
Featured
See All Featured
Optimizing for Happiness
mojombo
378
71k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
640
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
560
The Cost Of JavaScript in 2023
addyosmani
56
10k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
570
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
Exploring anti-patterns in Rails
aemeredith
4
570
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
660