位置付け: ADR-0034 §2.2 で正式採用された Stage 2 (Backlog Pipeline) の運用詳細。 ADR-0028 全体 6 段ワークフローの Stage 2 = UC スライス化フェーズ の内部サブ手順 (A1-A5)。 前段 (Stage 1 = Customer Discovery / D1-D4) は customer_discovery_workflow.md を参照。 後段 (Stage 4-5 = Spec/Impl Pipeline / B1-B6 / C1-C6) は ADR-0029 を参照。


0. このドキュメントの読み方

  • 目的: Discovery で「解く価値あり」と判定された問題を、Mom Test 形式 + Pain Ranking + Problem-Solution Fit 判定を経て UC スライスに変換する 5 段サブワークフローを明文化する
  • 対象読者: 起案者 (代表取締役) / Jr 入社後の後任 / Claude Code (A1-A5 完了確認補助)
  • 完了の判定: A5 まで通過した UC スライスは usecase_dev_mapping.md の §4 or §5 テーブルに行追加され、slice_id (UC-{N}-S{NN}) と now_next_later (Now/Next/Later) が記録されている

Stage 2 全体像 (A1-A5)

#担当ツール / 担当者完了条件 (要約)
A1課題仮説記述手動 (usecase_dev_mapping.md 編集)痛みの記述 + ユーザー + 影響を 3 行以内で記述
A2Mom Test 形式確認手動 (過去行動を 3 件以上想起)「仮説の語り」を「過去の行動」に再記述、検証可能仮説のみ通過
A3Pain Ranking手動 (Pain Score = 頻度 × 痛み × 影響範囲)Pain Score 算出済、他課題との相対順位明示
A4Problem-Solution Fit 判定手動 (Discovery synthesis を引き、解決策の概念妥当性検証)Now/Next/Later/Closed のいずれかに分類
A5UC スライス化 + 自動同期手動 + ADR-0026 GitHub Actionsslice_id 採番、walking_skeleton_status=pending、関連 RQ リンク記録

1 サイクル所要時間目安: A1 (30min) + A2 (30min Mom Test 想起) + A3 (15min Pain Ranking) + A4 (30min PSF 判定) + A5 (15min 編集 + 自動同期待ち) = 約 2 時間 / UC スライス


1. A1: 課題仮説記述

1.1 目的

D4 で「解く価値あり」と判定された問題を、痛みの記述 + ユーザー + 影響 の 3 要素に分解して usecase_dev_mapping.md の候補行として書き出す。後段 A2-A4 の判定材料を整える。

1.2 担当ツール / 担当者

  • 担当者: 代表取締役
  • ツール: なし (手動編集)
  • 入力源: D4 synthesis の末尾「Stage 2 引き継ぎ情報」セクション

1.3 完了条件

  1. 候補行の素材として 3 要素が 3 行以内 で記述されている (冗長な背景説明は禁止、後段で判断ぼけする)
  2. ドラフトは usecase_dev_mapping.md の §4/§5 ではなく 作業メモ (PR description 等) に書く (A4 通過前に SSoT を汚染しない)
  3. 候補が属する JTBDdocs/_internal/01_discovery/customer_insight/_jtbd_list.md の承認済みエントリ(JTBD-NNN)に存在することを確認する(ADR-0043 前提条件)

1.4 3 要素の書き方

## 候補: <短い名称>

- **痛み**: <何が、どんな状況で起きているか> (例: 紙請求書受領時の手入力)
- **ユーザー (誰が困るか)**: <現状の運用者 or 想定ユーザー> (例: 代表取締役 / 単独運用)
- **影響 (どのくらい困るか、月次頻度・規模)**: <定量データ> (例: 月 12 件 × 5 分 = 60 分/月、打鍵ミスで月 1-2 件の仕訳訂正)
- **関連 RQ**: RQ-NNN (Discovery 元)
- **関連 JTBD**: JTBD-NNN (docs/_internal/01_discovery/customer_insight/_jtbd_list.md の承認済みエントリ)

