Operator · Build strategy · Slice 102

Strategic decision

Build priority as of Slice 102. Governs every slice until Slice 118 (MVP QA pass). All 16 numbered modules now installed as of Slice 117.

Sandbox review is parked Parked
The sandbox-demo.html and demo-control-room.html surfaces remain available but will not receive further polish until all product modules below are installed.

Design partner outreach is parked Parked
The readiness packet, lead ops, and outreach message (Slices 98–100) remain the authoritative design partner docs. No new design partner outreach surfaces will be built until the MVP product path is coherent end-to-end.

Build priority: complete product installation
Slices 103 onward build actual product modules — workspace, campaign brief, generator surfaces, review queue, export pipeline, history trail, and provider/billing readiness.

No new review/demo-only surfaces
Any new page from Slice 103 onward must serve an actual workflow function in the module list below.

Why this is the right call

  • Intake, voice, scripts, UGC pack, and ZIP export are production-verified (Slices 63–97)
  • No workspace/project concept — every session is ephemeral
  • No campaign brief as a discrete workflow step — ZIP buyer doc only
  • No unified asset review queue — per-page gates exist but no unified surface
  • No output history UI — artifact-runbook.sh CLI only
  • OPENAI_API_KEY not set — blocking real image and audio output in production
  • Billing, settings, and admin layer does not exist

The sandbox demo and design partner readiness docs accurately represent what is real. To move beyond controlled outreach, the product modules below must be installed first.

Operator · Module status

Full MVP module status

16 modules required for a complete MVP installation. Status reflects current production state as of Slice 117.

Installed (13)
#ModuleStatusNotes
1 Workspace / project foundation Installed ✓ D1 table klariven_workspaces + Pages Function /api/workspaces + workspace.html installed (Slice 103). Prerequisite for product/offer intake and every generator module.
2 Product / offer intake Installed ✓ ProductTruth intake live (Slices 63–65). Workspace scoping wired (Slice 104). product_intakes table accepts workspace_id; workspace intake_state updated to completed on successful intake.
3 Founder voice capture Installed ✓ Voice profile capture + approval gate live (Slices 66–68). Workspace scoping wired (Slice 105). founder_voice_profiles table accepts workspace_id; workspace founder_voice_state updated to completed on successful capture.
4 ProductTruth and claim discipline Installed ✓ ProductTruth review + approval gate live (Slices 63–65). Workspace scoping wired (Slice 106). product_truths table accepts workspace_id; workspace producttruth_state updated to approved or rejected on approval/rejection action.
5 Campaign brief generator Installed ✓ Discrete D1 campaign brief workflow installed in Slice 107. Requires workspace, approved ProductTruth, and approved Founder Voice profile. Produces pending_review campaign_briefs record; operator approves or rejects before downstream generators run. CAMPAIGN_BRIEF.md in ZIP (Slice 94) continues to exist separately. Slice 111: accepts optional opportunity_id to enrich brief with approved opportunity context; persists source_lineage_json for full Source Hub → Opportunity Map → Campaign Brief traceability.
6 Founder-style post generator Installed ✓ Discrete D1 founder-style post workflow installed in Slice 108. Requires approved Campaign Brief, approved ProductTruth, and approved Founder Voice profile. Produces pending_review founder_posts record; operator approves or rejects. No publishing. New route: functions/api/founder-post.js.
7 UGC variation pack generator Installed ✓ Live (Slices 76–85). Production-verified in Slice 97.
8 Short-form script generator Partial 30s + 60s scripts and composition manifest in script_output. MP4 render deferred. No standalone surface.
9 Landing page angle generator Partial landing_hero channel included in script_output. No standalone surface.
10 Sales / email angle generator Partial sales_email + cta_variants channels in script_output. No standalone surface.
11 Asset review queue Installed ✓ Unified workspace-scoped review queue installed in Slice 113. Aggregates all reviewable assets (ProductTruth, Founder Voice, Campaign Opportunity, Campaign Brief, Founder Post, Customer Sources, Campaign Input Graph) into one surface. Gate snapshot computes export readiness. asset_review_items + review_gate_snapshots tables. /api/review-queue + review-queue.html. Workspace review_state updated on every sync/status change.
12 Review-before-publish gate Installed ✓ Per-step approve/reject gates live. Review gate enforcement wired into export-package.js and zip-package.js (Slice 114). workspace_id required for export POST. Gate must be approved (gate_status = 'approved') or export returns 409 EXPORT_REVIEW_GATE_NOT_APPROVED with blocking_items. Shared helper _reviewGate.js. Gate panel shown in export-package.html before generate button.
13 Export package builder Installed ✓ ZIP chain live and production-verified (Slice 97). R2 artifact storage live.
14 Output history / version trail Installed ✓ Workspace output history and version trail installed in Slice 115. Syncs workspace-scoped product objects into workspace_output_history. Records version events in workspace_version_events. Session-only legacy tables excluded (no fake linkage). /api/output-history + output-history.html. No generation, publishing, or provider calls.
15 Provider / API boundary readiness Installed ✓ Provider/API boundary readiness installed in Slice 116. Documents current Claude-backed routes (Anthropic, OpenAI, ElevenLabs), D1-only routes, future OS-governed customer connectors, required SecretRefs, ProductTruth and review boundaries. provider_api_boundaries + api_readiness_checks tables. /api/provider-boundaries + provider-boundaries.html. Does not connect live customer APIs.
16 Billing / settings / admin readiness Installed ✓ Workspace admin profile, billing tier readiness, plan entitlements (visibility_only enforcement), review/export policy settings, and admin event history installed in Slice 117. workspace_admin_settings + workspace_billing_readiness + workspace_plan_entitlements + workspace_admin_events tables. /api/admin-settings + admin-settings.html. Does not process payments. Future billing owned by Trelmir OS Billing / Commercial Infrastructure.

