File size: 14,062 Bytes
69ccf12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
# POTS Workspace 40-Phase Project Map

## Purpose
Create a single enterprise-grade POTS replacement workspace that can run as a quick estimator or full onboarding workflow, supports save/resume, supports delegated completion, and generates complete quote/survey artifacts for Masters Telecom operations.

## Scope Guardrails
- Keep existing policy/guardrail behavior and hard timeout behavior unchanged unless a phase explicitly targets guardrail improvements.
- Do not implement this deferred backlog item in this cycle: `Paste order lines parser (5 CR602, 2 RX60) to auto-fill quantities/models`.
- External customer contribution flow is deferred to **Phase 2+** (not in Phase 1 execution).

## Operating Model
- One commit per phase (or split only if phase is too large).
- Each phase must end with explicit verification commands and pass/fail report.
- Keep docs synced each phase:
  - `docs/dev/session_handoff.md`
  - `docs/dev/decisions.md`
  - `docs/dev/open_tasks.md`

## Execution Status (2026-03-06)
- `Phase 1-8`: complete
- `Phase 9-16`: complete (see `docs/dev/pots_workspace_phase9_16_guided_intake.md`)
- `Phase 17-24`: complete (see `docs/dev/pots_workspace_phase17_24_quote_financial.md`)
- `Phase 25-32`: complete (see `docs/dev/pots_workspace_phase25_32_collaboration_ai.md`)
- `Phase 33-40`: complete (see `docs/dev/pots_workspace_phase33_40_readiness_launch.md`)

## Phase Tracks
- Track A (`1-8`): Foundation and orchestration shell.
- Track B (`9-16`): Guided discovery and site/line intake UX.
- Track C (`17-24`): BOM, quote, and financial workflow.
- Track D (`25-32`): Collaboration, handoff, and AI acceleration.
- Track E (`33-40`): Quality, compliance, deployment, and adoption.

## Detailed Phases

### Phase 1 - Workspace Foundation API + Shell
- Goal: establish project-backed workspace skeleton scoped per authenticated user.
- Build:
  - backend project store API (`create/list/get/update`), triage endpoint, estimate snapshot endpoint.
  - frontend POTS workspace shell wrapping existing estimator/intake tabs.
  - owner scoping so one user cannot see another user’s workspace records.
- Verification:
  - `python3 -m pytest -q backend/app/test_pots_workspace_api.py`
  - `npm --prefix frontend run build`
- Exit criteria:
  - project can be created/re-opened in workspace.
  - triage recommendation is saved to project record.

### Phase 2 - Roles + Collaboration Model (Internal-first)
- Goal: finalize who can create/edit/review and what collaboration means in-app.
- Build:
  - role matrix for Verizon rep vs Masters employee actions.
  - contribution boundaries for delegated completion (internal first).
  - explicit deferral decision on external customer contribution path.
- Verification:
  - architecture note + acceptance checklist signed.
- Exit criteria:
  - role/collaboration contract documented and approved.

### Phase 3 - Project Lifecycle States
- Goal: define deterministic project state machine.
- Build:
  - statuses (`draft`, `discovery`, `needs_survey`, `estimating`, `ready_for_review`, `handoff_ready`, `closed`).
  - state transition guards and reason codes.
- Verification:
  - state-machine unit tests.
- Exit criteria:
  - invalid transitions are blocked with actionable reason text.

### Phase 4 - Tenant/User Data Isolation Hardening
- Goal: harden per-user and per-account isolation behavior.
- Build:
  - storage partition rules.
  - API-level isolation tests.
  - secure fallback behavior when auth context is missing.
- Verification:
  - auth-context simulation tests with mixed users.
- Exit criteria:
  - zero cross-user data leakage in tests.

### Phase 5 - Workspace Home UX
- Goal: make project home highly usable and plain-English.
- Build:
  - “start quick estimate” vs “run full onboarding” cards.
  - recent projects, status chips, next-action cards.
- Verification:
  - responsive UI validation on desktop/tablet/mobile.
- Exit criteria:
  - users can start or resume in <=2 clicks.

### Phase 6 - Intake Progress Model
- Goal: normalize progress tracking for partially known answers.
- Build:
  - per-question status (`answered`, `unknown`, `deferred`, `needs_owner`).
  - completion score by section.
- Verification:
  - progress-calculation unit tests.
- Exit criteria:
  - project completion reflects unknown/deferred answers correctly.

### Phase 7 - Delegation Skeleton (Internal Contributors)
- Goal: allow reassignment of unanswered sections to internal teammates.
- Build:
  - assign question/section owner.
  - notify in workspace activity feed.
- Verification:
  - assignment and visibility tests.
