{
  "id": "studio-5402f058-f857-4e90-871e-94fa3fea8d30",
  "scope": "studio_project",
  "source_of_truth": "supabase.studio_artifacts",
  "source_path": "studio_artifacts/5402f058-f857-4e90-871e-94fa3fea8d30",
  "source_kind": "supabase_json",
  "visibility": "internal",
  "renderer_id": "design_doc.dreamborn-forge.generated.v1",
  "design_system": "dreamborn-design-system:forge",
  "generated_at": "2026-05-09T13:00:56.413Z",
  "artifact_type": "spec",
  "schema_version": "studio_artifact.generated.v1",
  "title": "KnowledgeVault AI spec",
  "summary": "spec artifact · for KnowledgeVault AI · status dispatched",
  "status": "dispatched",
  "version": 1,
  "phase_id": null,
  "project_id": "572d75d0-3088-4055-be75-601d25442c61",
  "project_slug": "bezeliq-knowledgevault-ai-572d75d0",
  "project_title": "KnowledgeVault AI",
  "client_id": "bezeliq",
  "platform_project_id": "0.0.8773774",
  "format_source": "supabase_json",
  "content_shape": [
    "phase",
    "features",
    "open_questions",
    "schema_delta_note"
  ],
  "sections": [
    {
      "title": "Open Questions",
      "level": 2,
      "body": "- OQ-1 [EXEC DECISION REQUIRED — BLOCKS F-11]: How is BezelIQ's build speed and cost surfaced in the demo — hidden meta-page, live cost counter in the analytics panel, or talking point only? Blueprint treats it as a talking point pending this decision. If a UI component is required, F-11 scope expands.\n- OQ-2 [EXEC DECISION REQUIRED — BLOCKS SELLING PAGE]: AD reseller model — white-label (AD branding only), powered-by badge (KnowledgeVault brand visible), or full private label (no BezelIQ/KnowledgeVault branding)? Determines branding scope for selling page and company dashboard. Does not affect schema.\n- OQ-3 [CONFIRM V2 SCOPE]: Mobile offline support — blueprint assumes online-only for demo. Is offline audio buffering and queue sync confirmed out of scope for demo? If moved in, F-02 scope expands significantly.\n- OQ-4 [CONFIRM V2 SCOPE]: Voice cloning for Virtual Expert (Gemini suggestion) is scoped to V2. Confirm: voice-cloned audio is out of demo scope. If moved in, F-10 expands and ElevenLabs API key required.\n- OQ-5 [CONFIRM V2 SCOPE]: Counter-sales integration (Virtual Expert surfaces reorder recommendation) is scoped to V2. Confirm no counter-sales UI or API endpoint needed for demo.\n- OQ-6 [EXEC DECISION REQUIRED — BLOCKS INFRA]: Is the selling page on a separate domain (e.g. knowledgevaultai.com) or a subdirectory of the app domain? Affects Cloudflare Pages routing, DNS setup, and CORS configuration. Must be decided before any deployment work begins.\n- OQ-7 [SPEC GAP — BLOCKS F-01, F-07, F-11]: How is coverage_pct computed per product? The blueprint references it in queue ordering, dashboard grid (red/yellow/green), and the is_fully_captured flip condition (≥90%), but no computation formula is specified. Is it: (a) count(completed sessions) / target_session_count, (b) average composite_score across sessions, (c) a coverage of the knowledge_surface vectors from the pre-seed? This must be defined before migrations and queue API can be implemented.\n- OQ-8 [SPEC GAP — BLOCKS F-09, RLS]: field_queries.company_id is an FK to companies, but it is nullable. Is an unauthenticated (no company JWT) semantic query permitted in any context, or is a company JWT always required? This determines RLS policy on field_queries and whether the search endpoint has a public mode.\n- OQ-9 [SPEC GAP — BLOCKS F-06, F-07]: Is there an admin UI for payment_hold manual review, or is v1 admin resolution handled via direct DB update only? The blueprint specifies a 48h SLA for resolution but defines no resolution mechanism. This must be defined before the payment hold path can be fully implemented. At minimum, an admin notification channel and a DB-level resolution workflow must be specified.\n- OQ-10 [SPEC GAP — BLOCKS F-04, F-06]: WER compensation algorithm is unspecified. The blueprint states 'WER compensation logic applied post-transcription' with a 0.75 confidence threshold. Is this: (a) Deepgram's per-word confidence score, (b) a custom re-scoring pass against a trade vocabulary, or (c) a post-processing heuristic? This must be defined before F-04 (signal detection) and F-06 (gate exclusion logic) can be implemented.\n- OQ-11 [SCHEMA DELTA — BLOCKS ALL MIGRATIONS]: Phase-1 migration (001_kv_phase1_foundation.sql) defines users + expert_profiles (two tables), skus (basic, no capture-status fields), capture_sessions (simplified, no session_context JSONB or score_object), session_answers, follow_up_questions. The blueprint introduces: experts (single table replacing users+expert_profiles), products (extends skus with has_surge_badge, is_fully_captured, spec_sheet_url), product_pre_seeds, knowledge_chunks (with pgvector 1536-dim), virtual_experts, payments, companies, company_knowledge_access, field_queries. Developer must produce a migration strategy document (additive migration preferred — no drop-and-recreate) before any new migration is written."
    }
  ],
  "html_path": "projects/bezeliq-knowledgevault-ai-572d75d0/artifacts/spec-5402f058.html",
  "json_path": "projects/bezeliq-knowledgevault-ai-572d75d0/artifacts/spec-5402f058.json"
}