Summary

  • Installed (13): Workspace/project foundation (Slice 103), Product/offer intake (Slice 104), Founder voice capture (Slice 105), ProductTruth and claim discipline (Slice 106), Campaign brief generator (Slice 107), Founder-style post generator (Slice 108), UGC variation pack generator, Export package builder, Asset review queue (Slice 113), Review-before-publish gate (Slice 114), Output history / version trail (Slice 115), Provider/API boundary readiness (Slice 116), Billing/settings/admin readiness (Slice 117)
  • Partially installed (3): Short-form script generator, Landing page angle generator, Sales/email angle generator
  • Not installed (0): All 16 numbered modules are now installed. The numbered MVP installation path is complete. Three legacy/generator modules remain partially installed (no standalone surface). MVP QA pass is the recommended next step.

Operator · OS-aligned foundations · Slice 112

Cross-cutting OS-aligned foundations

These foundation layers are not counted as numbered product modules. They support the 16-module MVP path by providing connector-ready data surfaces, strategy planning, OS governance alignment, and campaign input normalization. They run across module boundaries and have no single module owner.

Embedded Customer Source Hub (Slice 109)

Foundation layer · Not a numbered module · Connector-ready, not connector-live

What it installs: Workspace-scoped connector-ready source hub. Seed 10 demo sources (website/CMS, product catalog, CRM, asset library, Stripe/billing, support/reviews, social media, analytics, brand guidelines, founder documents). Review and normalize each source. Rebuild campaign input graph from normalized sources.

OS ownership boundary: Trelmir OS owns live connectors, OAuth, API governance registry, SecretRef credential storage, cost governance, and consent. Klariven owns source UX, source cards, normalized field mapping, campaign input graph aggregation, and source provenance trail.

Scope in this slice: No live connectors. No OAuth. No raw secrets stored. All sources are demo-seeded with connection_status = 'not_connected' and os_governance_status = 'future_os_governed'. The UX is connector-ready, not connector-live.

D1 tables: customer_sources, campaign_input_graphs, source_provenance_events. Migration: 0022_customer_source_hub.sql. Workspace column: source_hub_state (not_started → seeded → graph_ready).

API: functions/api/customer-sources.js — GET (workspace sources + graph + OS boundary) and POST (seed_demo_sources · save_source_review · rebuild_input_graph).

UI: src/source-hub.html — workspace context bar, OS boundary panel, action bar (Seed / Rebuild), source grid with review controls, campaign input graph section, source provenance table, ProductTruth boundary warning. src/workspace.html shows Source Hub action row as a separate section (not in MODULE_LABELS grid — grid already at 8 columns).

Campaign Opportunity Map / Strategy Planner (Slice 110)

Foundation layer · Not a numbered module · Strategy, not publishable copy

What it installs: Workspace-scoped campaign strategy planner that consumes the normalized campaign input graph and identifies 3–5 scored campaign opportunities. Each opportunity includes source evidence citations, a recommended angle, recommended channels, an expected outcome, missing proof flags, and a recommended asset plan. The operator approves one opportunity, which becomes the strategic input to the Campaign Brief generator.

