Просмотр исходного кода

feat: 五端模拟演示视图(A 驾驶舱 / B 情报洞察 / C 共创工作台 / D 验证评审 / E 课堂运营)

- 新增 src/pages/view-{cockpit,intel,coop,review,class}.js 五端视图
- 新增 src/pages/sample-base.js 共用底座:模拟标记条 + 组/成员/项目筛选 + 统一 head
- 新增 src/services/sample-data.js 模拟数据服务:读 data/preview-seed.json(334 条基线),
  写入只落内存 + localStorage 命名空间 kf-sample::,不触碰线上 KfOpportunity
- 新增 data/preview-seed.json(334 条:6 组/36 人/72 创意/24 卡/12 项目/44 报告/72 问/30 任务/18 作业)
- router 注册 5 条路由;kf-app 加 TITLES + import + case 分支
- 抽屉复用现有 kf-drawer:模拟卡走 #sampleDrawer 查 sample 模型,明确标注「模拟数据」

口径保持真实:种子无 scores → 显示「暂无评分」不补 0;无 stageCode → 不显示;
无 stuck/stagesSubmitted 字段 → 按 reports(groupId+stageCode) 实算,不编个人进度。
agent 1 день назад
Родитель
Сommit
b65f28ef82

+ 6035 - 0
data/preview-seed.json

