{
  "id": "2026-04-23-platform-roadmap-0daca9b0ff",
  "scope": "redkey",
  "source_of_truth": "repo",
  "source_path": "docs/specs/2026-04-23-platform-roadmap.md",
  "source_kind": "markdown",
  "visibility": "internal",
  "renderer_id": "design_doc.dreamborn-forge.generated.v1",
  "design_system": "dreamborn-design-system:forge",
  "generated_at": "2026-05-09T13:00:55.663Z",
  "artifact_type": "design_doc",
  "schema_version": "design_doc.generated.v1",
  "title": "BezelIQ Platform Roadmap",
  "summary": "BezelIQ Platform Roadmap Date: 2026 04 23 Status: Active Supersedes: docs/roadmap.md The Play Build a platform to demonstrate, show its power, and generate quick cash. Two revenue tracks run in parallel: Product sale — we build your AI operations team, lump sum. CCOS2 is the proof. Tech license — here's the platform, deploy it yourself, revenue share. The de...",
  "format_source": "markdown",
  "sections": [
    {
      "title": "BezelIQ Platform Roadmap",
      "level": 1,
      "body": "**Date:** 2026-04-23  \n**Status:** Active  \n**Supersedes:** `docs/roadmap.md`\n\n---"
    },
    {
      "title": "The Play",
      "level": 2,
      "body": "Build a platform to demonstrate, show its power, and generate quick cash. Two revenue tracks run in parallel:\n\n- **Product sale** — we build your AI operations team, lump sum. CCOS2 is the proof.\n- **Tech license** — here's the platform, deploy it yourself, revenue share.\n\nThe demo sequence proves both: **small → medium → big.**\n\n1. **Assistant** — personal AI, daily brief, task management, scheduled routines\n2. **Marketing** — content calendar, BDR outreach, watch it run in real time\n3. **Dev project** — big project decomposes into phases → tasks → execution, watch a phase complete end-to-end\n\n---"
    },
    {
      "title": "Priority 1 — Dev Projects",
      "level": 3,
      "body": "The platform must handle big projects today. A project decomposes into phases. Phases decompose into tasks. Tasks have dependencies. Claire orchestrates at every level.\n\n**What gets built:**\n\n**Data model extension:**\n- `workflow_instances` gains `parent_id uuid references workflow_instances(id)`\n- Three templates: `project`, `phase`, `dev_task`\n- `workflow_steps` gains `depends_on uuid[]` — task dependencies\n\n**Who does what:**\n- **BA (Priya)** does the intellectual decomposition — receives the project brief, produces the phase breakdown with specs, receives each phase and produces the task list. The thinking work.\n- **Claire** orchestrates state — spawns instances, routes work to the right role, advances the workflow when steps complete, holds at exec gates. The plumbing work.\n\n**Workflow hierarchy:**\n```\nProject instance\n  → Claire posts to roles.ba\n      → BA (Priya) produces: phase list, each phase named + scoped + specced\n      → Exec gate: Justin reviews phase breakdown before anything spawns\n  → Claire spawns N Phase instances, posts each to roles.ba\n      → BA (Priya) produces: task list for the phase, each task specced with dependencies\n      → Exec gate (optional): Justin reviews task breakdown\n  → Claire spawns M Task instances respecting dependency order\n      → dev_task: spec → code → review (existing)\n      → All tasks in phase complete → phase done → Claire reports up\n  → All phases complete → project done\n```\n\n**Claire's orchestration loop (extended):**\n- Receives BA output at each level, materializes child instances\n- Dependency gate: task not posted to queue until all `depends_on` tasks are complete\n- Holds at exec gates — workflow does not advance until approval recorded in Exec Inbox\n\n**Exec gates:**\n- Project phase breakdown complete → exec review before phases spawn\n- Phase task breakdown complete → exec review before tasks spawn (optional per template)\n- Gates surface in Exec Inbox (Priority 2)\n\n**Agent messaging + inbox:**\n- Any agent can post a message to any other agent via `agents.*` topics — informational only\n- Any agent can post to `roles.exec` to reach Justin directly — this is messaging, not task routing\n- Hard guardrail: only Claire posts to peer role topics (`roles.ba`, `roles.developer`, etc.) to route tasks\n- Each agent reads its own `agents.*` inbox at session start — messages injected as context alongside memory\n- `agents.justin` = lightweight channel for things worth knowing but not decisions needed\n- Messages that require a decision surface in Exec Inbox instead\n\n**Inbox read model:**\n- HCS messages mirrored into Supabase `agent_messages` table with status: `unread | relevant | consumed | skipped`\n- On session start, runner fetches all `unread` messages for the agent\n- **Haiku** classifies each message against the current task: relevant or not?\n- Relevant → inject into session context, mark `relevant`\n- Not relevant → do not inject, do not mark read — stays `unread` for a future task\n- After session completes → injected messages marked `consumed`\n- Messages are never silently dropped — they persist until a task makes them relevant\n\n**`agent_messages` table:**\n```sql\nagent_messages (\n  id            uuid PRIMARY KEY,\n  to_agent      text NOT NULL,\n  from_agent    text NOT NULL,\n  content       text NOT NULL,\n  context       jsonb,          -- workflow_instance_id, task_id if applicable\n  status        text DEFAULT 'unread',  -- unread | relevant | consumed | skipped\n  hcs_sequence  bigint,\n  hcs_topic     text,\n  created_at    timestamptz DEFAULT now(),\n  consumed_at   timestamptz\n)\n```\n\n---"
    },
    {
      "title": "Priority 2 — Cockpit (Project Monitor)",
      "level": 3,
      "body": "The Cockpit is the operational view for running projects. Not the full Boardroom yet — just the project and agent monitoring surface needed to run real work.\n\n**Four sections:**\n\n**Timeline**\n- Per-project Gantt view: phases as bars, tasks within phases\n- Status color: pending / in-progress / blocked / complete\n- Target dates on phases (set at project spawn, tracked against actual)\n- Dependency visualization — blocked tasks show what they're waiting on\n\n**Cost**\n- Per-project, per-phase, per-task: token usage × model rate = dollar cost\n- Running total as work progresses\n- Cost pulled from `task.complete` payloads (`model`, `token_count`, `duration_seconds`)\n\n**Structure**\n- Per-project breakdown view: how the project was decomposed by BA\n- Phase list with status, owner, target date\n- Each phase links to its artifacts: spec doc, design doc, roadmap, HCS definition snapshot\n- Task list within each phase — dependencies visualized, what's blocking what\n- The full paper trail from brief → phases → tasks, all in one place\n\n**Exec Inbox**\n- Everything needing Justin's attention: gates, blocked workflows, flagged items, escalations from agents\n- Priority-sorted. Oldest blocking item at top.\n- Each item: context, what's blocked, what decision is needed\n\n**Agent Status (sidebar)**\n- All running agents: role, current task, last activity timestamp\n- Idle agents shown — confirms platform is live\n- Quick view of what each agent completed today\n\n---"
    },
    {
      "title": "Full Platform Vision",
      "level": 2,
      "body": "Everything beyond the immediate priorities. Ordered by logical sequence."
    },
    {
      "title": "Phase 3 — Scheduling Primitive",
      "level": 3,
      "body": "Time-triggered and event-triggered workflows. Needed before Assistant and Marketing demos.\n\n- `scheduled_triggers` table: `id`, `name`, `workflow_type`, `schedule` (cron), `payload`, `client_id`, `active`\n- `pg_cron` job fires due triggers → posts work items to queue\n- Event triggers: `event_triggers` table, conditions evaluated on Supabase DB events or webhook inbound\n- Calendar data model: every workflow instance gets `scheduled_at`, `started_at`, `completed_at`"
    },
    {
      "title": "Phase 4 — The Boardroom",
      "level": 3,
      "body": "Full company OS. Extends the Cockpit into a strategic operating surface.\n\n**Sections:**\n- **Now** — live operations feed. BDR sent LinkedIn at 8:30, 8:47, 9:02. Who she sent to. What assistant is doing.\n- **Strategy** — declared goals and priorities. Lives in BezelBrain. Atlas owns it. Updated by talking to Atlas.\n- **Measuring Strategy** — KPIs tracking against strategic goals. Gap detection automated.\n- **Gaps** — delta between strategy and reality. Surfaced automatically.\n- **Planned** — calendar view of scheduled workflows. Content calendar. Upcoming milestones.\n- **Projects** — the Cockpit project view, embedded.\n- **Finance** — revenue, expenses, runway, invoices. Stripe + Mercury.\n- **Pipeline** — deals in flight, stage, expected close. HubSpot.\n- **Team** — agent roster. Who's running, idle, what they accomplished today.\n- **Exec Queue** — promoted from Cockpit, cross-domain. All decisions needed.\n- **Intelligence Digest** — what the system learned this week. BezelBrain contributions, Sentinel signals, patterns.\n\n**On naming:** The Boardroom, not Cockpit. This is where the company runs from."
    },
    {
      "title": "Phase 5 — Business Function Agents",
      "level": 3,
      "body": "Agent definitions + workflow templates for each business function.\n\n- **Assistant** — daily brief, task management, calendar awareness, morning routine\n- **Marketing / BDR** — content creation, LinkedIn outreach, campaign workflows, content calendar\n- **Sales** — HubSpot pipeline management, deal follow-ups, meeting prep\n- **Finance** — Stripe/Mercury reporting, invoice management, weekly revenue summary\n- **Sentinel** — competitive monitoring, signals posted to BezelBrain\n- **API Scout** — discovers new APIs, populates API Library"
    },
    {
      "title": "Phase 6 — Intelligence Layer",
      "level": 3,
      "body": "Intent expression → workflow execution. Self-healing when APIs break.\n\nFull spec: `docs/specs/2026-04-23-semantic-intent-layer.md`\n\n- Intent Resolver agent (`roles.intent`)\n- API Library (pgvector semantic search over available integrations)\n- Self-healing loop: `task.blocked` → escalate to resolver → re-resolve → continue\n- Every heal writes a learning to Agent Brain"
    },
    {
      "title": "Phase 7 — Platform / Multi-Tenant",
      "level": 3,
      "body": "RedKey as a licensable product.\n\n- Onboarding flow: new deployment in < 30 minutes via scripts\n- Usage billing: per-client token cost tracking → Stripe billing\n- Agent marketplace: browse and deploy community agent definitions\n- Customer portal: client-facing view of their own workflows\n\n---"
    },
    {
      "title": "Demo Script (When Ready)",
      "level": 2,
      "body": "**Small — Assistant:**\nOpen The Boardroom. Show Now section. Morning brief running. Daily tasks queued. \"This is your AI chief of staff.\"\n\n**Medium — Marketing:**\nShow calendar. BDR messages scheduled. Watch one fire at exactly 8:30 — LinkedIn outreach to a named prospect. Content post went live at 9am. \"This is your AI marketing and sales team.\"\n\n**Big — Dev project:**\nSubmit a real project brief. Priya (BA) reads it, breaks it into 4 phases with specs. Exec Inbox fires — review the breakdown, approve. Claire spawns Phase 1. Priya specs the tasks, dependencies mapped. Agents claim and work. Open Structure view — see the full paper trail: brief → phases → tasks → specs linked. \"This is your AI engineering team taking a project from brief to shipped.\"\n\n---"
    },
    {
      "title": "What Stays Hidden",
      "level": 2,
      "body": "The underlying infrastructure is not referenced in any UI, demo, or external document. All external language uses: \"durable execution,\" \"distributed agents,\" \"guaranteed delivery,\" \"permanent audit trail.\" The specific technology is a strategic advantage revealed at the right moment — not before.\n\n---"
    },
    {
      "title": "Gaps Still Open",
      "level": 2,
      "body": "- **Testing framework** — how do you test a workflow before running on production? Needed before platform licensing.\n- **Credential manager** — OAuth token lifecycle for multi-tenant authenticated APIs.\n- **Notification system** — webhooks and email when workflows fail or need attention.\n- **Strategy definition format** — how Strategy is structured in BezelBrain for measurement. Atlas-owned but needs a schema."
    },
    {
      "title": "Deferred — Saved to BezelBrain",
      "level": 2,
      "body": "- **Agent reflection** (BezelBrain ID: f5e5b842-6ecc-4130-956b-f6873b78db96) — after task.complete, agents reflect on their own work. Two patterns: immediate reflection as final workflow step; cool-down reflection via scheduled_trigger 24h after phase complete. Severity model routes findings to backlog, Exec Inbox, or immediate halt. Compounding intelligence via Agent Brain. Build after inbox capabilities ship."
    }
  ],
  "html_path": "artifacts/2026-04-23-platform-roadmap-0daca9b0ff.html",
  "json_path": "artifacts/2026-04-23-platform-roadmap-0daca9b0ff.json"
}