Strategic position: Source Hub → Campaign Opportunity Map → Campaign Brief → Founder Post / Scripts / Landing / Email / Export. This is the strategy layer between sources and execution — it makes Klariven find business opportunity, not just generate assets.

Scope in this slice: No live connectors. No OAuth. No publishable copy generated. Opportunities are strategy objects — not ad copy, not social posts. ProductTruth approval remains the authoritative claim boundary for any content that flows from an approved opportunity.

D1 table: campaign_opportunities (23 fields, 5 indexes). Migration: 0023_campaign_opportunities.sql. Workspace column: opportunity_map_state (not_started → draft → approved | needs_revision).

API: functions/api/campaign-opportunities.js — GET (workspace + opportunities + latest input graph + gates) and POST (generate_opportunities · approve_opportunity · reject_opportunity · promote_to_campaign_brief_input).

UI: src/opportunity-map.html — workspace context bar, OS/source boundary panel, gate panel, Generate button, opportunity cards with scoring (confidence/urgency/proof_strength/claim_risk), source evidence list, missing inputs list, asset plan, approve/reject controls. After approval: link to campaign-brief.html. No auto-generation of campaign brief.

Opportunity types: feature_launch · pain_point_campaign · proof_campaign · pricing_offer_campaign · competitive_response · founder_pov_campaign · use_case_campaign · reactivation_campaign · release_to_market_campaign · objection_handling_campaign.

Slice 111 — Traceability bridge: After approval, the Opportunity Map links to campaign-brief.html?workspace_id=<id>&opportunity_id=<id>. Campaign Brief generation accepts the approved opportunity as optional strategic input — enriching the Claude prompt with recommended angle, buyer pain, source evidence, and expected outcome. The resulting campaign_briefs record stores opportunity_id and source_lineage_json, making the full Source Hub → Opportunity Map → Campaign Brief chain traceable end-to-end. An approved opportunity is strategic input only — it does not replace ProductTruth as the claim boundary.

Self-Improving Campaign Intelligence Layer (Slice 112)

Cross-cutting foundation · Not a numbered module · Observe and learn only — no autonomous changes

What it installs: Event and learning substrate that lets Klariven observe operator decisions and lineage outcomes over time. Records 14 event types across all workflow surfaces (source review, input graph rebuild, opportunity generate/approve/reject, campaign brief generate/approve/reject, founder post generate/approve/reject, export created, user edits, future performance signals). Aggregates a per-workspace learning profile from these signals. Never changes scoring, prompts, outputs, publishing, or ProductTruth gates autonomously.

Intelligence boundaries (enforced as constant): can_auto_publish: false · can_bypass_producttruth: false · can_bypass_review: false · uses_live_performance_data: false. Future performance data is owned by Trelmir OS Customer API Governance — not by Klariven.

Signal types observed: source_reviewed · input_graph_rebuilt · opportunity_generated · opportunity_approved · opportunity_rejected · campaign_brief_generated · campaign_brief_approved · campaign_brief_rejected · founder_post_generated · founder_post_approved · founder_post_rejected · export_created · user_edit_recorded · future_performance_signal_placeholder.

D1 tables: campaign_intelligence_events (11 fields, 7 indexes) · lineage_outcomes (12 fields, 8 indexes) · campaign_learning_profiles (15 fields, UNIQUE on workspace_id). Workspace column: intelligence_state (not_started → active). Migration: 0025_campaign_intelligence_events.sql.

API: functions/api/campaign-intelligence.js — GET (workspace + learning profile + recent 50 events + 50 lineage outcomes + boundaries) and POST (record_event · record_lineage_outcome · rebuild_learning_profile). All existing route files (customer-sources.js, campaign-opportunities.js, campaign-brief.js, founder-post.js) emit non-fatal intelligence events via inline recordIntelEvent helpers — failures never block user workflows.

UI: src/campaign-intelligence.html — workspace context bar, boundaries panel (all limits shown), learning profile summary (6 stat cards + derived signals), recent events table (50 rows), lineage outcomes table (50 rows), Rebuild Learning Profile button. src/workspace.html shows Campaign Intelligence action row (idle or active state). src/demo-control-room.html includes card after Opportunity Map.

Operator · Build sequence

MVP build sequence

Ordered by dependency. Each slice can be completed independently of the next. Sandbox review and design partner outreach are deliberately placed after the full product path is installed.

