ubiquitous-invention/plans/Plan-daily-driver-finish/Epic-shipping-the-shell/Epic-shipping-the-shell.md
Randall Stillwell 778fe1d321 plans: scaffold daily-driver-finish, saas-hardening, agent-coordination
Three new plan trees that fill in the gaps surfaced during repo review.
Together they map out what remains between the current scaffold-with-stubs
state and a daily-usable, multitenant, agent-coordinated app.

* Plan-daily-driver-finish (P0): turn stubs into real data. Five tasks
  covering the lint/shared-types breakage, hardcoded dashboard mocks,
  AI-page setTimeout placeholder, post-signin landing decision, and a
  cross-browser collab smoke test against the deployed Hocuspocus
  instance.

* Plan-multitenant-saas-hardening (P1): everything multitenant needs
  beyond what Plan-multitenant-cursor-sync already covers. Invites and
  role management, soft-delete + append-only audit log, rate limits on
  the auth + mutation hot paths, and a Vitest + GitHub Actions test
  foundation so PRs can't ship red.

* Plan-agent-coordination (P2): the layer that makes a Task-*.md
  runnable, not just readable. Adds workflow_prompt with task -> epic
  -> plan inheritance, an agent_runs table for auditable sessions, and
  two new MCP tools (claim_task / complete_task) that replace the
  freeform update_object composition agents do today. Includes an
  intentionally-deferred Epic-optional-orchestrator that captures the
  Symphony-shaped runner as a decision point rather than an immediate
  build.

Each task is bead-scale (one focused Cursor session) with explicit
in-scope, out-of-scope, and anti-goal sections so a future agent can
pick up a single Task-*.md and start without scrollback context.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 23:52:22 -05:00

2.3 KiB

kind slug title plan_slug status priority tenant_id cursor_epic_id updated_at
epic shipping-the-shell Shipping the shell — wire stubs to real data, fix repo guardrails daily-driver-finish in_progress P0 global null 2026-06-01

Epic objective

Every page in apps/web/app/(app)/[workspaceSlug]/ should serve real data from the existing tRPC routers, and pnpm lint && pnpm type-check should pass from a clean clone. Today both are partially broken (hardcoded mocks on the home page, setTimeout on the AI page, next lint interactive prompt, Node-API leak in shared).

In scope / out of scope

In scope

  • Wire [workspaceSlug]/page.tsx to tRPC.
  • Wire [workspaceSlug]/ai/page.tsx to routers/ai.ts + packages/ai.
  • Decide and implement the post-sign-in landing route.
  • Smoke-test the collab editor against the deployed Hocuspocus instance.
  • Fix pnpm lint (Next 16 ESLint CLI migration).
  • Fix pnpm type-check (@tasks/shared/utils/id.ts Node API leak).

Out of scope

  • New feature work. This epic is finishing, not extending.
Task Link
Fix lint + shared types ./Task-fix-lint-and-shared-types.md
Wire workspace home dashboard ./Task-wire-workspace-home-dashboard.md
Wire AI chat to tRPC ./Task-wire-ai-chat-to-trpc.md
Pick workspace landing route ./Task-pick-workspace-landing-route.md
Smoke-test collab editor ./Task-smoke-test-collab-editor.md

Dependencies

  • Depends on: nothing. Auth + workspace provisioning landed in 875b1cf.
  • Blocks: Plan-multitenant-saas-hardening (don't harden surfaces that are still stubs).

Acceptance criteria

  • pnpm lint && pnpm type-check exits 0 from a clean clone.
  • No hardcoded mock data in any (app)/[workspaceSlug]/* page.
  • AI chat page sends and receives messages through routers/ai.ts.
  • Post-sign-in lands a user on a page that shows real state.
  • Two browsers editing the same TipTap doc on the deployed Hocuspocus instance stay in sync for at least one full edit session.

Proposed timeline

Phase Window Notes
Repo green Day 1 Lint + shared types fix
Stubs to data Day 2 Home + AI + landing route
Collab verify Day 3 Cross-browser smoke test