1.5 アンチパターン

やってはいけないなぜ
いきなり usecase_dev_mapping.md を編集A4 で「対象外」と判定されたら戻すコストが発生、SSoT が一時的に嘘になる
痛み記述に「便利になる」「効率化」を含める解決策の語りであり、痛みの定義になっていない (A2 で必ず引っかかる)
影響の定量データを省略 ("結構困る" 等)A3 Pain Score 算出不能、A4 PSF 判定の客観性も失う

1.6 観測指標

  • A1 草案の 3 要素記述率 (目標 100%)
  • 影響の定量データ完備率 (目標 100%)

2. A2: Mom Test 形式確認

2.1 目的

A1 で記述した候補が 「仮説の語り (○○があったら便利)」ではなく「過去の行動 (先月 N 回手作業した)」 の形式になっているかを再検証する。Rob Fitzpatrick "The Mom Test" の原則「過去・具体・コミットメント」を bizlp 文脈に適用。

2.2 担当ツール / 担当者

  • 担当者: 代表取締役本人 (過去行動の想起が必要なため代理不可)
  • ツール: なし (記憶 + changelog.md / BUG_tracking.md / 月次決算ログ参照)

2.3 完了条件

代表取締役自身が 過去 3 ヶ月以内の具体的行動を 3 件以上想起し、A1 草案に追記:

- **過去の行動**:
  - 2026-04-12: 紙請求書 3 件を手入力 (15:00-15:18、18 分)
  - 2026-04-18: 別の紙請求書 4 件を手入力、うち 1 件の金額入力ミスを翌日発見・仕訳訂正
  - 2026-04-25: 月末締めで未処理請求書 5 件を一気に手入力 (45 分)

2.4 Mom Test 判定基準

各候補について以下のチェックを通過したら A3 へ進む:

チェックOK 例NG 例
過去か?「先月 12 件処理した」「将来 OCR があったら便利」
具体的か?「2026-04-12 に 18 分かかった」「結構時間がかかる」
コミットメント (自分の時間や金)「実際に 60 分/月を投入している」「やればきっと改善する」

3 件想起できない場合は判定:

  • 想起不能 → 痛みは存在しない or 観測不足」 → 対象外候補 として A4 で Closed
  • 1-2 件のみ想起 → 痛みは存在するが頻度低い」 → A4 で Later 候補

2.5 例: 「請求書 OCR 自動仕訳」候補の Mom Test 適用

A1 草案: 「紙請求書受領時の手入力作業」

A2 Mom Test 検証:

  • 過去行動 (3 件): 2026-04-12 (3 件 18 分) / 2026-04-18 (4 件、1 件訂正) / 2026-04-25 (5 件 45 分)
  • 過去か? ✅ 4 月実績
  • 具体的か? ✅ 日付・件数・所要時間明示
  • コミットメント ✅ 月 60 分の実時間投入
  • 判定: Mom Test PASS → A3 へ

2.6 アンチパターン

やってはいけないなぜ
過去行動を「だいたい毎月やってる」と書く具体性なし、A3 Pain Score 算出が直感頼みに退化
Mom Test 失敗 (想起不能) なのに「気持ちは分かる」で先に進めるBacklog が形骸化候補で埋まる、Now 判定の信頼性低下
代理人 (例: Claude Code) に過去行動を想起させるbizlp の運用実体を知らない LLM が捏造、Mom Test の意義消失

2.7 観測指標

  • A2 通過率 (目標 60-80%): これ超過は Mom Test 形骸化、これ未満は A1 でフィルタしきれていない
  • 想起 3 件記述率 (目標 通過案件の 100%)

3. A3: Pain Ranking

3.1 目的

A2 通過候補に Pain Score を付与し、bizlp 月次運用上の他課題との 相対順位 を明示する。ADR-0020 の Bezos Type 1/2 補助を併用 (不可逆性が高い場合は Pain Score 高でも慎重判断)。