- Exit criteria:
  - delegated sections persist and route to right owner.

### Phase 8 - Audit Log v1
- Goal: capture defensible audit trail.
- Build:
  - immutable timeline events (created, edited, assigned, submitted).
- Verification:
  - event ordering and integrity tests.
- Exit criteria:
  - key actions are fully traceable.

### Phase 9 - Guided Discovery Question Tree v1
- Goal: provide adaptive question-by-question flow.
- Build:
  - branching logic based on line types and known/unknown answers.
- Verification:
  - branch-coverage tests.
- Exit criteria:
  - no dead-end question paths.

### Phase 10 - Multi-Location Wizard
- Goal: support one-to-many locations with repeatable templates.
- Build:
  - add/remove location flow.
  - clone prior location skeleton.
- Verification:
  - wizard integration tests.
- Exit criteria:
  - users can create projects with variable site counts.

### Phase 11 - Line Inventory Capture v1
- Goal: capture line inventory in structured model.
- Build:
  - line types, criticality, current provider, notes.
- Verification:
  - schema validation tests.
- Exit criteria:
  - all required minimum fields captured for estimate path.

### Phase 12 - “I Don’t Know” Pathways
- Goal: remove friction when customer does not know details.
- Build:
  - explicit unknown states and follow-up requirements.
  - unresolved-question report.
- Verification:
  - unknown-path regression tests.
- Exit criteria:
  - users can continue without blocking on unknowns.

### Phase 13 - Survey-Now vs Survey-Later Routing
- Goal: support both immediate and deferred survey intent.
- Build:
  - route selection and saved intent.
  - follow-up checklist based on chosen route.
- Verification:
  - route persistence tests.
- Exit criteria:
  - route choice consistently controls next workflow.

### Phase 14 - Site Survey Packet Generator v1
- Goal: generate actionable survey tasks from missing fields.
- Build:
  - per-site survey checklist output.
- Verification:
  - checklist generation tests.
- Exit criteria:
  - unresolved site requirements are exportable.

### Phase 15 - Critical Endpoint Heuristics
- Goal: detect life-safety/critical-path lines and elevate priority.
- Build:
  - rule-based criticality scoring.
- Verification:
  - deterministic rule tests.
- Exit criteria:
  - critical lines flagged in UX and exports.

### Phase 16 - Intake QA Guardrails
- Goal: prevent invalid or contradictory intake payloads.
- Build:
  - cross-field validations and warning tiers.
- Verification:
  - invalid payload matrix tests.
- Exit criteria:
  - contradictory states blocked or clearly warned.

### Phase 17 - Estimate Engine Integration v2
- Goal: tie guided intake directly to estimator inputs.
- Build:
  - deterministic mapping from intake data to estimator payload.
- Verification:
  - mapper contract tests.
- Exit criteria:
  - estimator runs from project snapshot without manual re-entry.

### Phase 18 - Savings Scenario Builder
- Goal: support best/base/worst case scenarios.
- Build:
  - scenario assumptions with transparent labels.
- Verification:
  - scenario math tests.
- Exit criteria:
  - multi-scenario summary appears in project.

### Phase 19 - BOM Draft Generator v1
- Goal: generate initial BOM based on site/line profile.
- Build:
  - device + accessory + service placeholders.
- Verification:
  - BOM structure tests.
- Exit criteria:
  - BOM output generated with no fabricated pricing.

### Phase 20 - Missing Inputs Resolver
- Goal: identify exactly what is blocking quote readiness.
- Build:
  - blocking-input report with owner assignment.
- Verification:
  - blocker detection tests.
- Exit criteria:
  - users get clear next steps to become quote-ready.

### Phase 21 - Cost/Savings Narrative Generator
- Goal: produce plain-English business-case summary.
- Build:
  - deterministic narrative from estimate fields.
- Verification:
  - snapshot tests for narrative sections.
- Exit criteria:
  - summary is readable and source-backed.

### Phase 22 - Quote Review Checklist
- Goal: enforce quote quality before handoff.
- Build:
  - pre-submit checklist and validation gate.
- Verification:
  - checklist enforcement tests.
- Exit criteria:
  - handoff blocked until required checks complete.

### Phase 23 - Excel Export v2
- Goal: produce comprehensive workbook for operations and customer materials.
- Build:
  - tabs for sites, lines, assumptions, estimate summary, open items.
- Verification:
  - workbook content tests.
- Exit criteria:
  - export includes all required sections and consistent IDs.

### Phase 24 - PDF Summary Packet v1
- Goal: produce concise executive summary PDF.
- Build:
  - project overview, counts, savings highlights, next actions.
