/** * ACT-WORK-05 差异评估的技能 —— 载方法,不载权力。 * 剧本写「这一步做什么、写哪几列」,技能写「为什么这么判、拿不准时按哪条走」。 */ import { skillIdSchema } from '@contracts'; import type { Skill } from '@contracts'; export const ASSESSMENT_SKILLS: Skill[] = [ { id: skillIdSchema.parse('substitution.normalize-parameters'), label: '把多来源资料整成可比对的标准参数对照表', applicability: '输入确认之后、逐项比对之前:原 PN 与每个候选的参数集要摆成同名同单位的一对一。', method: [ '参数集是独立子表 `parts.parameter`(P-08 的结构子表),一行一参数,按 `internal_pn` 归属主记录:列是 param_name / param_value / param_unit / constraint_type / param_note。', '对照表按**原 PN 名下的那几行参数名**为骨架:原 PN 有的参数,候选名下没有同名那一行 → 候选值写「未披露」(它会成为 UNKNOWN);', '候选多出来的参数不比(比对只回答「能不能替」,多出来的能力不构成差异)。', '单位以原 PN 那一行的 param_unit 为准:候选单位不同先换算(mV→V、kHz→MHz),换算不了就不改值、在说明里写明 —— 不许静默改数。', '约束类型以原 PN 那一行的 constraint_type 为准;原 PN 没标的按 GOV 口径:封装 / 工艺 / 电气边界(电压 / 电流 / 温度 / 阈值)一律 hard,其余 soft。', '**缺参数不得伪造**:查不到的写「未披露」,不写估计值、不写「约」。', ].join('\n'), crystallized: [], knowledgeRefs: ['标准化参数子表结构', '硬/软约束口径'], version: '1.0.0', }, { id: skillIdSchema.parse('substitution.difference-judgement'), label: '逐项四态由工具算,证据与影响由你写', applicability: '对照表齐了,要出 MATCH / MISMATCH / UNKNOWN / CONDITIONAL 时。', method: [ '四态**不许自己判**:调 `part-substitution-assessment.compare-parameters`,把每个候选的全部参数对一次性传进去(candidates 数组,一次一批)。', '每对参数都带 `evidenceRef`(值从哪份记录来:「P-08」「P-10 Rev H §6.5」「数据工单 <单号> · 确认人 <人>」)——硬约束没有证据引用,工具不判 MATCH。', '客户在应用场景里给了边界(如「输入上限 40V」)就写进那一对的 `requirement`(`>= 40`),候选不满足直接 MISMATCH。', '工具出参照抄进 `substitution.difference_item`:difference_status / compare_result / risk_level 一字不改;', '`impact_statement` 你写:MATCH 写「无」,其余说清对应用 / 验证 / 报价的影响;UNKNOWN 必须写 `unknown_disposition`(挂验证任务号或补来源动作),不许悬空。', '推荐等级同样由工具定(`part-substitution-assessment.recommend`,传每个候选的 counts),`recommendation_reason` 照工具的 reason 扩写,不许把不推荐改成推荐。', ].join('\n'), crystallized: [], knowledgeRefs: ['四态口径', '推荐等级四档'], version: '1.0.0', }, { id: skillIdSchema.parse('substitution.landing'), label: '落账只写分析层,客户批准不碰', applicability: '审核通过之后拟 P-11 / 回写 P-01 时。', method: [ '`analysis_status` 从 `ai_draft` 推到 `fae_confirmed`;`customer_approval_status` 由独立审批流维护 —— 本活动**没有这一列的写权**,写了会被拒。', 'P-01 回写五项:risk_level(取各候选里最高的)、verification_requirement(把所有验证任务号列全)、output_ref(替代分析报告号)、next_action(「提交 ACT-GATE-03 评审放行」)、current_stage 写 `gate03`。', '规则版本随结论落账:每条 P-11 主记录与差异明细都写 rule_version(工具出参的 ruleVersion),中途规则更新不影响进行中的评估。', '被打回重做时改的是**台账本身**(理由 / 依据 / 去向),不是把同一份原样再递一遍。', ].join('\n'), crystallized: [], knowledgeRefs: ['analysis_status 与 customer_approval_status 分离'], version: '1.0.0', }, ];