docs: fix 7 inaccuracies in implementation tracker after systematic review

Corrections:
- Remove duplicate task 7.3 (Gap A4 already in Phase 2 task 2.3), renumber
- Fix task 3.5: remove false DELETE claim (note-relationships has GET+POST only)
- Fix task 1.2: add note about removing dead 'export { blobClient }' re-export
- Fix 'How to Use' parallelization: Phase 5 needs Phase 1 only, not Phase 3
- Add phase-level [ ] checkboxes to all 8 phase headers
- Align Phase 3 test target: '60+' → '~60-75' (matches summary table)
- Fix Phase 7 effort estimate (4-5h → 3-4h after removing duplicate task)
- Fix test target summary to use ranges instead of single estimates
This commit is contained in:
saravanakumardb1 2026-03-19 07:15:26 -07:00
parent 1d068e748c
commit e50df779da

View File

@ -8,12 +8,12 @@
## How to Use This Document ## How to Use This Document
- Each phase has a top-level checkbox that tracks overall phase completion. - Each task has its own checkbox. Check it off and add the commit SHA in parentheses when done.
- Each task within a phase has its own checkbox.
- When a task is completed, check it off and add the commit SHA in parentheses.
- Run the verification commands listed in each phase before marking it done. - Run the verification commands listed in each phase before marking it done.
- Phases are sequenced by dependency — complete Phase 1 before Phase 2, etc. - **Dependency chain:** Phase 1 → Phase 2 → Phase 3 (critical path).
- Phases 13 are the critical path. Phases 47 can be parallelized after Phase 3. - **After Phase 1:** Phase 5 (DevOps) can start in parallel.
- **After Phase 3:** Phases 4, 6, 7 can be parallelized.
- **Phase 8** (docs) runs last, after all other phases.
--- ---
@ -27,7 +27,7 @@
--- ---
## Phase 1 — Bug Fixes (Gaps A1A6, D3D4) ## Phase 1 — Bug Fixes (Gaps A1A6, D3D4) [ ]
**Goal:** Eliminate all runtime bugs and latent crash risks. Clean dead code. **Goal:** Eliminate all runtime bugs and latent crash risks. Clean dead code.
**Estimated effort:** 23 hours **Estimated effort:** 23 hours
@ -42,7 +42,8 @@
- [ ] **1.2** Lazy-init `blobClient` in `web/src/lib/blob-client.ts` (Gap A1) - [ ] **1.2** Lazy-init `blobClient` in `web/src/lib/blob-client.ts` (Gap A1)
- Replace `const blobClient = createBlobClient(...)` with lazy singleton `function getBlobClient()` - Replace `const blobClient = createBlobClient(...)` with lazy singleton `function getBlobClient()`
- Update all call sites within the file (`blobClient.getSasUrl(...)` → `getBlobClient().getSasUrl(...)`) - Update all 4 call sites within the file (`blobClient.getSasUrl(...)` → `getBlobClient().getSasUrl(...)`)
- Remove dead re-export `export { blobClient }` on line 48 (zero external imports)
- File: `web/src/lib/blob-client.ts` - File: `web/src/lib/blob-client.ts`
- [ ] **1.3** Add `"use client"` directive to `web/src/lib/notes-client.ts` (Gap A6) - [ ] **1.3** Add `"use client"` directive to `web/src/lib/notes-client.ts` (Gap A6)
@ -82,7 +83,7 @@ fix(web): lazy-init extraction + blob clients, add use-client to notes-client
--- ---
## Phase 2 — Code Quality (Gaps D1D2, A3A4) ## Phase 2 — Code Quality (Gaps D1D2, A3A4) [ ]
**Goal:** Consolidate duplicate types, optimize N+1 queries. **Goal:** Consolidate duplicate types, optimize N+1 queries.
**Estimated effort:** 23 hours **Estimated effort:** 23 hours
@ -128,7 +129,7 @@ refactor(web): consolidate types, optimize N+1 queries [D1, A3, A4, D2]
--- ---
## Phase 3 — Backend Test Depth (Gap A5) ## Phase 3 — Backend Test Depth (Gap A5) [ ]
**Goal:** Replace registration-only route tests with real API behavior tests. **Goal:** Replace registration-only route tests with real API behavior tests.
**Estimated effort:** 34 hours **Estimated effort:** 34 hours
@ -159,8 +160,9 @@ refactor(web): consolidate types, optimize N+1 queries [D1, A3, A4, D2]
- File: `backend/src/modules/note-artifacts/routes.test.ts` - File: `backend/src/modules/note-artifacts/routes.test.ts`
- [ ] **3.5** Add integration tests for `note-relationships` routes - [ ] **3.5** Add integration tests for `note-relationships` routes
- Test: POST create → GET list → DELETE - Test: POST create → GET list (by workspaceId + noteId)
- Target: 35 tests - Note: no DELETE route exists — only GET and POST are implemented
- Target: 34 tests
- File: `backend/src/modules/note-relationships/routes.test.ts` - File: `backend/src/modules/note-relationships/routes.test.ts`
- [ ] **3.6** Add integration tests for `note-agent-actions` routes - [ ] **3.6** Add integration tests for `note-agent-actions` routes
@ -178,7 +180,7 @@ refactor(web): consolidate types, optimize N+1 queries [D1, A3, A4, D2]
```bash ```bash
cd backend && npm run typecheck && npm test cd backend && npm run typecheck && npm test
# Target: 60+ tests (up from 24) # Target: ~6075 tests (up from 24)
``` ```
### Commit convention ### Commit convention
@ -189,7 +191,7 @@ test(backend): add integration tests for all 7 route modules [A5]
--- ---
## Phase 4 — Web Feature Gaps (Gaps B1, B2, B8) ## Phase 4 — Web Feature Gaps (Gaps B1, B2, B8) [ ]
**Goal:** Add missing web CRUD flows that the PRD requires. **Goal:** Add missing web CRUD flows that the PRD requires.
**Estimated effort:** 34 hours **Estimated effort:** 34 hours
@ -240,11 +242,11 @@ feat(web): add create note, archive/restore, link note flows [B1, B2, B8]
--- ---
## Phase 5 — DevOps (Gaps C1C5) ## Phase 5 — DevOps (Gaps C1C5) [ ]
**Goal:** Docker builds, CI, and deployment readiness. **Goal:** Docker builds, CI, and deployment readiness.
**Estimated effort:** 23 hours **Estimated effort:** 23 hours
**Dependencies:** Phase 1 (`output: "standalone"` must be set first). **Dependencies:** Phase 1 only (`output: "standalone"` must be set first). Can run in parallel with Phases 23.
### Tasks ### Tasks
@ -294,7 +296,7 @@ feat(devops): Dockerfiles, docker-compose, CI, docker-prep [C1C5]
--- ---
## Phase 6 — E2E & Mobile Tests (Gaps B7, C4) ## Phase 6 — E2E & Mobile Tests (Gaps B7, C4) [ ]
**Goal:** Playwright E2E for web, Vitest for mobile. **Goal:** Playwright E2E for web, Vitest for mobile.
**Estimated effort:** 34 hours **Estimated effort:** 34 hours
@ -357,11 +359,12 @@ test(mobile): add store and API client unit tests [B7]
--- ---
## Phase 7 — AI Enrichment & Advanced Features (Gaps B3, B6) ## Phase 7 — AI Enrichment & Advanced Features (Gaps B3, B6) [ ]
**Goal:** Add extraction-backed enrichment and import/export. **Goal:** Add extraction-backed enrichment and import/export.
**Estimated effort:** 45 hours **Estimated effort:** 34 hours
**Dependencies:** Phase 3 (backend test patterns), Phase 4 (web CRUD flows). **Dependencies:** Phase 3 (backend test patterns), Phase 4 (web CRUD flows).
**Note:** Gap A4 (workspace note count optimization) is fully addressed in Phase 2 task 2.3 — not duplicated here.
### Tasks ### Tasks
@ -378,18 +381,11 @@ test(mobile): add store and API client unit tests [B7]
- Add "Export" button on web workspace page - Add "Export" button on web workspace page
- Files: `backend/src/modules/notes/routes.ts`, `web/src/app/(app)/workspaces/page.tsx` - Files: `backend/src/modules/notes/routes.ts`, `web/src/app/(app)/workspaces/page.tsx`
- [ ] **7.3** Add workspace-level note count to backend (Gap A4) - [ ] **7.3** Add tests for new endpoints
- Add `noteCount` field to workspace list response
- Use Cosmos cross-query or batch aggregate
- Remove the client-side all-notes fetch from `listWorkspaceSummaries()`
- Files: `backend/src/modules/workspaces/repository.ts`, `web/src/lib/notes-client.ts`
- [ ] **7.4** Add tests for new endpoints
- Test: summarize route (mock extraction-service) - Test: summarize route (mock extraction-service)
- Test: export route (JSON + Markdown formats) - Test: export route (JSON + Markdown formats)
- Test: workspace list with note counts - Target: 48 tests
- Target: 610 tests - Files: `backend/src/modules/notes/routes.test.ts`
- Files: `backend/src/modules/notes/routes.test.ts`, `backend/src/modules/workspaces/routes.test.ts`
### Verification ### Verification
@ -401,13 +397,13 @@ cd web && npm run typecheck && npm test && npm run build
### Commit convention ### Commit convention
``` ```
feat(backend): note summarization, export, workspace note counts [B3, B6, A4] feat(backend): note summarization + export endpoints [B3, B6]
feat(web): summarize + export UI triggers [B3, B6] feat(web): summarize + export UI triggers [B3, B6]
``` ```
--- ---
## Phase 8 — Documentation Alignment (Gaps E1E2) ## Phase 8 — Documentation Alignment (Gaps E1E2) [ ]
**Goal:** Update all docs to reflect the final implementation state. **Goal:** Update all docs to reflect the final implementation state.
**Estimated effort:** 1 hour **Estimated effort:** 1 hour
@ -472,11 +468,11 @@ Track completed phases and commits here as work progresses.
| Surface | Before | After Phase 3 | After Phase 6 | After Phase 7 | | Surface | Before | After Phase 3 | After Phase 6 | After Phase 7 |
|---------|--------|---------------|---------------|---------------| |---------|--------|---------------|---------------|---------------|
| Backend | 24 tests (12 files) | ~75 tests | ~75 tests | ~85 tests | | Backend | 24 tests (12 files) | ~6075 tests | ~6075 tests | ~7085 tests |
| Web unit | 6 tests (5 files) | 6 tests | ~12 tests | ~12 tests | | Web unit | 6 tests (5 files) | 6 tests | ~12 tests | ~12 tests |
| Web E2E | 0 | 0 | ~20 tests | ~20 tests | | Web E2E | 0 | 0 | ~20 tests | ~20 tests |
| Mobile | 0 | 0 | ~15 tests | ~15 tests | | Mobile | 0 | 0 | ~15 tests | ~15 tests |
| **Total** | **30** | **~81** | **~122** | **~132** | | **Total** | **30** | **~6681** | **~107122** | **~117132** |
--- ---