- Verification:
  - render and content smoke tests.
- Exit criteria:
  - packet is attachable and readable by non-technical stakeholders.

### Phase 25 - Save/Resume Reliability Hardening
- Goal: guarantee stable resume across sessions and tabs.
- Build:
  - durable autosave with conflict-safe merges.
- Verification:
  - resume regression tests.
- Exit criteria:
  - no data loss in interrupted sessions.

### Phase 26 - Workspace Activity Feed
- Goal: improve transparency across contributors.
- Build:
  - event feed with filters (changes, assignments, exports, submissions).
- Verification:
  - feed ordering tests.
- Exit criteria:
  - team can audit progress without opening every section.

### Phase 27 - Internal Handoff to Masters Ops
- Goal: formalize handoff package and API/event.
- Build:
  - handoff payload contract.
  - submission receipt tracking.
- Verification:
  - contract + integration tests.
- Exit criteria:
  - handoff package is complete and machine-parseable.

### Phase 28 - Follow-Up Task Queue
- Goal: manage outstanding items after handoff.
- Build:
  - owner, due date, status, notes.
- Verification:
  - queue workflow tests.
- Exit criteria:
  - unresolved dependencies are tracked until closure.

### Phase 29 - Notification Hooks
- Goal: notify contributors about assignments/status changes.
- Build:
  - in-app notification and optional email hook.
- Verification:
  - notification trigger tests.
- Exit criteria:
  - assigned users receive timely prompts.

### Phase 30 - Helper Bot Context Bridging
- Goal: let helper chatbots answer within active project context.
- Build:
  - project-context payload to helper endpoints.
- Verification:
  - context propagation tests.
- Exit criteria:
  - helper responses reference current project facts.

### Phase 31 - Plain-English Copilot Answers
- Goal: return full-sentence guidance with low jargon.
- Build:
  - response style contract and lint checks.
- Verification:
  - response-format tests.
- Exit criteria:
  - answers are concise, clear, and actionable.

### Phase 32 - External Research Assist (Guarded)
- Goal: support web-sourced insights only when internal docs are weak.
- Build:
  - explicit web-source labeling and confidence tiers.
- Verification:
  - source-labeling tests.
- Exit criteria:
  - web-sourced content is clearly marked and not mixed silently.

### Phase 33 - Performance Budgeting
- Goal: keep workspace responsive under realistic project sizes.
- Build:
  - latency budgets per endpoint/stage.
- Verification:
  - synthetic performance tests.
- Exit criteria:
  - p95 within agreed thresholds.

### Phase 34 - Error Recovery UX
- Goal: graceful recovery from network/API failures.
- Build:
  - retry flows, offline warnings, unsaved-change prompts.
- Verification:
  - failure-mode UI tests.
- Exit criteria:
  - no silent failures, clear recovery path always present.

### Phase 35 - Security & PII Logging Review
- Goal: ensure SOC2-style defaults remain enforced.
- Build:
  - PII-safe logging checks, token-handling review, secret scan.
- Verification:
  - security checklist and tests.
- Exit criteria:
  - no sensitive data leakage in logs or client payloads.

### Phase 36 - Contract Freeze for Integrations
- Goal: freeze API + export contracts for dependent teams.
- Build:
  - versioned contracts and migration notes.
- Verification:
  - contract snapshot tests.
- Exit criteria:
  - downstream integrations can adopt without breakage.

### Phase 37 - UAT Pilot (Internal Sales + SE)
- Goal: validate with real workflows and feedback loops.
- Build:
  - pilot script, scoring rubric, issue triage board.
- Verification:
  - pilot completion report.
- Exit criteria:
  - blockers triaged and prioritized.

### Phase 38 - Enablement Package
- Goal: prepare launch materials for internal teams.
- Build:
  - quick-start guide, walkthrough video/script, FAQ.
- Verification:
  - dry-run with pilot users.
- Exit criteria:
  - new users can onboard without live handholding.

### Phase 39 - Production Readiness Gate
- Goal: go/no-go with measurable criteria.
- Build:
  - readiness checklist across quality, security, performance, support.
- Verification:
  - gate sign-off artifact.
- Exit criteria:
  - release criteria explicitly met.

### Phase 40 - Launch + Continuous Optimization
- Goal: release and establish operating cadence.
- Build:
  - launch metrics dashboard.
  - weekly optimization backlog loop.
- Verification:
  - first 30-day adoption and cycle-time report.
- Exit criteria:
  - measurable reduction in quote cycle time and rework.

## Immediate Execution (Now)
- Start with **Phase 1** implementation in this cycle.
- Keep external customer contribution design in **Phase 2** as requested.