Appearance
Dispatch β Linear Backlog (ready to import) β
Status: Phase 1 + Phase 2 created in Linear Β· Last updated: 2026-06-22
This doc mirrors the Phase 1 plan (docs/superpowers/plans/2026-06-15-dispatch-phase-1.md) and the design spec (docs/dispatch-production-design.md), and records the Linear issue ids once created.
Targets β
| Thing | Value |
|---|---|
| Team | gravitas |
| Label (new) | dispatch β color #C1D841 (brand neon) β desc: "Dispatch β AI-augmented BPO cooperative OS" |
| Project | Dispatch β Phase 1 (MVP Core) β team gravitas, label dispatch |
| Issue label on every issue | dispatch |
| Link on every issue | the plan doc + relevant spec section |
Creation order (tool calls) β
list_teamsβ resolvegravitasteam id.list_issue_labels(filterdispatch) β create viacreate_issue_labelif absent (team-scoped to gravitas).save_projectβ createDispatch β Phase 1 (MVP Core)in gravitas with labeldispatch.save_issueΓ6 β the Phase 1 epics below (project set, labeldispatch).save_issueΓ2 β the Phase 2 and Phase 3 roadmap tracking issues.- (Optional, on request) explode any epic into per-task sub-issues via
save_issuewithparentId.
Phase 1 epics (6 issues) β
Each epic's description should carry its task checklist (below) plus: Plan: docs/superpowers/plans/2026-06-15-dispatch-phase-1.md and Spec: docs/dispatch-production-design.md.
Epic 1 β WS0: Foundation & infra scaffolding β
Stand up the monorepo, Go API skeleton (+ Swagger), Angular shell (+ theme port), Supabase, and infra/CI skeletons.
- [ ] 0.1 Monorepo + tooling skeleton (
/api,/web,/supabase,/.github/workflows) βgo build+ng buildsucceed, CI green on empty PR. - [ ] 0.2 Go API skeleton +
/health+gin-swaggermounted at/swaggerβhttptesthealth test passes;swag initgeneratesdocs/swagger.json. - [ ] 0.3 Angular shell (zoneless, SSR/SSG) + design-system theme port (
styles.css/bespoke.css, DaisyUI via PostCSS) β brand tokens render; theme toggle persists todispatch_theme. - [ ] 0.4 Supabase project + migration tooling + Fly/Cloudflare configs (enable
pgcrypto,vector) βsupabase db resetclean;fly config validatepasses.
Epic 2 β WS1: Auth & roles β
Google Workspace OIDC via Supabase, Go JWT + role-guard, Angular auth + guards.
- [ ] 1.1 Supabase Google Workspace OIDC + hosted-domain gate;
public.usersrow on first sign-in withmembership_role, OIDCname. - [ ] 1.2 Go JWT verify +
RequireAuth/RequireRolemiddleware β tests: validβctx, invalidβ401, role mismatchβ403. - [ ] 1.3 Angular auth (login, OIDC callback,
authGuard,roleGuard); admin button role-gated; session deferred toafterNextRender.
Epic 3 β WS2: Domain schema & migrations β
Full Dispatch Postgres schema with role-aware authorization and seed.
- [ ] 2.1 Core tables: organizations, mandates, tasks (
gacx_rewarddisplay-only), skills, user_skills (0.00β10.00, coefficient), votes/vote_ballots, notifications. - [ ] 2.2 Role-aware RLS policies (Members own; MP/Admin all; validated_score MP-only) + authz matrix doc.
- [ ] 2.3 Seed data matching the reference demo; sample mandate completion cross-checks WS3.3.
Epic 4 β WS3: Go API β CRUD engine + domain services β
Generic CRUD + OpenAPI + completion + skills/validation + notifications.
- [ ] 3.1 Generic
crud[T]engine + per-entity schema (orgs/mandates/tasks/users); round-trip + validation + role tests. - [ ] 3.2 OpenAPI annotations +
swag initgenerated spec + CI drift check. - [ ] 3.3 Completion service (Passed 100 Β· Live 60 Β· Progress 50 Β· Queued/Failed 0) β table-driven tests.
- [ ] 3.4 Skills + user-skills + validation queue (MP-only Approve/Reject/Re-open; 0.00β10.00; coefficient).
- [ ] 3.5 Notifications + Supabase Realtime publish (member-registration β MP alert; mark-read).
Epic 5 β WS4: Angular app β
Typed client, schema-driven CRUD, admin console, member app, registration, connection indicator + PWA.
- [ ] 4.1 Generated typed API client from
swagger.json+ auth/error interceptors. - [ ] 4.2 Schema-driven CRUD components (table, form-modal, delete-confirm, search, toasts).
- [ ] 4.3 Admin console (dashboard + completion rings + breakdown, entities, validation queue, notifications slide-over) β routes 1:1 with design.md Β§8.
- [ ] 4.4 Member app: Dispatch / Mandates / Tasks tabs (AI chat stubbed; Pulse/OKRs/Vote/Wallet placeholders); role-gated Admin button.
- [ ] 4.5 Registration first-run flow (Profile from OIDC name β Skills typeahead β Review β Start β MP notification + validation queue).
- [ ] 4.6 Connection indicator (
ConnectionServiceon/health,afterNextRender) + PWA (@angular/service-worker, manifest/icons).
Epic 6 β WS5: Tests, CI/CD & deploy β
Parity tests, e2e, pipeline, and first deploy.
- [ ] 5.1 Shared-rule parity tests (completion + 0.00β10.00 competence) on Go and Angular.
- [ ] 5.2 Playwright e2e: loginβdispatch; registrationβvalidationβMP approve.
- [ ] 5.3 CI/CD: lint/test/build/e2e + deploy (Supabase migrations, Go APIβFly, AngularβCloudflare); secrets in secret stores; tag
phase-1.
Phase 2 β created in Linear (Dispatch β Phase 2 (AI, Engagement & Governance)) β
Created 2026-06-22 as a sibling project to Phase 1, team gravitas, label dispatch. Four epics (parent issues, WS-numbering continued from Phase 1's WS5) with sub-issues. Each carries Spec: docs/dispatch-production-design.md Β§-refs. AI infra = High priority, the rest Medium; all start in Backlog.
Epic β WS6: Dispatch AI (RAG) Β· GAC-49 β
RAG pipeline (adapts docs/implementation/contract-qa/). Spec Β§7βΒ§8.
- [ ] 6.1 Python worker scaffold + Celery + Upstash Redis β GAC-53
- [ ] 6.2 Document ingestion: PDF/Word/Excel β Markdown (MarkItDown) β chunk β GAC-54
- [ ] 6.3 Embeddings + pgvector: Voyage, vector migration, top-k search β GAC-55
- [ ] 6.4 Go API
dispatch-ai:/ask+ context assembly + SSE streaming β GAC-56 - [ ] 6.5 Model routing + cost-tracking + semantic-cache layer β GAC-57
- [ ] 6.6 Angular chat UI: browser-only SSE consumption + source citations β GAC-58
- [ ] 6.7 Tests: pytest (stubbed Voyage) + Go handler tests + e2e β GAC-59
Epic β WS7: Governance voting Β· GAC-50 β
Proposals + one-member-one-vote YES/NO/Abstain + quorum/eligibility. Extends votes/vote_ballots. Spec Β§10, Β§12.
- [ ] 7.1 Schema + RLS: proposals, ballots, quorum/eligibility config (+ define the rules) β GAC-60
- [ ] 7.2 Go API: proposal CRUD, cast ballot, tally + quorum/eligibility β GAC-61
- [ ] 7.3 Angular: Vote tab β proposals, cast YES/NO/Abstain, live tally β GAC-62
- [ ] 7.4 Tests: Go handler/policy tests + e2e live vote β GAC-63
Epic β WS8: OKRs Β· GAC-51 β
Objectives + key results with derived progress rollup. Spec Β§10.
- [ ] 8.1 Schema + RLS: objectives, key_results β GAC-64
- [ ] 8.2 Go API: OKR CRUD + progress rollup β GAC-65
- [ ] 8.3 Angular: OKRs tab β objectives + key results + progress β GAC-66
- [ ] 8.4 Tests: Go handler tests + e2e β GAC-67
Epic β WS9: Pulse surveys Β· GAC-52 β
eNPS + anonymous breakdown; privacy review gates the schema. Spec Β§10, Β§12.
- [ ] 9.1 Privacy review + Schema + RLS: surveys, questions, anonymized responses β GAC-68
- [ ] 9.2 Go API: survey CRUD, anonymized submission, eNPS aggregation β GAC-69
- [ ] 9.3 Angular: Pulse tab β take survey + eNPS results breakdown β GAC-70
- [ ] 9.4 Tests: Go handler tests (incl. anonymity invariant) + e2e β GAC-71
Two product gates before build: 7.1 (GAC-60) needs the voting quorum + eligibility rules defined, and 9.1 (GAC-68) needs the pulse anonymity guarantee reviewed β both flagged in spec Β§12.
Phase 3 (final) β GACx wallet β
Roadmap tracking issue (not yet created in Linear).
- [ ] GACx double-entry ledger (accounts/transactions/postings, idempotent, 1:1 USD peg).
- [ ] Wallet value-movement (deposit/withdraw/transfer, history); task
Passedβ reward posting. - [ ] On-chain settlement via
SettlementProviderinterface (chain choice, custody, peg mechanism β separate workstream).
Notes for the import β
- All issues: team
gravitas, projectDispatch β Phase 1 (MVP Core)(Phase 1 epics) or a sibling project/Phase 2/Phase 3milestone (roadmap issues), labeldispatch,descriptionin Markdown (literal newlines, no escaping). - Full per-task TDD detail (failing test β run β implement β pass β commit) lives in the plan doc; the epic checklists above are the issue-level summary. Per-task sub-issues can be generated on request.
- Keep this doc in sync if the plan changes before import.