What must exist before work can progress — and what can run in parallel?
Bottleneck to Dependency Bridge
From Value Stream Map: 5 bottlenecks ranked by wait impact. Each bottleneck has blocking dependencies that must resolve before the improvement can ship.
| Bottleneck | Root Cause | Blocking Dependencies |
|---|---|---|
| #1 Dispatch wait (4-48hrs) | No automated routing | D1 (shared DB), D2 (thin router), D5 (Convex channels) |
| #2 Context recovery (5-10min) | No memory persistence | D1 (shared DB), D3 (agent ETL path flag), D6 (memory tables) |
| #3 Commissioning (1-3 days) | Manual verification | D4 (Identity PRD), D7 (browser tooling), D8 (VVFL auditors) |
| #4 Execution blocks (15min) | No block signalling | D5 (Convex channels) — already soft dep |
| #5 Plan quality (5min rework) | No PRD→template mapping | D2 (thin router), D9 (template metadata) |
DEPENDENCY MAP: AGENT PLATFORM
════════════════════════════════════════════════════════════
┌──────────────┐
│ START │
└──────┬───────┘
│
┌───────────────────┼────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ D1: DB │ │ D3: ETL │ │ D5: Convex│
│ Context │ │ --path │ │ Channels │
│ (eng) │ │ (eng) │ │ (eng) │
│ SOFT │ │ SOFT │ │ SOFT │
└────┬─────┘ └────┬─────┘ └─────┬────┘
│ │ │
▼ ▼ │
┌──────────┐ ┌──────────┐ │
│ D2: Thin │ │ D6: Memory│ │
│ Router │ │ Writers │ │
│ (eng) │ │ (eng) │ │
│ SOFT │ │ SOFT │ │
└────┬─────┘ └────┬─────┘ │
│ │ │
│ ════╪════╪═════════════════════╪═══
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ D4: Auth │ │ D7: Browser│ │ D9: Tmpl │
│ Identity │ │ Tooling │ │ Metadata │
│ (ext PRD)│ │ (eng) │ │ (eng) │
│ HARD │ │ SOFT │ │ SOFT │
└────┬─────┘ └─────┬─────┘ └────┬─────┘
│ │ │
│ ═══════════╪═════════════════════╪═══
│ │ │
└───────────────┼─────────────────────┘
│
▼
┌──────────┐
│ D8: VVFL │
│ Auditors │
│ (eng) │
│ SOFT │
└────┬─────┘
│
▼
┌──────────┐
│ AGENT │
│ PLATFORM │
│ MVP │
└──────────┘
─────── = Soft (can proceed with mocks or parallel-track)
═══════ = HARD (cannot proceed without)
════════════════════════════════════════════════════════════
Dependency Register
| ID | Dependency | Type | Owner | Status | Blocks |
|---|---|---|---|---|---|
| D1 | Shared DB context | SOFT | Eng | Gap (extract from plan-cli) | D2, D6, dispatch |
| D2 | drmg thin router | SOFT | Eng | Gap | Dispatch, plan quality |
| D3 | --path flag on agent-etl-cli | SOFT | Eng | Gap (~20 lines) | Agent loading, D6 |
| D4 | Identity & Access PRD (auth) | HARD | Ext PRD | L1 status | Commissioning, production auth |
| D5 | Convex channels (seeded) | SOFT | Eng | Done (5 channels) | Block signalling, dispatch |
| D6 | Memory table writers | SOFT | Eng | Gap (schema exists) | Context recovery, learning |
| D7 | Browser commissioning tooling | SOFT | Eng | Gap | Automated commissioning |
| D8 | VVFL 8-dimension auditors | SOFT | Eng | Gap | Self-audit, pattern extraction |
| D9 | Template metadata (PRD→template) | SOFT | Eng | Gap | Plan quality improvement |
Hard vs Soft Classification
| Classification | Count | Dependencies |
|---|---|---|
| HARD | 1 | D4 (Identity PRD — external, blocks production auth) |
| SOFT | 8 | D1, D2, D3, D5, D6, D7, D8, D9 |
Critical insight: Only 1 hard dependency (auth/identity), and it doesn't block the MVP. The platform can operate with API keys and local auth until the Identity PRD resolves. Every bottleneck from the value stream has only soft dependencies — engineering can start immediately on all of them.
Critical Path
D1 (shared DB, 0.5d) → D2 (thin router, 0.5d) → D8 (8 auditors, 3d) → D8 audit command (0.5d)
= 4.5 engineering days
Parallel track A: D3 (--path, 0.5d) → D6 (memory writers, 1d)
= 1.5 engineering days
Parallel track B: D5 (done) → D9 (template metadata, 0.5d)
= 0.5 engineering days
Parallel track C: D7 (browser tooling, 2d) — independent, can start anytime
Critical path: 4.5 engineering days (D1 → D2 → D8 → audit command)
All three parallel tracks complete within the critical path window. Total calendar time is governed by the auditor chain, not by waiting.
Parallelization Opportunities
| Current (Sequential) | Optimized (Parallel) | Time Saved |
|---|---|---|
| D1 → D2 → D3 → D6 → D8 → D7 = 8 days | D1→D2→D8 (4.5d) // D3→D6 (1.5d) // D7 (2d) | ~3.5 days |
Risk Matrix
| Dependency | Risk | Probability | Impact | Mitigation |
|---|---|---|---|---|
| D4 (Identity PRD) | External PRD delayed | Medium | Low for MVP | API keys + local auth for now |
| D8 (8 auditors) | Auditors don't produce actionable findings | Medium | High | --dry-run first 3 runs, review before enabling writes |
| D1 (shared DB) | Extraction breaks existing plan-cli | Low | Medium | Extract, don't rewrite. Old entry points remain. |
| D7 (browser tooling) | Chrome extension stability | Medium | Medium | Manual commissioning fallback always available |
Gate
Before moving to Capability Map:
- All dependencies identified and classified — YES (9 dependencies)
- Hard vs soft classification complete — YES (1 hard, 8 soft)
- Critical path identified — YES (4.5 eng days: D1→D2→D8→audit)
- Risk matrix populated — YES (4 risks with mitigations)
- Parallelization opportunities documented — YES (3 parallel tracks, ~3.5 days saved)
- Every blocker has an owner and escalation path — YES (all owned by Eng except D4)
- Bottleneck→dependency bridge present — YES (table at top links value stream bottlenecks to specific dependencies)
Context
- Value Stream Map — Previous: bottlenecks that need unblocking
- Capability Map — Next: can we execute?
- Dependency Map Template — The empty pattern
- Agent Platform PRD — Full depth