| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- {
- "schema": "ksf.workshop.loop-verify.v1",
- "at": "2026-11-09T00:40:00+08:00",
- "scope": "真实业务成果保存→编号回读→看板→浏览器 闭环",
- "verdict": "PASS",
- "chain": [
- {
- "step": 1,
- "name": "保存",
- "result": "PASS",
- "evidence": {
- "artifactId": "c5vzRWqux6",
- "sourceId": "8RgNyujlzh",
- "sessionId": "btrFqkz0yw",
- "stageCode": "S1",
- "artifactType": "category_report",
- "dataMode": "live",
- "boardVisible": true,
- "formalReportPublished": false,
- "employeeConfirmed": false
- }
- },
- {
- "step": 2,
- "name": "编号回读",
- "result": "PASS",
- "evidence": {
- "objectId": "c5vzRWqux6",
- "title": "康师傅即食面品类全景(业务闭环复验)",
- "stageCode": "S1",
- "workshopKey": "KSF-真实资料-20261102-01",
- "createdAt": "2026-11-08T16:30:39.639Z",
- "executiveCount": 4,
- "chapters": [
- "本节问题与资料范围",
- "实际数据",
- "口径与限制",
- "缺口与下一步"
- ]
- }
- },
- {
- "step": 3,
- "name": "看板公开数据",
- "result": "PASS",
- "evidence": {
- "endpoint": "ksfGetPublicBoard",
- "artifactFoundInPublicList": true,
- "sourceFoundInPublicList": true,
- "artifactTotal": 48,
- "pages": 2,
- "ownerName": "用户8108",
- "uploadedByKey": "participant:b9476fe0649d763e13c1cf85bff3da237eecb2f0aea719f3425d5f94a7921104",
- "agentName": "王刚001",
- "dashboardState": "workshop",
- "dashboardCardId": null
- }
- },
- {
- "step": 4,
- "name": "浏览器打开核对",
- "result": "PASS",
- "evidence": {
- "url": "https://kangshifu.fmode.cn/report/c5vzRWqux6",
- "title": "🐴 康师傅 · 产品创新看板",
- "rendered": true,
- "shadowDOMPath": "kf-app > view-report > kf-glass-card",
- "observed": [
- "报告标题",
- "4章节",
- "4张表(品类/平台/品牌)",
- "报告摘要",
- "数据值 505/117/23.2%/304",
- "归属:用户8108 · 会话上传 · 王刚001 · 品类分析"
- ]
- }
- }
- ],
- "rootCauseCorrected": {
- "earlierClaim": "上一轮判为 employeeAccountsProvisioned=false 导致无法写入",
- "actualRootCause": "save 的 report 结构不符合约定:executive 须为数组、chapters 须含 id/stage/sections,sections 用 kind:para|longtable|table。我此前用了字符串 executive 和 blocks 字段,服务端校验拒绝并返回 VALIDATION_FAILED。",
- "proof": "按 references/workshop-tasks.md 结构重写后一次保存成功,artifactId=c5vzRWqux6",
- "employeeAccountsProvisionedStillFalse": true,
- "note": "employeeAccountsProvisioned=false 仅影响企业微信通讯录实名同步(employeeIdentity.status=pending, reason=WECOM_DIRECTORY_NOT_CONFIGURED),不阻断成果保存与看板展示。"
- },
- "identityAudit": {
- "derivationRule": "participant-account = sha256(canonical({kind:'wecom_aibot_sender',platform,scopeId,id})); workshopParticipantKey = 'participant:'+sha256(canonical([workshopKey, participantProfileKey]))",
- "recomputed": {
- "participantAccount": "participant-account:f83edd27dda7e0989a0d313c158314043fd129efb86b8f6a07db8140033c5708",
- "workshopParticipantKey": "participant:b9476fe0649d763e13c1cf85bff3da237eecb2f0aea719f3425d5f94a7921104",
- "agentAccount": "agent-account:7c9f85363ca4c5a529a5b363308b065998924e2394e846145a5c62c904506d2e"
- },
- "matchRemoteSession": {
- "agentKey": "MATCH",
- "participantKey": "MATCH"
- },
- "correction": "上一轮误把 employeeProfileKey 与 workshopParticipantKey 当成同一字段,误判为归属不一致。二者按规则各自独立,互不覆盖,实际均匹配。"
- },
- "rawErrors": [
- {
- "step": "workshop-start(仅participant)",
- "code": "CHANNEL_AGENT_MISMATCH",
- "rootCause": "缺 conversation.channel=wecom;ksf-workshop.mjs:48 要求 scopeId==accountId 且 platform=wecom 且 conversation.channel=wecom"
- },
- {
- "step": "workshop-save(blocks结构)",
- "code": "VALIDATION_FAILED",
- "remoteFunction": "ksfSaveWorkshopTask",
- "rootCause": "report 结构不符约定"
- },
- {
- "step": "workshop-save(缺sessionId)",
- "code": "VALIDATION_FAILED",
- "remoteFunction": "ksfGetRecord",
- "rootCause": "前置查重读 KfSession 失败"
- },
- {
- "step": "project-status(无projectId)",
- "code": "VALIDATION_FAILED",
- "remoteFunction": "ksfGetWorkshopProject",
- "rootCause": "缺 projectId,本项目未立项"
- }
- ],
- "rawErrorNote": "远端原始响应体被入口按设计脱敏(ksf-workshop.mjs:122 仅输出 code/remoteFunction/remoteResponseReceived),未改代码绕过;code 本身即远端 errors[0].code。",
- "boundaries": {
- "serviceRestarted": false,
- "paidCalls": 0,
- "collected": false,
- "testReportCreated": false,
- "databaseSchemaChanged": false,
- "authChanged": false,
- "accountProvisioned": false,
- "writesThisRound": [
- "KfArtifact c5vzRWqux6",
- "KfSource 8RgNyujlzh"
- ],
- "note": "本轮唯一业务写入即本次验收成果,无其他写库动作。"
- },
- "notVerified": [
- "正式报告发布(formalReportPublished=false,本轮未走 formal-report 确认流程)",
- "员工实名(employeeConfirmed=false,WECOM_DIRECTORY_NOT_CONFIGURED)",
- "机会卡/项目/方案保存(本轮只验 category_report 一条链)",
- "移动端视口渲染(只在 1280x720 桌面视口核对)"
- ]
- }
|