From 57d76c5ff1b48148b4a978feb2a61400ded82031 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Sun, 22 Feb 2026 21:29:23 -0600 Subject: [PATCH] =?UTF-8?q?chore(orchestrator):=20bootstrap=20MS16+MS17=20?= =?UTF-8?q?planning=20=E2=80=94=2015=20tasks=20across=204=20phases?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Milestone: MS16+MS17-PagesDataIntegration (Gitea) Issues: #466 (Foundation), #467 (Mock Elimination), #468 (New Pages), #469 (Verification) Estimated: ~320K tokens across 15 tasks Refs #466, #467, #468, #469 Co-Authored-By: Claude Opus 4.6 --- .mosaic/orchestrator/mission.json | 53 ++---------- docs/MISSION-MANIFEST.md | 83 +++++++++---------- docs/TASKS.md | 51 ++++++++---- .../prd-implementation-20260222.md | 66 +++++++++++++++ 4 files changed, 146 insertions(+), 107 deletions(-) create mode 100644 docs/scratchpads/prd-implementation-20260222.md diff --git a/.mosaic/orchestrator/mission.json b/.mosaic/orchestrator/mission.json index de0843b..4b17dc1 100644 --- a/.mosaic/orchestrator/mission.json +++ b/.mosaic/orchestrator/mission.json @@ -1,51 +1,14 @@ { "schema_version": 1, - "mission_id": "mosaic-stack-go-live-mvp-20260222", - "name": "Mosaic Stack Go-Live MVP", - "description": "Ship Mosaic Stack MVP: operational dashboard with theming, task ingestion, one visible agent cycle, deployed and smoke-tested. Unblocks SagePHR, DYOR, Calibr, and downstream projects.", + "mission_id": "prd-implementation-20260222", + "name": "PRD implementation", + "description": "", "project_path": "/home/jwoltje/src/mosaic-stack", - "created_at": "2026-02-22T23:35:51Z", + "created_at": "2026-02-23T03:20:55Z", "status": "active", - "task_prefix": "MS", - "quality_gates": "pnpm lint && pnpm typecheck && pnpm test", - "milestone_version": "0.0.16", - "milestones": [ - { - "id": "phase-1", - "name": "Dashboard Polish + Theming", - "status": "pending", - "branch": "dashboard-polish-theming", - "issue_ref": "", - "started_at": "", - "completed_at": "" - }, - { - "id": "phase-2", - "name": "Task Ingestion Pipeline", - "status": "pending", - "branch": "task-ingestion-pipeline", - "issue_ref": "", - "started_at": "", - "completed_at": "" - }, - { - "id": "phase-3", - "name": "Agent Cycle Visibility", - "status": "pending", - "branch": "agent-cycle-visibility", - "issue_ref": "", - "started_at": "", - "completed_at": "" - }, - { - "id": "phase-4", - "name": "Deploy + Smoke Test", - "status": "pending", - "branch": "deploy-smoke-test", - "issue_ref": "", - "started_at": "", - "completed_at": "" - } - ], + "task_prefix": "", + "quality_gates": "", + "milestone_version": "0.0.1", + "milestones": [], "sessions": [] } diff --git a/docs/MISSION-MANIFEST.md b/docs/MISSION-MANIFEST.md index 5739143..4a08b15 100644 --- a/docs/MISSION-MANIFEST.md +++ b/docs/MISSION-MANIFEST.md @@ -1,70 +1,61 @@ -# Mission Manifest — Mosaic Stack Go-Live MVP +# Mission Manifest — PRD implementation > Persistent document tracking full mission scope, status, and session history. > Updated by the orchestrator at each phase transition and milestone completion. ## Mission -**ID:** mosaic-stack-go-live-mvp-20260222 -**Statement:** Ship Mosaic Stack MVP: operational dashboard with theming, task ingestion, one visible agent cycle, deployed and smoke-tested. Unblocks SagePHR, DYOR, Calibr, and downstream projects. -**Phase:** Complete -**Current Milestone:** all milestones complete -**Progress:** 4 / 4 milestones -**Status:** completed -**Last Updated:** 2026-02-23 20:00 UTC +**ID:** prd-implementation-20260222 +**Statement:** Implement MS16+MS17 (Pages & Data Integration) — build all remaining pages, wire to real API data, eliminate mock data, deploy to production +**Phase:** Execution +**Current Milestone:** MS16+MS17-PagesDataIntegration +**Progress:** 0 / 1 milestones +**Status:** active +**Last Updated:** 2026-02-22T21:35Z ## Success Criteria -1. Dashboard loads reliably at mosaic.woltje.com with theming system operational -2. Task/status ingestion: create/update flow persists records visible in UI -3. One agent job runs from queued to completion/failure with status transitions visible -4. Stack deployed via Coolify, auth + dashboard reachable, smoke checks passing -5. Design reference: `mosaic-stack-website/docs/designs/round-5/claude/01/dashboard.html` - -## Prior Work (MS15-DashboardShell — Complete) - -The Feb 22 agent completed the dashboard shell foundation: - -- PR #451: Design System & App Shell (tokens, layout, sidebar, topbar, responsive, spinner) -- PR #452: Shared Components & Terminal Panel (ui token alignment, card/badge/button, metrics, terminal) -- PR #453: Dashboard Page (widget grid, activity feed, command palette, notifications) -- PR #454: Design system reference docs - -This mission continues from that foundation. +1. All sidebar links navigate to functional pages (no 404s from sidebar navigation) +2. Projects page: list, create, view, edit, delete projects +3. Workspace page: view single project with tasks and agent sessions +4. Kanban page: drag-and-drop board with 5 TaskStatus columns +5. File Manager page: tree/list view with CRUD operations +6. Logs page: log viewer with filtering and auto-refresh +7. Settings root page: category index linking to all subpages +8. Custom 404 page for unknown routes +9. Profile page linked from sidebar user card +10. /tasks, /calendar, /knowledge pages use real API data (no mock) +11. All new pages support light/dark theme +12. All new pages are responsive (sm/md/lg/xl breakpoints) +13. Lint, typecheck, and tests pass +14. Deployed and smoke-tested at mosaic.woltje.com ## Milestones -| # | ID | Name | Status | Branch | Issue | Started | Completed | -| --- | ------- | -------------------------- | --------- | ----------------------------- | ----- | ---------- | ---------- | -| 1 | phase-1 | Dashboard Polish + Theming | completed | feat/phase-1-polish | #457 | 2026-02-22 | 2026-02-23 | -| 2 | phase-2 | Task Ingestion Pipeline | completed | feat/phase-2-ingestion | #459 | 2026-02-23 | 2026-02-23 | -| 3 | phase-3 | Agent Cycle Visibility | completed | feat/phase-3-agent-visibility | #461 | 2026-02-23 | 2026-02-23 | -| 4 | phase-4 | Deploy + Smoke Test | completed | feat/phase-4-deploy | #463 | 2026-02-23 | 2026-02-23 | +| # | ID | Name | Status | Branch | Issue | Started | Completed | +| --- | --------- | ------------------------ | ----------- | ------------------------- | ------------------- | ---------- | --------- | +| 1 | MS16+MS17 | Pages & Data Integration | in-progress | per-task feature branches | #466,#467,#468,#469 | 2026-02-22 | — | ## Deployment -| Target | URL | Method | -| ---------- | ---------------------- | ------------------- | -| Production | mosaic.woltje.com | Coolify (10.1.1.44) | -| Auth | auth.diversecanvas.com | Authentik SSO | -| Registry | git.mosaicstack.dev | Gitea Packages | +| Target | URL | Method | +| ------- | ----------------- | -------------- | +| Coolify | mosaic.woltje.com | CI/CD pipeline | ## Token Budget -| Metric | Value | -| ------ | ------ | -| Budget | — | -| Used | 0 | -| Mode | normal | +| Metric | Value | +| ------ | ----------------- | +| Budget | ~320K (estimated) | +| Used | 0 | +| Mode | normal | ## Session History -| Session | Runtime | Started | Duration | Ended Reason | Last Task | -| ------- | ------- | ---------------- | -------- | ------------ | --------- | -| S1 | Claude | 2026-02-22 17:50 | — | context | MS-P2-002 | -| S2 | Claude | 2026-02-23 18:45 | — | context | MS-P3-003 | -| S3 | Claude | 2026-02-23 19:10 | ~50min | complete | MS-P4-003 | +| Session | Runtime | Started | Duration | Ended Reason | Last Task | +| ------- | --------------- | ----------------- | -------- | ------------ | ---------------------- | +| S1 | Claude Opus 4.6 | 2026-02-22T21:20Z | — | — | PG-PLAN-001 (planning) | ## Scratchpad -Path: `docs/scratchpads/mosaic-stack-go-live-mvp-20260222.md` +Path: `docs/scratchpads/prd-implementation-20260222.md` diff --git a/docs/TASKS.md b/docs/TASKS.md index 352a3fc..e159cf6 100644 --- a/docs/TASKS.md +++ b/docs/TASKS.md @@ -1,19 +1,38 @@ -# Tasks — Mosaic Stack Go-Live MVP +# Tasks — MS16+MS17 Pages & Data Integration > Single-writer: orchestrator only. Workers read but never modify. -| id | status | milestone | description | pr | notes | -| --------- | ------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------ | ---- | ---------------------------------------------- | -| MS-P1-001 | done | phase-1 | Fix broken test suites: Button.test.tsx (4 fails, old Tailwind classes) + page.test.tsx (5 fails, old widget refs) | #458 | issue #457, commit 8fa0b30 | -| MS-P1-002 | done | phase-1 | Remove legacy unused dashboard widgets: DomainOverviewWidget, RecentTasksWidget, UpcomingEventsWidget, QuickCaptureWidget | #458 | issue #457, commit 8fa0b30, 5 files deleted | -| MS-P1-003 | done | phase-1 | Visual + theme polish: audit current vs design reference, fix gaps, verify dark/light across all components, responsive verification | #458 | issue #457, commit d97a98b, review: approve | -| MS-P1-004 | done | phase-1 | Phase verification: all quality gates pass (lint 8/8, typecheck 7/7, test 8/8) | #458 | issue #457, merged 07f5225, issue closed | -| MS-P2-001 | done | phase-2 | Create dashboard summary API endpoint: aggregate task counts, project counts, recent activity, active jobs in single call | — | issue #459, commit e38aaa9, 7 files +430 lines | -| MS-P2-002 | done | phase-2 | Wire dashboard widgets to real API data: ActivityFeed, DashboardMetrics, OrchestratorSessions replace mock with API calls | — | issue #459, commit 7c762e6 + remediation | -| MS-P2-003 | done | phase-2 | Phase verification: create task via API, confirm visible in dashboard, all quality gates pass | — | issue #459, lint 8/8 typecheck 7/7 test 8/8 | -| MS-P3-001 | done | phase-3 | Wire WebSocket emits into RunnerJobsService: broadcast job status/progress/step events to workspace rooms | — | issue #461, commit 5d3045a | -| MS-P3-002 | done | phase-3 | Dashboard auto-refresh + enhanced OrchestratorSessions: polling interval, progress bars, step status indicators, timestamps | — | issue #461, commit 5d3045a | -| MS-P3-003 | done | phase-3 | Phase verification: all quality gates pass, demonstrate agent job cycle visibility end-to-end | — | issue #461, lint 8/8 typecheck 7/7 test 8/8 | -| MS-P4-001 | done | phase-4 | Deploy to Coolify: build images, push to registry, restart service | — | issue #463, images pushed, stop+start cycle | -| MS-P4-002 | done | phase-4 | Smoke test: verify dashboard loads at mosaic.woltje.com, auth redirect works, widgets render | — | issue #463, all checks pass, screenshot saved | -| MS-P4-003 | done | phase-4 | Mission completion: update manifest, create release tag, close issue | #464 | issue #463 closed, tag v0.1.0, release created | +| id | status | description | issue | repo | branch | depends_on | blocks | agent | started_at | completed_at | estimate | used | notes | +| ----------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ---- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------ | ------------ | ----------------- | ----------------- | -------- | ---- | ----------------- | +| PG-PLAN-001 | done | Plan MS16+MS17 task breakdown, create issues + milestone | #466-#469 | — | — | | PG-FND-001,PG-FND-002,PG-API-001,PG-API-002,PG-API-003 | orchestrator | 2026-02-22T21:20Z | 2026-02-22T21:35Z | 15K | — | Planning complete | +| PG-FND-001 | not-started | Custom 404 page — Branded not-found page matching design system, navigation back to dashboard | #466 | web | feat/404-page | PG-PLAN-001 | PG-VER-001 | | | | 10K | | | +| PG-FND-002 | not-started | Settings root/index page — Category cards linking to Credentials, Domains, Personalities, Workspaces subpages | #466 | web | feat/settings-root | PG-PLAN-001 | PG-VER-001 | | | | 12K | | | +| PG-API-001 | not-started | Wire /tasks page to real API — Replace mockTasks with fetchTasks() calls, add loading/empty/error states | #467 | web | feat/tasks-real-api | PG-PLAN-001 | PG-PAGE-003,PG-VER-001 | | | | 18K | | | +| PG-API-002 | not-started | Wire /calendar page to real API — Replace mockEvents with fetchEvents() calls, add loading/empty/error states | #467 | web | feat/calendar-real-api | PG-PLAN-001 | PG-VER-001 | | | | 18K | | | +| PG-API-003 | not-started | Wire /knowledge pages to real API — Replace mockEntries/mockTags across list, detail, search, graph, stats pages | #467 | web | feat/knowledge-real-api | PG-PLAN-001 | PG-VER-001 | | | | 25K | | | +| PG-PAGE-001 | not-started | Projects list page — Card/table layout, CRUD, wire to /api/projects. Create API client (projects.ts) | #468 | web | feat/projects-page | PG-PLAN-001 | PG-PAGE-002,PG-VER-001 | | | | 30K | | | +| PG-PAGE-002 | not-started | Project Workspace page — Single-project view with tasks, agent sessions, settings. Wire to /api/projects/:id, /api/tasks, /api/runner-jobs | #468 | web | feat/workspace-page | PG-PAGE-001 | PG-VER-001 | | | | 35K | | | +| PG-PAGE-003 | not-started | Kanban board page — Drag-and-drop columns for TaskStatus (NOT_STARTED, IN_PROGRESS, PAUSED, COMPLETED, ARCHIVED). Wire to /api/tasks | #468 | web | feat/kanban-page | PG-API-001 | PG-VER-001 | | | | 40K | | | +| PG-PAGE-004 | not-started | File Manager page — Tree/list view of knowledge entries with CRUD + search. Wire to /api/knowledge | #468 | web | feat/file-manager | PG-PLAN-001 | PG-VER-001 | | | | 30K | | | +| PG-PAGE-005 | not-started | Logs and Telemetry page — Log viewer with timestamp/level/source/message. Filtering + auto-refresh. Wire to /api/runner-jobs, job steps, events | #468 | web | feat/logs-page | PG-PLAN-001 | PG-VER-001 | | | | 30K | | | +| PG-PAGE-006 | not-started | Profile page — User profile linked from sidebar user card. Wire to /api/users/me/preferences | #468 | web | feat/profile-page | PG-PLAN-001 | PG-VER-001 | | | | 20K | | | +| PG-VER-001 | not-started | Cross-page theme + responsive verification — Test all pages in light/dark at sm/md/lg/xl breakpoints | #469 | web | feat/theme-verification | PG-FND-001,PG-FND-002,PG-API-001,PG-API-002,PG-API-003,PG-PAGE-001,PG-PAGE-002,PG-PAGE-003,PG-PAGE-004,PG-PAGE-005,PG-PAGE-006 | PG-DOC-001,PG-VER-002 | | | | 12K | | | +| PG-DOC-001 | not-started | Documentation updates — Page architecture docs, API integration notes, updated component inventory | #469 | — | — | PG-VER-001 | PG-VER-002 | | | | 10K | | | +| PG-VER-002 | not-started | Deploy to Coolify + smoke test — Deploy to mosaic.woltje.com, verify all pages accessible, auth working, no console errors | #469 | — | — | PG-DOC-001 | | | | | 15K | | | + +## Summary + +| Metric | Value | +| --------------- | --------------------------------------------------------- | +| Total tasks | 15 | +| Estimated total | ~320K tokens | +| Phases | 4 (Foundation, Mock Elimination, New Pages, Verification) | +| Issues | #466, #467, #468, #469 | +| Milestone | MS16+MS17-PagesDataIntegration | + +## Parallelization Notes + +- **Phase 1**: PG-FND-001 + PG-FND-002 can run in parallel +- **Phase 2**: PG-API-001, PG-API-002, PG-API-003 can run in parallel (max 2 workers) +- **Phase 3**: PG-PAGE-001, PG-PAGE-004, PG-PAGE-005, PG-PAGE-006 can run in parallel; PG-PAGE-002 waits for PG-PAGE-001; PG-PAGE-003 waits for PG-API-001 +- **Phase 4**: Sequential — verification → docs → deploy diff --git a/docs/scratchpads/prd-implementation-20260222.md b/docs/scratchpads/prd-implementation-20260222.md new file mode 100644 index 0000000..89b6001 --- /dev/null +++ b/docs/scratchpads/prd-implementation-20260222.md @@ -0,0 +1,66 @@ +# Mission Scratchpad — PRD implementation + +> Append-only log. NEVER delete entries. NEVER overwrite sections. +> This is the orchestrator's working memory across sessions. + +## Original Mission Prompt + +``` +Active mission detected: PRD implementation. Read the mission state files and report status. +User instruction: start planning. Be complete and thorough. +``` + +## Planning Decisions + +### 2026-02-22 — Task Breakdown + +**Decision**: Combined MS16 (Pages) and MS17 (Backend Integration) into a single milestone because 19 backend API modules with 42 controllers already exist. Work is primarily frontend page creation and API wiring. + +**Task structure**: 15 tasks across 4 phases: + +- Phase 1 (Foundation): 404 page + Settings root — quick wins to fill navigation gaps +- Phase 2 (Mock Elimination): Wire tasks/calendar/knowledge to real APIs +- Phase 3 (New Pages): Projects, Workspace, Kanban, File Manager, Logs, Profile — the bulk of new work +- Phase 4 (Verification): Theme/responsive check, docs, deploy + smoke test + +**Branch strategy**: One feature branch per task, PR to main, squash merge. + +**Dependency rationale**: + +- PG-PAGE-002 (Workspace) depends on PG-PAGE-001 (Projects) — workspace shows single project detail, needs project list/selection pattern established first +- PG-PAGE-003 (Kanban) depends on PG-API-001 (Tasks API wiring) — Kanban needs the tasks API client to be working with real data before building the board UI +- Phase 4 tasks are sequential: verification → docs → deploy + +**Codebase findings** (from exploration): + +- TaskStatus enum: NOT_STARTED, IN_PROGRESS, PAUSED, COMPLETED, ARCHIVED (5 Kanban columns) +- Mock data locations: `apps/web/src/lib/api/tasks.ts`, `events.ts`, `knowledge.ts`, `client.ts` +- API client pattern: `apiGet()`, `apiPost()`, etc. with CSRF + workspace headers +- 17 shared UI components in packages/ui (Button, Card, Badge, Input, Modal, DataTable, etc.) +- Sidebar nav defined in `apps/web/src/components/layout/AppSidebar.tsx` — all links already point to correct routes +- Design tokens in `apps/web/src/app/globals.css` with full light/dark support + +**Estimate**: ~320K tokens total across all tasks. + +**Issues created**: #466 (Phase 1), #467 (Phase 2), #468 (Phase 3), #469 (Phase 4) +**Milestone**: MS16+MS17-PagesDataIntegration (Gitea) + +### Profile Page Addition + +**Decision**: Added PG-PAGE-006 (Profile page) — PRD FR-003 notes "profile page navigation pending (MS16)" and the sidebar user card should link to it. Included in Phase 3. + +## Session Log + +| Session | Date | Milestone | Tasks Done | Outcome | +| ------- | ---------- | --------- | ----------- | --------------------------------------------------------------------------------------------------- | +| S1 | 2026-02-22 | MS16+MS17 | PG-PLAN-001 | Planning complete — milestone created, 4 issues created (#466-#469), 15 tasks populated in TASKS.md | + +## Open Questions + +1. **Kanban DnD library**: dnd-kit vs react-beautiful-dnd vs @hello-pangea/dnd — worker should evaluate during implementation +2. **Workspace page default view**: Should it require project selection or show a default? (PRD open question #5) — ASSUMPTION: Show project selection/list if no project context, else show project detail +3. **File Manager vs Knowledge**: PRD ASSUMPTION #5 says File Manager maps to Knowledge entries — worker should confirm API shape matches UI needs + +## Corrections + +(none yet)