SliceModuleGoal
103 Workspace / project foundation D1 workspaces table + Pages Function + workspace creation UI + project home screen showing linked module states
104 Product / offer intake Wire intake to workspace_id; workspace-scoped project view; session scoping enforced
105 Founder voice capture Verify workspace scoping; add per-workspace voice profile listing surface
106 ProductTruth + claim discipline Add allowed/disallowed claim boundary fields to product_truth; enforce in generator prompts; D1 update
107 Campaign brief generator Standalone campaign brief step — D1 schema + Pages Function + review gate + UI surface separate from intake
108 Founder-style post generator Standalone surface for LinkedIn + X post generation from approved campaign brief + voice profile; per-channel approve/reject gate
109 UGC variation pack generator Wire UGC generator to campaign brief (not just script_output); verify workspace scoping; update D1 references
110 Short-form, landing + sales generators Standalone surfaces for video scripts (30s/60s), landing hero copy, and sales/email angle; per-output review gate
111 Asset review queue Unified review queue UI — all pending assets across all modules in one surface; inline approve/reject; D1 query across tables
112 Export package builder Systemic pre-export gate (all required assets approved); UI surfaces gate failures with per-item links; wire to review queue
113 Output history / version trail UI surface listing all previous packages per workspace; ZIP retrieval from R2; provenance trail view
114 Settings / admin / billing readiness Workspace settings page; billing tier placeholder; admin surface (no real billing — placeholder for Trelmir Commerce)
115 Provider / API boundary readiness Set OPENAI_API_KEY in Pages env; verify live image + audio smoke; update not_live_capabilities in EXPORT_MANIFEST
116 MVP QA pass End-to-end smoke across all modules; update sandbox-demo.html demo state table; fix any broken gates; document QA results
117 Sandbox demo review Update sandbox-demo.html to reflect full MVP installation; lift "parked" status; verify demo path is complete
118 Design partner readiness update Update readiness packet and launch packet index to reflect full MVP; lift outreach park; begin controlled outreach

Dependency warnings

  • Slice 104 depends on Slice 103 — product intake workspace scoping requires the workspace schema from Slice 103
  • Slice 107 (campaign brief) depends on Slice 106 (claim discipline) — the campaign brief generator must enforce claim boundaries from the approved ProductTruth
  • Slice 111 (review queue) depends on Slices 107–110 — the unified queue requires all generator modules to be producing assets with consistent review_status fields
  • Slice 112 (export gate) depends on Slice 111 — the systemic pre-export gate reads from the unified review queue
  • Slice 118 (QA pass) depends on all prior modules — do not begin QA until all 16 numbered modules are installed (complete as of Slice 117)
  • Slice 119+ are gated on Slice 118 — sandbox runtime verification, sandbox review, and design partner updates must follow a successful MVP QA pass

Operator · Build guardrails

Anti-drift rules

These rules apply to every slice from 103 onward. Each slice spec must confirm these before commit.

✗ Do not build
  • Generic AI content tooling — Klariven is not a general writing assistant. Every generator is scoped to an approved ProductTruth and founder voice profile.
  • Live publishing before review-before-publish is production-worthy — no social publish API, no OAuth, no direct-to-platform posting until Modules 11 and 12 are fully installed.
  • Social account OAuth before output/review/export are coherent — no LinkedIn API, no X API, no Meta API until MVP QA pass (Slice 118) and sandbox runtime verification complete.
  • Grok/provider features directly into Klariven product code — all OS-routed enrichment must be routed through Trelmir OS. The opportunity intelligence UX shell (Slice 93) remains a preview until the OS layer ships.
  • Overbuild dashboards before the actual workflow is installed — no analytics dashboard, no performance dashboard, no campaign metrics until the product workflow is complete.
  • Investor-facing narrative pages without a workflow function — no new demo-facing or marketing-facing surfaces. All new pages must serve a function in the module list.

The wedge — do not replace it

Klariven's wedge

Founder-grade campaign and launch asset generation with ProductTruth claim discipline and review-before-publish controls.

Every generator is claim-disciplined — copy is generated from an approved ProductTruth, not from a prompt.

Every output is review-gated — nothing ships without operator approval.

The export is buyer-ready — the ZIP is a structured artifact with an audit trail, not raw text output.

The product never auto-posts — by design, not by limitation.

This page is an internal operator surface. No backend calls are made. No D1 writes occur. All module status reflects the verified production state as of Slice 105. See docs/operations/klariven_full_mvp_installation_map.md for the full input→processing→output contract per module.

Klariven · Internal · Full MVP Installation Map · Slice 102
Sandbox review parked · Design partner outreach parked · Build priority: complete product installation