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>
2.3 KiB
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.tsxto tRPC. - Wire
[workspaceSlug]/ai/page.tsxtorouters/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.tsNode API leak).
Out of scope
- New feature work. This epic is finishing, not extending.
Related tasks
| 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-checkexits 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 |