continuum

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-client2026-05-08 改訂で廃止 / 各 Lambda から AWS SDK 直呼び

1.2 Unit Boundaries の決定原則


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

責務

含むコンポーネント

含むストーリー

Phase スコープ

依存


U-2: ContactMgmt

責務

含むコンポーネント

含むストーリー

Phase スコープ

依存


U-3: Inbound

責務

含むコンポーネント

含むストーリー

Phase スコープ

依存


U-4: Outbound

責務

含むコンポーネント

含むストーリー

Phase スコープ

依存


U-5: Maturity

責務

含むコンポーネント

含むストーリー

Phase スコープ

依存


U-6: Dashboard

責務

含むコンポーネント

含むストーリー

Phase スコープ

依存


U-7: MACP-Simulator(Phase 2 簡易版)

責務

含むコンポーネント

含むストーリー

Phase スコープ

依存

注記


U-8: MACP-Federated(Phase 3 本実装)

責務

含むコンポーネント

含むストーリー

Phase スコープ

依存


U-9: Realtime

責務

含むコンポーネント

含むストーリー

(直接対応するストーリーはなく、他 Unit から利用される基盤)

Phase スコープ

依存


U-10: DemoSetPiece

責務

含むコンポーネント

含むストーリー

Phase スコープ

依存


4. 共有パッケージ

shared/shared-types

責務

含む型(一例)

- 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 を直接呼び出す 方針に変更。

代替:

影響: 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 管理ツール

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 ストーリー