Unit of Work — continuum
Project: continuum
Phase: INCEPTION — Units Generation (Part 2)
Date: 2026-05-08
1. Decomposition Methodology
1.1 採用方針(質問回答に基づく確定方針)
| Q |
項目 |
選択 |
| Q1 |
Unit 粒度 |
中粒度 10 Unit |
| Q2 |
Frontend/Backend 統合 |
統合(垂直スライス) |
| Q3 |
MACP 分割 |
2 Unit に分離(Phase 2 / Phase 3) |
| Q4 |
WebSocket |
独立 Unit |
| Q5 |
Demo Set Piece |
独立 Unit |
| Q6 |
Monorepo 構造 |
Layer-based |
| Q7 |
CDK Stack |
Layered Stacks |
| Q8 |
並列開発 |
並列最大化 |
| Q9 |
共有型 |
専用パッケージ(shared/shared-types) |
| Q10 |
AgentCore 連携層 |
共有パッケージ(shared/agentcore-client) → 2026-05-08 改訂で廃止 / 各 Lambda から AWS SDK 直呼び |
1.2 Unit Boundaries の決定原則
- 垂直スライス: 各 Unit は Frontend View + Backend Lambda + DynamoDB アクセスを統合し、独立にデモ可能なスコープを持つ
- MACP は Phase 別 2 Unit: 簡易シミュレーション(Phase 2)と Federated 本実装(Phase 3)で実装方法が大きく異なるため分離
- Cross-cutting は独立 Unit: WebSocket(U-9)と Demo Set Piece(U-10)は複数 Unit から利用される or 演出専用のため独立化
- 共有コードは Unit 化しない:
shared/shared-types(型定義)は 共有パッケージ であり Unit ではない(依存関係マトリクスでは “共有資源” として扱う)。shared/agentcore-client は 2026-05-08 改訂で廃止(各 Lambda から AWS SDK 直呼び)
2. Unit 一覧
🔄 SCOPE REVISION 2026-05-08T06:26:52Z: デモ視点見直しにより Phase 配分を改訂。詳細は ../plans/scope-revision-2026-05-08.md。
合計 10 Unit + 1 共有パッケージ(agentcore-client 廃止 → SDK 直呼び)
2.1 Phase 2 Active Units(7 Unit + 1 共有パッケージ)
| Unit ID |
名称 |
Phase |
スコープ |
| U-1 |
Foundation |
Phase 2 Must |
認証 + ユーザープロファイル(Communication Style 削除)+ PWA Shell |
| U-2 |
ContactMgmt |
Phase 2 Must |
コンタクト CRUD + Mock Social Feed(3 コンタクト × 2 投稿に縮小) |
| U-3 |
Inbound |
Phase 2 Must |
受信応答エンジン(Bedrock 3案、類似度検証廃止) |
| U-4 |
Outbound |
Phase 2 Must |
Strategic Outreach + Signal Extraction(3 ステップ圧縮) |
| U-5 |
Maturity |
Phase 2 Must |
Lv1 ↔ Lv4 切替集中(Lv2/Lv3 stub、Lv5 Mock 表示のみ) |
| U-6 |
Dashboard |
Phase 2 Must |
KPI カード(US-6.1)+ 静的バッジ画像(US-6.2 の絵のみ) |
| U-7 |
MACP-Simulator |
Phase 2 Must |
Single-Tenant 簡易 MACP(setTimeout/Polling 演出) |
| 共有 |
shared/shared-types |
— |
全 Unit 共通の TypeScript 型定義 |
2.2 Phase 3 Units(3 Unit)
| Unit ID |
名称 |
Phase |
スコープ |
| U-8 |
MACP-Federated |
Phase 3 Must |
AgentCore Identity/Gateway による Federated MACP |
| U-9 |
Realtime |
Phase 3 Must(Phase 2 から降格) |
WebSocket 基盤(決勝デモ用) |
| U-10 |
DemoSetPiece |
Phase 3 Must |
決勝 Split-Screen 演出 + 統合シナリオ |
2.3 廃止された共有パッケージ
| パッケージ |
元 Phase |
状態 |
理由 |
shared/agentcore-client |
全 Phase 共通 |
廃止 |
各 Lambda から AWS SDK 直呼び。抽象化レイヤーは過剰実装と判断(2026-05-08 改訂) |
3. Unit 詳細
U-1: Foundation
責務
- アプリ全体の起動・ユーザー登録・ログイン
- PWA Shell(Service Worker 登録、ナビゲーション、グローバル状態)
- Cognito User Pool 連携 + JWT 検証
- ユーザープロファイル(表示名・Default Communication Style)の CRUD
- 初期 Maturity Phase(Lv1)の設定
含むコンポーネント
- Frontend: C-FE-01 WebApp Shell, C-FE-02 AuthUI
- Backend: C-BE-01 AuthHandler
含むストーリー
- US-1.1: ユーザーサインアップ
- US-1.2: ユーザーログイン
- US-1.3: ユーザープロファイル設定
Phase スコープ
依存
- なし(最上流)
- Cognito User Pool(外部)
- DynamoDB(PROFILE エンティティ)
責務
- コンタクトプロファイル CRUD
- Engagement Cadence の設定(関係 Tier からのデフォルト推定)
- Critical タグ管理
- Mock Social Feed のシードデータ投入(ハッカソンデモ用)
含むコンポーネント
- Backend: C-BE-02 ContactHandler, C-BE-10 MockSocialFeedSeeder
含むストーリー
- US-2.1: コンタクト追加
- US-2.2: Engagement Cadence 設定
- US-2.3: Critical タグ管理(Phase 3 Must)
- US-4.7: Mock Social Feed Setup
Phase スコープ
- Phase 2 Must: US-2.1, US-2.2, US-4.7
- Phase 3 Must: US-2.3
依存
- U-1 Foundation(認証)
- DynamoDB(CONTACT, FEED, WINDOW エンティティ)
U-3: Inbound
責務
- 受信メッセージへの 3 バリエーション応答生成
- Relational Calibration(関係 Tier 別トーン)
- Plausibility Constraint(案間類似度 < 0.7)
- 受信ボックス UI + 案選択 + 編集 + 送信
- Maturity Phase 連動(Lv1: 全レビュー / Lv2: 確率的スキップ / Lv3: Critical のみ / Lv4-5: 全自動)
含むコンポーネント
- Frontend: C-FE-03 InboxView
- Backend: C-BE-03 InboundResponseEngine
含むストーリー
- US-3.1: 受信ボックスでメッセージ一覧
- US-3.2: 単一メッセージへの 3 案応答生成
- US-3.3: 案の手動編集と送信(Lv1限定)
- US-3.4: 案バリエーション生成エンジン
- US-3.5: Relational Calibration(Phase 2 Should)
- US-3.6: 応答送信完了後の状態管理(Phase 3 Stretch)
Phase スコープ
- Phase 2 Must: US-3.1, US-3.2, US-3.3, US-3.4
- Phase 2 Should: US-3.5
- Phase 3 Stretch: US-3.6
依存
- U-1 Foundation(認証)
- U-2 ContactMgmt(コンタクトプロファイル取得)
- U-5 Maturity(フェーズ判定)
- shared/shared-types
- AWS SDK 直呼び(Bedrock Runtime / AgentCore Memory)— 2026-05-08 改訂で
shared/agentcore-client 廃止
U-4: Outbound
責務
- Strategic Outreach Scheduling(不在 Window への誘い文生成)
- Engagement Heartbeat(Cadence 別の定期送信)
- Conflict Detection(Inbound-Outbound 整合性)
- Plausibility Engineering(時刻分散・文体学習・Context Echo)
- Mock Social Feed からの Signal 抽出パイプライン
- Outbound Pre-send Review UI
含むコンポーネント
- Frontend: C-FE-04 OutboundReviewView
- Backend: C-BE-04 OutboundOrchestrator, C-BE-05 SignalExtractor
含むストーリー
- US-4.1: Mock Social Feed からの不在シグナル抽出
- US-4.2: Strategic Outreach Window への誘い文生成
- US-4.3: Engagement Heartbeat(Phase 3 Stretch)
- US-4.4: Conflict Detection & Coherence Layer(Phase 3 Must)
- US-4.5: Plausibility Engineering(Phase 3 Must)
- US-4.6: Outbound 送信前レビュー(Phase 2 Should)
Phase スコープ
- Phase 2 Must: US-4.1, US-4.2
- Phase 2 Should: US-4.6
- Phase 3 Must: US-4.4, US-4.5
- Phase 3 Stretch: US-4.3
依存
- U-1 Foundation(認証)
- U-2 ContactMgmt(コンタクト + Mock Feed)
- U-5 Maturity(フェーズ判定)
- U-7/U-8 MACP(Outbound 送信前 MACP 試行)
- shared/shared-types
- AWS SDK 直呼び(Bedrock Runtime)— 2026-05-08 改訂で
shared/agentcore-client 廃止
U-5: Maturity
責務
- Lv1〜Lv5 のフェーズ状態管理
- フェーズ移行ロジック(手動切替 / Recommendation 表示 / Lv4 自己有効化 / Lv5 自動認定)
- 累計応答件数の追跡 + Recommendation トリガー判定
- Lv5 認定条件チェック(日次バッチ)
- フェーズ別の挙動判定 API(
shouldReviewInbound / shouldReviewOutbound)
含むコンポーネント
- Frontend: C-FE-06 MaturitySettingsView
- Backend: C-BE-06 MaturityPhaseManager
含むストーリー
- US-5.1: Lv1 慎重期の動作
- US-5.2: Lv2 信頼期の確率的レビュースキップ
- US-5.3: Lv3 委任期での Critical タグ別動作
- US-5.4: Lv4 解脱期の自己有効化
- US-5.5: Lv5 涅槃期のシステム自動認定(Phase 3 Must)
- US-5.6: Maturity Recommendation バナー(Phase 2 Should)
Phase スコープ
- Phase 2 Must: US-5.1, US-5.2, US-5.3, US-5.4
- Phase 2 Should: US-5.6
- Phase 3 Must: US-5.5
依存
- U-1 Foundation(認証)
- DynamoDB(MATURITY エンティティ)
- shared/shared-types
U-6: Dashboard
責務
- KPI 集計(Responses Delegated / Time Reclaimed / Streak / Score)
- Maturity Certification バッジ管理
- Outbound メトリクス(Optimal Window Hit Rate / Relationship Health Score / Engagement Coverage)
- Days in Nirvana 表示
- Productivity Analytics ダッシュボード UI(SaaS 標準クリーンデザイン)
含むコンポーネント
- Frontend: C-FE-05 DashboardView
- Backend: C-BE-08 DashboardEngine
含むストーリー
- US-6.1: KPI カード表示
- US-6.2: Maturity Certification バッジ表示(Phase 2 Should)
- US-6.3: Outbound メトリクスとリレーションシップヘルススコア(Phase 3 Must)
- US-6.4: Days in Nirvana 表示(Phase 3 Stretch)
Phase スコープ
- Phase 2 Must: US-6.1
- Phase 2 Should: US-6.2
- Phase 3 Must: US-6.3
- Phase 3 Stretch: US-6.4
依存
- U-1 Foundation(認証)
- U-5 Maturity(バッジ・Recommendation との連携)
- shared/shared-types
U-7: MACP-Simulator(Phase 2 簡易版)
責務
- Single-Tenant 簡易 MACP: 同一 Continuum インスタンス内の 2 ユーザー(UserA / UserB)間で MACP の演出を実行
- Peer Discovery: 同一テナント内の他ユーザー検索(簡易)
- Inter-Agent Negotiation: Lambda 内で完結する合意形成(同一プロセス)
- Theatrical Performance: EventBridge で複数メッセージを順次配信
- Outcome Confirmation: 両ユーザーへバッジ付与
含むコンポーネント
- Backend: C-BE-07 MACPCoordinator(Phase 2 簡易実装版)
含むストーリー
- US-7.1: Peer Discovery(Single-Tenant 簡易シミュレーション版)
Phase スコープ
- Phase 2 Must: US-7.1(簡易版)
依存
- U-1 Foundation
- U-2 ContactMgmt
- U-4 Outbound(送信前トリガー)
- U-9 Realtime(演出のリアルタイム配信)
- shared/shared-types
注記
- 本 Unit は Phase 2 限定の 暫定実装。Phase 3 の U-8 で Federated 本実装に置き換えられる
- AgentCore Identity / Gateway は使用しない(Phase 2 ではモック)
U-8: MACP-Federated(Phase 3 本実装)
責務
- Federated MACP: 別テナント間で AgentCore Gateway 経由の Inter-Agent Negotiation
- Peer Discovery: AgentCore Identity による Cross-Tenant Lookup(片方向ハッシュ)
- Inter-Agent Negotiation: AgentCore Gateway + mTLS で JSON プロトコル交換
- AgentCore Memory による交渉履歴の永続化(再交渉時の効率化)
- Failure Handling: タイムアウト・認証失敗時の Graceful Degradation
含むコンポーネント
- Backend: C-BE-07 MACPCoordinator(Phase 3 完全実装版)
含むストーリー
- US-7.1: Peer Discovery(Federated 本実装)
- US-7.2: Inter-Agent Negotiation
- US-7.3: Theatrical Performance Layer
- US-7.4: Outcome Confirmation
- US-7.5: MACP Failure Handling(Phase 3 Stretch)
Phase スコープ
- Phase 3 Must: US-7.1, US-7.2, US-7.3, US-7.4
- Phase 3 Stretch: US-7.5
依存
- U-1 Foundation
- U-2 ContactMgmt
- U-4 Outbound(送信前トリガー)
- U-7 MACP-Simulator(既存の演出ロジックの拡張)
- U-9 Realtime(演出のリアルタイム配信)
- AgentCore Identity / Gateway / Memory(外部 — AWS SDK 直呼び)
- shared/shared-types
U-9: Realtime
責務
- API Gateway WebSocket API の接続管理
- 接続情報の DynamoDB 永続化(TTL 付き)
- ユーザー単位プッシュ + デモ用ブロードキャスト
- Frontend WebSocket Client ライブラリ提供
含むコンポーネント
- Frontend: C-FE-08 WebSocketClient
- Backend: C-BE-09 WebSocketBroker
含むストーリー
(直接対応するストーリーはなく、他 Unit から利用される基盤)
- 利用元: US-5.6(Recommendation バナー push), US-6.2(バッジ獲得 push), US-7.4(MACP 完了 push), DS-3(Split-Screen リアルタイム)
Phase スコープ
- Phase 2 Should: 基盤実装 + 通知配信
- Phase 3 Must: 決勝デモ用の MACP リアルタイム配信
依存
- U-1 Foundation(認証)
- shared/shared-types
U-10: DemoSetPiece
責務
- 決勝デモ用の Split-Screen UI(左: UserA / 右: UserB / 下: Negotiation Log)
- タイムラプス再生制御
- 締めナレーション + ロゴ演出
- デモ用 UserA / UserB の事前セットアップスクリプト
含むコンポーネント
- Frontend: C-FE-07 DemoSetPieceView
- 統合シナリオ(U-7 + U-9 を組み合わせ)
- Demo Setup スクリプト(CLI)
含むストーリー
- DS-1: Set Piece 全体ストーリー
- DS-2: Demo 用ユーザーセットアップ
- DS-3: スプリットスクリーン裏舞台演出
- DS-4: 締めナレーション・コピー演出
Phase スコープ
- Phase 3 Must: DS-1, DS-2, DS-3, DS-4
依存
- U-7 MACP-Simulator(Phase 2 簡易版でも演出可能)+ U-8 MACP-Federated(Phase 3 本格演出)
- U-9 Realtime(リアルタイム配信)
- U-1〜U-6 すべての画面(統合シナリオで参照)
4. 共有パッケージ
shared/shared-types
責務
- Frontend / Backend / Infrastructure すべてで共通利用される TypeScript 型定義
- ドメインエンティティ型(User, Contact, InboxMessage, OutboundCandidate, MACPSession, Badge, AvailabilityWindow, etc.)
- API リクエスト・レスポンス型
- WebSocket イベント型
含む型(一例)
- UserProfile
- Contact + relationship enum
- InboxMessage + status enum
- ResponseVariation + style enum
- OutboundCandidate + type enum
- AvailabilityWindow + signal category enum
- MaturityState + phase enum
- MACPSession + agreement struct
- Badge
- WebSocketEvent (union type)
- DashboardKPI
配置
shared/shared-types/
├── package.json
├── tsconfig.json
└── src/
├── index.ts
├── domain/
│ ├── user.ts
│ ├── contact.ts
│ ├── inbox.ts
│ ├── outbound.ts
│ ├── maturity.ts
│ ├── macp.ts
│ └── badge.ts
├── api/
│ ├── requests.ts
│ └── responses.ts
└── websocket/
└── events.ts
shared/agentcore-client — 廃止
🔄 2026-05-08 改訂で廃止: AgentCore SDK の抽象化レイヤーは過剰実装と判断。各 Lambda(U-3 Inbound / U-4 Outbound / U-8 MACP-Federated)から AWS SDK を直接呼び出す 方針に変更。
代替:
- Bedrock Runtime:
@aws-sdk/client-bedrock-runtime を Lambda 内で直接 import
- AgentCore Memory / Identity / Gateway: Phase 3 実装時に各 Lambda から直接 AgentCore SDK を呼び出す(リトライ・タイムアウトは AWS SDK 標準機構を利用)
影響: U-3 / U-4 / U-8 の依存リストから削除。Phase 2 工数約 1 Unit 分の削減。
5. Code Organization Strategy(Layer-based Monorepo)
5.1 Top-level Directory Structure
continuum/
├── frontend/ ← React PWA(Vite + Service Worker)
│ ├── package.json
│ ├── vite.config.ts
│ ├── public/
│ │ ├── manifest.json ← PWA Manifest
│ │ └── sw.ts ← Service Worker (Workbox)
│ └── src/
│ ├── main.tsx
│ ├── App.tsx
│ ├── views/
│ │ ├── Inbox/ ← U-3
│ │ ├── Outbound/ ← U-4
│ │ ├── Dashboard/ ← U-6
│ │ ├── Maturity/ ← U-5
│ │ ├── DemoSetPiece/ ← U-10
│ │ └── Auth/ ← U-1
│ ├── components/ ← 共通 UI コンポーネント
│ ├── hooks/
│ ├── services/ ← API client wrappers
│ └── ws/ ← WebSocketClient (U-9)
│
├── backend/ ← AWS Lambda Functions
│ ├── auth/ ← U-1
│ ├── contact/ ← U-2
│ ├── inbound/ ← U-3
│ ├── outbound/ ← U-4
│ ├── signal-extractor/ ← U-4 内部(別 Lambda)
│ ├── maturity/ ← U-5
│ ├── macp-simulator/ ← U-7(Phase 2)
│ ├── macp-federated/ ← U-8(Phase 3)
│ ├── dashboard/ ← U-6
│ ├── websocket/ ← U-9
│ └── seeder/ ← U-2 内部(CLI)
│
├── infrastructure/ ← AWS CDK (Layered Stacks)
│ ├── package.json
│ ├── cdk.json
│ ├── bin/
│ │ └── continuum.ts ← CDK App エントリ
│ └── lib/
│ ├── stacks/
│ │ ├── foundation-stack.ts ← Cognito + IAM + ACM (Q7=C)
│ │ ├── data-stack.ts ← DynamoDB + Connection Table
│ │ └── application-stack.ts ← Lambda + API Gateway + EventBridge
│ └── constructs/
│ ├── lambda-construct.ts
│ └── api-construct.ts
│
└── shared/ ← 共有パッケージ (Q9, Q10)
├── shared-types/ ← TypeScript 型定義
# agentcore-client/ ← 2026-05-08 改訂で廃止(各 Lambda から AWS SDK 直呼び)
5.2 Monorepo 管理ツール
- pnpm workspace(高速・ディスク効率)
- ルート
package.json の workspaces フィールドに frontend, backend/*, infrastructure, shared/* を登録
pnpm-workspace.yaml:
```yaml
packages:
- ‘frontend’
- ‘backend/*’
- ‘infrastructure’
- ‘shared/*’
```
5.3 ビルド・デプロイ
| 操作 |
コマンド |
| 全 install |
pnpm install |
| 共有型ビルド |
pnpm --filter shared-types build |
| Frontend dev |
pnpm --filter frontend dev |
| Backend Lambda ビルド |
pnpm --filter ./backend/... build |
| CDK Deploy |
pnpm --filter infrastructure cdk deploy --all |
| 全 lint |
pnpm -r lint |
| 全 test |
pnpm -r test |
5.4 CDK Layered Stacks(Q7=C)
FoundationStack
├── Cognito User Pool + Client
├── IAM Roles(Lambda 実行ロール、API Gateway 認証ロール等)
├── ACM Certificate
└── Route 53 Hosted Zone
DataStack(FoundationStack 後にデプロイ)
├── DynamoDB Single-Table(PK/SK + GSI1, GSI2)
├── DynamoDB Connection Table(WebSocket 接続管理 + TTL)
└── Secrets Manager(Bedrock Model ID, AgentCore endpoints)
ApplicationStack(FoundationStack + DataStack 後)
├── Lambda Functions × 10
├── API Gateway REST API + Cognito Authorizer
├── API Gateway WebSocket API
├── EventBridge Custom Bus + Rules
├── CloudFront Distribution + S3 Bucket(Frontend)
└── X-Ray(Phase 3 のみ)
6. Phase Scope Summary
| Phase |
含む Unit + 含むストーリー数 |
| Phase 2 Must(5/30 予選 MVP) |
U-1 (3) / U-2 (3) / U-3 (4) / U-4 (2) / U-5 (4) / U-6 (1) / U-7 (1) = 18 ストーリー |
| Phase 2 Should(余裕があれば) |
U-3 (1: US-3.5) / U-4 (1: US-4.6) / U-5 (1: US-5.6) / U-6 (1: US-6.2) / U-9 (基盤) = 3 ストーリー + U-9 基盤 |
| Phase 3 Must(決勝 6/26) |
U-2 (1: US-2.3) / U-4 (2) / U-5 (1: US-5.5) / U-6 (1: US-6.3) / U-8 (4) / U-9 (本格運用) / U-10 (4) = 13 ストーリー |
| Phase 3 Stretch |
U-3 (1) / U-4 (1) / U-6 (1) / U-8 (1: US-7.5) = 4 ストーリー |
| 総計 |
38 ストーリー |