@@ -0,0 +1,6035 @@
+{
+  "version": "ksf.innovation-preview-seed.v1",
+  "description": "仅为关联种子;大规模扩展目标另列,不是完整12000条用户声音。",
+  "scaleTargets": {
+    "members": 36,
+    "groups": 6,
+    "ideas": 72,
+    "researchTasks": 180,
+    "syntheticVoices": 12000,
+    "productObservations": 720,
+    "priceSnapshots": 2880,
+    "evidence": 360,
+    "opportunities": 24,
+    "projects": 12,
+    "validationTasks": 30,
+    "conceptVersions": 8,
+    "reports": 44,
+    "questions": 72,
+    "collaborationRecords": 312
+  },
+  "groups": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-G1",
+      "name": "G1 上班族工作餐与加班餐",
+      "scene": "上班族工作餐与加班餐",
+      "memberIds": [
+        "DEMO-M01",
+        "DEMO-M02",
+        "DEMO-M03",
+        "DEMO-M04",
+        "DEMO-M05",
+        "DEMO-M06"
+      ],
+      "leaderMemberId": "DEMO-M01"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-G2",
+      "name": "G2 学生宿舍与夜宵",
+      "scene": "学生宿舍与夜宵",
+      "memberIds": [
+        "DEMO-M07",
+        "DEMO-M08",
+        "DEMO-M09",
+        "DEMO-M10",
+        "DEMO-M11",
+        "DEMO-M12"
+      ],
+      "leaderMemberId": "DEMO-M07"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-G3",
+      "name": "G3 户外露营与出行",
+      "scene": "户外露营与出行",
+      "memberIds": [
+        "DEMO-M13",
+        "DEMO-M14",
+        "DEMO-M15",
+        "DEMO-M16",
+        "DEMO-M17",
+        "DEMO-M18"
+      ],
+      "leaderMemberId": "DEMO-M13"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-G4",
+      "name": "G4 健康控卡人群",
+      "scene": "健康控卡人群",
+      "memberIds": [
+        "DEMO-M19",
+        "DEMO-M20",
+        "DEMO-M21",
+        "DEMO-M22",
+        "DEMO-M23",
+        "DEMO-M24"
+      ],
+      "leaderMemberId": "DEMO-M19"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-G5",
+      "name": "G5 一人食与家庭囤货",
+      "scene": "一人食与家庭囤货",
+      "memberIds": [
+        "DEMO-M25",
+        "DEMO-M26",
+        "DEMO-M27",
+        "DEMO-M28",
+        "DEMO-M29",
+        "DEMO-M30"
+      ],
+      "leaderMemberId": "DEMO-M25"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-G6",
+      "name": "G6 地域风味与高端尝鲜",
+      "scene": "地域风味与高端尝鲜",
+      "memberIds": [
+        "DEMO-M31",
+        "DEMO-M32",
+        "DEMO-M33",
+        "DEMO-M34",
+        "DEMO-M35",
+        "DEMO-M36"
+      ],
+      "leaderMemberId": "DEMO-M31"
+    }
+  ],
+  "members": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M01",
+      "displayName": "演示学员01",
+      "role": "产品经理",
+      "groupId": "DEMO-G1",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M02",
+      "displayName": "演示学员02",
+      "role": "用户研究",
+      "groupId": "DEMO-G1",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M03",
+      "displayName": "演示学员03",
+      "role": "风味研发",
+      "groupId": "DEMO-G1",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M04",
+      "displayName": "演示学员04",
+      "role": "面体工艺",
+      "groupId": "DEMO-G1",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M05",
+      "displayName": "演示学员05",
+      "role": "供应链",
+      "groupId": "DEMO-G1",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M06",
+      "displayName": "演示学员06",
+      "role": "包装与渠道",
+      "groupId": "DEMO-G1",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M07",
+      "displayName": "演示学员07",
+      "role": "产品经理",
+      "groupId": "DEMO-G2",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M08",
+      "displayName": "演示学员08",
+      "role": "用户研究",
+      "groupId": "DEMO-G2",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M09",
+      "displayName": "演示学员09",
+      "role": "风味研发",
+      "groupId": "DEMO-G2",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M10",
+      "displayName": "演示学员10",
+      "role": "面体工艺",
+      "groupId": "DEMO-G2",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M11",
+      "displayName": "演示学员11",
+      "role": "供应链",
+      "groupId": "DEMO-G2",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M12",
+      "displayName": "演示学员12",
+      "role": "包装与渠道",
+      "groupId": "DEMO-G2",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M13",
+      "displayName": "演示学员13",
+      "role": "产品经理",
+      "groupId": "DEMO-G3",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M14",
+      "displayName": "演示学员14",
+      "role": "用户研究",
+      "groupId": "DEMO-G3",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M15",
+      "displayName": "演示学员15",
+      "role": "风味研发",
+      "groupId": "DEMO-G3",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M16",
+      "displayName": "演示学员16",
+      "role": "面体工艺",
+      "groupId": "DEMO-G3",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M17",
+      "displayName": "演示学员17",
+      "role": "供应链",
+      "groupId": "DEMO-G3",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M18",
+      "displayName": "演示学员18",
+      "role": "包装与渠道",
+      "groupId": "DEMO-G3",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M19",
+      "displayName": "演示学员19",
+      "role": "产品经理",
+      "groupId": "DEMO-G4",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M20",
+      "displayName": "演示学员20",
+      "role": "用户研究",
+      "groupId": "DEMO-G4",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M21",
+      "displayName": "演示学员21",
+      "role": "风味研发",
+      "groupId": "DEMO-G4",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M22",
+      "displayName": "演示学员22",
+      "role": "面体工艺",
+      "groupId": "DEMO-G4",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M23",
+      "displayName": "演示学员23",
+      "role": "供应链",
+      "groupId": "DEMO-G4",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M24",
+      "displayName": "演示学员24",
+      "role": "包装与渠道",
+      "groupId": "DEMO-G4",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M25",
+      "displayName": "演示学员25",
+      "role": "产品经理",
+      "groupId": "DEMO-G5",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M26",
+      "displayName": "演示学员26",
+      "role": "用户研究",
+      "groupId": "DEMO-G5",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M27",
+      "displayName": "演示学员27",
+      "role": "风味研发",
+      "groupId": "DEMO-G5",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M28",
+      "displayName": "演示学员28",
+      "role": "面体工艺",
+      "groupId": "DEMO-G5",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M29",
+      "displayName": "演示学员29",
+      "role": "供应链",
+      "groupId": "DEMO-G5",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M30",
+      "displayName": "演示学员30",
+      "role": "包装与渠道",
+      "groupId": "DEMO-G5",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M31",
+      "displayName": "演示学员31",
+      "role": "产品经理",
+      "groupId": "DEMO-G6",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M32",
+      "displayName": "演示学员32",
+      "role": "用户研究",
+      "groupId": "DEMO-G6",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M33",
+      "displayName": "演示学员33",
+      "role": "风味研发",
+      "groupId": "DEMO-G6",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M34",
+      "displayName": "演示学员34",
+      "role": "面体工艺",
+      "groupId": "DEMO-G6",
+      "aiFamiliarity": "新手",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M35",
+      "displayName": "演示学员35",
+      "role": "供应链",
+      "groupId": "DEMO-G6",
+      "aiFamiliarity": "日常使用",
+      "phone": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-M36",
+      "displayName": "演示学员36",
+      "role": "包装与渠道",
+      "groupId": "DEMO-G6",
+      "aiFamiliarity": "熟练",
+      "phone": null
+    }
+  ],
+  "ideas": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-01",
+      "groupId": "DEMO-G1",
+      "title": "工位轻香葱油拌面 · 主方向",
+      "ownerMemberId": "DEMO-M01",
+      "intendedProjectId": "DEMO-P01",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-02",
+      "groupId": "DEMO-G1",
+      "title": "晚归番茄鸡蛋汤面 · 相邻风味",
+      "ownerMemberId": "DEMO-M02",
+      "intendedProjectId": "DEMO-P02",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-03",
+      "groupId": "DEMO-G1",
+      "title": "工位轻香葱油拌面 · 小份选择",
+      "ownerMemberId": "DEMO-M03",
+      "intendedProjectId": "DEMO-P01",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-04",
+      "groupId": "DEMO-G1",
+      "title": "晚归番茄鸡蛋汤面 · 辣度可调",
+      "ownerMemberId": "DEMO-M04",
+      "intendedProjectId": "DEMO-P02",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-05",
+      "groupId": "DEMO-G1",
+      "title": "工位轻香葱油拌面 · 包装提示",
+      "ownerMemberId": "DEMO-M05",
+      "intendedProjectId": "DEMO-P01",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-06",
+      "groupId": "DEMO-G1",
+      "title": "晚归番茄鸡蛋汤面 · 便携制备",
+      "ownerMemberId": "DEMO-M06",
+      "intendedProjectId": "DEMO-P02",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-07",
+      "groupId": "DEMO-G1",
+      "title": "工位轻香葱油拌面 · 分酱设计",
+      "ownerMemberId": "DEMO-M01",
+      "intendedProjectId": "DEMO-P01",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-08",
+      "groupId": "DEMO-G1",
+      "title": "晚归番茄鸡蛋汤面 · 冷热条件",
+      "ownerMemberId": "DEMO-M02",
+      "intendedProjectId": "DEMO-P02",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-09",
+      "groupId": "DEMO-G1",
+      "title": "工位轻香葱油拌面 · 口感迭代",
+      "ownerMemberId": "DEMO-M03",
+      "intendedProjectId": "DEMO-P01",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-10",
+      "groupId": "DEMO-G1",
+      "title": "晚归番茄鸡蛋汤面 · 囤货组合",
+      "ownerMemberId": "DEMO-M04",
+      "intendedProjectId": "DEMO-P02",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-11",
+      "groupId": "DEMO-G1",
+      "title": "工位轻香葱油拌面 · 反向场景",
+      "ownerMemberId": "DEMO-M05",
+      "intendedProjectId": "DEMO-P01",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I1-12",
+      "groupId": "DEMO-G1",
+      "title": "晚归番茄鸡蛋汤面 · 待验证备选",
+      "ownerMemberId": "DEMO-M06",
+      "intendedProjectId": "DEMO-P02",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-01",
+      "groupId": "DEMO-G2",
+      "title": "宿舍轻辣番茄拌面 · 主方向",
+      "ownerMemberId": "DEMO-M07",
+      "intendedProjectId": "DEMO-P03",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-02",
+      "groupId": "DEMO-G2",
+      "title": "夜宵芝士轻辣拌面 · 相邻风味",
+      "ownerMemberId": "DEMO-M08",
+      "intendedProjectId": "DEMO-P04",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-03",
+      "groupId": "DEMO-G2",
+      "title": "宿舍轻辣番茄拌面 · 小份选择",
+      "ownerMemberId": "DEMO-M09",
+      "intendedProjectId": "DEMO-P03",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-04",
+      "groupId": "DEMO-G2",
+      "title": "夜宵芝士轻辣拌面 · 辣度可调",
+      "ownerMemberId": "DEMO-M10",
+      "intendedProjectId": "DEMO-P04",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-05",
+      "groupId": "DEMO-G2",
+      "title": "宿舍轻辣番茄拌面 · 包装提示",
+      "ownerMemberId": "DEMO-M11",
+      "intendedProjectId": "DEMO-P03",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-06",
+      "groupId": "DEMO-G2",
+      "title": "夜宵芝士轻辣拌面 · 便携制备",
+      "ownerMemberId": "DEMO-M12",
+      "intendedProjectId": "DEMO-P04",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-07",
+      "groupId": "DEMO-G2",
+      "title": "宿舍轻辣番茄拌面 · 分酱设计",
+      "ownerMemberId": "DEMO-M07",
+      "intendedProjectId": "DEMO-P03",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-08",
+      "groupId": "DEMO-G2",
+      "title": "夜宵芝士轻辣拌面 · 冷热条件",
+      "ownerMemberId": "DEMO-M08",
+      "intendedProjectId": "DEMO-P04",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-09",
+      "groupId": "DEMO-G2",
+      "title": "宿舍轻辣番茄拌面 · 口感迭代",
+      "ownerMemberId": "DEMO-M09",
+      "intendedProjectId": "DEMO-P03",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-10",
+      "groupId": "DEMO-G2",
+      "title": "夜宵芝士轻辣拌面 · 囤货组合",
+      "ownerMemberId": "DEMO-M10",
+      "intendedProjectId": "DEMO-P04",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-11",
+      "groupId": "DEMO-G2",
+      "title": "宿舍轻辣番茄拌面 · 反向场景",
+      "ownerMemberId": "DEMO-M11",
+      "intendedProjectId": "DEMO-P03",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I2-12",
+      "groupId": "DEMO-G2",
+      "title": "夜宵芝士轻辣拌面 · 待验证备选",
+      "ownerMemberId": "DEMO-M12",
+      "intendedProjectId": "DEMO-P04",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-01",
+      "groupId": "DEMO-G3",
+      "title": "露营菌菇热汤面 · 主方向",
+      "ownerMemberId": "DEMO-M13",
+      "intendedProjectId": "DEMO-P05",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-02",
+      "groupId": "DEMO-G3",
+      "title": "高铁低气味葱香拌面 · 相邻风味",
+      "ownerMemberId": "DEMO-M14",
+      "intendedProjectId": "DEMO-P06",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-03",
+      "groupId": "DEMO-G3",
+      "title": "露营菌菇热汤面 · 小份选择",
+      "ownerMemberId": "DEMO-M15",
+      "intendedProjectId": "DEMO-P05",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-04",
+      "groupId": "DEMO-G3",
+      "title": "高铁低气味葱香拌面 · 辣度可调",
+      "ownerMemberId": "DEMO-M16",
+      "intendedProjectId": "DEMO-P06",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-05",
+      "groupId": "DEMO-G3",
+      "title": "露营菌菇热汤面 · 包装提示",
+      "ownerMemberId": "DEMO-M17",
+      "intendedProjectId": "DEMO-P05",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-06",
+      "groupId": "DEMO-G3",
+      "title": "高铁低气味葱香拌面 · 便携制备",
+      "ownerMemberId": "DEMO-M18",
+      "intendedProjectId": "DEMO-P06",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-07",
+      "groupId": "DEMO-G3",
+      "title": "露营菌菇热汤面 · 分酱设计",
+      "ownerMemberId": "DEMO-M13",
+      "intendedProjectId": "DEMO-P05",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-08",
+      "groupId": "DEMO-G3",
+      "title": "高铁低气味葱香拌面 · 冷热条件",
+      "ownerMemberId": "DEMO-M14",
+      "intendedProjectId": "DEMO-P06",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-09",
+      "groupId": "DEMO-G3",
+      "title": "露营菌菇热汤面 · 口感迭代",
+      "ownerMemberId": "DEMO-M15",
+      "intendedProjectId": "DEMO-P05",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-10",
+      "groupId": "DEMO-G3",
+      "title": "高铁低气味葱香拌面 · 囤货组合",
+      "ownerMemberId": "DEMO-M16",
+      "intendedProjectId": "DEMO-P06",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-11",
+      "groupId": "DEMO-G3",
+      "title": "露营菌菇热汤面 · 反向场景",
+      "ownerMemberId": "DEMO-M17",
+      "intendedProjectId": "DEMO-P05",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I3-12",
+      "groupId": "DEMO-G3",
+      "title": "高铁低气味葱香拌面 · 待验证备选",
+      "ownerMemberId": "DEMO-M18",
+      "intendedProjectId": "DEMO-P06",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-01",
+      "groupId": "DEMO-G4",
+      "title": "高纤荞麦拌面 · 主方向",
+      "ownerMemberId": "DEMO-M19",
+      "intendedProjectId": "DEMO-P07",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-02",
+      "groupId": "DEMO-G4",
+      "title": "高蛋白番茄拌面 · 相邻风味",
+      "ownerMemberId": "DEMO-M20",
+      "intendedProjectId": "DEMO-P08",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-03",
+      "groupId": "DEMO-G4",
+      "title": "高纤荞麦拌面 · 小份选择",
+      "ownerMemberId": "DEMO-M21",
+      "intendedProjectId": "DEMO-P07",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-04",
+      "groupId": "DEMO-G4",
+      "title": "高蛋白番茄拌面 · 辣度可调",
+      "ownerMemberId": "DEMO-M22",
+      "intendedProjectId": "DEMO-P08",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-05",
+      "groupId": "DEMO-G4",
+      "title": "高纤荞麦拌面 · 包装提示",
+      "ownerMemberId": "DEMO-M23",
+      "intendedProjectId": "DEMO-P07",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-06",
+      "groupId": "DEMO-G4",
+      "title": "高蛋白番茄拌面 · 便携制备",
+      "ownerMemberId": "DEMO-M24",
+      "intendedProjectId": "DEMO-P08",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-07",
+      "groupId": "DEMO-G4",
+      "title": "高纤荞麦拌面 · 分酱设计",
+      "ownerMemberId": "DEMO-M19",
+      "intendedProjectId": "DEMO-P07",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-08",
+      "groupId": "DEMO-G4",
+      "title": "高蛋白番茄拌面 · 冷热条件",
+      "ownerMemberId": "DEMO-M20",
+      "intendedProjectId": "DEMO-P08",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-09",
+      "groupId": "DEMO-G4",
+      "title": "高纤荞麦拌面 · 口感迭代",
+      "ownerMemberId": "DEMO-M21",
+      "intendedProjectId": "DEMO-P07",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-10",
+      "groupId": "DEMO-G4",
+      "title": "高蛋白番茄拌面 · 囤货组合",
+      "ownerMemberId": "DEMO-M22",
+      "intendedProjectId": "DEMO-P08",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-11",
+      "groupId": "DEMO-G4",
+      "title": "高纤荞麦拌面 · 反向场景",
+      "ownerMemberId": "DEMO-M23",
+      "intendedProjectId": "DEMO-P07",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I4-12",
+      "groupId": "DEMO-G4",
+      "title": "高蛋白番茄拌面 · 待验证备选",
+      "ownerMemberId": "DEMO-M24",
+      "intendedProjectId": "DEMO-P08",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-01",
+      "groupId": "DEMO-G5",
+      "title": "家庭双人小份组合 · 主方向",
+      "ownerMemberId": "DEMO-M25",
+      "intendedProjectId": "DEMO-P09",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-02",
+      "groupId": "DEMO-G5",
+      "title": "一人食酱香大满足 · 相邻风味",
+      "ownerMemberId": "DEMO-M26",
+      "intendedProjectId": "DEMO-P10",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-03",
+      "groupId": "DEMO-G5",
+      "title": "家庭双人小份组合 · 小份选择",
+      "ownerMemberId": "DEMO-M27",
+      "intendedProjectId": "DEMO-P09",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-04",
+      "groupId": "DEMO-G5",
+      "title": "一人食酱香大满足 · 辣度可调",
+      "ownerMemberId": "DEMO-M28",
+      "intendedProjectId": "DEMO-P10",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-05",
+      "groupId": "DEMO-G5",
+      "title": "家庭双人小份组合 · 包装提示",
+      "ownerMemberId": "DEMO-M29",
+      "intendedProjectId": "DEMO-P09",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-06",
+      "groupId": "DEMO-G5",
+      "title": "一人食酱香大满足 · 便携制备",
+      "ownerMemberId": "DEMO-M30",
+      "intendedProjectId": "DEMO-P10",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-07",
+      "groupId": "DEMO-G5",
+      "title": "家庭双人小份组合 · 分酱设计",
+      "ownerMemberId": "DEMO-M25",
+      "intendedProjectId": "DEMO-P09",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-08",
+      "groupId": "DEMO-G5",
+      "title": "一人食酱香大满足 · 冷热条件",
+      "ownerMemberId": "DEMO-M26",
+      "intendedProjectId": "DEMO-P10",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-09",
+      "groupId": "DEMO-G5",
+      "title": "家庭双人小份组合 · 口感迭代",
+      "ownerMemberId": "DEMO-M27",
+      "intendedProjectId": "DEMO-P09",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-10",
+      "groupId": "DEMO-G5",
+      "title": "一人食酱香大满足 · 囤货组合",
+      "ownerMemberId": "DEMO-M28",
+      "intendedProjectId": "DEMO-P10",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-11",
+      "groupId": "DEMO-G5",
+      "title": "家庭双人小份组合 · 反向场景",
+      "ownerMemberId": "DEMO-M29",
+      "intendedProjectId": "DEMO-P09",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I5-12",
+      "groupId": "DEMO-G5",
+      "title": "一人食酱香大满足 · 待验证备选",
+      "ownerMemberId": "DEMO-M30",
+      "intendedProjectId": "DEMO-P10",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-01",
+      "groupId": "DEMO-G6",
+      "title": "贵州红酸汤风味面 · 主方向",
+      "ownerMemberId": "DEMO-M31",
+      "intendedProjectId": "DEMO-P11",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-02",
+      "groupId": "DEMO-G6",
+      "title": "川香椒麻宽面 · 相邻风味",
+      "ownerMemberId": "DEMO-M32",
+      "intendedProjectId": "DEMO-P12",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-03",
+      "groupId": "DEMO-G6",
+      "title": "贵州红酸汤风味面 · 小份选择",
+      "ownerMemberId": "DEMO-M33",
+      "intendedProjectId": "DEMO-P11",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-04",
+      "groupId": "DEMO-G6",
+      "title": "川香椒麻宽面 · 辣度可调",
+      "ownerMemberId": "DEMO-M34",
+      "intendedProjectId": "DEMO-P12",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-05",
+      "groupId": "DEMO-G6",
+      "title": "贵州红酸汤风味面 · 包装提示",
+      "ownerMemberId": "DEMO-M35",
+      "intendedProjectId": "DEMO-P11",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-06",
+      "groupId": "DEMO-G6",
+      "title": "川香椒麻宽面 · 便携制备",
+      "ownerMemberId": "DEMO-M36",
+      "intendedProjectId": "DEMO-P12",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-07",
+      "groupId": "DEMO-G6",
+      "title": "贵州红酸汤风味面 · 分酱设计",
+      "ownerMemberId": "DEMO-M31",
+      "intendedProjectId": "DEMO-P11",
+      "basis": "模拟创意,待验证",
+      "state": "proposed"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-08",
+      "groupId": "DEMO-G6",
+      "title": "川香椒麻宽面 · 冷热条件",
+      "ownerMemberId": "DEMO-M32",
+      "intendedProjectId": "DEMO-P12",
+      "basis": "模拟创意,待验证",
+      "state": "researching"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-09",
+      "groupId": "DEMO-G6",
+      "title": "贵州红酸汤风味面 · 口感迭代",
+      "ownerMemberId": "DEMO-M33",
+      "intendedProjectId": "DEMO-P11",
+      "basis": "模拟创意,待验证",
+      "state": "selected"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-10",
+      "groupId": "DEMO-G6",
+      "title": "川香椒麻宽面 · 囤货组合",
+      "ownerMemberId": "DEMO-M34",
+      "intendedProjectId": "DEMO-P12",
+      "basis": "模拟创意,待验证",
+      "state": "merged"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-11",
+      "groupId": "DEMO-G6",
+      "title": "贵州红酸汤风味面 · 反向场景",
+      "ownerMemberId": "DEMO-M35",
+      "intendedProjectId": "DEMO-P11",
+      "basis": "模拟创意,待验证",
+      "state": "parked"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-I6-12",
+      "groupId": "DEMO-G6",
+      "title": "川香椒麻宽面 · 待验证备选",
+      "ownerMemberId": "DEMO-M36",
+      "intendedProjectId": "DEMO-P12",
+      "basis": "模拟创意,待验证",
+      "state": "rejected"
+    }
+  ],
+  "sources": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-S01",
+      "groupId": "DEMO-G1",
+      "title": "模拟用户声音:上班族工作餐与加班餐",
+      "rawText": "中午只有热水,排队等微波炉太久。我会先看要不要煮,酱味太冲就留到下班再吃。",
+      "sourceUrl": null,
+      "platform": "模拟渠道",
+      "authorLabel": "模拟受访者01",
+      "verificationState": "synthetic_not_real_interview"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-S02",
+      "groupId": "DEMO-G2",
+      "title": "模拟用户声音:学生宿舍与夜宵",
+      "rawText": "想吃一点辣,但别辣到喝好多水。宿舍不能用锅,写清楚能不能泡比送几个料包更重要。",
+      "sourceUrl": null,
+      "platform": "模拟渠道",
+      "authorLabel": "模拟受访者02",
+      "verificationState": "synthetic_not_real_interview"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-S03",
+      "groupId": "DEMO-G3",
+      "title": "模拟用户声音:户外露营与出行",
+      "rawText": "露营时面是好带,可用水和收垃圾更麻烦。有炉子和没炉子,我选的东西完全不一样。",
+      "sourceUrl": null,
+      "platform": "模拟渠道",
+      "authorLabel": "模拟受访者03",
+      "verificationState": "synthetic_not_real_interview"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-S04",
+      "groupId": "DEMO-G4",
+      "title": "模拟用户声音:健康控卡人群",
+      "rawText": "我会看每份热量和配料,但不想只吃荞麦味。加鸡蛋是我平时的习惯,不一定是面太少。",
+      "sourceUrl": null,
+      "platform": "模拟渠道",
+      "authorLabel": "模拟受访者04",
+      "verificationState": "synthetic_not_real_interview"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-S05",
+      "groupId": "DEMO-G5",
+      "title": "模拟用户声音:一人食与家庭囤货",
+      "rawText": "两个人口味不一样,分开酱包会方便。整包便宜不代表每份便宜,我会看一包到底算几顿。",
+      "sourceUrl": null,
+      "platform": "模拟渠道",
+      "authorLabel": "模拟受访者05",
+      "verificationState": "synthetic_not_real_interview"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-S06",
+      "groupId": "DEMO-G6",
+      "title": "模拟用户声音:地域风味与高端尝鲜",
+      "rawText": "红酸汤第一次觉得新鲜,吃第二次更在意酸味和面条搭不搭,不是名字越地方就越想买。",
+      "sourceUrl": null,
+      "platform": "模拟渠道",
+      "authorLabel": "模拟受访者06",
+      "verificationState": "synthetic_not_real_interview"
+    }
+  ],
+  "evidence": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-E01",
+      "sourceId": "DEMO-S01",
+      "quote": "中午只有热水,排队等微波炉太久。我会先看要不要煮,酱味太冲就留到下班再吃。",
+      "locator": {
+        "start": 0,
+        "end": 37
+      },
+      "reviewState": "demo_only",
+      "claim": "供演示用的情境线索,不能推断人群普遍需求"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-E02",
+      "sourceId": "DEMO-S02",
+      "quote": "想吃一点辣,但别辣到喝好多水。宿舍不能用锅,写清楚能不能泡比送几个料包更重要。",
+      "locator": {
+        "start": 0,
+        "end": 39
+      },
+      "reviewState": "demo_only",
+      "claim": "供演示用的情境线索,不能推断人群普遍需求"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-E03",
+      "sourceId": "DEMO-S03",
+      "quote": "露营时面是好带,可用水和收垃圾更麻烦。有炉子和没炉子,我选的东西完全不一样。",
+      "locator": {
+        "start": 0,
+        "end": 38
+      },
+      "reviewState": "demo_only",
+      "claim": "供演示用的情境线索,不能推断人群普遍需求"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-E04",
+      "sourceId": "DEMO-S04",
+      "quote": "我会看每份热量和配料,但不想只吃荞麦味。加鸡蛋是我平时的习惯,不一定是面太少。",
+      "locator": {
+        "start": 0,
+        "end": 39
+      },
+      "reviewState": "demo_only",
+      "claim": "供演示用的情境线索,不能推断人群普遍需求"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-E05",
+      "sourceId": "DEMO-S05",
+      "quote": "两个人口味不一样,分开酱包会方便。整包便宜不代表每份便宜,我会看一包到底算几顿。",
+      "locator": {
+        "start": 0,
+        "end": 40
+      },
+      "reviewState": "demo_only",
+      "claim": "供演示用的情境线索,不能推断人群普遍需求"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-E06",
+      "sourceId": "DEMO-S06",
+      "quote": "红酸汤第一次觉得新鲜,吃第二次更在意酸味和面条搭不搭,不是名字越地方就越想买。",
+      "locator": {
+        "start": 0,
+        "end": 39
+      },
+      "reviewState": "demo_only",
+      "claim": "供演示用的情境线索,不能推断人群普遍需求"
+    }
+  ],
+  "opportunities": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O01",
+      "title": "工位轻香葱油拌面",
+      "groupId": "DEMO-G1",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P01",
+      "sourceIds": [
+        "DEMO-S01"
+      ],
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "usageScenario": "工位午餐,只有热水",
+      "missingConditions": "低气味与酱香可能冲突,制备和沥水条件待核",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O02",
+      "title": "晚归番茄鸡蛋汤面",
+      "groupId": "DEMO-G1",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P02",
+      "sourceIds": [
+        "DEMO-S01"
+      ],
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "usageScenario": "晚归加班餐,希望热乎但不油腻",
+      "missingConditions": "泡发口感与加料习惯混杂",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O03",
+      "title": "宿舍轻辣番茄拌面",
+      "groupId": "DEMO-G2",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P03",
+      "sourceIds": [
+        "DEMO-S02"
+      ],
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "usageScenario": "无灶具宿舍,预算敏感",
+      "missingConditions": "无灶具目标与面体需煮条件冲突",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O04",
+      "title": "夜宵芝士轻辣拌面",
+      "groupId": "DEMO-G2",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P04",
+      "sourceIds": [
+        "DEMO-S02"
+      ],
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "usageScenario": "同寝分享夜宵,希望辣度可调",
+      "missingConditions": "芝士浓郁与轻负担诉求冲突",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O05",
+      "title": "露营菌菇热汤面",
+      "groupId": "DEMO-G3",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P05",
+      "sourceIds": [
+        "DEMO-S03"
+      ],
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "usageScenario": "有限炊具的户外露营",
+      "missingConditions": "热源、用水及垃圾回收条件不统一",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O06",
+      "title": "高铁低气味葱香拌面",
+      "groupId": "DEMO-G3",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P06",
+      "sourceIds": [
+        "DEMO-S03"
+      ],
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "usageScenario": "出差高铁,只有开水",
+      "missingConditions": "弃水、气味与携带便利相互牵制",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O07",
+      "title": "高纤荞麦拌面",
+      "groupId": "DEMO-G4",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P07",
+      "sourceIds": [
+        "DEMO-S04"
+      ],
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "usageScenario": "午间控卡,仍希望保留面食口感",
+      "missingConditions": "营养、口感、配方和成本均需证据",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O08",
+      "title": "高蛋白番茄拌面",
+      "groupId": "DEMO-G4",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P08",
+      "sourceIds": [
+        "DEMO-S04"
+      ],
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "usageScenario": "运动后便餐,关注配料及饱腹体验",
+      "missingConditions": "蛋白来源与检测口径未知",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O09",
+      "title": "家庭双人小份组合",
+      "groupId": "DEMO-G5",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P09",
+      "sourceIds": [
+        "DEMO-S05"
+      ],
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "usageScenario": "两人晚餐,偏好分装、可自行搭菜",
+      "missingConditions": "总价与单份价容易混淆,真实用餐量待核",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O10",
+      "title": "一人食酱香大满足",
+      "groupId": "DEMO-G5",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P10",
+      "sourceIds": [
+        "DEMO-S05"
+      ],
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "usageScenario": "一人晚餐,想减少临时补主食",
+      "missingConditions": "正餐、加餐和习惯搭配尚未区分",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O11",
+      "title": "贵州红酸汤风味面",
+      "groupId": "DEMO-G6",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P11",
+      "sourceIds": [
+        "DEMO-S06"
+      ],
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "usageScenario": "地域尝鲜,偏好酸鲜但怕踩雷",
+      "missingConditions": "风味分歧与正宗表达依据待核",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O12",
+      "title": "川香椒麻宽面",
+      "groupId": "DEMO-G6",
+      "claimKind": "hypothesis",
+      "status": "approved",
+      "linkedProjectId": "DEMO-P12",
+      "sourceIds": [
+        "DEMO-S06"
+      ],
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "usageScenario": "嗜辣尝鲜,希望可控椒麻层次",
+      "missingConditions": "宽面复水、麻辣分离和酱料挂壁待核",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O13",
+      "title": "工位清爽酸汤面",
+      "groupId": "DEMO-G1",
+      "claimKind": "hypothesis",
+      "status": "candidate",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "missingConditions": "待补人群与使用条件",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O14",
+      "title": "办公室重蒜香拌面",
+      "groupId": "DEMO-G1",
+      "claimKind": "hypothesis",
+      "status": "rejected",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "missingConditions": "强气味与目标使用情境存在冲突",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O15",
+      "title": "夜宵小份菌菇面",
+      "groupId": "DEMO-G2",
+      "claimKind": "hypothesis",
+      "status": "candidate",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "missingConditions": "待补人群与使用条件",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O16",
+      "title": "宿舍现煮宽面",
+      "groupId": "DEMO-G2",
+      "claimKind": "hypothesis",
+      "status": "rejected",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "missingConditions": "无灶具条件与制备路线不符",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O17",
+      "title": "轻量干拌露营面",
+      "groupId": "DEMO-G3",
+      "claimKind": "hypothesis",
+      "status": "candidate",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "missingConditions": "待补人群与使用条件",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O18",
+      "title": "高铁现煮麻辣火锅面",
+      "groupId": "DEMO-G3",
+      "claimKind": "hypothesis",
+      "status": "rejected",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "missingConditions": "热源与乘车情境条件不符",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O19",
+      "title": "番茄全麦汤面",
+      "groupId": "DEMO-G4",
+      "claimKind": "hypothesis",
+      "status": "candidate",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "missingConditions": "待补人群与使用条件",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O20",
+      "title": "无依据零负担健康面",
+      "groupId": "DEMO-G4",
+      "claimKind": "hypothesis",
+      "status": "rejected",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "missingConditions": "健康表达没有配方与检测依据",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O21",
+      "title": "分酱家庭囤货装",
+      "groupId": "DEMO-G5",
+      "claimKind": "hypothesis",
+      "status": "candidate",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "missingConditions": "待补人群与使用条件",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O22",
+      "title": "超大单包装一人份",
+      "groupId": "DEMO-G5",
+      "claimKind": "hypothesis",
+      "status": "rejected",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "missingConditions": "开封保存与目标使用量不清",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O23",
+      "title": "云南菌菇风味面",
+      "groupId": "DEMO-G6",
+      "claimKind": "hypothesis",
+      "status": "candidate",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "missingConditions": "待补人群与使用条件",
+      "version": 1
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-O24",
+      "title": "没有依据的正宗产地承诺",
+      "groupId": "DEMO-G6",
+      "claimKind": "hypothesis",
+      "status": "rejected",
+      "linkedProjectId": null,
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "missingConditions": "产地与风味表达依据缺失",
+      "version": 1
+    }
+  ],
+  "projects": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P01",
+      "title": "工位轻香葱油拌面",
+      "groupId": "DEMO-G1",
+      "stageCode": "S5",
+      "progressState": "completed",
+      "ownerMemberId": "DEMO-M01",
+      "memberIds": [
+        "DEMO-M01",
+        "DEMO-M02",
+        "DEMO-M03",
+        "DEMO-M04",
+        "DEMO-M05",
+        "DEMO-M06"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M04"
+      ],
+      "opportunityId": "DEMO-O01",
+      "sourceIds": [
+        "DEMO-S01"
+      ],
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "usageScenario": "工位午餐,只有热水",
+      "targetPrice": {
+        "amount": 6.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "低气味与酱香可能冲突,制备和沥水条件待核",
+      "conceptIds": [
+        "DEMO-C01-V1",
+        "DEMO-C01-V2"
+      ],
+      "currentConceptId": "DEMO-C01-V2",
+      "questionIds": [
+        "DEMO-Q01-1",
+        "DEMO-Q01-2",
+        "DEMO-Q01-3",
+        "DEMO-Q01-4",
+        "DEMO-Q01-5",
+        "DEMO-Q01-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P02",
+      "title": "晚归番茄鸡蛋汤面",
+      "groupId": "DEMO-G1",
+      "stageCode": "S4",
+      "progressState": "in_progress",
+      "ownerMemberId": "DEMO-M02",
+      "memberIds": [
+        "DEMO-M01",
+        "DEMO-M02",
+        "DEMO-M03",
+        "DEMO-M04",
+        "DEMO-M05",
+        "DEMO-M06"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M07"
+      ],
+      "opportunityId": "DEMO-O02",
+      "sourceIds": [
+        "DEMO-S01"
+      ],
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "usageScenario": "晚归加班餐,希望热乎但不油腻",
+      "targetPrice": {
+        "amount": 8.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "泡发口感与加料习惯混杂",
+      "conceptIds": [],
+      "currentConceptId": null,
+      "questionIds": [
+        "DEMO-Q02-1",
+        "DEMO-Q02-2",
+        "DEMO-Q02-3",
+        "DEMO-Q02-4",
+        "DEMO-Q02-5",
+        "DEMO-Q02-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P03",
+      "title": "宿舍轻辣番茄拌面",
+      "groupId": "DEMO-G2",
+      "stageCode": "S4",
+      "progressState": "blocked",
+      "ownerMemberId": "DEMO-M07",
+      "memberIds": [
+        "DEMO-M07",
+        "DEMO-M08",
+        "DEMO-M09",
+        "DEMO-M10",
+        "DEMO-M11",
+        "DEMO-M12"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M10"
+      ],
+      "opportunityId": "DEMO-O03",
+      "sourceIds": [
+        "DEMO-S02"
+      ],
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "usageScenario": "无灶具宿舍,预算敏感",
+      "targetPrice": {
+        "amount": 4.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "无灶具目标与面体需煮条件冲突",
+      "conceptIds": [],
+      "currentConceptId": null,
+      "questionIds": [
+        "DEMO-Q03-1",
+        "DEMO-Q03-2",
+        "DEMO-Q03-3",
+        "DEMO-Q03-4",
+        "DEMO-Q03-5",
+        "DEMO-Q03-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P04",
+      "title": "夜宵芝士轻辣拌面",
+      "groupId": "DEMO-G2",
+      "stageCode": "S5",
+      "progressState": "in_progress",
+      "ownerMemberId": "DEMO-M08",
+      "memberIds": [
+        "DEMO-M07",
+        "DEMO-M08",
+        "DEMO-M09",
+        "DEMO-M10",
+        "DEMO-M11",
+        "DEMO-M12"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M13"
+      ],
+      "opportunityId": "DEMO-O04",
+      "sourceIds": [
+        "DEMO-S02"
+      ],
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "usageScenario": "同寝分享夜宵,希望辣度可调",
+      "targetPrice": {
+        "amount": 5.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "芝士浓郁与轻负担诉求冲突",
+      "conceptIds": [
+        "DEMO-C04-V1",
+        "DEMO-C04-V2"
+      ],
+      "currentConceptId": "DEMO-C04-V2",
+      "questionIds": [
+        "DEMO-Q04-1",
+        "DEMO-Q04-2",
+        "DEMO-Q04-3",
+        "DEMO-Q04-4",
+        "DEMO-Q04-5",
+        "DEMO-Q04-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P05",
+      "title": "露营菌菇热汤面",
+      "groupId": "DEMO-G3",
+      "stageCode": "S4",
+      "progressState": "blocked",
+      "ownerMemberId": "DEMO-M13",
+      "memberIds": [
+        "DEMO-M13",
+        "DEMO-M14",
+        "DEMO-M15",
+        "DEMO-M16",
+        "DEMO-M17",
+        "DEMO-M18"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M16"
+      ],
+      "opportunityId": "DEMO-O05",
+      "sourceIds": [
+        "DEMO-S03"
+      ],
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "usageScenario": "有限炊具的户外露营",
+      "targetPrice": {
+        "amount": 9.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "热源、用水及垃圾回收条件不统一",
+      "conceptIds": [],
+      "currentConceptId": null,
+      "questionIds": [
+        "DEMO-Q05-1",
+        "DEMO-Q05-2",
+        "DEMO-Q05-3",
+        "DEMO-Q05-4",
+        "DEMO-Q05-5",
+        "DEMO-Q05-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P06",
+      "title": "高铁低气味葱香拌面",
+      "groupId": "DEMO-G3",
+      "stageCode": "S3",
+      "progressState": "in_progress",
+      "ownerMemberId": "DEMO-M14",
+      "memberIds": [
+        "DEMO-M13",
+        "DEMO-M14",
+        "DEMO-M15",
+        "DEMO-M16",
+        "DEMO-M17",
+        "DEMO-M18"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M19"
+      ],
+      "opportunityId": "DEMO-O06",
+      "sourceIds": [
+        "DEMO-S03"
+      ],
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "usageScenario": "出差高铁,只有开水",
+      "targetPrice": {
+        "amount": 7.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "弃水、气味与携带便利相互牵制",
+      "conceptIds": [],
+      "currentConceptId": null,
+      "questionIds": [
+        "DEMO-Q06-1",
+        "DEMO-Q06-2",
+        "DEMO-Q06-3",
+        "DEMO-Q06-4",
+        "DEMO-Q06-5",
+        "DEMO-Q06-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P07",
+      "title": "高纤荞麦拌面",
+      "groupId": "DEMO-G4",
+      "stageCode": "S4",
+      "progressState": "in_progress",
+      "ownerMemberId": "DEMO-M19",
+      "memberIds": [
+        "DEMO-M19",
+        "DEMO-M20",
+        "DEMO-M21",
+        "DEMO-M22",
+        "DEMO-M23",
+        "DEMO-M24"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M22"
+      ],
+      "opportunityId": "DEMO-O07",
+      "sourceIds": [
+        "DEMO-S04"
+      ],
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "usageScenario": "午间控卡,仍希望保留面食口感",
+      "targetPrice": {
+        "amount": 8.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "营养、口感、配方和成本均需证据",
+      "conceptIds": [],
+      "currentConceptId": null,
+      "questionIds": [
+        "DEMO-Q07-1",
+        "DEMO-Q07-2",
+        "DEMO-Q07-3",
+        "DEMO-Q07-4",
+        "DEMO-Q07-5",
+        "DEMO-Q07-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P08",
+      "title": "高蛋白番茄拌面",
+      "groupId": "DEMO-G4",
+      "stageCode": "S4",
+      "progressState": "in_progress",
+      "ownerMemberId": "DEMO-M20",
+      "memberIds": [
+        "DEMO-M19",
+        "DEMO-M20",
+        "DEMO-M21",
+        "DEMO-M22",
+        "DEMO-M23",
+        "DEMO-M24"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M25"
+      ],
+      "opportunityId": "DEMO-O08",
+      "sourceIds": [
+        "DEMO-S04"
+      ],
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "usageScenario": "运动后便餐,关注配料及饱腹体验",
+      "targetPrice": {
+        "amount": 9.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "蛋白来源与检测口径未知",
+      "conceptIds": [],
+      "currentConceptId": null,
+      "questionIds": [
+        "DEMO-Q08-1",
+        "DEMO-Q08-2",
+        "DEMO-Q08-3",
+        "DEMO-Q08-4",
+        "DEMO-Q08-5",
+        "DEMO-Q08-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P09",
+      "title": "家庭双人小份组合",
+      "groupId": "DEMO-G5",
+      "stageCode": "S5",
+      "progressState": "completed",
+      "ownerMemberId": "DEMO-M25",
+      "memberIds": [
+        "DEMO-M25",
+        "DEMO-M26",
+        "DEMO-M27",
+        "DEMO-M28",
+        "DEMO-M29",
+        "DEMO-M30"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M28"
+      ],
+      "opportunityId": "DEMO-O09",
+      "sourceIds": [
+        "DEMO-S05"
+      ],
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "usageScenario": "两人晚餐,偏好分装、可自行搭菜",
+      "targetPrice": {
+        "amount": 6.45,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": 12.9,
+      "knownRisk": "总价与单份价容易混淆,真实用餐量待核",
+      "conceptIds": [
+        "DEMO-C09-V1",
+        "DEMO-C09-V2"
+      ],
+      "currentConceptId": "DEMO-C09-V2",
+      "questionIds": [
+        "DEMO-Q09-1",
+        "DEMO-Q09-2",
+        "DEMO-Q09-3",
+        "DEMO-Q09-4",
+        "DEMO-Q09-5",
+        "DEMO-Q09-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P10",
+      "title": "一人食酱香大满足",
+      "groupId": "DEMO-G5",
+      "stageCode": "S3",
+      "progressState": "blocked",
+      "ownerMemberId": "DEMO-M26",
+      "memberIds": [
+        "DEMO-M25",
+        "DEMO-M26",
+        "DEMO-M27",
+        "DEMO-M28",
+        "DEMO-M29",
+        "DEMO-M30"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M31"
+      ],
+      "opportunityId": "DEMO-O10",
+      "sourceIds": [
+        "DEMO-S05"
+      ],
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "usageScenario": "一人晚餐,想减少临时补主食",
+      "targetPrice": {
+        "amount": 8.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "正餐、加餐和习惯搭配尚未区分",
+      "conceptIds": [],
+      "currentConceptId": null,
+      "questionIds": [
+        "DEMO-Q10-1",
+        "DEMO-Q10-2",
+        "DEMO-Q10-3",
+        "DEMO-Q10-4",
+        "DEMO-Q10-5",
+        "DEMO-Q10-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P11",
+      "title": "贵州红酸汤风味面",
+      "groupId": "DEMO-G6",
+      "stageCode": "S5",
+      "progressState": "in_progress",
+      "ownerMemberId": "DEMO-M31",
+      "memberIds": [
+        "DEMO-M31",
+        "DEMO-M32",
+        "DEMO-M33",
+        "DEMO-M34",
+        "DEMO-M35",
+        "DEMO-M36"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M34"
+      ],
+      "opportunityId": "DEMO-O11",
+      "sourceIds": [
+        "DEMO-S06"
+      ],
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "usageScenario": "地域尝鲜,偏好酸鲜但怕踩雷",
+      "targetPrice": {
+        "amount": 9.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "风味分歧与正宗表达依据待核",
+      "conceptIds": [
+        "DEMO-C11-V1",
+        "DEMO-C11-V2"
+      ],
+      "currentConceptId": "DEMO-C11-V2",
+      "questionIds": [
+        "DEMO-Q11-1",
+        "DEMO-Q11-2",
+        "DEMO-Q11-3",
+        "DEMO-Q11-4",
+        "DEMO-Q11-5",
+        "DEMO-Q11-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-P12",
+      "title": "川香椒麻宽面",
+      "groupId": "DEMO-G6",
+      "stageCode": "S4",
+      "progressState": "in_progress",
+      "ownerMemberId": "DEMO-M32",
+      "memberIds": [
+        "DEMO-M31",
+        "DEMO-M32",
+        "DEMO-M33",
+        "DEMO-M34",
+        "DEMO-M35",
+        "DEMO-M36"
+      ],
+      "collaboratorMemberIds": [
+        "DEMO-M01"
+      ],
+      "opportunityId": "DEMO-O12",
+      "sourceIds": [
+        "DEMO-S06"
+      ],
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "usageScenario": "嗜辣尝鲜,希望可控椒麻层次",
+      "targetPrice": {
+        "amount": 8.9,
+        "currency": "CNY",
+        "basis": "per_serving",
+        "kind": "demo_target_assumption"
+      },
+      "packPrice": null,
+      "knownRisk": "宽面复水、麻辣分离和酱料挂壁待核",
+      "conceptIds": [],
+      "currentConceptId": null,
+      "questionIds": [
+        "DEMO-Q12-1",
+        "DEMO-Q12-2",
+        "DEMO-Q12-3",
+        "DEMO-Q12-4",
+        "DEMO-Q12-5",
+        "DEMO-Q12-6"
+      ],
+      "enterpriseApproval": false,
+      "formalReportPublished": false
+    }
+  ],
+  "conceptVersions": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-C01-V1",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "version": 1,
+      "previousVersionId": null,
+      "name": "工位轻香葱油拌面",
+      "specification": {
+        "currentSku": null,
+        "netWeightG": null,
+        "noodleWeightG": null,
+        "packCount": null,
+        "packaging": "课堂候选,待核"
+      },
+      "formulaItems": [],
+      "productionSteps": [],
+      "questionIds": [
+        "DEMO-Q01-1",
+        "DEMO-Q01-2",
+        "DEMO-Q01-3",
+        "DEMO-Q01-4",
+        "DEMO-Q01-5",
+        "DEMO-Q01-6"
+      ],
+      "changeNote": "课堂设计初稿"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-C01-V2",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "version": 2,
+      "previousVersionId": "DEMO-C01-V1",
+      "name": "工位轻香葱油拌面",
+      "specification": {
+        "currentSku": null,
+        "netWeightG": null,
+        "noodleWeightG": null,
+        "packCount": null,
+        "packaging": "课堂候选,待核"
+      },
+      "formulaItems": [],
+      "productionSteps": [],
+      "questionIds": [
+        "DEMO-Q01-1",
+        "DEMO-Q01-2",
+        "DEMO-Q01-3",
+        "DEMO-Q01-4",
+        "DEMO-Q01-5",
+        "DEMO-Q01-6"
+      ],
+      "changeNote": "补充适用条件与反证"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-C04-V1",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "version": 1,
+      "previousVersionId": null,
+      "name": "夜宵芝士轻辣拌面",
+      "specification": {
+        "currentSku": null,
+        "netWeightG": null,
+        "noodleWeightG": null,
+        "packCount": null,
+        "packaging": "课堂候选,待核"
+      },
+      "formulaItems": [],
+      "productionSteps": [],
+      "questionIds": [
+        "DEMO-Q04-1",
+        "DEMO-Q04-2",
+        "DEMO-Q04-3",
+        "DEMO-Q04-4",
+        "DEMO-Q04-5",
+        "DEMO-Q04-6"
+      ],
+      "changeNote": "课堂设计初稿"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-C04-V2",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "version": 2,
+      "previousVersionId": "DEMO-C04-V1",
+      "name": "夜宵芝士轻辣拌面",
+      "specification": {
+        "currentSku": null,
+        "netWeightG": null,
+        "noodleWeightG": null,
+        "packCount": null,
+        "packaging": "课堂候选,待核"
+      },
+      "formulaItems": [],
+      "productionSteps": [],
+      "questionIds": [
+        "DEMO-Q04-1",
+        "DEMO-Q04-2",
+        "DEMO-Q04-3",
+        "DEMO-Q04-4",
+        "DEMO-Q04-5",
+        "DEMO-Q04-6"
+      ],
+      "changeNote": "补充适用条件与反证"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-C09-V1",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "version": 1,
+      "previousVersionId": null,
+      "name": "家庭双人小份组合",
+      "specification": {
+        "currentSku": null,
+        "netWeightG": null,
+        "noodleWeightG": null,
+        "packCount": null,
+        "packaging": "课堂候选,待核"
+      },
+      "formulaItems": [],
+      "productionSteps": [],
+      "questionIds": [
+        "DEMO-Q09-1",
+        "DEMO-Q09-2",
+        "DEMO-Q09-3",
+        "DEMO-Q09-4",
+        "DEMO-Q09-5",
+        "DEMO-Q09-6"
+      ],
+      "changeNote": "课堂设计初稿"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-C09-V2",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "version": 2,
+      "previousVersionId": "DEMO-C09-V1",
+      "name": "家庭双人小份组合",
+      "specification": {
+        "currentSku": null,
+        "netWeightG": null,
+        "noodleWeightG": null,
+        "packCount": null,
+        "packaging": "课堂候选,待核"
+      },
+      "formulaItems": [],
+      "productionSteps": [],
+      "questionIds": [
+        "DEMO-Q09-1",
+        "DEMO-Q09-2",
+        "DEMO-Q09-3",
+        "DEMO-Q09-4",
+        "DEMO-Q09-5",
+        "DEMO-Q09-6"
+      ],
+      "changeNote": "补充适用条件与反证"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-C11-V1",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "version": 1,
+      "previousVersionId": null,
+      "name": "贵州红酸汤风味面",
+      "specification": {
+        "currentSku": null,
+        "netWeightG": null,
+        "noodleWeightG": null,
+        "packCount": null,
+        "packaging": "课堂候选,待核"
+      },
+      "formulaItems": [],
+      "productionSteps": [],
+      "questionIds": [
+        "DEMO-Q11-1",
+        "DEMO-Q11-2",
+        "DEMO-Q11-3",
+        "DEMO-Q11-4",
+        "DEMO-Q11-5",
+        "DEMO-Q11-6"
+      ],
+      "changeNote": "课堂设计初稿"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-C11-V2",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "version": 2,
+      "previousVersionId": "DEMO-C11-V1",
+      "name": "贵州红酸汤风味面",
+      "specification": {
+        "currentSku": null,
+        "netWeightG": null,
+        "noodleWeightG": null,
+        "packCount": null,
+        "packaging": "课堂候选,待核"
+      },
+      "formulaItems": [],
+      "productionSteps": [],
+      "questionIds": [
+        "DEMO-Q11-1",
+        "DEMO-Q11-2",
+        "DEMO-Q11-3",
+        "DEMO-Q11-4",
+        "DEMO-Q11-5",
+        "DEMO-Q11-6"
+      ],
+      "changeNote": "补充适用条件与反证"
+    }
+  ],
+  "reports": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P01-S3",
+      "title": "工位轻香葱油拌面|S3课堂报告",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S01"
+      ],
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "questionIds": [
+        "DEMO-Q01-1",
+        "DEMO-Q01-2",
+        "DEMO-Q01-3",
+        "DEMO-Q01-4",
+        "DEMO-Q01-5",
+        "DEMO-Q01-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:工位午餐,只有热水;限制:低气味与酱香可能冲突,制备和沥水条件待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P01-S4",
+      "title": "工位轻香葱油拌面|S4课堂报告",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "stageCode": "S4",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S01"
+      ],
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "questionIds": [
+        "DEMO-Q01-1",
+        "DEMO-Q01-2",
+        "DEMO-Q01-3",
+        "DEMO-Q01-4",
+        "DEMO-Q01-5",
+        "DEMO-Q01-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:工位午餐,只有热水;限制:低气味与酱香可能冲突,制备和沥水条件待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P01-S5",
+      "title": "工位轻香葱油拌面|S5课堂报告",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "stageCode": "S5",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S01"
+      ],
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "questionIds": [
+        "DEMO-Q01-1",
+        "DEMO-Q01-2",
+        "DEMO-Q01-3",
+        "DEMO-Q01-4",
+        "DEMO-Q01-5",
+        "DEMO-Q01-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:工位午餐,只有热水;限制:低气味与酱香可能冲突,制备和沥水条件待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P02-S3",
+      "title": "晚归番茄鸡蛋汤面|S3课堂报告",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S01"
+      ],
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "questionIds": [
+        "DEMO-Q02-1",
+        "DEMO-Q02-2",
+        "DEMO-Q02-3",
+        "DEMO-Q02-4",
+        "DEMO-Q02-5",
+        "DEMO-Q02-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:晚归加班餐,希望热乎但不油腻;限制:泡发口感与加料习惯混杂。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P02-S4",
+      "title": "晚归番茄鸡蛋汤面|S4课堂报告",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "stageCode": "S4",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S01"
+      ],
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "questionIds": [
+        "DEMO-Q02-1",
+        "DEMO-Q02-2",
+        "DEMO-Q02-3",
+        "DEMO-Q02-4",
+        "DEMO-Q02-5",
+        "DEMO-Q02-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:晚归加班餐,希望热乎但不油腻;限制:泡发口感与加料习惯混杂。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P03-S3",
+      "title": "宿舍轻辣番茄拌面|S3课堂报告",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S02"
+      ],
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "questionIds": [
+        "DEMO-Q03-1",
+        "DEMO-Q03-2",
+        "DEMO-Q03-3",
+        "DEMO-Q03-4",
+        "DEMO-Q03-5",
+        "DEMO-Q03-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:无灶具宿舍,预算敏感;限制:无灶具目标与面体需煮条件冲突。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P03-S4",
+      "title": "宿舍轻辣番茄拌面|S4课堂报告",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "stageCode": "S4",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S02"
+      ],
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "questionIds": [
+        "DEMO-Q03-1",
+        "DEMO-Q03-2",
+        "DEMO-Q03-3",
+        "DEMO-Q03-4",
+        "DEMO-Q03-5",
+        "DEMO-Q03-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:无灶具宿舍,预算敏感;限制:无灶具目标与面体需煮条件冲突。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P04-S3",
+      "title": "夜宵芝士轻辣拌面|S3课堂报告",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S02"
+      ],
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "questionIds": [
+        "DEMO-Q04-1",
+        "DEMO-Q04-2",
+        "DEMO-Q04-3",
+        "DEMO-Q04-4",
+        "DEMO-Q04-5",
+        "DEMO-Q04-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:同寝分享夜宵,希望辣度可调;限制:芝士浓郁与轻负担诉求冲突。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P04-S4",
+      "title": "夜宵芝士轻辣拌面|S4课堂报告",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "stageCode": "S4",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S02"
+      ],
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "questionIds": [
+        "DEMO-Q04-1",
+        "DEMO-Q04-2",
+        "DEMO-Q04-3",
+        "DEMO-Q04-4",
+        "DEMO-Q04-5",
+        "DEMO-Q04-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:同寝分享夜宵,希望辣度可调;限制:芝士浓郁与轻负担诉求冲突。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P04-S5",
+      "title": "夜宵芝士轻辣拌面|S5课堂报告",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "stageCode": "S5",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S02"
+      ],
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "questionIds": [
+        "DEMO-Q04-1",
+        "DEMO-Q04-2",
+        "DEMO-Q04-3",
+        "DEMO-Q04-4",
+        "DEMO-Q04-5",
+        "DEMO-Q04-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:同寝分享夜宵,希望辣度可调;限制:芝士浓郁与轻负担诉求冲突。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P05-S3",
+      "title": "露营菌菇热汤面|S3课堂报告",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S03"
+      ],
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "questionIds": [
+        "DEMO-Q05-1",
+        "DEMO-Q05-2",
+        "DEMO-Q05-3",
+        "DEMO-Q05-4",
+        "DEMO-Q05-5",
+        "DEMO-Q05-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:有限炊具的户外露营;限制:热源、用水及垃圾回收条件不统一。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P05-S4",
+      "title": "露营菌菇热汤面|S4课堂报告",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "stageCode": "S4",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S03"
+      ],
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "questionIds": [
+        "DEMO-Q05-1",
+        "DEMO-Q05-2",
+        "DEMO-Q05-3",
+        "DEMO-Q05-4",
+        "DEMO-Q05-5",
+        "DEMO-Q05-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:有限炊具的户外露营;限制:热源、用水及垃圾回收条件不统一。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P06-S3",
+      "title": "高铁低气味葱香拌面|S3课堂报告",
+      "projectId": "DEMO-P06",
+      "groupId": "DEMO-G3",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S03"
+      ],
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "questionIds": [
+        "DEMO-Q06-1",
+        "DEMO-Q06-2",
+        "DEMO-Q06-3",
+        "DEMO-Q06-4",
+        "DEMO-Q06-5",
+        "DEMO-Q06-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:出差高铁,只有开水;限制:弃水、气味与携带便利相互牵制。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P07-S3",
+      "title": "高纤荞麦拌面|S3课堂报告",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S04"
+      ],
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "questionIds": [
+        "DEMO-Q07-1",
+        "DEMO-Q07-2",
+        "DEMO-Q07-3",
+        "DEMO-Q07-4",
+        "DEMO-Q07-5",
+        "DEMO-Q07-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:午间控卡,仍希望保留面食口感;限制:营养、口感、配方和成本均需证据。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P07-S4",
+      "title": "高纤荞麦拌面|S4课堂报告",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "stageCode": "S4",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S04"
+      ],
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "questionIds": [
+        "DEMO-Q07-1",
+        "DEMO-Q07-2",
+        "DEMO-Q07-3",
+        "DEMO-Q07-4",
+        "DEMO-Q07-5",
+        "DEMO-Q07-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:午间控卡,仍希望保留面食口感;限制:营养、口感、配方和成本均需证据。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P08-S3",
+      "title": "高蛋白番茄拌面|S3课堂报告",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S04"
+      ],
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "questionIds": [
+        "DEMO-Q08-1",
+        "DEMO-Q08-2",
+        "DEMO-Q08-3",
+        "DEMO-Q08-4",
+        "DEMO-Q08-5",
+        "DEMO-Q08-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:运动后便餐,关注配料及饱腹体验;限制:蛋白来源与检测口径未知。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P08-S4",
+      "title": "高蛋白番茄拌面|S4课堂报告",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "stageCode": "S4",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S04"
+      ],
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "questionIds": [
+        "DEMO-Q08-1",
+        "DEMO-Q08-2",
+        "DEMO-Q08-3",
+        "DEMO-Q08-4",
+        "DEMO-Q08-5",
+        "DEMO-Q08-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:运动后便餐,关注配料及饱腹体验;限制:蛋白来源与检测口径未知。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P09-S3",
+      "title": "家庭双人小份组合|S3课堂报告",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S05"
+      ],
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "questionIds": [
+        "DEMO-Q09-1",
+        "DEMO-Q09-2",
+        "DEMO-Q09-3",
+        "DEMO-Q09-4",
+        "DEMO-Q09-5",
+        "DEMO-Q09-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:两人晚餐,偏好分装、可自行搭菜;限制:总价与单份价容易混淆,真实用餐量待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P09-S4",
+      "title": "家庭双人小份组合|S4课堂报告",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "stageCode": "S4",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S05"
+      ],
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "questionIds": [
+        "DEMO-Q09-1",
+        "DEMO-Q09-2",
+        "DEMO-Q09-3",
+        "DEMO-Q09-4",
+        "DEMO-Q09-5",
+        "DEMO-Q09-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:两人晚餐,偏好分装、可自行搭菜;限制:总价与单份价容易混淆,真实用餐量待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P09-S5",
+      "title": "家庭双人小份组合|S5课堂报告",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "stageCode": "S5",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S05"
+      ],
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "questionIds": [
+        "DEMO-Q09-1",
+        "DEMO-Q09-2",
+        "DEMO-Q09-3",
+        "DEMO-Q09-4",
+        "DEMO-Q09-5",
+        "DEMO-Q09-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:两人晚餐,偏好分装、可自行搭菜;限制:总价与单份价容易混淆,真实用餐量待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P10-S3",
+      "title": "一人食酱香大满足|S3课堂报告",
+      "projectId": "DEMO-P10",
+      "groupId": "DEMO-G5",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S05"
+      ],
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "questionIds": [
+        "DEMO-Q10-1",
+        "DEMO-Q10-2",
+        "DEMO-Q10-3",
+        "DEMO-Q10-4",
+        "DEMO-Q10-5",
+        "DEMO-Q10-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:一人晚餐,想减少临时补主食;限制:正餐、加餐和习惯搭配尚未区分。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P11-S3",
+      "title": "贵州红酸汤风味面|S3课堂报告",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S06"
+      ],
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "questionIds": [
+        "DEMO-Q11-1",
+        "DEMO-Q11-2",
+        "DEMO-Q11-3",
+        "DEMO-Q11-4",
+        "DEMO-Q11-5",
+        "DEMO-Q11-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:地域尝鲜,偏好酸鲜但怕踩雷;限制:风味分歧与正宗表达依据待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P11-S4",
+      "title": "贵州红酸汤风味面|S4课堂报告",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "stageCode": "S4",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S06"
+      ],
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "questionIds": [
+        "DEMO-Q11-1",
+        "DEMO-Q11-2",
+        "DEMO-Q11-3",
+        "DEMO-Q11-4",
+        "DEMO-Q11-5",
+        "DEMO-Q11-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:地域尝鲜,偏好酸鲜但怕踩雷;限制:风味分歧与正宗表达依据待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P11-S5",
+      "title": "贵州红酸汤风味面|S5课堂报告",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "stageCode": "S5",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S06"
+      ],
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "questionIds": [
+        "DEMO-Q11-1",
+        "DEMO-Q11-2",
+        "DEMO-Q11-3",
+        "DEMO-Q11-4",
+        "DEMO-Q11-5",
+        "DEMO-Q11-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:地域尝鲜,偏好酸鲜但怕踩雷;限制:风味分歧与正宗表达依据待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P12-S3",
+      "title": "川香椒麻宽面|S3课堂报告",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "stageCode": "S3",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S06"
+      ],
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "questionIds": [
+        "DEMO-Q12-1",
+        "DEMO-Q12-2",
+        "DEMO-Q12-3",
+        "DEMO-Q12-4",
+        "DEMO-Q12-5",
+        "DEMO-Q12-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:嗜辣尝鲜,希望可控椒麻层次;限制:宽面复水、麻辣分离和酱料挂壁待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-P12-S4",
+      "title": "川香椒麻宽面|S4课堂报告",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "stageCode": "S4",
+      "version": 1,
+      "sourceIds": [
+        "DEMO-S06"
+      ],
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "questionIds": [
+        "DEMO-Q12-1",
+        "DEMO-Q12-2",
+        "DEMO-Q12-3",
+        "DEMO-Q12-4",
+        "DEMO-Q12-5",
+        "DEMO-Q12-6"
+      ],
+      "bodySummary": "模拟课堂记录。使用情境:嗜辣尝鲜,希望可控椒麻层次;限制:宽面复水、麻辣分离和酱料挂壁待核。未开展真实实物或市场验证。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G1-S1",
+      "title": "G1 上班族工作餐与加班餐|S1小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G1",
+      "stageCode": "S1",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G1-S2",
+      "title": "G1 上班族工作餐与加班餐|S2小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G1",
+      "stageCode": "S2",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G1-S3",
+      "title": "G1 上班族工作餐与加班餐|S3小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G1",
+      "stageCode": "S3",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G2-S1",
+      "title": "G2 学生宿舍与夜宵|S1小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G2",
+      "stageCode": "S1",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G2-S2",
+      "title": "G2 学生宿舍与夜宵|S2小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G2",
+      "stageCode": "S2",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G2-S3",
+      "title": "G2 学生宿舍与夜宵|S3小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G2",
+      "stageCode": "S3",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G3-S1",
+      "title": "G3 户外露营与出行|S1小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G3",
+      "stageCode": "S1",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G3-S2",
+      "title": "G3 户外露营与出行|S2小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G3",
+      "stageCode": "S2",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G3-S3",
+      "title": "G3 户外露营与出行|S3小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G3",
+      "stageCode": "S3",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G4-S1",
+      "title": "G4 健康控卡人群|S1小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G4",
+      "stageCode": "S1",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G4-S2",
+      "title": "G4 健康控卡人群|S2小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G4",
+      "stageCode": "S2",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G4-S3",
+      "title": "G4 健康控卡人群|S3小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G4",
+      "stageCode": "S3",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G5-S1",
+      "title": "G5 一人食与家庭囤货|S1小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G5",
+      "stageCode": "S1",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G5-S2",
+      "title": "G5 一人食与家庭囤货|S2小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G5",
+      "stageCode": "S2",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G5-S3",
+      "title": "G5 一人食与家庭囤货|S3小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G5",
+      "stageCode": "S3",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G6-S1",
+      "title": "G6 地域风味与高端尝鲜|S1小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G6",
+      "stageCode": "S1",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G6-S2",
+      "title": "G6 地域风味与高端尝鲜|S2小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G6",
+      "stageCode": "S2",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-R-DEMO-G6-S3",
+      "title": "G6 地域风味与高端尝鲜|S3小组作业",
+      "projectId": null,
+      "groupId": "DEMO-G6",
+      "stageCode": "S3",
+      "version": 1,
+      "bodySummary": "模拟小组作业,保留原始依据与待补问题。"
+    }
+  ],
+  "questions": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q01-1",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M01",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q01-2",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M02",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q01-3",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M03",
+      "state": "closed_in_demo",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "resolution": "仅为模拟关闭,真实研究未发生"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q01-4",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "question": "该方向的关键工艺限制如何核实:低气味与酱香可能冲突,制备和沥水条件待核?",
+      "ownerMemberId": "DEMO-M04",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q01-5",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M05",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q01-6",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M06",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q02-1",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M01",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q02-2",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M02",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q02-3",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M03",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E01"
+      ],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q02-4",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "question": "该方向的关键工艺限制如何核实:泡发口感与加料习惯混杂?",
+      "ownerMemberId": "DEMO-M04",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q02-5",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M05",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q02-6",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M06",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q03-1",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M07",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q03-2",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M08",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q03-3",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M09",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q03-4",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "question": "该方向的关键工艺限制如何核实:无灶具目标与面体需煮条件冲突?",
+      "ownerMemberId": "DEMO-M10",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q03-5",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M11",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q03-6",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M12",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q04-1",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M07",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q04-2",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M08",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q04-3",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M09",
+      "state": "closed_in_demo",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E02"
+      ],
+      "resolution": "仅为模拟关闭,真实研究未发生"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q04-4",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "question": "该方向的关键工艺限制如何核实:芝士浓郁与轻负担诉求冲突?",
+      "ownerMemberId": "DEMO-M10",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q04-5",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M11",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q04-6",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M12",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q05-1",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M13",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q05-2",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M14",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q05-3",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M15",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q05-4",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "question": "该方向的关键工艺限制如何核实:热源、用水及垃圾回收条件不统一?",
+      "ownerMemberId": "DEMO-M16",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q05-5",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M17",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q05-6",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M18",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q06-1",
+      "projectId": "DEMO-P06",
+      "groupId": "DEMO-G3",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M13",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q06-2",
+      "projectId": "DEMO-P06",
+      "groupId": "DEMO-G3",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M14",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q06-3",
+      "projectId": "DEMO-P06",
+      "groupId": "DEMO-G3",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M15",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E03"
+      ],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q06-4",
+      "projectId": "DEMO-P06",
+      "groupId": "DEMO-G3",
+      "question": "该方向的关键工艺限制如何核实:弃水、气味与携带便利相互牵制?",
+      "ownerMemberId": "DEMO-M16",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q06-5",
+      "projectId": "DEMO-P06",
+      "groupId": "DEMO-G3",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M17",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q06-6",
+      "projectId": "DEMO-P06",
+      "groupId": "DEMO-G3",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M18",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q07-1",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M19",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q07-2",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M20",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q07-3",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M21",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q07-4",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "question": "该方向的关键工艺限制如何核实:营养、口感、配方和成本均需证据?",
+      "ownerMemberId": "DEMO-M22",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q07-5",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M23",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q07-6",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M24",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q08-1",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M19",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q08-2",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M20",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q08-3",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M21",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E04"
+      ],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q08-4",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "question": "该方向的关键工艺限制如何核实:蛋白来源与检测口径未知?",
+      "ownerMemberId": "DEMO-M22",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q08-5",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M23",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q08-6",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M24",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q09-1",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M25",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q09-2",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M26",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q09-3",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M27",
+      "state": "closed_in_demo",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "resolution": "仅为模拟关闭,真实研究未发生"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q09-4",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "question": "该方向的关键工艺限制如何核实:总价与单份价容易混淆,真实用餐量待核?",
+      "ownerMemberId": "DEMO-M28",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q09-5",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M29",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q09-6",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M30",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q10-1",
+      "projectId": "DEMO-P10",
+      "groupId": "DEMO-G5",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M25",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q10-2",
+      "projectId": "DEMO-P10",
+      "groupId": "DEMO-G5",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M26",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q10-3",
+      "projectId": "DEMO-P10",
+      "groupId": "DEMO-G5",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M27",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E05"
+      ],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q10-4",
+      "projectId": "DEMO-P10",
+      "groupId": "DEMO-G5",
+      "question": "该方向的关键工艺限制如何核实:正餐、加餐和习惯搭配尚未区分?",
+      "ownerMemberId": "DEMO-M28",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q10-5",
+      "projectId": "DEMO-P10",
+      "groupId": "DEMO-G5",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M29",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q10-6",
+      "projectId": "DEMO-P10",
+      "groupId": "DEMO-G5",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M30",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q11-1",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M31",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q11-2",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M32",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q11-3",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M33",
+      "state": "closed_in_demo",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "resolution": "仅为模拟关闭,真实研究未发生"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q11-4",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "question": "该方向的关键工艺限制如何核实:风味分歧与正宗表达依据待核?",
+      "ownerMemberId": "DEMO-M34",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q11-5",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M35",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q11-6",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M36",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q12-1",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "question": "拟研究的具体商品版本、规格与制备条件是什么?",
+      "ownerMemberId": "DEMO-M31",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "具体包装与版本资料",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q12-2",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "question": "用餐目的是正餐、加餐、夜宵还是分享?",
+      "ownerMemberId": "DEMO-M32",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "使用情境记录",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q12-3",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "question": "支持本假设与相反情况的原始材料分别在哪里?",
+      "ownerMemberId": "DEMO-M33",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "可回溯原文及反证",
+      "evidenceIds": [
+        "DEMO-E06"
+      ],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q12-4",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "question": "该方向的关键工艺限制如何核实:宽面复水、麻辣分离和酱料挂壁待核?",
+      "ownerMemberId": "DEMO-M34",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "工艺条件说明",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q12-5",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "question": "目标价格、包材、工艺与成本假设是否可同时成立?",
+      "ownerMemberId": "DEMO-M35",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "同口径价格与成本依据",
+      "evidenceIds": [],
+      "resolution": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-Q12-6",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "question": "下一步研究怎样记录行为、减少诱导并预先定义判断条件?",
+      "ownerMemberId": "DEMO-M36",
+      "state": "awaiting_evidence",
+      "requiredMaterial": "研究方案",
+      "evidenceIds": [],
+      "resolution": null
+    }
+  ],
+  "validationTasks": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V01-1",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "scope": "证据与反证核对",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V01-2",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "scope": "制备和可行性桌面评估",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V01-3",
+      "projectId": "DEMO-P01",
+      "groupId": "DEMO-G1",
+      "scope": "后续验证方案",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V02-1",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "scope": "证据与反证核对",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V02-2",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "scope": "制备和可行性桌面评估",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V02-3",
+      "projectId": "DEMO-P02",
+      "groupId": "DEMO-G1",
+      "scope": "后续验证方案",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V03-1",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "scope": "证据与反证核对",
+      "state": "awaiting_material",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V03-2",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "scope": "制备和可行性桌面评估",
+      "state": "awaiting_material",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V03-3",
+      "projectId": "DEMO-P03",
+      "groupId": "DEMO-G2",
+      "scope": "后续验证方案",
+      "state": "awaiting_material",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V04-1",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "scope": "证据与反证核对",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V04-2",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "scope": "制备和可行性桌面评估",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V04-3",
+      "projectId": "DEMO-P04",
+      "groupId": "DEMO-G2",
+      "scope": "后续验证方案",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V05-1",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "scope": "证据与反证核对",
+      "state": "awaiting_material",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V05-2",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "scope": "制备和可行性桌面评估",
+      "state": "awaiting_material",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V05-3",
+      "projectId": "DEMO-P05",
+      "groupId": "DEMO-G3",
+      "scope": "后续验证方案",
+      "state": "awaiting_material",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V07-1",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "scope": "证据与反证核对",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V07-2",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "scope": "制备和可行性桌面评估",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V07-3",
+      "projectId": "DEMO-P07",
+      "groupId": "DEMO-G4",
+      "scope": "后续验证方案",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V08-1",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "scope": "证据与反证核对",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V08-2",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "scope": "制备和可行性桌面评估",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V08-3",
+      "projectId": "DEMO-P08",
+      "groupId": "DEMO-G4",
+      "scope": "后续验证方案",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V09-1",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "scope": "证据与反证核对",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V09-2",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "scope": "制备和可行性桌面评估",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V09-3",
+      "projectId": "DEMO-P09",
+      "groupId": "DEMO-G5",
+      "scope": "后续验证方案",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V11-1",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "scope": "证据与反证核对",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V11-2",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "scope": "制备和可行性桌面评估",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V11-3",
+      "projectId": "DEMO-P11",
+      "groupId": "DEMO-G6",
+      "scope": "后续验证方案",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V12-1",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "scope": "证据与反证核对",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V12-2",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "scope": "制备和可行性桌面评估",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-V12-3",
+      "projectId": "DEMO-P12",
+      "groupId": "DEMO-G6",
+      "scope": "后续验证方案",
+      "state": "in_progress",
+      "method": "桌面模拟",
+      "recommendation": "补齐依据后复核",
+      "physicalTestPerformed": false,
+      "enterpriseApproval": false,
+      "dimensions": {
+        "用户依据": null,
+        "制备条件": null,
+        "成本": null
+      },
+      "totalScore": null
+    }
+  ],
+  "assignments": [
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G1-1",
+      "groupId": "DEMO-G1",
+      "halfDay": 1,
+      "deliverableTypes": [
+        "S1"
+      ],
+      "reportIds": [
+        "DEMO-R-DEMO-G1-S1"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G1-2",
+      "groupId": "DEMO-G1",
+      "halfDay": 2,
+      "deliverableTypes": [
+        "S2",
+        "S3"
+      ],
+      "reportIds": [
+        "DEMO-R-P01-S3",
+        "DEMO-R-P02-S3",
+        "DEMO-R-DEMO-G1-S2",
+        "DEMO-R-DEMO-G1-S3"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G1-3",
+      "groupId": "DEMO-G1",
+      "halfDay": 3,
+      "deliverableTypes": [
+        "S4",
+        "S5"
+      ],
+      "reportIds": [
+        "DEMO-R-P01-S4",
+        "DEMO-R-P01-S5",
+        "DEMO-R-P02-S4"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G2-1",
+      "groupId": "DEMO-G2",
+      "halfDay": 1,
+      "deliverableTypes": [
+        "S1"
+      ],
+      "reportIds": [
+        "DEMO-R-DEMO-G2-S1"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G2-2",
+      "groupId": "DEMO-G2",
+      "halfDay": 2,
+      "deliverableTypes": [
+        "S2",
+        "S3"
+      ],
+      "reportIds": [
+        "DEMO-R-P03-S3",
+        "DEMO-R-P04-S3",
+        "DEMO-R-DEMO-G2-S2",
+        "DEMO-R-DEMO-G2-S3"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G2-3",
+      "groupId": "DEMO-G2",
+      "halfDay": 3,
+      "deliverableTypes": [
+        "S4",
+        "S5"
+      ],
+      "reportIds": [
+        "DEMO-R-P03-S4",
+        "DEMO-R-P04-S4",
+        "DEMO-R-P04-S5"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G3-1",
+      "groupId": "DEMO-G3",
+      "halfDay": 1,
+      "deliverableTypes": [
+        "S1"
+      ],
+      "reportIds": [
+        "DEMO-R-DEMO-G3-S1"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G3-2",
+      "groupId": "DEMO-G3",
+      "halfDay": 2,
+      "deliverableTypes": [
+        "S2",
+        "S3"
+      ],
+      "reportIds": [
+        "DEMO-R-P05-S3",
+        "DEMO-R-P06-S3",
+        "DEMO-R-DEMO-G3-S2",
+        "DEMO-R-DEMO-G3-S3"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G3-3",
+      "groupId": "DEMO-G3",
+      "halfDay": 3,
+      "deliverableTypes": [
+        "S4",
+        "S5"
+      ],
+      "reportIds": [
+        "DEMO-R-P05-S4"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G4-1",
+      "groupId": "DEMO-G4",
+      "halfDay": 1,
+      "deliverableTypes": [
+        "S1"
+      ],
+      "reportIds": [
+        "DEMO-R-DEMO-G4-S1"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G4-2",
+      "groupId": "DEMO-G4",
+      "halfDay": 2,
+      "deliverableTypes": [
+        "S2",
+        "S3"
+      ],
+      "reportIds": [
+        "DEMO-R-P07-S3",
+        "DEMO-R-P08-S3",
+        "DEMO-R-DEMO-G4-S2",
+        "DEMO-R-DEMO-G4-S3"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G4-3",
+      "groupId": "DEMO-G4",
+      "halfDay": 3,
+      "deliverableTypes": [
+        "S4",
+        "S5"
+      ],
+      "reportIds": [
+        "DEMO-R-P07-S4",
+        "DEMO-R-P08-S4"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G5-1",
+      "groupId": "DEMO-G5",
+      "halfDay": 1,
+      "deliverableTypes": [
+        "S1"
+      ],
+      "reportIds": [
+        "DEMO-R-DEMO-G5-S1"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G5-2",
+      "groupId": "DEMO-G5",
+      "halfDay": 2,
+      "deliverableTypes": [
+        "S2",
+        "S3"
+      ],
+      "reportIds": [
+        "DEMO-R-P09-S3",
+        "DEMO-R-P10-S3",
+        "DEMO-R-DEMO-G5-S2",
+        "DEMO-R-DEMO-G5-S3"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G5-3",
+      "groupId": "DEMO-G5",
+      "halfDay": 3,
+      "deliverableTypes": [
+        "S4",
+        "S5"
+      ],
+      "reportIds": [
+        "DEMO-R-P09-S4",
+        "DEMO-R-P09-S5"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G6-1",
+      "groupId": "DEMO-G6",
+      "halfDay": 1,
+      "deliverableTypes": [
+        "S1"
+      ],
+      "reportIds": [
+        "DEMO-R-DEMO-G6-S1"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G6-2",
+      "groupId": "DEMO-G6",
+      "halfDay": 2,
+      "deliverableTypes": [
+        "S2",
+        "S3"
+      ],
+      "reportIds": [
+        "DEMO-R-P11-S3",
+        "DEMO-R-P12-S3",
+        "DEMO-R-DEMO-G6-S2",
+        "DEMO-R-DEMO-G6-S3"
+      ],
+      "state": "review_required"
+    },
+    {
+      "demoId": "KSF-INNOVATION-DEMO-20261103",
+      "dataMode": "sample",
+      "isSynthetic": true,
+      "provenanceType": "synthetic_demo",
+      "id": "DEMO-A-DEMO-G6-3",
+      "groupId": "DEMO-G6",
+      "halfDay": 3,
+      "deliverableTypes": [
+        "S4",
+        "S5"
+      ],
+      "reportIds": [
+        "DEMO-R-P11-S4",
+        "DEMO-R-P11-S5",
+        "DEMO-R-P12-S4"
+      ],
+      "state": "review_required"
+    }
+  ],
+  "actualSeedCounts": {
+    "groups": 6,
+    "members": 36,
+    "ideas": 72,
+    "sources": 6,
+    "evidence": 6,
+    "opportunities": 24,
+    "projects": 12,
+    "conceptVersions": 8,
+    "reports": 44,
+    "questions": 72,
+    "validationTasks": 30,
+    "assignments": 18
+  },
+  "projectStageCounts": {
+    "S5": 4,
+    "S4": 6,
+    "S3": 2
+  },
+  "projectStateCounts": {
+    "completed": 2,
+    "in_progress": 7,
+    "blocked": 3
+  }
+}

+ 69 - 1
src/layout/kf-app.js

@@ -19,6 +19,12 @@ import '../components/index.js';
 import './kf-nav.js';
 import './kf-topbar.js';
 import '../pages/view-workbench.js';
+import '../pages/view-cockpit.js';
+import '../pages/view-intel.js';
+import '../pages/view-coop.js';
+import '../pages/view-review.js';
+import '../pages/view-class.js';
+import { getCurrentModel as getCurrentSampleModel } from '../services/sample-data.js';
 import '../pages/view-pool.js';
 import '../pages/view-stages.js';
 import '../pages/view-reports.js';
@@ -28,6 +34,11 @@ import '../pages/view-ledger.js';
 import '../pages/view-members.js';
 
 const TITLES = {
+  cockpit: ['创新驾驶舱', '整场创新现在怎么样 · 谁卡住了'],
+  intel: ['情报与洞察', '我们掌握了什么证据 · 覆盖到哪些场景'],
+  coop: ['产品共创工作台', '机会怎么变成项目 · 谁在推进 · 做到哪了'],
+  review: ['验证与评审', '结论站得住吗 · 缺什么证据'],
+  class: ['课堂运营与成果', '这两天跑得怎么样 · 各阶段交出什么'],
   workbench: ['工作台', ''],
   pool: ['机会卡池', ''],
   mode: ['机会卡', ''],
@@ -52,6 +63,7 @@ export class KfApp extends SignalWatcher(LitElement) {
     this._route = { name: 'workbench', params: {}, path: '/' };
     this._query = {};
     this._drawer = null; // { type: 'opp'|'evidence'|'artifact'|'insight', id, evId?, reportId? }
+    this._sampleModel = null; // 模拟页的模型(A—E 五端),抽屉优先用它查卡
   }
 
   connectedCallback() {
@@ -191,6 +203,9 @@ export class KfApp extends SignalWatcher(LitElement) {
       case 'opportunity-open':
         this._drawer = { type: 'opp', id: detail.id };
         break;
+      case 'sample-model':
+        this._sampleModel = detail.model;
+        break;
       case 'evidence-open':
         this._drawer = { type: 'evidence', reportId: detail.reportId, evId: detail.evId };
         break;
@@ -249,10 +264,58 @@ export class KfApp extends SignalWatcher(LitElement) {
   }
 
   /** 抽屉内容:机会卡 / 证据链 / 成果链 / 归纳链 */
+  /**
+   * 模拟卡片的抽屉内容。
+   * 与线上抽屉同构(标题 / 一句话 / 阶段 / 决策 / 评分),但:
+   *   - 数据来自 sample-data,不查线上库;
+   *   - 明确标注「模拟」,写操作交给 sampleWriter(只落本地命名空间)。
+   */
+  #sampleDrawer(opp) {
+    const S = { candidate: '候选', approved: '已立项', rejected: '已否决', merged: '已合并', hold: '暂缓' };
+    return {
+      heading: opp.title,
+      sub: t([opp.stageCode, S[opp.status] || opp.status, opp.usageScenario].filter(Boolean).join(' · ')),
+      body: html`
+        <div class="d-sec">
+          ${opp.oneLiner ? html`<div class="one">${opp.oneLiner}</div>` : ''}
+          <div class="chips">
+            <kf-badge kind="sample" label="模拟数据"></kf-badge>
+            ${opp.stageCode ? html`<kf-badge kind="stage" .value=${opp.stageCode} label=${opp.stageCode}></kf-badge>` : ''}
+          </div>
+        </div>
+        <div class="d-sec">
+          <h4>决策与状态</h4>
+          <div class="st-row" data-no-activate>
+            <span class="kf-btn primary">${S[opp.status] || opp.status}</span>
+          </div>
+          <p class="hint">模拟页的状态只作展示,不写回线上库。</p>
+        </div>
+        ${opp.stats ? html`
+          <div class="d-sec">
+            <h4>评分</h4>
+            <div>平均 <b>${opp.stats.avg}</b> 分 · ${opp.stats.n} 人评(最低 ${opp.stats.min} / 最高 ${opp.stats.max})</div>
+          </div>` : html`
+          <div class="d-sec"><h4>评分</h4><p class="hint">这张卡还没有评分,字段为空,未补 0。</p></div>`}
+        <div class="d-sec">
+          <h4>场景与受众</h4>
+          <div>使用场景:${opp.usageScenario || '待补场景(该字段尚未填写)'}</div>
+          ${opp.targetAudience ? html`<div>目标人群:${opp.targetAudience}</div>` : ''}
+          ${opp.claimKind === 'hypothesis' ? html`<div class="hint">本条为假设,尚未经过验证。</div>` : ''}
+        </div>`,
+    };
+  }
+
   #drawerContent() {
     const db = this.#svc.db.get();
     const d = this._drawer;
-    if (!db || !d) return null;
+    if (!d) return null;
+    // 模拟页:卡片来自 sample-data(DEMO-* 不在线上库里),抽屉也要能查到
+    const sm = getCurrentSampleModel();
+    const smOpp = sm?.opportunityById?.[d.id];
+    if (d.type === 'opp' && smOpp && !db?.opportunityById?.[d.id]) {
+      return this.#sampleDrawer(smOpp);
+    }
+    if (!db) return null;
     if (d.type === 'opp') {
       const opp = db.opportunityById[d.id];
       if (!opp) return { heading: '机会卡不存在', body: html`<kf-empty kind="error" title="难道这张卡已被删除?" hint=${`库里找不到 ${d.id}`}></kf-empty>` };
@@ -385,6 +448,11 @@ export class KfApp extends SignalWatcher(LitElement) {
     if (!db) return this.#loading();
     switch (r.name) {
       case 'workbench': return html`<view-workbench .db=${db} .me=${this.#svc.me.get()}></view-workbench>`;
+      case 'cockpit': return html`<view-cockpit></view-cockpit>`;
+      case 'intel': return html`<view-intel></view-intel>`;
+      case 'coop': return html`<view-coop></view-coop>`;
+      case 'review': return html`<view-review></view-review>`;
+      case 'class': return html`<view-class></view-class>`;
       case 'pool': return html`<view-pool .db=${db} .me=${this.#svc.me.get()} .routeQuery=${q}></view-pool>`;
       case 'mode': return html`<view-pool .db=${db} .me=${this.#svc.me.get()} .routeQuery=${q} .focusId=${r.params.id}></view-pool>`;
       case 'stages': return html`<view-stages .db=${db} .routeQuery=${q} .me=${this.#svc.me.get()}></view-stages>`;

+ 126 - 0
src/pages/sample-base.js

@@ -0,0 +1,126 @@
+/**
+ * pages/sample-base.js —— 五端模拟视图的共用底座。
+ *
+ * 做三件事:
+ *   1. 统一从 sample-data.js 取模型(334 条种子),不碰线上。
+ *   2. 顶部固定渲染「模拟演示数据」标记条 + 基线与扩展计数,客户一眼能看出不是真数据。
+ *   3. 提供三端共用的筛选底:组 / 成员 / 项目 同一套选择器,筛选结果口径一致。
+ */
+import { LitElement, css, html } from 'lit';
+import { useTokens } from '../components/base.js';
+import { href } from '../utils/router.js';
+import { head, section, link, VIEW_CSS } from './shared.js';
+import { loadSampleModel, SAMPLE_BASELINE_COUNT, setCurrentModel } from '../services/sample-data.js';
+
+export const SAMPLE_BADGE_CSS = css`
+  .sbadge {
+    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
+    padding: 9px 14px; margin-bottom: var(--kf-space-in);
+    border: 1px solid rgba(200,150,40,.34); border-radius: var(--r-md);
+    background: rgba(200,150,40,.07); color: var(--kf-ink-2); font-size: 12.5px; line-height: 1.55;
+  }
+  .sbadge .tagm {
+    flex: none; padding: 1px 8px; border-radius: var(--r-sm);
+    border: 1px solid rgba(200,150,40,.5); color: #9a6b00; font-weight: 600; font-size: 11.5px;
+  }
+  .sbadge .sep { color: var(--kf-ink-3); }
+`;
+
+/** 共用筛选条:组 / 成员 / 项目 三轴,全页通用 */
+export const FILTER_CSS = css`
+  .fbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
+  .fbar .fl { font-size: 12px; color: var(--kf-ink-3); }
+  .fbar select {
+    font: inherit; font-size: 12.5px; padding: 5px 9px; border-radius: var(--r-sm);
+    border: 1px solid var(--kf-line); background: var(--kf-surface); color: var(--kf-ink-2); cursor: pointer;
+  }
+  .fbar .fclear {
+    font: inherit; font-size: 12px; padding: 5px 10px; border-radius: var(--r-sm); cursor: pointer;
+    border: 1px solid var(--kf-line); background: transparent; color: var(--kf-ink-3);
+  }
+  .fbar .fcount { margin-left: auto; font-size: 12px; color: var(--kf-ink-3); font-variant-numeric: tabular-nums; }
+`;
+
+export class SampleViewBase extends LitElement {
+  static properties = {
+    model: { type: Object, state: true },
+    error: { type: String, state: true },
+    fg: { type: String, state: true },   // 组筛选
+    fm: { type: String, state: true },   // 成员筛选
+    fp: { type: String, state: true },   // 项目筛选
+  };
+
+  constructor() {
+    super();
+    this.model = null; this.error = ''; this.fg = ''; this.fm = ''; this.fp = '';
+    useTokens(this);
+  }
+
+  connectedCallback() {
+    super.connectedCallback();
+    loadSampleModel()
+      .then((m) => {
+        this.model = m;
+        setCurrentModel(m);
+        // 告诉外壳:抽屉要用 sample 模型查卡(DEMO-* 不在线上库)
+        this.dispatchEvent(new CustomEvent('sample-model', { detail: { model: m }, bubbles: true, composed: true }));
+      })
+      .catch((e) => { this.error = e.message || String(e); });
+  }
+
+  /** 统一筛选:三轴同底座,任一所选都落到同一批项目/成果 */
+  get filtered() {
+    const m = this.model;
+    if (!m) return { projects: [], members: [], opportunities: [], artifacts: [] };
+    let projects = m.projects;
+    if (this.fg) projects = projects.filter((p) => p.groupId === this.fg);
+    if (this.fp) projects = projects.filter((p) => p.id === this.fp);
+    const pids = new Set(projects.map((p) => p.id));
+
+    let members = m.members;
+    if (this.fg) members = members.filter((x) => x.groupId === this.fg);
+    if (this.fm) members = members.filter((x) => x.id === this.fm);
+
+    const names = new Set(members.map((x) => x.name));
+    let opportunities = m.opportunities.filter((o) => !this.fg || o.groupId === this.fg || !o.groupId);
+    if (this.fp) opportunities = opportunities.filter((o) => o.projectId && pids.has(o.projectId) || !o.projectId);
+
+    const reports = m.reports.filter((r) => !this.fp || r.projectId === this.fp);
+    return { projects, members, opportunities, reports, names };
+  }
+
+  renderBadge(extra = '') {
+    const m = this.model;
+    const base = SAMPLE_BASELINE_COUNT;
+    return html`
+      <div class="sbadge">
+        <span class="tagm">模拟演示数据</span>
+        <span>本页数据为行业模拟快照,非真实调研结论,可直接用于演示。</span>
+        <span class="sep">|</span>
+        <span>基线 ${base} 条${extra ? ` · ${extra}` : ''}</span>
+      </div>`;
+  }
+
+  renderFilter({ show = ['group', 'member', 'project'], count = '' } = {}) {
+    const m = this.model;
+    if (!m) return '';
+    const opts = (list, val, fn, all) => list.map((x) => html`<option value=${x.id} ?selected=${val === x.id}>${fn(x)}</option>`) && html`<option value="" ?selected=${!val}>${all}</option>${list.map((x) => html`<option value=${x.id} ?selected=${val === x.id}>${fn(x)}</option>`)}`;
+    const groups = show.includes('group')
+      ? html`<span class="fl">组</span><select @change=${(e) => { this.fg = e.target.value; }}>${opts(m.groups, this.fg, (g) => g.name, '全部组')}</select>` : '';
+    const members = show.includes('member')
+      ? html`<span class="fl">成员</span><select @change=${(e) => { this.fm = e.target.value; }}>${opts(m.members, this.fm, (x) => x.name, '全部成员')}</select>` : '';
+    const projs = show.includes('project')
+      ? html`<span class="fl">项目</span><select @change=${(e) => { this.fp = e.target.value; }}>${opts(m.projects, this.fp, (p) => p.title, '全部项目')}</select>` : '';
+    const anyOn = this.fg || this.fm || this.fp;
+    return html`
+      <div class="fbar">
+        ${groups}${members}${projs}
+        ${anyOn ? html`<button class="fclear" @click=${() => { this.fg = ''; this.fm = ''; this.fp = ''; }}>清除筛选</button>` : ''}
+        <span class="fcount">${count}</span>
+      </div>`;
+  }
+
+  renderHead(title, sub) {
+    return head(title, sub, link('/', '回工作台'));
+  }
+}

+ 114 - 0
src/pages/view-class.js

@@ -0,0 +1,114 @@
+/**
+ * pages/view-class.js —— E 端:课堂运营与成果(模拟演示)。
+ * 回答:两天课堂跑得怎么样?各阶段交出什么?谁还没交?
+ *
+ * 口径说明(重要):
+ *   种子里没有「成员提交记录」字段,所以不做「谁交/谁没交」的个人判断。
+ *   真实可算的只有 reports(44 份,带 groupId + stageCode)与 assignments(18 条半场作业)。
+ *   本页一律按组 × 阶段 统计,不编造个人进度。
+ */
+import { css, html } from 'lit';
+import { section, VIEW_CSS } from './shared.js';
+import { SampleViewBase, SAMPLE_BADGE_CSS, FILTER_CSS } from './sample-base.js';
+
+const STAGES = [['S1','品类市场分析'],['S2','用户需求与痛点'],['S3','机会点识别'],['S4','机会验证评估'],['S5','场景与卖点设计']];
+const ASSIGN_STATE = { review_required: '待评审', done: '已完成', pending: '待启动' };
+
+export class ViewClass extends SampleViewBase {
+  static styles = [VIEW_CSS, SAMPLE_BADGE_CSS, FILTER_CSS, css`
+    .kpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: var(--kf-space-in); }
+    .kpi { padding: 14px 16px; border-radius: var(--r-md); border: 1px solid var(--kf-line); background: var(--kf-surface); }
+    .kpi .v { font-size: 26px; font-weight: 600; color: var(--kf-ink); font-variant-numeric: tabular-nums; }
+    .kpi .v .u { margin-left: 3px; font-size: 12px; font-weight: 400; color: var(--kf-ink-3); }
+    .kpi .l { margin-top: 4px; font-size: 13px; color: var(--kf-ink-2); }
+    .kpi .d { margin-top: 2px; font-size: 12px; color: var(--kf-ink-3); }
+
+    .grs2 { display: flex; flex-direction: column; gap: 9px; }
+    .gr2 { display: grid; grid-template-columns: 132px minmax(0,1fr) 92px; gap: 12px; align-items: center; font-size: 13px; }
+    .gr2 .gn2 { color: var(--kf-ink-2); font-size: 12.5px; line-height: 1.35; }
+    .gr2 .gb2 { height: 9px; border-radius: 4px; background: var(--kf-surface-btn); overflow: hidden; }
+    .gr2 .gb2 i { display: block; height: 100%; background: var(--kf-accent); opacity: .8; }
+    .gr2 .gv2 { text-align: right; color: var(--kf-ink-3); font-variant-numeric: tabular-nums; font-size: 12px; }
+
+    .tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
+    .tbl th { text-align: left; font-weight: 600; font-size: 12px; color: var(--kf-ink-3); padding: 0 10px 8px; border-bottom: 1px solid var(--kf-line); }
+    .tbl td { padding: 8px 10px; border-bottom: 1px solid var(--kf-line); color: var(--kf-ink-2); }
+    .tbl tr:last-child td { border-bottom: 0; }
+    .tbl .tt { color: var(--kf-ink); font-weight: 500; }
+    .tag { display: inline-block; font-size: 11.5px; line-height: 17px; padding: 0 6px; border-radius: var(--r-sm); border: 1px solid var(--kf-line); color: var(--kf-ink-2); white-space: nowrap; }
+    .foot { margin-top: 8px; font-size: 12px; color: var(--kf-ink-3); line-height: 1.6; }
+    @media (max-width: 1000px) { .kpis { grid-template-columns: repeat(2, minmax(0,1fr)); } .gr2 { grid-template-columns: 100px minmax(0,1fr) 78px; } }
+  `];
+
+  render() {
+    if (this.error) return html`<kf-empty title="模拟数据读取失败" hint=${this.error}></kf-empty>`;
+    const m = this.model;
+    if (!m) return html`<kf-empty title="正在读取模拟数据" hint="加载 334 条种子…"></kf-empty>`;
+
+    const G = m.groups.filter((g) => !this.fg || g.id === this.fg);
+    const RBG = m.reportsByGroup || {};
+    const RBS = m.reportsByStage || {};
+    const A = (m.assignments || []).filter((a) => !this.fg || a.groupId === this.fg);
+
+    const totalReports = Object.values(RBS).reduce((n, x) => n + x, 0);
+    const maxStage = Math.max(1, ...STAGES.map(([c]) => RBS[c] || 0));
+    const maxGrp = Math.max(1, ...G.map((g) => (RBG[g.name]?.total || RBG[g.id]?.total || 0)));
+
+    const doneAssign = A.filter((a) => a.state === 'done').length;
+
+    return html`
+      ${this.renderHead('课堂运营与成果', '这两天跑得怎么样 · 各阶段交出什么')}
+      ${this.renderBadge()}
+      ${this.renderFilter({ show: ['group'], count: `当前 ${G.length} 组 · ${totalReports} 份报告` })}
+
+      ${section('概览', '课堂规模')}
+      <div class="kpis">
+        <div class="kpi"><div class="v">${m.members.length}<span class="u">人</span></div><div class="l">学员</div><div class="d">${m.groups.length} 组</div></div>
+        <div class="kpi"><div class="v">${totalReports}<span class="u">份</span></div><div class="l">阶段报告</div><div class="d">五阶段累计</div></div>
+        <div class="kpi"><div class="v">${A.length}<span class="u">次</span></div><div class="l">半场作业</div><div class="d">${doneAssign} 已通过</div></div>
+        <div class="kpi"><div class="v">${(m.conceptVersions || []).length}<span class="u">版</span></div><div class="l">方案版本</div><div class="d">课堂产出</div></div>
+      </div>
+
+      ${section('五阶段交付', '每阶段报告份数')}
+      <div class="grs2">
+        ${STAGES.map(([code, label]) => html`
+          <div class="gr2">
+            <span class="gn2">${code} ${label}</span>
+            <span class="gb2"><i style="width:${((RBS[code] || 0) / maxStage) * 100}%"></i></span>
+            <span class="gv2">${RBS[code] || 0} 份</span>
+          </div>`)}
+      </div>
+      <div class="foot">分母为单阶段最多 ${maxStage} 份。S3 最多是因为组级 S3 报告与项目级 S3 基线同时计入。</div>
+
+      ${section('各组产出', '每组交出多少份报告')}
+      <div class="grs2">
+        ${G.map((g, i) => {
+          const rec = RBG[g.name] || RBG[g.id] || Object.entries(RBG).find(([k]) => k === g.name || k === g.id)?.[1] || { total: 0, stages: {} };
+          const stg = Object.keys(rec.stages || {}).sort().join(' ');
+          return html`
+            <div class="gr2">
+              <span class="gn2">${g.name}</span>
+              <span class="gb2"><i style="width:${((rec.total || 0) / maxGrp) * 100}%"></i></span>
+              <span class="gv2">${rec.total || 0} 份 · ${stg || '—'}</span>
+            </div>`;
+        })}
+      </div>
+      <div class="foot">右侧列出该组已产出的阶段编号。没有的分阶段就不列,不补。</div>
+
+      ${section('半场作业', `共 ${A.length} 次`)}
+      <table class="tbl">
+        <thead><tr><th>组</th><th>半场</th><th>交付类型</th><th>状态</th></tr></thead>
+        <tbody>
+          ${A.slice(0, 8).map((a) => html`<tr>
+            <td class="tt">${a.groupId}</td>
+            <td>D${a.halfDay}</td>
+            <td>${(a.deliverableTypes || []).join('、') || '—'}</td>
+            <td><span class="tag">${ASSIGN_STATE[a.state] || a.state || '—'}</span></td>
+          </tr>`)}
+        </tbody>
+      </table>
+      <div class="foot">显示 ${Math.min(8, A.length)} / ${A.length} 次。</div>`;
+  }
+}
+
+customElements.define('view-class', ViewClass);

+ 128 - 0
src/pages/view-cockpit.js

@@ -0,0 +1,128 @@
+/**
+ * pages/view-cockpit.js —— A 端:创新驾驶舱(模拟演示)。
+ * 回答:整场创新现在怎么样?谁卡住了?
+ * 数据:sample-data.js(334 条种子),不读线上。
+ */
+import { css, html } from 'lit';
+import { section, VIEW_CSS, link } from './shared.js';
+import { SampleViewBase, SAMPLE_BADGE_CSS, FILTER_CSS } from './sample-base.js';
+import { href } from '../utils/router.js';
+
+const STATE_LABEL = { in_progress: '进行中', blocked: '受阻', completed: '已完成' };
+
+export class ViewCockpit extends SampleViewBase {
+  static styles = [VIEW_CSS, SAMPLE_BADGE_CSS, FILTER_CSS, css`
+    .kpis { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: var(--kf-space-in); }
+    .kpi { padding: 14px 16px; border-radius: var(--r-md); border: 1px solid var(--kf-line); background: var(--kf-surface); }
+    .kpi .v { font-size: 26px; font-weight: 600; color: var(--kf-ink); font-variant-numeric: tabular-nums; }
+    .kpi .v .u { margin-left: 3px; font-size: 12px; font-weight: 400; color: var(--kf-ink-3); }
+    .kpi .l { margin-top: 4px; font-size: 13px; color: var(--kf-ink-2); }
+    .kpi .d { margin-top: 2px; font-size: 12px; color: var(--kf-ink-3); }
+
+    .dist { display: flex; gap: 12px; }
+    .ds { flex: 1; padding: 12px 14px; border-radius: var(--r-md); border: 1px solid var(--kf-line); background: var(--kf-surface); }
+    .ds .dn { font-size: 12px; color: var(--kf-ink-3); }
+    .ds .dv { font-size: 22px; font-weight: 600; color: var(--kf-ink); font-variant-numeric: tabular-nums; margin-top: 2px; }
+    .ds .dd { font-size: 12px; color: var(--kf-ink-3); margin-top: 2px; }
+
+    .stages { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 10px; }
+    .sg { padding: 12px 13px; border-radius: var(--r-md); border: 1px solid var(--kf-line); background: var(--kf-surface); }
+    .sg .sc { font-size: 12px; color: var(--kf-ink-3); }
+    .sg .st { font-size: 13px; font-weight: 600; color: var(--kf-ink); margin-top: 2px; line-height: 1.35; }
+    .sg .sv { margin-top: 7px; font-size: 19px; font-weight: 600; color: var(--kf-ink); font-variant-numeric: tabular-nums; }
+    .sg .sv .u2 { font-size: 11.5px; color: var(--kf-ink-3); font-weight: 400; margin-left: 2px; }
+    .bar2 { height: 5px; border-radius: 3px; background: var(--kf-surface-btn); margin-top: 7px; overflow: hidden; }
+    .bar2 i { display: block; height: 100%; background: var(--kf-accent); opacity: .78; }
+
+    .tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
+    .tbl th { text-align: left; font-weight: 600; font-size: 12px; color: var(--kf-ink-3); padding: 0 10px 8px; border-bottom: 1px solid var(--kf-line); }
+    .tbl td { padding: 8px 10px; border-bottom: 1px solid var(--kf-line); color: var(--kf-ink-2); }
+    .tbl tr:last-child td { border-bottom: 0; }
+    .tbl .tt { color: var(--kf-ink); font-weight: 500; }
+    .tag { display: inline-block; font-size: 11.5px; line-height: 17px; padding: 0 6px; border-radius: var(--r-sm); border: 1px solid var(--kf-line); color: var(--kf-ink-2); white-space: nowrap; }
+    .tag.s-blocked { color: var(--kf-s); border-color: rgba(200,60,60,.3); }
+    .tag.s-completed { color: var(--kf-ok-text); border-color: rgba(40,140,90,.3); }
+    .foot { margin-top: 8px; font-size: 12px; color: var(--kf-ink-3); line-height: 1.6; }
+    @media (max-width: 1000px) { .kpis, .stages { grid-template-columns: repeat(2, minmax(0,1fr)); } .dist { flex-direction: column; } }
+  `];
+
+  render() {
+    if (this.error) return html`<kf-empty title="模拟数据读取失败" hint=${this.error}></kf-empty>`;
+    const m = this.model;
+    if (!m) return html`<kf-empty title="正在读取模拟数据" hint="加载 334 条种子…"></kf-empty>`;
+
+    const f = this.filtered;
+    const P = f.projects;
+    const M = f.members;
+    const O = f.opportunities;
+
+    const inProg = P.filter((p) => p.progressState === 'in_progress').length;
+    const blocked = P.filter((p) => p.progressState === 'blocked').length;
+    const done = P.filter((p) => p.progressState === 'completed').length;
+
+    // 五阶段:按项目阶段计数
+    const stageRows = [['S1','品类市场分析'],['S2','用户需求与痛点'],['S3','机会点识别'],['S4','机会验证评估'],['S5','场景与卖点设计']]
+      .map(([code, label]) => ({ code, label, n: P.filter((p) => p.stageCode === code).length }));
+    const maxN = Math.max(1, ...stageRows.map((s) => s.n));
+
+    const stuckP = P.filter((p) => p.progressState === 'blocked');
+    const projRows = P.slice(0, 8).map((p) => html`
+      <tr>
+        <td class="tt">${p.title}</td>
+        <td>${p.stageCode || '—'}</td>
+        <td><span class="tag ${p.progressState === 'blocked' ? 's-blocked' : p.progressState === 'completed' ? 's-completed' : ''}">${STATE_LABEL[p.progressState] || '进行中'}</span></td>
+        <td>${p.ownerName || '—'}</td>
+      </tr>`);
+
+    const filterOn = this.fg || this.fm || this.fp;
+
+    return html`
+      ${this.renderHead('创新驾驶舱', '整场创新现在怎么样 · 谁卡住了')}
+      ${this.renderBadge()}
+      ${this.renderFilter({ count: filterOn ? `筛选后 ${P.length} / ${m.projects.length} 个项目` : `全部 ${m.projects.length} 个项目` })}
+
+      ${section('概览', '项目与成员')}
+      <div class="kpis">
+        <div class="kpi"><div class="v">${P.length}<span class="u">个</span></div><div class="l">项目</div><div class="d">基线 ${m.projects.length} 个</div></div>
+        <div class="kpi"><div class="v">${M.length}<span class="u">人</span></div><div class="l">成员</div><div class="d">${m.groups.length} 组</div></div>
+        <div class="kpi"><div class="v">${O.length}<span class="u">张</span></div><div class="l">机会卡</div><div class="d">入选 ${O.filter((o) => o.status === 'approved').length}</div></div>
+        <div class="kpi"><div class="v">${m.reports.length}<span class="u">份</span></div><div class="l">报告</div><div class="d">五阶段累计</div></div>
+        <div class="kpi"><div class="v">${stuckP.length}<span class="u">个</span></div><div class="l">受阻项目</div><div class="d">需现场裁决</div></div>
+      </div>
+
+      ${section('项目状态', '完成 / 进行中 / 受阻')}
+      <div class="dist">
+        <div class="ds"><div class="dn">进行中</div><div class="dv">${inProg} 个</div><div class="dd">正常推进</div></div>
+        <div class="ds"><div class="dn">受阻</div><div class="dv">${blocked} 个</div><div class="dd">需要裁决</div></div>
+        <div class="ds"><div class="dn">已完成</div><div class="dv">${done} 个</div><div class="dd">五阶段收口</div></div>
+      </div>
+
+      ${section('五阶段分布', '项目当前所处阶段')}
+      <div class="stages">
+        ${stageRows.map((s) => html`
+          <div class="sg">
+            <div class="sc">${s.code}</div>
+            <div class="st">${s.label}</div>
+            <div class="sv">${s.n}<span class="u2">个</span></div>
+            <div class="bar2"><i style="width:${(s.n / maxN) * 100}%"></i></div>
+          </div>`)}
+      </div>
+      <div class="foot">S5 ${m.projectStageCounts.S5 || 0} · S4 ${m.projectStageCounts.S4 || 0} · S3 ${m.projectStageCounts.S3 || 0}(种子阶段分布)。</div>
+
+      ${stuckP.length ? section('谁卡住了', `${stuckP.length} 个项目受阻`) : ''}
+      ${stuckP.length ? html`
+        <div class="foot" style="font-size:13px;line-height:1.9;color:var(--kf-ink-2)">
+          ${stuckP.map((p) => html`<div>· <b style="color:var(--kf-ink)">${p.title}</b>(${p.groupId || '未分组'},${p.stage.label && p.stage.label !== p.stageCode ? p.stageCode + ' ' + p.stage.label : p.stageCode})${p.knownRisk ? '卡在:' + p.knownRisk : '受阻原因待补'}。</div>`)}
+        </div>
+        <div class="foot">受阻原因取项目 knownRisk 原字段,未补写。</div>` : ''}
+
+      ${section('项目明细', `共 ${P.length} 个`)}
+      <table class="tbl">
+        <thead><tr><th>项目</th><th>阶段</th><th>状态</th><th>负责人</th></tr></thead>
+        <tbody>${projRows.length ? projRows : html`<tr><td colspan="4" style="color:var(--kf-ink-3)">当前筛选下没有项目。</td></tr>`}</tbody>
+      </table>
+      <div class="foot">显示 ${Math.min(8, P.length)} / ${P.length} 个项目。</div>`;
+  }
+}
+
+customElements.define('view-cockpit', ViewCockpit);

+ 120 - 0
src/pages/view-coop.js

@@ -0,0 +1,120 @@
+/**
+ * pages/view-coop.js —— C 端:产品共创工作台(模拟演示)。
+ * 回答:机会怎么变成项目?谁在推进?做到哪了?
+ * 卡片点击派发 opportunity-open,由 kf-app 打开详情抽屉(与线上同一套抽屉)。
+ */
+import { css, html } from 'lit';
+import { section, VIEW_CSS } from './shared.js';
+import { SampleViewBase, SAMPLE_BADGE_CSS, FILTER_CSS } from './sample-base.js';
+
+const STATUS_LABEL = { candidate: '候选', approved: '已立项', rejected: '已否决', merged: '已合并', hold: '暂缓' };
+
+export class ViewCoop extends SampleViewBase {
+  static styles = [VIEW_CSS, SAMPLE_BADGE_CSS, FILTER_CSS, css`
+    .kpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: var(--kf-space-in); }
+    .kpi { padding: 14px 16px; border-radius: var(--r-md); border: 1px solid var(--kf-line); background: var(--kf-surface); }
+    .kpi .v { font-size: 26px; font-weight: 600; color: var(--kf-ink); font-variant-numeric: tabular-nums; }
+    .kpi .v .u { margin-left: 3px; font-size: 12px; font-weight: 400; color: var(--kf-ink-3); }
+    .kpi .l { margin-top: 4px; font-size: 13px; color: var(--kf-ink-2); }
+    .kpi .d { margin-top: 2px; font-size: 12px; color: var(--kf-ink-3); }
+
+    .funnel { display: flex; gap: 12px; }
+    .fs { flex: 1; padding: 12px 14px; border-radius: var(--r-md); border: 1px solid var(--kf-line); background: var(--kf-surface); }
+    .fs .fn { font-size: 12px; color: var(--kf-ink-3); }
+    .fs .fv { font-size: 22px; font-weight: 600; color: var(--kf-ink); font-variant-numeric: tabular-nums; margin-top: 2px; }
+    .fs .fd { font-size: 12px; color: var(--kf-ink-3); margin-top: 2px; }
+
+    .cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 12px; }
+    .cd { padding: 12px 14px; border-radius: var(--r-md); border: 1px solid var(--kf-line); background: var(--kf-surface); cursor: pointer; transition: border-color .15s; }
+    .cd:hover, .cd:focus-visible { border-color: var(--kf-accent); outline: none; }
+    .cd .ct { font-size: 13.5px; font-weight: 600; color: var(--kf-ink); line-height: 1.42; }
+    .cd .cm { margin-top: 5px; font-size: 12px; color: var(--kf-ink-3); line-height: 1.5; }
+    .cd .cf { margin-top: 8px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
+    .tag { display: inline-block; font-size: 11.5px; line-height: 17px; padding: 0 6px; border-radius: var(--r-sm); border: 1px solid var(--kf-line); color: var(--kf-ink-2); }
+    .tag.st-approved { color: var(--kf-ok-text); border-color: rgba(40,140,90,.3); }
+    .tag.st-rejected { color: var(--kf-s); border-color: rgba(200,60,60,.3); }
+    .sc { font-size: 11.5px; color: var(--kf-ink-3); font-variant-numeric: tabular-nums; }
+
+    .tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
+    .tbl th { text-align: left; font-weight: 600; font-size: 12px; color: var(--kf-ink-3); padding: 0 10px 8px; border-bottom: 1px solid var(--kf-line); }
+    .tbl td { padding: 8px 10px; border-bottom: 1px solid var(--kf-line); color: var(--kf-ink-2); }
+    .tbl tr:last-child td { border-bottom: 0; }
+    .tbl .tt { color: var(--kf-ink); font-weight: 500; }
+    .foot { margin-top: 8px; font-size: 12px; color: var(--kf-ink-3); line-height: 1.6; }
+    @media (max-width: 1000px) { .kpis { grid-template-columns: repeat(2, minmax(0,1fr)); } .funnel { flex-direction: column; } }
+  `];
+
+  #open(id) {
+    this.dispatchEvent(new CustomEvent('opportunity-open', { detail: { id, scope: 'sample' }, bubbles: true, composed: true }));
+  }
+
+  render() {
+    if (this.error) return html`<kf-empty title="模拟数据读取失败" hint=${this.error}></kf-empty>`;
+    const m = this.model;
+    if (!m) return html`<kf-empty title="正在读取模拟数据" hint="加载 334 条种子…"></kf-empty>`;
+
+    const f = this.filtered;
+    const O = f.opportunities;
+    const P = f.projects;
+
+    const cnt = (s) => O.filter((o) => o.status === s).length;
+    const cand = cnt('candidate'), appr = cnt('approved'), rej = cnt('rejected') + cnt('merged');
+
+    // 三态各取代表,避免少数派被截断掉
+    const pick = (s, n) => O.filter((o) => o.status === s).slice(0, n);
+    const shown = [...pick('approved', 3), ...pick('candidate', 3), ...pick('rejected', 2)];
+    const list = shown.length ? shown : O.slice(0, 8);
+
+    const projRows = P.slice(0, 8).map((p) => html`
+      <tr>
+        <td class="tt">${p.title}</td>
+        <td>${p.stageCode || '—'}</td>
+        <td>${p.ownerName || '—'}</td>
+        <td>${p.usageScenario || '待补'}</td>
+      </tr>`);
+
+    return html`
+      ${this.renderHead('产品共创工作台', '机会怎么变成项目 · 谁在推进 · 做到哪了')}
+      ${this.renderBadge()}
+      ${this.renderFilter({ count: `筛选后 ${O.length} 张卡 / ${P.length} 个项目` })}
+
+      ${section('概览', '机会与项目')}
+      <div class="kpis">
+        <div class="kpi"><div class="v">${O.length}<span class="u">张</span></div><div class="l">机会卡</div><div class="d">全员池子</div></div>
+        <div class="kpi"><div class="v">${P.length}<span class="u">个</span></div><div class="l">项目</div><div class="d">已立项推进</div></div>
+        <div class="kpi"><div class="v">${(m.conceptVersions || []).length}<span class="u">版</span></div><div class="l">方案版本</div><div class="d">概念迭代</div></div>
+        <div class="kpi"><div class="v">${m.members.length}<span class="u">人</span></div><div class="l">参与成员</div><div class="d">${m.groups.length} 组</div></div>
+      </div>
+
+      ${section('选题结果', '候选 / 已立项 / 已否决 三种结果')}
+      <div class="funnel">
+        <div class="fs"><div class="fn">候选(待决策)</div><div class="fv">${cand} 张</div><div class="fd">尚未立项</div></div>
+        <div class="fs"><div class="fn">已立项</div><div class="fv">${appr} 张</div><div class="fd">已转项目</div></div>
+        <div class="fs"><div class="fn">已否决 / 合并</div><div class="fv">${rej} 张</div><div class="fd">含合并去重</div></div>
+      </div>
+
+      ${section('机会卡', '点卡片打开详情与决策')}
+      <div class="cards">
+        ${list.map((o) => html`
+          <div class="cd" @click=${() => this.#open(o.id)} @keydown=${(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); this.#open(o.id); } }} role="button" tabindex="0">
+            <div class="ct">${o.title}</div>
+            <div class="cm">${o.oneLiner || '暂无一句话说明'}</div>
+            <div class="cf">
+              <span class="tag st-${o.status}">${STATUS_LABEL[o.status] || o.status}</span>
+              ${o.stats ? html`<span class="sc">${o.stats.avg} 分 · ${o.stats.n} 人评</span>` : html`<span class="sc">暂无评分</span>`}
+              <span class="sc">${o.usageScenario || '待补场景'}</span>
+            </div>
+          </div>`)}
+      </div>
+      <div class="foot">显示 ${list.length} / ${O.length} 张(已立项 3 · 候选 3 · 已否决 2,三种结果各取样)。点击卡片打开详情抽屉,抽屉内的状态与评分操作只作用于模拟数据,不会写入线上。</div>
+
+      ${section('项目推进', `共 ${P.length} 个`)}
+      <table class="tbl">
+        <thead><tr><th>项目</th><th>阶段</th><th>负责人</th><th>使用场景</th></tr></thead>
+        <tbody>${projRows.length ? projRows : html`<tr><td colspan="4" style="color:var(--kf-ink-3)">当前筛选下没有项目。</td></tr>`}</tbody>
+      </table>
+      <div class="foot">显示 ${Math.min(8, P.length)} / ${P.length} 个项目。</div>`;
+  }
+}
+
+customElements.define('view-coop', ViewCoop);

+ 102 - 0
src/pages/view-intel.js

@@ -0,0 +1,102 @@
+/**
+ * pages/view-intel.js —— B 端:情报与洞察(模拟演示)。
+ * 回答:我们手里到底掌握了什么证据?来源 → 引文 → 机会卡覆盖。
+ */
+import { css, html } from 'lit';
+import { section, VIEW_CSS } from './shared.js';
+import { SampleViewBase, SAMPLE_BADGE_CSS, FILTER_CSS } from './sample-base.js';
+
+const VERIFY_LABEL = { verified: '已核实', demo_only: '模拟数据', pending: '待核实', unverified: '未核实' };
+
+export class ViewIntel extends SampleViewBase {
+  static styles = [VIEW_CSS, SAMPLE_BADGE_CSS, FILTER_CSS, css`
+    .kpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: var(--kf-space-in); }
+    .kpi { padding: 14px 16px; border-radius: var(--r-md); border: 1px solid var(--kf-line); background: var(--kf-surface); }
+    .kpi .v { font-size: 26px; font-weight: 600; color: var(--kf-ink); font-variant-numeric: tabular-nums; }
+    .kpi .v .u { margin-left: 3px; font-size: 12px; font-weight: 400; color: var(--kf-ink-3); }
+    .kpi .l { margin-top: 4px; font-size: 13px; color: var(--kf-ink-2); }
+    .kpi .d { margin-top: 2px; font-size: 12px; color: var(--kf-ink-3); }
+
+    .scenes { display: flex; flex-direction: column; gap: 8px; }
+    .scrow { display: grid; grid-template-columns: 132px minmax(0,1fr) 78px; gap: 12px; align-items: center; font-size: 13px; }
+    .scrow .scn { color: var(--kf-ink-2); font-size: 12.5px; line-height: 1.35; }
+    .scrow .scb { height: 9px; border-radius: 4px; background: var(--kf-surface-btn); overflow: hidden; }
+    .scrow .scb i { display: block; height: 100%; background: var(--kf-accent); opacity: .8; }
+    .scrow .scv { text-align: right; color: var(--kf-ink-3); font-variant-numeric: tabular-nums; font-size: 12px; }
+
+    .tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
+    .tbl th { text-align: left; font-weight: 600; font-size: 12px; color: var(--kf-ink-3); padding: 0 10px 8px; border-bottom: 1px solid var(--kf-line); }
+    .tbl td { padding: 8px 10px; border-bottom: 1px solid var(--kf-line); color: var(--kf-ink-2); }
+    .tbl tr:last-child td { border-bottom: 0; }
+    .tbl .tt { color: var(--kf-ink); font-weight: 500; }
+    .tag { display: inline-block; font-size: 11.5px; line-height: 17px; padding: 0 6px; border-radius: var(--r-sm); border: 1px solid var(--kf-line); color: var(--kf-ink-2); white-space: nowrap; }
+    .tag.demo { color: #9a6b00; border-color: rgba(200,150,40,.44); }
+    .foot { margin-top: 8px; font-size: 12px; color: var(--kf-ink-3); line-height: 1.6; }
+    @media (max-width: 1000px) { .kpis { grid-template-columns: repeat(2, minmax(0,1fr)); } .scrow { grid-template-columns: 100px minmax(0,1fr) 66px; } }
+  `];
+
+  render() {
+    if (this.error) return html`<kf-empty title="模拟数据读取失败" hint=${this.error}></kf-empty>`;
+    const m = this.model;
+    if (!m) return html`<kf-empty title="正在读取模拟数据" hint="加载 334 条种子…"></kf-empty>`;
+
+    const O = m.opportunities;
+    const SRC = m.sources;
+    const EV = m.evidence || [];
+    const ideaN = (m.ideas || []).length;
+
+    // 场景分布:分母为全部机会卡(统一公共比例尺)
+    const sceneMap = new Map();
+    for (const o of O) {
+      const k = o.usageScenario || '待补场景';
+      sceneMap.set(k, (sceneMap.get(k) || 0) + 1);
+    }
+    const scenes = [...sceneMap.entries()].sort((a, b) => b[1] - a[1]);
+    const missingScene = O.filter((o) => !o.usageScenario).length;
+
+    const evidenceSum = O.reduce((n, o) => n + (o.quoteCount || 0), 0);
+    const withScene = O.length - missingScene;
+
+    const srcRows = SRC.slice(0, 10).map((s) => html`
+      <tr>
+        <td class="tt">${s.title}</td>
+        <td>${s.platform || '未标注'}</td>
+        <td>${s.authorLabel || '—'}</td>
+        <td><span class="tag ${s.verificationState === 'demo_only' ? 'demo' : ''}">${VERIFY_LABEL[s.verificationState] || '—'}</span></td>
+      </tr>`);
+
+    return html`
+      ${this.renderHead('情报与洞察', '我们掌握了什么证据 · 覆盖到哪些场景')}
+      ${this.renderBadge()}
+
+      ${section('概览', '证据规模')}
+      <div class="kpis">
+        <div class="kpi"><div class="v">${ideaN}<span class="u">条</span></div><div class="l">模拟创意</div><div class="d">已形成 ${O.length} 张机会卡</div></div>
+        <div class="kpi"><div class="v">${SRC.length}<span class="u">条</span></div><div class="l">来源</div><div class="d">全部为模拟数据</div></div>
+        <div class="kpi"><div class="v">${EV.length}<span class="u">条</span></div><div class="l">证据条目</div><div class="d">可追溯到来源</div></div>
+        <div class="kpi"><div class="v">${evidenceSum}<span class="u">条</span></div><div class="l">机会卡引用</div><div class="d">${O.filter((o) => o.quoteCount > 0).length} 张有引用</div></div>
+      </div>
+
+      ${section('场景覆盖', `分母为全部 ${O.length} 张机会卡`)}
+      <div class="scenes">
+        ${scenes.map(([name, n]) => html`
+          <div class="scrow">
+            <span class="scn">${name}</span>
+            <span class="scb"><i style="width:${(n / O.length) * 100}%"></i></span>
+            <span class="scv">${n} 张</span>
+          </div>`)}
+      </div>
+      <div class="foot">
+        有场景 ${withScene} 张 · 待补场景 ${missingScene} 张(这 ${missingScene} 张卡的使用场景尚未填写,如实标为待补,未计入其他场景)。
+      </div>
+
+      ${section('来源', `共 ${SRC.length} 条`)}
+      <table class="tbl">
+        <thead><tr><th>来源</th><th>平台</th><th>作者</th><th>核实状态</th></tr></thead>
+        <tbody>${srcRows.length ? srcRows : html`<tr><td colspan="4" style="color:var(--kf-ink-3)">暂无来源。</td></tr>`}</tbody>
+      </table>
+      <div class="foot">全部 ${SRC.length} 条来源均为合成内容,并非真实访谈记录。显示 ${Math.min(10, SRC.length)} 条。</div>`;
+  }
+}
+
+customElements.define('view-intel', ViewIntel);

+ 103 - 0
src/pages/view-review.js

@@ -0,0 +1,103 @@
+/**
+ * pages/view-review.js —— D 端:验证与评审(模拟演示)。
+ * 回答:这些结论站得住吗?缺什么证据?
+ * 口径:证据不足写「证据不足以归因」,不写成否定结论;评分空着写「待补」,不补 0。
+ */
+import { css, html } from 'lit';
+import { section, VIEW_CSS } from './shared.js';
+import { SampleViewBase, SAMPLE_BADGE_CSS, FILTER_CSS } from './sample-base.js';
+
+const LV_LABEL = { high: '强', medium: '中', low: '弱' };
+const TASK_STATE = { review_required: '待评审', done: '已完成', pending: '待启动' };
+const VERDICT = { approve: '立项', reject: '否决', hold: '暂缓', merge: '合并' };
+
+export class ViewReview extends SampleViewBase {
+  static styles = [VIEW_CSS, SAMPLE_BADGE_CSS, FILTER_CSS, css`
+    .kpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: var(--kf-space-in); }
+    .kpi { padding: 14px 16px; border-radius: var(--r-md); border: 1px solid var(--kf-line); background: var(--kf-surface); }
+    .kpi .v { font-size: 26px; font-weight: 600; color: var(--kf-ink); font-variant-numeric: tabular-nums; }
+    .kpi .v .u { margin-left: 3px; font-size: 12px; font-weight: 400; color: var(--kf-ink-3); }
+    .kpi .v .sm { font-size: 13px; font-weight: 400; color: var(--kf-ink-3); }
+    .kpi .l { margin-top: 4px; font-size: 13px; color: var(--kf-ink-2); }
+    .kpi .d { margin-top: 2px; font-size: 12px; color: var(--kf-ink-3); }
+
+    .lv { display: flex; gap: 12px; }
+    .lvc { flex: 1; padding: 12px 14px; border-radius: var(--r-md); border: 1px solid var(--kf-line); background: var(--kf-surface); }
+    .lvc .lh { display: flex; align-items: baseline; gap: 8px; }
+    .lvc .ln { font-size: 13px; font-weight: 600; color: var(--kf-ink); }
+    .lvc .lv2 { font-size: 20px; font-weight: 600; color: var(--kf-ink); font-variant-numeric: tabular-nums; }
+    .lvc .ld { margin-top: 4px; font-size: 12px; color: var(--kf-ink-3); line-height: 1.55; }
+
+    .tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
+    .tbl th { text-align: left; font-weight: 600; font-size: 12px; color: var(--kf-ink-3); padding: 0 10px 8px; border-bottom: 1px solid var(--kf-line); }
+    .tbl td { padding: 8px 10px; border-bottom: 1px solid var(--kf-line); color: var(--kf-ink-2); vertical-align: top; }
+    .tbl tr:last-child td { border-bottom: 0; }
+    .tbl .tt { color: var(--kf-ink); font-weight: 500; }
+    .tag { display: inline-block; font-size: 11.5px; line-height: 17px; padding: 0 6px; border-radius: var(--r-sm); border: 1px solid var(--kf-line); color: var(--kf-ink-2); white-space: nowrap; }
+    .foot { margin-top: 8px; font-size: 12px; color: var(--kf-ink-3); line-height: 1.6; }
+    @media (max-width: 1000px) { .kpis { grid-template-columns: repeat(2, minmax(0,1fr)); } .lv { flex-direction: column; } }
+  `];
+
+  render() {
+    if (this.error) return html`<kf-empty title="模拟数据读取失败" hint=${this.error}></kf-empty>`;
+    const m = this.model;
+    if (!m) return html`<kf-empty title="正在读取模拟数据" hint="加载 334 条种子…"></kf-empty>`;
+
+    const f = this.filtered;
+    const O = f.opportunities;
+    const Q = m.questions.filter((q) => !this.fp || q.projectId === this.fp);
+    const V = m.validationTasks.filter((v) => !this.fp || v.projectId === this.fp);
+
+    const lvH = O.filter((o) => o.evidenceLevel === 'high' || o.evidenceLevel === 'medium').length;
+    const lvMid = O.filter((o) => o.evidenceLevel === 'medium').length;
+    const lvLow = O.filter((o) => o.evidenceLevel === 'low').length;
+    const lvNone = O.filter((o) => !o.evidenceLevel).length;
+    const scored = O.filter((o) => o.stats && o.stats.n > 0).length;
+
+    const openQ = Q.filter((q) => q.status === 'open').length;
+
+    const taskRows = V.slice(0, 8).map((v) => html`
+      <tr>
+        <td class="tt">${v.title || '(未命名任务)'}</td>
+        <td>${v.projectId || '—'}</td>
+        <td><span class="tag">${TASK_STATE[v.state] || v.state || '—'}</span></td>
+      </tr>`);
+
+    return html`
+      ${this.renderHead('验证与评审', '结论站得住吗 · 缺什么证据')}
+      ${this.renderBadge()}
+      ${this.renderFilter({ count: `筛选后 ${O.length} 张卡 · ${V.length} 项验证任务` })}
+
+      ${section('概览', '验证与评审规模')}
+      <div class="kpis">
+        <div class="kpi"><div class="v">${V.length}<span class="u">项</span></div><div class="l">验证任务</div><div class="d">S4/S5 阶段</div></div>
+        <div class="kpi"><div class="v">${scored}<span class="sm"> / ${O.length}</span></div><div class="l">已有评分</div><div class="d">${O.length - scored} 张待补</div></div>
+        <div class="kpi"><div class="v">${openQ}<span class="u">条</span></div><div class="l">未决问题</div><div class="d">共 ${Q.length} 条</div></div>
+        <div class="kpi"><div class="v">${m.reports.length}<span class="u">份</span></div><div class="l">阶段报告</div><div class="d">评审依据</div></div>
+      </div>
+
+      ${section('证据等级', '强 / 中 / 弱 三级')}
+      <div class="lv">
+        <div class="lvc"><div class="lh"><span class="ln">强</span><span class="lv2">${lvH - lvMid}</span></div><div class="ld">有原文出处,来源可独立核对。</div></div>
+        <div class="lvc"><div class="lh"><span class="ln">中</span><span class="lv2">${lvMid}</span></div><div class="ld">有原文出处,但来源单一或无法交叉验证。</div></div>
+        <div class="lvc"><div class="lh"><span class="ln">弱</span><span class="lv2">${lvLow}</span></div><div class="ld">仅二手转述或综合印象,无原话可查。</div></div>
+      </div>
+      <div class="foot">未评级 ${lvNone} 张。等级按来源可核对性判定,不代表结论正确性;证据弱不等于结论错,只说明还不足以支撑决策。</div>
+
+      ${section('验证任务', `共 ${V.length} 项`)}
+      <table class="tbl">
+        <thead><tr><th>任务</th><th>所属项目</th><th>状态</th></tr></thead>
+        <tbody>${taskRows.length ? taskRows : html`<tr><td colspan="3" style="color:var(--kf-ink-3)">当前筛选下没有验证任务。</td></tr>`}</tbody>
+      </table>
+      <div class="foot">显示 ${Math.min(8, V.length)} / ${V.length} 项。</div>
+
+      ${section('证据缺口', '这是最该优先补的三件事')}
+      <div class="foot" style="font-size:13px;line-height:1.9;color:var(--kf-ink-2)">
+        1. <b style="color:var(--kf-ink)">${openQ} 条</b>未决问题还没有答案,卡在证据不足,不是卡在判断。<br>
+        2. <b style="color:var(--kf-ink)">${O.length - scored} 张</b>机会卡尚无评分,无法横向比较优先级。<br>
+        3. 所有机会点目前均为假设:现有证据只能支撑「值得试」,不能支撑「一定成」。
+      </div>`;
+  }
+}
+
+customElements.define('view-review', ViewReview);

+ 208 - 0
src/services/sample-data.js

@@ -0,0 +1,208 @@
+/**
+ * services/sample-data.js —— 五端模拟视图的独立数据服务(仅演示)。
+ *
+ * 隔离原则(重要):
+ *   1. 数据源是 preview-seed.json(334 条基线),不读线上、不读生产库。
+ *   2. 一切写入(改状态 / 评分 / 评论)只落在内存 + 独立 localStorage 命名空间
+ *      `kf-sample::`,绝不调用 /classes/* 或 /api/functions。
+ *   3. 与 board-service 暴露同名方法,页面可以复用同一套交互组件,
+ *      但底层不是生产写路径 —— 这是为了「抽屉能点,但不会动线上数据」。
+ *   4. 提供 resetSample() 一键还原,演示前可清场。
+ */
+const SEED_URL = new URL('../../data/preview-seed.json', import.meta.url).href;
+const LS_KEY = 'kf-sample::mutations::v1';
+export const SAMPLE_DATASET_VERSION = 'ksf.innovation-preview-seed.v1';
+export const SAMPLE_BASELINE_COUNT = 334;
+
+let seedCache = null;
+let seeded = null;
+/** 模块级共享引用:视图加载后写这里,抽屉直接读,避免事件时序问题 */
+let currentModel = null;
+export function setCurrentModel(m) { currentModel = m; }
+export function getCurrentModel() { return currentModel; }
+
+/** 读种子(浏览器端缓存;失败抛错,不兜底造数据) */
+export async function loadSeed() {
+  if (seedCache) return seedCache;
+  const res = await fetch(SEED_URL, { cache: 'no-cache' });
+  if (!res.ok) throw new Error(`种子读取失败 HTTP ${res.status}`);
+  seedCache = await res.json();
+  return seedCache;
+}
+
+/** 本地改动(状态 / 评分 / 评论),命名空间隔离,可清空 */
+function readMutations() {
+  try { return JSON.parse(localStorage.getItem(LS_KEY) || '{}'); } catch { return {}; }
+}
+function writeMutations(m) {
+  localStorage.setItem(LS_KEY, JSON.stringify(m));
+}
+export function resetSample() {
+  localStorage.removeItem(LS_KEY);
+}
+export function hasSampleMutations() {
+  return Object.keys(readMutations()).length > 0;
+}
+
+/**
+ * 把种子适配成界面模型(五端统一用这一份)。
+ * 只做字段改名与派生,不改数量、不引入种子外的对象。
+ */
+export function adaptSeed(seed) {
+  if (seeded) return seeded;
+  const mut = readMutations();
+
+  const groups = (seed.groups || []).map((g) => ({
+    id: g.id, name: g.name || g.id,
+    memberIds: g.memberIds || [], projectIds: g.projectIds || [],
+  }));
+
+  // 成员:种子里没有 stuck / stagesSubmitted 字段 —— 不造。
+  // 「交付了哪些阶段」由 reports 按 groupId + stageCode 实算(见下方 reportsByGroup)。
+  const members = (seed.members || []).map((m) => ({
+    id: m.id, name: m.displayName || m.name || m.id,
+    role: m.role || '', groupId: m.groupId || '',
+    aiFamiliarity: m.aiFamiliarity || '',
+  }));
+
+  // 机会卡:状态/评分以本地改动为优先(仅演示)
+  const opportunities = (seed.opportunities || []).map((o) => {
+    const patch = mut.opportunities?.[o.id] || {};
+    const scores = patch.scores || o.scores || [];
+    const n = scores.length;
+    const avg = n ? Math.round(scores.reduce((s, x) => s + (Number(x.score) || 0), 0) / n * 10) / 10 : null;
+    return {
+      id: o.id,
+      title: o.title || '(未命名)',
+      oneLiner: o.oneLiner || o.demandSummary || '',
+      demandSummary: o.demandSummary || '',
+      status: patch.status || o.status || 'candidate',
+      statusRaw: patch.status || o.status || 'candidate',
+      stageCode: o.stageCode || '',
+      category: o.category || '',
+      usageScenario: o.usageScenario || '',
+      targetAudience: o.targetAudience || '',
+      claimKind: o.claimKind || 'hypothesis',
+      priority: o.priority || '',
+      evidenceIds: o.evidenceIds || [],
+      quoteCount: o.quoteCount != null ? o.quoteCount : (o.evidenceIds || []).length,
+      citeCount: o.citeCount || 0,
+      projectId: o.projectId || '',
+      groupId: o.groupId || '',
+      ownerName: o.ownerName || '',
+      scores,
+      stats: n ? { n, avg, min: Math.min(...scores.map((s) => Number(s.score))), max: Math.max(...scores.map((s) => Number(s.score))), latest: scores[n - 1] } : null,
+      decision: o.decision || null,
+      decisionLog: o.decisionLog || [],
+    };
+  });
+
+  // 项目:阶段 / 状态用种子原值
+  const projects = (seed.projects || []).map((p) => ({
+    id: p.id,
+    title: p.title || p.name || '(未命名项目)',
+    groupId: p.groupId || '',
+    ownerMemberId: p.ownerMemberId || '',
+    ownerName: (seed.members || []).find((x) => x.id === p.ownerMemberId)?.displayName || '',
+    targetPrice: p.targetPrice || null,
+    enterpriseApproval: !!p.enterpriseApproval,
+    formalReportPublished: !!p.formalReportPublished,
+    stageCode: p.stageCode || '',
+    stage: { code: p.stageCode || '', label: p.stageLabel || p.stageCode || '' },
+    progressState: p.progressState || p.state || '',
+    stateLabel: p.stateLabel || '',
+    usageScenario: p.usageScenario || '',
+    knownRisk: p.knownRisk || '',
+    questionIds: p.questionIds || [],
+    artifactIds: p.artifactIds || [],
+    opportunityId: p.opportunityId || '',
+  }));
+
+  const sources = (seed.sources || []).map((s) => ({
+    id: s.id, title: s.title || '(未命名来源)',
+    platform: s.platform || '', authorLabel: s.authorLabel || '',
+    verificationState: s.verificationState || '', kind: s.kind || '',
+  }));
+
+  const evidence = seed.evidence || [];
+  const reports = (seed.reports || []).map((r) => ({
+    id: r.id, title: r.title || '', stageCode: r.stageCode || '',
+    projectId: r.projectId || '', groupId: r.groupId || '',
+    dataMode: r.dataMode || 'demo_only', version: r.version || 1,
+  }));
+
+  const questions = (seed.questions || []).map((q) => ({
+    id: q.id, text: q.text || q.title || '', projectId: q.projectId || '', status: q.status || 'open',
+  }));
+
+  const validationTasks = (seed.validationTasks || []).map((v) => ({
+    id: v.id, projectId: v.projectId || '', state: v.state || '', title: v.title || '',
+  }));
+
+  const actual = seed.actualSeedCounts || {};
+  const baselineCount = ['groups','members','ideas','sources','evidence','opportunities','projects','conceptVersions','reports','questions','validationTasks','assignments']
+    .reduce((n, k) => n + (Array.isArray(seed[k]) ? seed[k].length : 0), 0);
+
+  // 按组×阶段实算交付情况(种子无 stagesSubmitted,这是唯一的真实来源)
+  const reportsByGroup = {};
+  const reportsByStage = {};
+  for (const r of reports) {
+    const g = r.groupId || '未分组';
+    reportsByGroup[g] = reportsByGroup[g] || { total: 0, stages: {} };
+    reportsByGroup[g].total += 1;
+    reportsByGroup[g].stages[r.stageCode] = (reportsByGroup[g].stages[r.stageCode] || 0) + 1;
+    reportsByStage[r.stageCode] = (reportsByStage[r.stageCode] || 0) + 1;
+  }
+
+  // 半场作业状态(assignments 真实字段)
+  const assignments = (seed.assignments || []).map((a) => ({
+    id: a.id, groupId: a.groupId || '', halfDay: a.halfDay || 1,
+    state: a.state || '', reportIds: a.reportIds || [],
+    deliverableTypes: a.deliverableTypes || [],
+  }));
+
+  seeded = {
+    datasetVersion: seed.version || SAMPLE_DATASET_VERSION,
+    reportsByGroup, reportsByStage, assignmentsReal: assignments,
+    baselineEntityCount: baselineCount,
+    groups, members, opportunities, projects, sources, evidence, reports, questions, validationTasks,
+    ideas: seed.ideas || [], conceptVersions: seed.conceptVersions || [], assignments: assignments,
+    projectStageCounts: seed.projectStageCounts || {}, projectStateCounts: seed.projectStateCounts || {},
+    actualSeedCounts: actual,
+    opportunityById: Object.fromEntries(opportunities.map((o) => [o.id, o])),
+  };
+  return seeded;
+}
+
+/** 便捷:加载 + 适配 */
+export async function loadSampleModel() {
+  const seed = await loadSeed();
+  return adaptSeed(seed);
+}
+
+/**
+ * 模拟写操作(与 board-service 同名同形,但只写本地命名空间)。
+ * 调用方:详情抽屉在模拟模式下注入本对象,替代生产 boardService。
+ */
+export const sampleWriter = {
+  mode: 'sample',
+  setOpportunityStatus(id, status, { by = '演示', reason = '' } = {}) {
+    const m = readMutations();
+    m.opportunities = m.opportunities || {};
+    m.opportunities[id] = { ...(m.opportunities[id] || {}), status, by, reason, at: new Date().toISOString() };
+    writeMutations(m);
+    seeded = null;
+    return { changed: true, scope: 'sample' };
+  },
+  rateOpportunity(id, { user = '演示', score, comment = '' }) {
+    const m = readMutations();
+    m.opportunities = m.opportunities || {};
+    const rec = m.opportunities[id] || {};
+    const scores = (rec.scores || []).filter((s) => s.user !== user);
+    scores.push({ user, score: Number(score), comment, at: new Date().toISOString() });
+    m.opportunities[id] = { ...rec, scores };
+    writeMutations(m);
+    seeded = null;
+    return { scope: 'sample', n: scores.length };
+  },
+};

+ 5 - 0
src/utils/router.js

@@ -20,6 +20,11 @@
  */
 export const ROUTES = [
   { name: 'workbench', path: '/' },
+  { name: 'cockpit', path: '/cockpit' },
+  { name: 'intel', path: '/intel' },
+  { name: 'coop', path: '/coop' },
+  { name: 'review', path: '/review' },
+  { name: 'class', path: '/class' },
   { name: 'pool', path: '/pool' },
   { name: 'mode', path: '/pool/:id' },
   { name: 'stages', path: '/stages' },