3.2 担当ツール / 担当者

  • 担当者: 代表取締役
  • ツール: なし (5 段階スコアリング)

3.3 Pain Score 算出式

Pain Score = 頻度 × 痛み × 影響範囲

各因子 1-5 の 5 段階 (最大 125):

因子135
頻度年 1-2 回月 1-3 回月 10 回以上 (週 2 回以上)
痛み (1 回あたり)軽微 (5 分未満 / 微小ストレス)中程度 (15-30 分 / 集中力を要する)強度 (1 時間超 / 訂正リスク高 / 監査リスク)
影響範囲1 機能内に閉じる関連 2-3 機能に波及UC 横断 (4 機能以上 / 月次決算ブロック)

3.4 完了条件

  1. 候補に Pain Score 数値 (例: 72) を付与
  2. 比較対象として 直近の Now/Next/Later 採用済 / 完了済 案件の Pain Score を 2 件以上引用 (相対化)
  3. Bezos Type 判定 (Type 1 = 不可逆 / Type 2 = 試して戻せる) を併記

3.5 Pain Score 比較表 (相対化用、運用継続更新)

案件頻度痛み影響範囲Pain Score結果
MAS-145 銀行 CSV インポート (完了)4 (月 8-15 回)3 (15 分/回)3 (関連機能波及)36 (改定後算出)Now 採用、完了
MAS-157 写真 OCR (未着手)3 (月 3-5 回)2 (10 分/回)2 (UI 機能内)12Later 維持
MAS-218 タイムトラッキング (未着手)5 (毎日)1 (3 分/回)4 (R&D 税制 + 月次)20Next 検討

※ 上記は記述例。実値はメンテ運用で更新する。

3.6 アンチパターン

やってはいけないなぜ
Pain Score を 100 点満点で書く因子 5×5×5 = 125 最大なので 100 点と紛らわしい
比較対象を引かず単独スコアで判断Bezos 言うところの "Type 1 trap" - 自分案件のスコア膨張バイアス
Pain Score だけで Now/Next/Later 決定A4 の Problem-Solution Fit 判定 (解決策の概念妥当性) を飛ばすと、痛いが解けない問題を Now に積む

3.7 観測指標

  • 比較対象引用件数 (目標 2 件以上)
  • Bezos Type 判定記述率 (目標 100%)

4. A4: Problem-Solution Fit 判定

4.1 目的

Pain Score が付いた候補について、Discovery の synthesis を引いて、解決策が概念的に妥当かを検証する。痛みが大きくても解決策が未検証なら Now に積めない。最終的に Now/Next/Later/Closed のいずれかに分類する。

4.2 担当ツール / 担当者

  • 担当者: 代表取締役
  • ツール: なし (D4 synthesis の再読 + 解決策の概念検証)

4.3 4 値判定基準

判定条件 (AND)配置
NowPain Score 高 (50+ 目安) AND PSF 検証済 AND Bezos Type 2 (戻せる) AND 同時 WIP 1 スライス枠が空きnow_next_later=Now、即 A5 へ
NextPSF 検証済 AND (Pain Score 中程度 OR 実装制約あり) AND Now 枠埋まっているnow_next_later=Next、A5 進行
Later(Pain Score 低 OR PSF 未検証 OR Bezos Type 1 で慎重判断必要)now_next_later=Later、A5 進行
ClosedPain Score 不足 (Mom Test 通過したが頻度低い) OR PSF が概念的に不可 OR 外部 SaaS で十分A5 進めず、Discovery synthesis に Closed 理由追記

4.4 「PSF 検証済」の定義

D4 synthesis に以下の 3 点が明記されている:

  1. 同種事例の存在: 他社 (外部 SaaS / OSS / 業界記事) が同じ解決策で痛みを解消した実績
  2. bizlp 文脈での実装可能性: GAS 6 分制限 + 監査要件 + 1 人法人開発体制で実装できる根拠
  3. 想定アーキ概略: どのレイヤー (UI/Domain/Data/Infra) で実装するかの粗い見立て

