Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FJcX8A6TWp4GRs41TYryEh
33 KiB
数据域字段说明 —— ACT-WORK-05 差异评估
对应设计中心 → 数据域「ACT-WORK-05 · 差异评估」分组。字段以活动清单的台账声明为准 (
activities/part-substitution-assessment/src/manifest.ts的declarations.ledger); 主数据六张(customer.profile/parts.profile/parts.document/demand.request/substitution.relation+difference_item/validation.record)的物理结构由平台基线apps/api/src/app/seed-mvp-data.ts的MASTER_OBJECTS物化(字段名与《SS02-SS03-SS04_Demo 台账字段细化与统一方案》§4.2 一字不差),声明合并对基线是纯 add-column: 活动只追加自己要用的列与标记(required / tally / refersTo / requiredWhen / distinct), 不改基线已有列的语义。那份声明同时是授权面:没声明的列写不进去,也不会出现在件上、 判据里、数据域的活动分组里。
怎么读这份文档
- ★ = 重点字段。每张表挑 5–8 个,在「重点字段」小节里按重要程度从高到低排; 数据结构表里在列名后打 ★。
- 【人填】= 人在活动过程中亲手填、提交后入库的字段(执行工单 / 数据工单的件上编辑, 或数据录入卡)。这类字段一律进重点:它们是这一单里唯一不能靠 AI 补出来的事实。
- 「写入者」一栏的口径与「约束」一栏的词表,与
docs/数据域字段说明-E04-I01.md「怎么读这份文档」是同一套,不重复抄一遍:人(件上)/ 人(录入卡)/ AI / 工具 / 基座 / 承继;主键 / 自增 / 必填 / 建议填 / 取值域 / 引用 / 去重计数 / 脱敏。 requiredWhen 类字段(某一列到某个值才必填)统一写「条件必填 · <字段>=<值> 时」—— 与 E04-I01 的「发布时必填」是同一种约束机制,ACT-WORK-05 的触发条件不止「发布」一种, 所以逐列写清条件,不套用那个专用词。 - ACT-WORK-05 比 E04/I01 多两种「写入者」写法,单列在这里:
- AI(据人的意见改) —— S4 审核决策卡驳回、T_release 打回重做时,人写的是自然语言意见, 不是结构化字段值;基座按字面比对定位到哪一行,AI 照意见改那一行的具体列(同 PK 覆盖写), 意见本身不落进任何一张台账的某一列。
- AI(抄自 input_gap.supplement) ——
demand.request的application_scenario/bom_position两列,人是在sub_eval.input_gap的「补充内容」列作答,S1 收口那一拍才由 AI 抄进 P-01;人没有直接编辑过demand.request本身。
一览
| 全景 | 台账地址 | 人读名 | 性质 | 本活动用到的列 | 人填列 |
|---|---|---|---|---|---|
| L-02 | customer.profile |
客户档案 | 主数据 · 共享 | 4 | 3(录入卡,仅新客户) |
| P-08 | parts.profile |
芯片主数据 | 主数据 · 共享 | 12 | 12(数据工单件上) |
| P-10 | parts.document |
原厂技术资料库 | 主数据 · 共享 | 9 | 9(数据工单件上) |
| P-01 | demand.request |
客户需求主记录 | 主数据 · 共享 | 17 | 0(应用场景 / BOM 位经执行单由 AI 抄入) |
| P-11 | substitution.relation |
替代关系主记录 | 主数据 · 共享 | 17 | 0(只审不改) |
| P-11 子 | substitution.difference_item |
差异明细 | 主数据 · 共享 | 15 | 0 |
| P-06 | validation.record |
芯片验证记录 | 主数据 · 共享 | 8 | 0(只写验证要求) |
| — | sub_eval.pn_check |
料号存在性核对 | 本活动工作台账 | 6 | 0(决策卡定放弃) |
| — | sub_eval.input_gap |
评估输入清单 | 本活动工作台账 | 8 | 3(补充内容 / 加行) |
| — | sub_eval.verdict |
本次评估结论 | 本活动工作台账 | 14 | 0 |
九步(0.5 拆两项数据工单):绑定与存在性核对(S0_bind)→(等待数据:S0d_p08_master → S0d_p10_document,人)→ 人补评估输入(S1_input_confirm)→ 标准化对照表(S2_normalize)→ 逐项评估(S3_assess)→ 人审结论(S4_review,可循环)→ 拟落账(S5_prepare_landing)→ 人放行(T_release)。四道人环里 S0d_p08_master / S0d_p10_document / S1_input_confirm 三道 往台账里写下人亲手填的事实,S4_review / T_release 两道是审核与签字(人写意见,AI 据意见改台账)。
一、customer.profile 客户档案(L-02 · 共享主数据)
本活动平时不建这张表,只在客户不在库(启动入参 customerCode 在 customer.profile
里查无记录)那一刻代行建档职责:S0_bind 发一张数据录入卡,人核对名称与行业区域后确认。
除此之外整个活动流程里再不碰这张表。
重点字段(按重要程度)
customer_code★ 主键 —— 值取自启动入参customerCode,AI 不许自编;人在录入卡上核对确认,不是自由填写name★【人填】必填 —— 无名档案进不了正式表(与 E04 同一条墙);customerName有给就 AI 预填,人核对industry★【人填】建议填 —— 所属行业,录入卡上从零填region★【人填】建议填 —— 区域,录入卡上从零填
数据结构
| 列名 | 人读名 | 类型 | 约束 | 写入者 | 说明 |
|---|---|---|---|---|---|
customer_code ★ |
客户编码 | text | 主键 | AI(抄入参 customerCode)/ 人(录入卡确认) | 老客户沿用,不经这张卡 |
name ★ |
客户名称 | text | 必填 | AI 预填(customerName)/ 人(录入卡) |
没传 customerName 就整格空着让人填 |
industry ★ |
所属行业 | text | 建议填 | 人(录入卡) | |
region ★ |
区域 | text | 建议填 | 人(录入卡) |
二、parts.profile 芯片主数据(P-08 · 共享主数据)
一张表:料号一行,标准化参数集是它的一个字段(一行一参数
参数名 | 值 | 单位 | hard/soft | 说明,值是「未披露」的进 UNKNOWN)。库里按 internal_pn
查无记录 → 发数据工单,人在工作区的件上从零建整条(可加行);有上传 datasheet 就
AI 先按文本预填、人核对,没有就人全填;确认落草稿层,T_release 放行时才与其余表一起并入
正式版。
重点字段(按重要程度)
internal_pn★【人填】主键 —— 全链路只认它,不可自由文本normalized_parameter_set★【人填】必填 —— 差异评估逐项比对的唯一输入;「未披露」进 UNKNOWNlifecycle_status★【人填】必填 · 取值域active/nrnd/eol/discontinued/riskpackage★【人填】必填 —— 硬约束specification_description★【人填】必填brand_name★【人填】必填datasheet_ref/datasheet_version★【人填】建议填(成对)—— 证据回链
数据结构
| 列名 | 人读名 | 类型 | 约束 | 写入者 | 说明 |
|---|---|---|---|---|---|
internal_pn ★ |
内部料号 | text | 主键 | 人(件上)/ 种子 | 已在库的候选(如样例里预播的 LM2596S-5.0)不经这张单 |
brand_name ★ |
品牌名称 | text | 必填 | 人(件上)/ AI 预填 | |
manufacturer_name |
制造商名称 | text | 建议填 | 人(件上) | 与品牌不一致时分开记 |
specification_description ★ |
规格描述 | text | 必填 | 人(件上)/ AI 预填 | |
normalized_parameter_set ★ |
标准化参数集 | text | 必填 | 人(件上)/ AI 预填 | 一行一参数,不建子表 |
package ★ |
封装 | text | 必填 | 人(件上)/ AI 预填 | 硬约束 |
process_technology |
工艺 | text | 建议填 | 人(件上) | 硬约束 |
lifecycle_status ★ |
生命周期状态 | text | 必填 · 取值域 | 人(件上,下拉) | |
eol_pcn_status |
EOL/PCN 状态 | text | 建议填 | 人(件上) | |
datasheet_ref ★ |
Datasheet 引用 | text | 建议填 | 人(件上)/ AI 预填 | |
datasheet_version ★ |
Datasheet 版本 | text | 建议填 | 人(件上)/ AI 预填 | 有引用就该有版本 |
application_scenarios |
适配应用场景 | text | 建议填 | 人(件上) |
三、parts.document 原厂技术资料库(P-10 · 共享主数据)
按 internal_pn 查无资料记录 → 发数据工单(与 P-08 那张分开,一张表一张单,
在 P-08 那张确认之后再发);S0d_p08_master 那一步先写骨架(document_type /
document_status / brand_name 三格能填就填),人在 P-10 数据工单的件上补齐其余列。
同一料号多份资料就多加几行,序号 01/02… 人自己续(不是自增列)。
重点字段(按重要程度)
document_ref★【人填】必填 —— 资料文件链接,差异评估的证据引用要指到它internal_pn★【人填】主键之一 —— 关联料号,与 P-08 同一个内部料号doc_seq★【人填】主键之一 —— 同一料号下 01/02… 人自己续号document_type★【人填】必填 · 取值域 ——datasheet/app_note/reference_design/white_paper/sample_doc/commitment_letter/otherdocument_title★【人填】必填document_version★【人填】必填document_status★【人填】必填 · 取值域valid/expired/pending/voidcitation_locator★【人填】建议填 —— 页码 / 章节 / 表格,证据定位精确到这里
数据结构
| 列名 | 人读名 | 类型 | 约束 | 写入者 | 说明 |
|---|---|---|---|---|---|
internal_pn ★ |
关联内部料号 | text | 主键之一 | 人(件上) | 与 P-08 那一行同一个键 |
doc_seq ★ |
资料序号(同一料号下 01/02…) | text | 主键之一 | 人(件上) | 不是自增列,人自己续号 |
document_type ★ |
资料类型 | text | 必填 · 取值域 | AI 预填骨架(S0d_p08_master)/ 人(件上,下拉) | |
brand_name |
品牌名称 | text | 建议填 | AI 预填骨架 / 人(件上) | |
document_title ★ |
资料标题 | text | 必填 | 人(件上) | |
document_version ★ |
资料版本 | text | 必填 | 人(件上) | |
document_ref ★ |
资料文件链接 | text | 必填 | 人(件上) | |
citation_locator ★ |
证据定位(页码/章节/表格) | text | 建议填 | 人(件上) | |
document_status ★ |
资料状态 | text | 必填 · 取值域 | AI 预填骨架(pending)/ 人(件上,下拉) |
四、demand.request 客户需求主记录(P-01 · 共享主数据)
S0_bind 新建 V1(客户 / 需求描述 / 原 PN 三项照入参原样落,启动时未收的 application_scenario
/ bom_position 先不写);S1_input_confirm 人在评估输入清单上把这两项的「补充内容」补上,
AI 收口那一拍原样抄回本表;S5_prepare_landing 放行前回写风险等级 / 验证要求 / 输出链接 /
下一步动作 / 当前阶段五项(current_stage = "gate03" 那一刻这五项转为必填)。本表没有一列
是人直接编辑的——人的手笔经由 sub_eval.input_gap.supplement 间接进来。
重点字段(按重要程度)
request_id★ 主键 —— 需求编号,与eval_ref用同一串时刻数字铸出customer_code★ 必填 · 引用customer.profile.customer_coderequest_description★ 必填 —— 客户需求原话,S0 落一次,不许改写original_internal_pn★ 必填application_scenario★ 建议填 —— 启动时未收,人在评估输入清单补的「补充内容」由 AI 抄进这一格(本表唯一带着人手笔的两列之一)bom_position★ 建议填 —— 同上risk_level★ 条件必填 ·current_stage=gate03时 —— 放行回写五项之一,取各候选风险最高档verification_requirement★ 条件必填 ·current_stage=gate03时 —— 列出挂的验证任务号
数据结构
| 列名 | 人读名 | 类型 | 约束 | 写入者 | 说明 |
|---|---|---|---|---|---|
request_id ★ |
需求编号 | text | 主键 | AI | REQ- + 案号数字串 |
customer_code ★ |
客户编码 | text | 必填 · 引用 customer.profile.customer_code |
AI | |
requirement_version |
需求版本 | text | 必填 | AI | 恒 V1 |
request_type |
需求类型 | text | 必填 | AI | 恒「技术需求」 |
request_description ★ |
需求描述 | text | 必填 | AI | 入参原话,不改写 |
input_snapshot_ref |
输入快照 | text | 必填 | AI | SNAP- + 案号数字串 |
original_internal_pn ★ |
原内部料号 | text | 必填 | AI | |
bom_position ★ |
BOM 位 | text | 建议填 | AI(抄自 sub_eval.input_gap.supplement) |
启动时未收 |
application_scenario ★ |
应用场景 | text | 建议填 | AI(抄自 sub_eval.input_gap.supplement) |
启动时未收 |
technical_constraints |
技术约束 | text | — | AI | 人加的 input_gap 行汇总成一句 |
risk_level ★ |
风险等级 | text | 条件必填 · current_stage=gate03 |
AI | 取各候选 risk_level 最高档 |
verification_requirement ★ |
验证/复测/确认要求 | text | 条件必填 · current_stage=gate03 |
AI | 列出所有挂的 VAL 号 |
request_status |
需求状态 | text | 必填 · 取值域 | AI | pending → responded |
current_activity |
当前 Activity | text | 条件必填 · current_stage=gate03 |
AI | 恒 ACT-WORK-05 |
current_stage |
当前阶段 | text | — | AI | assessing → gate03 |
next_action |
下一步动作 | text | 条件必填 · current_stage=gate03 |
AI | 恒「提交 ACT-GATE-03 评审放行」 |
output_ref |
标准输出链接 | text | 条件必填 · current_stage=gate03 |
AI | RPT- + 案号数字串 |
五、substitution.relation 替代关系主记录(P-11 · 共享主数据)
一个未放弃的候选一条:S2_normalize 写骨架(不含推荐/风险/摘要)、S3_assess 用两枚工具的
出参回填推荐等级与风险(AI 原样抄,不改一字)、S4_review 只审不改(人写意见,AI 据
意见改具体列)、S5_prepare_landing 把 analysis_status 推到 fae_confirmed。本活动没有
一列是人直接编辑的 —— 人的动作是通过 S4/T_release 的决策卡意见间接改台账。
重点字段(按重要程度)
substitution_relation_id★ 主键eval_ref★ 必填 —— 本活动新增列(基线没有),评估案号,与pn_check/verdict同一个eval_ref串联全单candidate_internal_pn★ 必填 · 引用parts.profile.internal_pnoriginal_internal_pn★ 必填 · 引用parts.profile.internal_pnrecommendation_level★ 必填 · 取值域recommended/conditional/alternate/not_recommended—— 工具算,AI 照抄不改一字analysis_status★ 必填 · 取值域 —— 分析层状态,S5 推到fae_confirmedrisk_level★ 必填 · 取值域low/medium/high/critical—— 工具算rule_version★ 必填 —— 随结论落账,锁定R-2026.07
数据结构
| 列名 | 人读名 | 类型 | 约束 | 写入者 | 说明 |
|---|---|---|---|---|---|
substitution_relation_id ★ |
替代关系ID | text | 主键 | AI | REL-<案号数字串>-01/02… |
eval_ref ★ |
评估案号 | text | 必填 | AI | 本活动新增列(基线没有) |
request_id |
关联需求编号 | text | 必填 | AI | |
bom_position |
关联 BOM 位 | text | 建议填 | AI | 照 demand.request 现值抄 |
original_internal_pn ★ |
原内部料号 | text | 必填 · 引用 parts.profile.internal_pn |
AI | |
candidate_internal_pn ★ |
候选内部料号 | text | 必填 · 引用 parts.profile.internal_pn |
AI | |
substitution_type |
替代类型 | text | 必填 · 取值域 | AI | pin_to_pin/functional/parametric/other |
recommendation_level ★ |
推荐等级 | text | 必填 · 取值域 | 工具(recommend)→ AI 照抄 |
|
recommendation_reason |
推荐理由 | text | 必填 | AI(可按人的驳回意见改) | 工具 reason 扩写成人话 |
difference_summary |
差异摘要 | text | 必填 | AI | 「7 项比对:4 MATCH / 1 MISMATCH / 1 UNKNOWN / 1 CONDITIONAL」句式 |
risk_level ★ |
替代风险等级 | text | 必填 · 取值域 | 工具(recommend)→ AI 照抄 |
|
verification_requirement |
验证要求 | text | 条件必填 · recommendation_level=conditional |
AI | 列出 VAL 号 |
validation_id |
关联验证ID | text | — | AI | |
analysis_status ★ |
分析状态 | text | 必填 · 取值域 | AI | ai_draft → fae_confirmed(其余三档本活动不写) |
analysis_report_ref |
替代分析报告 | text | 建议填 | AI | RPT-<案号数字串> |
confidence_score |
证据可信度 | number | 建议填 | AI | 取各行 confidence 最小值 |
rule_version ★ |
差异规则版本 | text | 必填 | AI | 锁定 R-2026.07 |
只读边界:基线在这张表上还建了
customer_approval_status/customer_approval_at/customer_approval_ref三列,由独立审批流维护;本活动的声明里没有这三列的写权 (禁令no-customer-approval-write)。落账确认那一屏那一格是静态文案 「未提交 · 由审批流程维护,本活动不产生」,不是可取值的data-slot——审批流做起来后才改成真读数(见docs/debt.md)。
六、substitution.difference_item 差异明细(P-11 子表 · 共享主数据)
一条参数一条记录。S2_normalize 按原 PN 的参数集写骨架(不含四态/影响)、S3_assess 第一拍
调 compare-parameters 拿到四态与风险后原样抄回 difference_status / compare_result /
risk_level,AI 自己只补写证据引用 / 影响说明 / UNKNOWN 去向;S4_review 驳回时人写的意见由
AI 定位到具体行后改 impact_statement / unknown_disposition / evidence_ref。
substitution_relation_id 标了 distinct,「几条关系已经有明细」就是数它的不同值数
(S2 收步、S3 收步都读这个数)。
重点字段(按重要程度)
substitution_relation_id★ 主键之一 · 去重计数 —— 「几条关系已有明细」就是数它的不同值difference_item_id★ 主键之一difference_status★ 必填 · 取值域match/mismatch/unknown/conditional—— 工具算,AI 原样抄compare_result★ 建议填 —— 本活动新增列(基线没有),工具出参原样存底,供复核constraint_type★ 必填 · 取值域hard/soft—— 决定这一项差异判得严不严evidence_ref★ 必填 —— 证据引用,验收判据「证据链可信」逐行核对它impact_statement★ 必填 —— MATCH 写「无」,其余写清对应用 / 验证 / 报价的影响unknown_disposition★ 条件必填 ·difference_status=unknown时 —— 本活动新增列(基线没有),UNKNOWN 的去向(挂验证任务号 / 补来源动作)
数据结构
| 列名 | 人读名 | 类型 | 约束 | 写入者 | 说明 |
|---|---|---|---|---|---|
substitution_relation_id ★ |
替代关系ID | text | 主键之一 · 去重计数 | AI | |
difference_item_id ★ |
差异明细ID | text | 主键之一 | AI | <关系id>-P01/P02… |
parameter_name |
标准参数名 | text | 必填 | AI | |
original_value |
原物料参数值 | text | 必填 | AI | |
candidate_value |
候选物料参数值 | text | 必填 | AI | 候选没有这个参数写「未披露」 |
parameter_unit |
参数单位 | text | 建议填 | AI | 以原 PN 为准 |
constraint_type ★ |
约束类型 | text | 必填 · 取值域 | AI | 原 PN 那一行的 hard/soft |
compare_result ★ |
比对结果(工具出参) | text | 建议填 | 工具(compare-parameters)→ AI 照抄 |
本活动新增列 |
difference_status ★ |
差异状态 | text | 必填 · 取值域 | 工具(compare-parameters)→ AI 照抄 |
|
impact_statement ★ |
影响说明(MATCH 写「无」) | text | 必填 | AI | |
unknown_disposition ★ |
UNKNOWN 去向(验证任务号 / 补来源动作) | text | 条件必填 · difference_status=unknown |
AI(可按人的驳回意见改) | 本活动新增列 |
risk_level |
风险等级 | text | 必填 · 取值域 low/medium/high |
工具(compare-parameters)→ AI 照抄 |
|
evidence_ref ★ |
差异证据引用 | text | 必填 | AI(可按人的驳回意见改) | |
confidence |
AI 置信度 | number | 建议填 | AI | 0~1 |
rule_version |
差异规则版本 | text | 必填 | AI | 锁定 R-2026.07 |
七、validation.record 芯片验证记录(P-06 · 共享主数据)
事实类表:本活动只在 S3_assess 给每个 UNKNOWN 差异项挂一行「验证要求」占位
(validation_status 恒写 not_started),不经数据工单建 —— 真正测完、写测试结果是
另一件事(下游活动或线下流程的事)。S4_review 驳回若要补验证任务,同样由 AI 加一行。
重点字段(按重要程度)
validation_id★ 主键validation_internal_pn★ 必填 · 引用parts.profile.internal_pnvalidation_status★ 必填 · 取值域 —— 本活动只写not_started(占位待测)next_validation_action★ 必填 —— 要测什么、什么条件validation_type★ 必填 · 取值域request_id★ 必填 —— 关联需求编号
数据结构
| 列名 | 人读名 | 类型 | 约束 | 写入者 | 说明 |
|---|---|---|---|---|---|
validation_id ★ |
验证ID | text | 主键 | AI | VAL-<案号数字串>-01/02… |
request_id ★ |
关联需求编号 | text | 必填 | AI | |
validation_internal_pn ★ |
验证内部料号 | text | 必填 · 引用 parts.profile.internal_pn |
AI | 候选 |
validation_type ★ |
验证类型 | text | 必填 · 取值域 | AI | 恒 pin_to_pin(本活动只挂这一种) |
validation_status ★ |
验证状态 | text | 必填 · 取值域 | AI | 恒 not_started |
test_condition |
测试条件 | text | 建议填 | AI | |
next_validation_action ★ |
后续验证动作 | text | 必填 | AI(可按人的驳回意见改) | 要测什么、什么条件 |
evidence_ref |
验证证据引用 | text | 建议填 | AI |
八、sub_eval.pn_check 料号存在性核对(本活动工作台账)
S0_bind 逐个料号(原 PN + 每个候选)在 parts.profile 里核对一遍写下的表:原 PN 一行、
候选各一行。exists_status 是这张表的核心结论 —— 两项数据工单的入场哨兵、S1 的入场哨兵
都读它。候选 ≥2 且不在库时,S0d_p08_master 发决策卡问放弃还是创建,人选的答案决定这一行
exists_status 改成 abandoned 还是等数据工单确认后改成 created。
重点字段(按重要程度)
exists_status★ 必填 · 取值域found/absent/created/abandoned—— 存在性检查的核心结论,S0d 两项与 S1 的入场哨兵都读它internal_pn★ 主键之一eval_ref★ 主键之一 —— 串联本单十张表的案号role★ 必填 · 取值域original/candidateabandon_reason★ 条件必填 ·exists_status=abandoned时 —— 人在决策卡选放弃、没写理由时,AI 补写「负责人本轮放弃(未注明原因)」
数据结构
| 列名 | 人读名 | 类型 | 约束 | 写入者 | 说明 |
|---|---|---|---|---|---|
eval_ref ★ |
评估案号 | text | 主键之一 | AI | |
internal_pn ★ |
内部料号 | text | 主键之一 | AI | |
role ★ |
角色 | text | 必填 · 取值域 | AI | original(恰一行)/ candidate |
exists_status ★ |
在库状态 | text | 必填 · 取值域 | AI | found(在库)→ 或 absent → created/abandoned(数据工单/决策卡确认后改) |
abandon_reason |
放弃原因 | text | 条件必填 · exists_status=abandoned |
AI(据人的决策卡选项改) | 人选放弃未写理由时 AI 补写默认句 |
note |
备注 | text | — | AI | 如「PCN 转 NRND」 |
九、sub_eval.input_gap 评估输入清单(本活动工作台账)
S1_input_confirm 一拍写全:已绑定四项(status=ok)、待补两项(应用场景/BOM 位,status=gap)、 默认可改三项(status=default)、逐颗候选「未披露」参数各一行(status=gap)、齐备项(原 PN 资料 版本,status=ok)。这张表是本活动唯一让人直接在件上补内容的执行工单载体:人在 「补充内容」列把 status=gap 的行填上答案,也可以加一行补充 AI 没列出的资料项、删一行标 「不适用」。
重点字段(按重要程度)
supplement★【人填】条件必填 ·status=gap时 —— 缺口行的答案,这一单里唯一不能靠 AI 补出来的事实status★ 必填 · 取值域gap/default/ok—— 决定哪一行必须有supplementitem_key★【人填,加行时】主键之一 —— 英文短键;已绑定 / 待补 / 默认 / 待确认各占一批行input_item★【人填,加行时】必填 —— 人读名,加一行 = 补充 AI 没列出的资料项origin★ ——ai/human-added,标出哪几行是人加的(与 E04candidate.origin同一口径)source_ledger★ 建议填 —— 缺口来自哪张台账(P-01/P-08/P-09/P-10)
数据结构
| 列名 | 人读名 | 类型 | 约束 | 写入者 | 说明 |
|---|---|---|---|---|---|
eval_ref |
评估案号 | text | 主键之一 | AI | |
item_key ★ |
输入项键 | text | 主键之一 | AI / 人(件上,加行时) | 英文短键,如 application_scenario |
input_item ★ |
输入项 | text | 必填 | AI / 人(件上,加行时) | 人读名 |
source_ledger ★ |
来源台账 | text | 建议填 | AI | |
status ★ |
状态 | text | 必填 · 取值域 | AI | gap(待补)/default(默认·可改)/ok(齐备) |
detail |
绑定值 / 缺口说明 | text | 建议填 | AI | |
supplement ★ |
补充内容 | text | 条件必填 · status=gap |
人(件上) | 唯一的人手笔答案 |
origin ★ |
来源(ai/human-added) | text | — | AI |
十、sub_eval.verdict 本次评估结论(本活动工作台账)
一单一行的收口结论,挂着几面「人环走到哪儿了」的记账旗 —— 它们是下一步能不能开工的哨兵
(与 E04 crm_coverage.verdict 同一种设计)。
重点字段(按重要程度)
input_confirmed_total★ —— 评估输入已确认(人环凭据),S2 标准化那一步的入场哨兵之一review_approved_total★ —— 差异结论已审核通过(仅通过时置一),S5 拟落账那一步的入场哨兵landing_prepared_total★ —— 拟落账已备好,T_release 放行门的入场哨兵summary★ —— 本次评估结论,归档件上的那段话relation_total★ —— 替代关系条数recommended_total/conditional_total/alternate_total/not_recommended_total★ —— 四档分布,归档件摘要与放行口assessment-released载荷都用它
数据结构
| 列名 | 人读名 | 类型 | 约束 | 写入者 | 说明 |
|---|---|---|---|---|---|
eval_ref |
评估案号 | text | 主键 | AI | |
request_id |
需求编号 | text | — | AI | |
rule_version |
规则版本 | text | — | AI | 锁定 R-2026.07 |
original_internal_pn |
原内部料号 | text | — | AI | |
candidate_total |
候选数 | integer | — | AI | 候选数组长度 |
input_confirmed_total ★ |
评估输入已确认 | integer | — | AI | 人环凭据 |
review_approved_total ★ |
差异结论已审核通过 | integer | — | AI | 人环凭据(仅通过时置一) |
landing_prepared_total ★ |
拟落账已备好 | integer | — | AI | S5 写完时置一 |
relation_total ★ |
替代关系条数 | integer | — | AI | |
recommended_total ★ |
推荐 | integer | — | AI | |
conditional_total ★ |
条件推荐 | integer | — | AI | |
alternate_total ★ |
备选 | integer | — | AI | |
not_recommended_total ★ |
不推荐 | integer | — | AI | |
summary ★ |
本次评估结论 | text | — | AI | 归档件上的那段话 |
十一、人填字段总表(按人办事的那一屏)
| 活动 · 屏 | 卡的形式 | 落进哪张表 | 人亲手填的列 |
|---|---|---|---|
| S0_bind · 新客户建档(仅客户不在库) | 数据录入卡(entry) | customer.profile |
name · industry · region(customer_code 由入参给,人核对) |
| S0d_p08_master · 候选放弃/创建抉择(候选≥2 且部分缺库) | 决策卡(decide) | 间接改 sub_eval.pn_check.exists_status |
选项值(create/abandon/custom:,不直接写字段) |
| S0d_p08_master · 数据工单·芯片主数据创建(P-08) | 执行工单(件上编辑 + 增删行) | parts.profile |
全部 12 列(internal_pn / brand_name / manufacturer_name / specification_description / normalized_parameter_set / package / process_technology / lifecycle_status / eol_pcn_status / datasheet_ref / datasheet_version / application_scenarios) |
| S0d_p10_document · 数据工单·原厂技术资料创建(P-10) | 执行工单(件上编辑 + 增删行) | parts.document |
全部 9 列(internal_pn / doc_seq / document_type / brand_name / document_title / document_version / document_ref / citation_locator / document_status) |
| S1_input_confirm · 评估输入与资料补齐确认 | 执行工单(件上编辑 + 增删行) | sub_eval.input_gap |
supplement(缺口行必填);加一行时另填 item_key / input_item |
| S4_review · 差异评估结论审核 | 决策卡循环(通过 / 驳回 + 意见) | 间接改 substitution.difference_item / substitution.relation / validation.record |
意见文本(AI 据此改 evidence_ref / impact_statement / unknown_disposition / recommendation_reason;推荐等级不许改) |
| T_release · 评审放行与落账确认 | 验收工单(签字,可打回重做) | parts.profile / parts.document / demand.request / substitution.relation + difference_item / validation.record 并入正式版 |
裁决与意见(打回后 AI 按意见改台账本身,不开新行) |
十二、在数据域里看这些表时的几条提醒
-
主数据是共享的,物理表里还有别的用途留下的列,本活动不写它们:
customer.profile还有grade/owner/payment_terms/credit_limit/profile_tags/status(报价链早先声明的客户主台账列)parts.profile还有customer_pn/pin_to_pin_relation_refparts.document还有document_date/source_contact_refdemand.request还有project_code/bom_id/customer_pnsubstitution.relation还有project_code,以及客户批准三列 +customer_feedback(见下条,单独说明只读边界)validation.record还有customer_code/test_parameters/test_result/issue_risk/sample_version/sample_lot—— 本活动只写「验证要求」占位阶段, 不写实测结果(那是真验证发生后才有的事实)。
记录浏览里看到它们空着是正常的;判断一列还算不算数,以活动清单的声明为准, 不以物理表结构为准。
-
本活动往两张主数据表新增了列(基线没有,声明里 add-column 长出来的):
substitution.relation.eval_ref(评估案号,串联本单十张表)与substitution.difference_item.compare_result/unknown_disposition(工具出参原样存底、UNKNOWN 去向)。这三列只对 ACT-WORK-05 生效,不影响其它活动 对这两张表的读写。 -
customer_approval_status是只读边界,不是本活动没做完:基线在substitution.relation上建了customer_approval_status/customer_approval_at/customer_approval_ref三列,由独立审批流维护;本活动的声明里没有这三列的写权 (禁令no-customer-approval-write)。放行前那一屏那一格是静态文案 「未提交 · 由审批流程维护,本活动不产生」,不是取值的data-slot(见docs/debt.md)。 -
parts.profile的标准化参数集是一个 text 列,不是子表:normalized_parameter_set存的是一行一参数的行语法「参数名 | 值 | 单位 | hard/soft | 说明」,四态比对工具的入参 都靠解析这段文本,不是关系型的多行记录 —— 用户当场定的口径,《SS02-SS03-SS04》 字面上写的 Structure / 子表在本平台落成这样(见docs/debt.md「参数集是 text 列的行语法」)。 -
数据工单是零输入执行工单 + 工作区可加行的件:料号在
parts.profile/parts.document里查无记录时,人从零建整条记录;确认落草稿层,T_release 放行那一刻 才与其余表一起并入正式版(平台铁律②:写只有草稿与意向,终局唯放行)。一张表一张单: P-08 一张、P-10 一张。 -
试跑单默认也落真库:与 E04 / I01 同一个开关(
sys.task.land_master,测试台起单 默认打开)—— 跑一遍活动,新建的客户档案、料号、资料记录都会真的进正式表;要它不落, 起单时显式关掉。
字段口径以 activities/part-substitution-assessment/src/manifest.ts 的
declarations.ledger 为准;六张主数据的物理结构见 apps/api/src/app/seed-mvp-data.ts 的
MASTER_OBJECTS;计划项与卡骨架见 activities/part-substitution-assessment/src/case-model.ts
的 ASSESSMENT_STEPS 与 NARRATIVE;业务设计源见 docs/SS02-ACT-WORK-05-html/
(活动流程与工单说明 / 一键启动入参说明)与《SS02-SS03-SS04_Demo台账字段细化与统一方案》。