2日間でつくるもの
Day1 で手元の自動化を設定で固め、Day2 でそれをチームの継続的インテグレーションに持ち上げます。2日目の最後には、Issue から実装、レビュー、Merge Request までが夜間に機械だけで1周し、朝に人がマージを判断する状態を各自の手で作ります。
タスク別のモデルとエフォートの振り分け
変更の行数と触った層で、レビューに回すモデルと考える深さを変えます。設定の置き場所と優先順位を確かめてから、規模別のレビュアーを2本定義して手元で比べます。
AIを使った巻き戻しの3層
何が戻せて何が戻せないかを、ツールの巻き戻し、Git、データベースの3層に分けて扱います。壊す操作は文章で禁じるのではなく、設定とフックで機械に止めさせます。
実装とレビューの分離
書いた本人に採点させない根拠を確かめ、同じ変更を3通りのレビューと CI の ai_review で読ませて指摘の差を表にします。分離の置き方を決め、Merge Request の継続的インテグレーションに関門として載せます。
夜間に回る最小構成
人が居ない時間に Issue を1本実装し、テストとAIレビューを通して Merge Request を出すジョブを作ります。止め金をすべて設定に書き、マージだけを人に残します。
2日間のゴール
研修が終わったときに手元に残るものです。
- 規模別のレビュアー定義2本と、モデルとエフォートを振り分ける設定の差分
- 壊す操作を止める拒否ルール、フック、フックの単体テスト
- 対象バージョンで動かない記法を編集直後に差し戻すフックと、継続的インテグレーションの検査ジョブ
- レビュー基準(REVIEW.md)、観点別のレビュアー3本、指摘を JSON で受けて P0 と P1 で止める関門
- Issue を夜間に実装して Merge Request まで出すジョブと、その止め金の設定
- そのまま自社リポジトリに置いて動く5層のハーネスの雛形一式と、自社の空きを見つける診断シート
- 2日間で足したもの17点を、自社のリポジトリのどこへ置くかを記した持ち帰り台帳と、社内展開ガイド。17点の内訳は持ち帰り台帳にあります
当日の流れ
2日とも [420min](昼休憩を除く)です。
Day1 9月29日(火)
| セッション | 内容 | 時間 |
|---|---|---|
| Claude Desktop の基本操作 | 演習で使う画面の場所と、モード、ワークツリー、統合ターミナルの操作を確かめます | [20min] |
| 到達像の実録と8層チェック表 | 前夜に回った夜間パイプラインの実物を見て、自社の現在地に印を付けます | [30min] |
| 完全自動開発の全体像と線引き | 8層の部品と、機械に任せる範囲と人が残る範囲を一次資料で確かめます | [30min] |
| 標準化の動向と乗り換え耐性 | ツールを替えても残る資産と捨てる資産を分けます | [15min] |
| モデルとエフォートの設定階層 | タスク単位で振り分ける設定の置き場所と優先順位を実物で開きます | [25min] |
| プチ演習1 規模別レビュアーの2定義 | 軽量と重量のレビュアーを定義し、1行だけの差分と stock_ctl.php の assign() 全体を渡して、どちらに回るかを比べます | [20min] |
| AI を用いたロールバックの3層 | ツール、Git、データベースの各層で何が戻せて何が戻せないかを表にします | [20min] |
| プチ演習2 巻き戻し制約の機械強制 | AI が書いた範囲だけを戻す手順を確かめ、戻せない Git 操作を拒否ルールで止め、DB 配下の編集と push を確認に回します | [20min] |
| 権限・フック・サンドボックス | 三層の強度差と、秘密情報をエージェントに見せない起動方法を実演します | [30min] |
| 昼休憩 | [60min] | |
| 書いた本人に採点させない根拠 | 自己レビューの限界を示す研究と、分離の4つの置き方を比べます | [20min] |
| プチ演習3 秘密情報の遮断とフックの単体テスト | 読み取りの拒否だけでは塞げないシェル経由の経路をフックで止め、フックの単体テストに自分で考えたケースを1件足します | [15min] |
| ハンズオン1 改修1本の AI 駆動一周と実装・レビューの分離 | Issue #1 を調査から Merge Request まで回し、同じ変更を3通りのレビューと CI の ai_review で読ませて差を表にします | [160min] |
| Day1 の持ち帰り台帳と宿題 | 本日分7点の置き場所を決め、Day2 までの宿題を確認します | [15min] |
Day2 10月6日(火)
| セッション | 内容 | 時間 |
|---|---|---|
| PHP 7.4 で動くコードを書かせる指示 | 制約の置き場所を3段に分け、文章だけでは戻ってくる混入を実ログで見ます | [20min] |
| プチ演習4 PHP 7.4 制約の機械検査 | 編集直後に検査するフックを登録し、match が差し戻されて switch に書き直されるまでを確かめ、検査のテストケースを1件足します | [20min] |
| 指摘絞り込みの実物設定と判断軸 | 動いている設定でレビューの縮め方を見て、人が残る観点を3つ以内に絞ります | [25min] |
| プチ演習5 レビュー出力の JSON ゲート | JSON の指摘の見本を判定スクリプトに通し、P0 と P1 で止まる線と、判定できない入力の扱いを確かめます | [15min] |
| ハンズオン2 レビュー観点の切り分けと CI ゲート化 | レビュー基準を起案し、観点別のレビュアーを並べ、CI ゲートを有効にしてテストを生成します。ゲートで1回は落ちるところまでが合格です | [80min] |
| 昼休憩 | [60min] | |
| 夜間ループの設計と人間の立ち位置 | 無人実行の部品と止め金を現物で確かめ、人が持つ役割を決めます | [20min] |
| プチ演習6 止まる Stop hook | 継続の判定を見ない版と、テストが赤い間だけ1回続いて止まる版の差を確かめます | [15min] |
| ハンズオン3 夜間ループの最小構成 | Issue を1本無人で実装させて Merge Request が立つまでを通し、止まった箇所を止め金の4層のどれで直すか選んで再実行します | [105min] |
| 理想的なハーネスの基準と雛形、自社の診断 | 公開されている基準と到達点の数字で自社の設計を突き合わせ、5層の雛形を実物で見ます。下の2本の演習を含みます | [85min] |
| プチ演習7 自社ハーネスの診断 | 先に予想を書いてから自社のハーネスを30項目で点検し、空いている層を番号で出します(上の [85min] の内数) | [15min] |
| プチ演習8 雛形の1層の置き換え | 空いていた1層を雛形から自社の値に置き換え、テストで止まることを確かめます(上の [85min] の内数) | [20min] |
| 持ち帰り台帳の確定と社内展開ガイド | 2日で足した17点の置き場所と担当を決め、A4 1枚の展開ガイドを書きます | [20min] |
| 効果測定と8層チェック表の塗り直し | Merge Request のデータから取れる4指標を決め、到達した層を塗り直します | [15min] |
演習名を押すと、ハンズオンガイドのその演習が開きます。昼休憩のほかの短い休憩は、セッションの区切りで入れます。
ツールと役割分担
手元での作業は Claude Desktop と VSCode、変更の共有とレビューは GitLab で行います。
Claude Desktop
中の Claude Code を使います
- 設定ファイルとスクリプトの作成
- 既存コードの調査
- テストの生成とレビュー
VSCode
お使いのものをそのまま
- ファイルの編集
- コミットと同期
GitLab
演習用にご用意します
- Issue から Merge Request までの流れ
- 継続的インテグレーションからのAIレビュー
事前セットアップ
Day1 の前日までに、次の準備をお願いします。所要はおよそ30分です。
- 0準備物の確認と Claude Desktop の導入VSCode、Git、Claude Desktop がそろっているかを確かめます。Windows の方は PowerShell の実行ポリシーも、コマンド1行で確かめます
- 1GitLab へのログインお送りするアカウントでログインし、初期パスワードを変更します
- 2演習リポジトリの取得GitLab の画面から VSCode へ取り込みます。コマンドの入力は要りません
- 3Claude Desktop で演習フォルダを開く当日と同じ形で開き、応答が返ることを確認します
- 4コミットの作者名の登録Claude Desktop の統合ターミナルで、名前とメールアドレスを設定します
演習の進め方
説明を聞く時間より、手を動かす時間を長く取ります。
進み方
各セッションは、最初に10分から15分で狙いと判断の基準を共有し、残りを演習に充てます。演習中は講師が会場を回り、オンラインの方はチャットで質問を受け付けます。区切りごとに手を止めて、出てきた質問にまとめてお答えします。
手が止まったまま時間が過ぎることのないよう、各演習には途中経過の確認ポイントを置いています。そこまで進んでいれば次に進めます。追いつけなかった部分は、ハンズオンガイドの手順から後日たどれます。ガイドは Day1 と Day2 でページが分かれていて、左の目次から演習へ飛べます。
詰まったとき
エラーの文面をそのままAIに渡してください。原因の切り分けもAIに任せられます。よくある症状と対処は困ったときのページにまとめています。それでも進まないときは、画面をそのまま共有していただければ講師が見ます。オンラインの方は Zoom のチャットに書いてください。
配布物
当日使う一式です。演習リポジトリは事前セットアップの中で取得します。
印刷や手元保存用の PDF(A4): Day1 の分(71ページ)、 Day2 の分(98ページ)、 全文(262ページ) Day1 と Day2 の分は、折りたたみを閉じたまま印刷した版です。背景の説明や困ったときの対処まで読みたいときは、折りたたみも開いた全文の版を使ってください。
FAQ
ターミナル版の Claude Code が必要ですか
不要です。当日の説明と画面は Claude Desktop に合わせていて、コマンドを打つ十数か所も Claude Desktop の統合ターミナルにそのまま貼れる形で書いてあります。ターミナル版に慣れている方はそちらで進めても構いませんが、画面や操作の説明は読み替えてください。読み替え方は事前セットアップガイドの Step 3 にあります。
研修のあとで定型作業を CI から自動で走らせる段階では、ターミナル版の非対話実行を使います。Day2 のハンズオン3 の夜間ジョブも、CI の中でターミナル版を動かしています。
演習で使う環境は、普段の開発環境と同じですか
異なります。演習の題材アプリは PHP 7.4 を対象にしていて、CI では PHP 8.3 と PHP 7.4 の両方で検査します。ディレクトリの構成は実環境に寄せます。対象のバージョンで動くコードをAIに書かせる方法は、Day2 の最初のセッションで扱います。
演習用のリポジトリに、自社のコードを置いてよいですか
置かないでください。演習は配布する題材だけで完結します。実際のコードや業務データは持ち込まずにお進めください。
オンラインから参加します。演習は同じようにできますか
同じ演習に取り組んでいただけます。手元の環境は会場の方と同じものを使います。質問は Zoom のチャットへお願いします。区切りごとにまとめてお答えします。
Day1 と Day2 のあいだに、やっておくことはありますか
宿題が2つあります。1つ目は、直近のご自身の改修1件で、AI レビューの指摘のうち対応した件数と見送った件数を数えることです。数字2つのメモで足り、理由は書かなくて構いません。Day2 の冒頭で全員分を並べます。2つ目は、普段お使いのコードレビュー用エージェントが見ている観点を1つずつ取り出し、「機械判定できる」「人が見る」「両方」の3列に仮で振った表を1枚作ることです。正解は探さなくて構いません。Day2 のハンズオン2 で、レビュー基準の初版を書くときに使います。
当日参加できません。あとから追えますか
ハンズオンガイドに、手順と達成状態を演習ごとに残しています。手順だけで再現できるよう、判断の理由もあわせて書いてあります。座学の内容は、配布物の座学スライドでたどれます。
作ったものを社内へ展開してよいですか
研修で作成したものは、貴社内でご利用いただけます。展開の手順は Day2 の最後に扱います。二次利用の条件については別途ご案内します。