3 点いずれかが欠けるなら「PSF 未検証」 → Later 配置 (PSF 検証のための追加調査を A4 完了後に実施)

4.5 Now の同時 1 スライス原則

ADR-0021 の Now/Next/Later で「Now は同時 1 スライス」が規約。判定時に既存 Now が埋まっている場合は:

  1. 既存 Now の完了予測 (1-2 週間) を見積もる
  2. 短期で空くなら本候補は Next (枠待ち)
  3. 長期化しそうなら Pain Score 比較で 入れ替え判定 (現 Now を Next に降格、本候補を Now に昇格 — 入れ替えは月 1 回上限)

4.6 例: 「請求書 OCR 自動仕訳」候補の A4 判定

入力:

  • Pain Score: 72 (頻度 4 × 痛み 3 × 影響範囲 3 + 訂正リスク考慮で 5/3/3 → 45 修正、相対化で 36 - 45 域)
  • PSF 検証: D4 synthesis に「Gemini API (PDF 解析) / Cloud Vision API の事例」「GAS UrlFetchApp で 6 分以内処理可能」「500_import レイヤー想定」が明記 → 検証済
  • Bezos Type: Type 2 (Feature Flag で即無効化可)
  • 既存 Now 状況: UC-4-S01 (ランウェイ Walking Skeleton) が WIP、完了予測 2 週間

判定: 既存 Now が短期で空く → Next に配置、UC-4-S01 完了後に Now へ昇格

4.7 アンチパターン

やってはいけないなぜ
Pain Score だけで「Pain Score 80 だから Now」と即決PSF 未検証なら実装失敗で Stage 6 Pivot を踏む、サイクルコスト無駄
「Now 同時 1 スライス」原則を破って 2 件並列1 人開発で context switch コストが累積、結局両方遅延
Closed 判定の理由を synthesis に書かない3 ヶ月後に「あの候補どうした?」が再発、追跡不能 RQ 化

4.8 観測指標

  • A4 → A5 通過率: Now (目標 10-20%) / Next (20-30%) / Later (40-60%) / Closed (10-20%)
  • 「Now 入れ替え発生」頻度 (月 1 回以下が健全)

5. A5: UC スライス化 + 自動同期

5.1 目的

A4 で Now/Next/Later 判定された候補を usecase_dev_mapping.md に正式登録する。slice_id (ADR-0025) を採番し、walking_skeleton_status を pending で初期化、関連 RQ-NNN リンクを記録、ADR-0026 GitHub Actions による todo_master_tables.md への自動同期を待つ。

5.2 担当ツール / 担当者

  • 担当者: 代表取締役 (usecase_dev_mapping.md 編集)
  • 自動同期: .github/workflows/sync_slice_id.yml (ADR-0026、push 時 / 日次 cron 02:00 JST)

5.3 完了条件

  1. usecase_dev_mapping.md の §4 (戦略 UC) or §5 (業務 OP) の該当テーブルに新規行追加
  2. slice_id 採番 (UC-{N}-S{NN}、ADR-0025 準拠、grep -E "UC-${N}-S[0-9]" usecase_dev_mapping.md で衝突確認)
  3. walking_skeleton_status = pending (4 値 enum: pending / skeleton / in_progress / done)
  4. now_next_later = A4 判定値 (Now / Next / Later)
  5. 関連 RQ-NNN カラム に Discovery 元の RQ 番号を記録 (本ファイル新規列、A5 完了の必須要件)
  6. PR 作成・マージ後、ADR-0026 GitHub Actions が todo_master_tables.md を自動更新 (auto-sync-broken ラベル付き Issue が起票されないこと)

5.4 slice_id 採番ルール (ADR-0025 準拠)

項目形式制約
slice_idUC-{N}-S{NN}UC-4-S02N: UC 番号 (1-9) / NN: 通し番号 (01-99、ゼロ埋め)
採番起点既存 UC-{N}-S{NN} の最大 NN + 1UC-4 既存最大 S01 → 新規 S02既存値の 再利用禁止 (削除済スライスでも欠番として残す)
横断スライスUC 番号は 主たる目的 で選択請求書 OCR は UC-4 (ランウェイ) より UC-3 (組織施策) 寄りなら UC-31 スライス = 1 UC 紐付け原則

