配布資料の目次 › 開発フローマニュアル
配布資料 11毎日の開発フローマニュアル
題材プロジェクトの実運用(約9ヶ月・5,850コミット)を一般化したランブック。 持ち帰って【 】の箇所を自分のプロジェクトの値に置き換えて使ってください。
1日の基本形はこうなります。
セッション開始 → 着手順決定 → イシューごとの実装ループ(複数周)→ バッチ検証とデプロイ → 完了処理 → セッション終了
手順そのものは平凡だと思います。効いているのは順序ではなく、どこで止まるかのほうです。 各所にフックが仕込んであって、飛ばそうとすると止まります。だから見ていなくても任せられます。
0. 前提となる運用の意味論
このフローは次の合意の上に成立する。導入時にチームで先に決めること:
- すべての作業はイシュー起票から始まる。イシューのない変更は存在しない
- イシューステータスの意味: In Progress =作業中 / In Review =マージ済み・デプロイ待ちキュー / Done =staging 検証完了後のみ
- ブランチは必ず最新 master から
fix/*・feature/*を切る。マージは通常マージのみ(squash 禁止) - 検証の階段(下記 3-5)を全段通るまで「完了」と言わない
- staging デプロイはセッション原則1回のバッチ。イシューごとの逐次デプロイはしない
1. セッション開始(約10分)
- 記憶の引き継ぎ: 記憶システムの最近更新トピックを個別に全件読み切る(広い曖昧検索はしない)。メモリのインデックスも確認する——記憶ソースが複数ある場合、片方だけの参照は片落ち
- キューの棚卸し: In Review(デプロイ待ち)と In Progress(中断中)を一覧し、前セッションからの持ち越しを把握する
- git 状態確認:
git checkout master && git pull。前セッションの未コミット残骸がないかgit status - モードの確認: 今日の指示は「確認して」(調査・計画のみ・編集禁止)か「実行して」(staging 検証まで一気通貫)か。曖昧なら確認する
2. 着手順の決定
- Bug ラベル最優先。次にユーザーの明示指示、その次にキューの古い順
- 作業中に見つけた別問題は、その場で直すか即時起票する。「別セッションでやろう」という先送りは禁止——先送りされた問題は消える
- 規模で進め方を変える: 3ステップ以上はプランモードで計画してから / 5タスク以上はサブエージェント駆動(計画→探索→実装並列→テスト生成→レビュー)/ 大規模仕様変更は exploration 文書から(→
chronicle/02)
3. イシューごとの実装ループ(1イシュー = 1周)
- イシューを In Progress に変更
- 原因調査: 原因が判明したら根本原因と修正方針をイシューにコメント(未来の自分と AI のため)
- ブランチ作成: 必ず最新 master から。
git checkout master && git pull origin master git checkout -b fix/【ISSUE-ID】-【短い説明】 - 実装: バックエンド → フロントエンドの順。既存パターンに合わせ、1PR=1レイヤーを守る(差分200行超で分割を再検討)
- 検証の階段(順番に全段。飛ばさない):
段 コマンド例 合格条件 型 npx tsc --noEmitエラーゼロ 単体 【make test-unit】全 PASS。金銭・数量ロジックは成分別 assertion コンテナ docker compose build && docker compose psビルド成功・全 healthy E2E 【make test-e2e】該当範囲 PASS(緑表示を鵜呑みにせず対象 spec の実行を確認) 文書 関連ドキュメント特定 同一コミットで現行仕様を反映(挙動不変時のみ理由付きスキップ可) - PR 作成 → イシューに PR を Resources として登録
- 通常マージ:
gh pr merge --merge(squash 禁止)。コンフリクトは解消してからマージ・PR のオープン放置禁止 - イシューを In Review に変更(= デプロイ待ちキュー投入)。ここで Done にしない
dev ブラウザテストは per-PR 必須ではなく、バッチ単位でまとめてよい(次節)。ただし per-PR ゲート(型 + 単体 + ビルド緑)は必須。
4. バッチ検証とデプロイ(セッション内のマージが一段落した時点で1回)
- dev 一括ブラウザ検証: キュー内全イシューの観測可能な変更を開発環境(localhost)で検証する。
- リンク・ボタン遷移のみで到達する(URL 直接入力は導線検証にならない)
- 目視・スクリーンショット・DOM 引用の3点セットを記録する(grep と computed style だけで完了にしない)
- 実フローで検証する(トップページが表示された、では不十分。価値が届く最終画面までデータを通す)
- 空表示の画面は「実装済みでデータが無い」のか「ハリボテ」なのかを必ず判別する
- 問題なければ staging デプロイ(セッション原則1回):
- 非同期起動スクリプト + 完了マーカーの短時間ポーリングで監視(長時間 SSH 監視は禁止 → 事例 #10)
- DB マイグレーションを含む場合は起動前に手動 DB バックアップ
- staging 一括ブラウザ検証: dev と同じ基準で全キューイシューを検証
- 単独デプロイの例外条件(バッチに混ぜない): DB マイグレーション / 金銭フローのバックエンド変更 / 緊急バグ修正
- 問題発見時: 該当イシューを In Progress に戻して修正 → 修正 PR をマージしてからバッチに再合流
5. 完了処理(バッチ検証後にまとめて)
- テスト結果を各イシューにコメント: テスト項目・OK/NG・スクリーンショット要約(dev + staging 両方)
- 完了コメント: 実装内容・変更ファイルの要約
- Done 化: staging 検証完了後のみ。Done にする直前にイシューの最新ユーザーコメントを再読する(追加指示の見落とし防止)
6. セッション終了(切り上げ前チェック)
- In Review キューが残っているなら、デプロイ + 一括テストまで済ませてから切り上げる(キュー放置での持ち越し禁止)
- 記憶の同期: 専用の同期手順で実行(手動の部分的な保存は取りこぼす → 事例 #02)。引き継ぎ要点は1件・簡潔に
- CI 消費量の確認: 当月の実行回数を確認し、無料枠の消費感覚を持つ(→ 事例 #03)
- 未完了イシューのステータスと次アクションをイシューコメントに残す
7. デイリー禁止事項ダイジェスト
- squash マージ / worktree からのブランチ作成 / 引数なしの
docker compose up -d(staging・本番) - URL 直接入力でのブラウザテスト / grep・computed style だけでの完了宣言 / 人間目視なしの UI 変更完了
- 本番デプロイ(ユーザーの明示指示 + 許可時間帯のみ。AI の自己判断では絶対に不可)
- 金銭ロジックへの「最小差分・今夜反映」推奨 / 本番での金銭テスト
- 失敗テストの skip 逃げ / 「別セッションで」への先送り / Done の前倒し
8. 自プロジェクトへのカスタマイズガイド
- 【 】をすべて自PJの値に置換する(テストコマンド・ブランチ規約・環境名)
- 自PJの「検証の階段」を定義する——段の数より「全段通るまで完了と言わない」の合意が本体
- 最初に入れる hook は次の3本(推奨導入順)。文書のルールは hook で強制されて初めて守られる(→
catalog/01_hooks.md)- 本番操作の絶対ガード
- マージ前チェックリスト
- デプロイ頻度ガード
- このマニュアル自体をリポジトリに入れ、コード変更でフローが変わったら同一コミットで更新する(→
chronicle/01陳腐化防止)
この資料を出典にしている回