5.5 行追加の書式例

usecase_dev_mapping.md §5 業務 OP の該当テーブルに以下の形式で追加 (関連 RQ 列が新規追加):

| ● 必須 | MAS-147 | 請求書OCR自動仕訳 | 📝 仕様書完了 | UC-3-S04 | pending | Next | RQ-NNN |

カラム順: 役割 | MAS | 案件名 | ステータス | slice_id | walking_skeleton_status | now_next_later | 関連 RQ

5.6 GitHub Actions 自動同期の挙動

ADR-0026 で .github/workflows/sync_slice_id.yml が以下を実行:

  1. トリガー: SSoT (usecase_dev_mapping.md) への push / PR / 毎日 JST 02:00 cron / 手動 dispatch
  2. 同期内容: todo_master_tables.md の各カテゴリ別テーブルの slice_id 列を SSoT 値で上書き
  3. 手動上書き耐性: 同期先で手動編集された値は次回 cron で SSoT 値に戻る
  4. エラー時: auto-sync-broken ラベル付き Issue 自動起票

A5 完了確認手順:

# A5 完了 = 自動同期通過の確認
gh run list --workflow=sync_slice_id.yml --limit=3
# 直近 run が conclusion=success であることを確認
gh issue list --label auto-sync-broken --state=open
# Issue が空であることを確認

5.7 アンチパターン

やってはいけないなぜ
slice_id 採番時に既存 NN を再利用Git 履歴・Feature Flag キー (FF_UC{N}_S{NN}_xxx) が衝突、ADR-0026 同期が壊れる
walking_skeleton_status を pending 以外で開始Stage 3-4 (Spec/Impl Pipeline) を飛ばして開始することになり、Walking Skeleton 4 要素貫通が抜ける
関連 RQ 列を空欄のまま PR マージDiscovery → Backlog → Spec の追跡経路が切れる、3 ヶ月後に「なぜこのスライス?」が不明
todo_master_tables.md を手動編集して slice_id を入れる同期先で手動編集された値は次回 cron で消える、運用混乱

5.8 A5 → B1 引き継ぎ

A5 完了 = usecase_dev_mapping.md 行追加 + 自動同期成功 = B1 (UC スライス選定 / Spec Pipeline 開始) の前提条件成立

B1 開始時に Stage 4 Claude が参照する情報:

  • slice_id (Spec Pipeline 全体で識別子として使用)
  • walking_skeleton_status = pending (B3 Walking Skeleton 注入の対象)
  • 関連 RQ-NNN (D4 synthesis を Spec の事実パッケージとして再利用)
  • 関連 dev_mas-NNN_*.md (既存仕様書があれば B1 のサーベイ対象)

5.9 観測指標

  • A5 完了時間 (目標 15 分以内)
  • 自動同期成功率 (目標 100%、auto-sync-broken 発生時は ADR-0026 §撤退条件参照)
  • 関連 RQ 列記入率 (目標 100%)

6. 観測指標 (Stage 2 全体)

ADR-0034 §影響 §5.3 で定義された月次集計指標:

指標目標値集計方法
D1 → A5 通過時間 (中央値)< 4 時間RQ-NNN の起票日 → A5 完了 (usecase_dev_mapping.md 行追加 PR マージ) の elapsed
A4 「Now」判定率10-20%usecase_dev_mapping.md の now_next_later=Now の件数 / 通過候補総数
A4 「Closed」判定率10-20%D4 synthesis に「Closed」と書かれた件数 / A2 通過件数
追跡不能 RQ 数 (A5 未完了の Backlog 候補)0 件RQ-NNN_synthesis で「解く価値あり」かつ usecase_dev_mapping.md に行追加されていない案件

7. References