/** * A2 技能 —— 替代选型 MVP 简化形的方法经验(AM 08)。 * * **载方法,不载权力**:这里提到的工具都在本活动白名单内;技能不扩权、不改约。 * 渐进披露:常驻上下文只有 `id label:applicability`,正文 Agent 说要才加载。 * * 剧本改了口径,技能里同一句也要跟着改(A1 的账)—— 2026-08-02 改盘后: * 选型的实质工作在 FAE 系统外,系统管归一 / 组卡 / 判稳; * 旧的「圈替代候选(三层筛)」讲的是 FAE 脑子里的方法,系统不替他办,删。 */ import { skillIdSchema } from '@contracts'; import type { Skill } from '@contracts'; export const ALTERNATIVE_SKILLS: Skill[] = [ { /* * 这条讲的是**组卡与核验时的选型口径**(FAE 的实质工作在系统外,但卡面指导书、 * basis 的取舍、收回后的核验都要按同一把尺)—— 2026-08-02 用户指出执行件 * 不是选型工作台后,连同工作单一起补回。 */ id: skillIdSchema.parse('alternative.grade-discipline'), label: '替代等级与三层筛', applicability: '组选型执行单、核验 FAE 填回的定案、或放行前裁量来源可溯时。', method: [ '三层筛,一层比一层贵,按顺序(组卡的 steps 与核验都照它):', '① 参数硬指标:封装、引脚、电气、温度等级 —— 不满足直接淘汰,不必往下看;', '② 认证与合规:车规 AEC-Q100/Q200、医疗、工业等级不可降级替代,客户没明说也不行;', '③ 供应与价格:生命周期在产、货态、品牌接受度 —— 到这一步才比价。', '', '等级三码(照 MVP 素材对标表的口径,写别的码基座数不出来):', '· P2P = 同封装同引脚可直换 —— 必须核对过五项:封装尺寸/引脚定义/电气/温度等级/认证;', ' 同封装不等于同引脚定义,要对数据手册,不要信分销商一句话(这个错要到打样才暴露);', '· FUNC = 功能兼容,需外围电路或 layout 调整 —— 差异项与改动评估必须写清;', '· OTHER = 部分兼容须打样验证 —— 关键差异逐项列出、给验证方案。', '', '客户备注里已预授权的替代优先采信;点名禁用的品牌不得作候选;', '是否接受非原厂品牌、参数降级必须问客户,不得替客户决定。', ].join('\n'), crystallized: [], knowledgeRefs: ['docs/MVP示例工作流.html §1.5(替代等级/初选核险/圈选替代)'], version: '1.0.0', }, { id: skillIdSchema.parse('alternative.normalize-roster'), label: '归一询价受理清单', applicability: '开案第一步:把上游受理记录(或单飞需求)整份落成本活动的清单时。', method: [ '上游载荷里 `records` 是**全部落地行混在一起**的一份 —— 同一颗料出现两三次:', '带 eau/brand/target_price 的是受理记录行(以它为准),带 basis/history_days 的是', '分类表行,带 line_total 这类总数的是结论行(不是料,别落进清单)。', '**按 pn 归并**,一颗料一行,一拍写完(rows 收数组)。', '', '三条纪律:', '① **PN 一个字符不许改**;上游没给的列留空字符串,绝不写 0 顶空。', '② orig_type 与 type_tag 两列**同一个值起步**(照上游的标):原标是留痕,现标才是本活动的产物。', '③ 单号 rfq_ref 原样承继;单飞认不出才造「ALT-<型号或类型>」,造完从头用到尾。', ].join('\n'), crystallized: [], knowledgeRefs: ['docs/MVP示例工作流.html §1.5'], version: '2.0.0', }, { id: skillIdSchema.parse('alternative.reclass-stable'), label: '替代料判稳转标', applicability: 'FAE 填回替代料之后,要把 C 类行转成 A/B 时。', method: [ '判稳的尺与三分类 P-03 的 A/B 两行**同一把**:', '历史价 ≤ 90 天且行情稳 → 转 A(行情完备,可直接取历史锚点);否则 → 转 B(要去寻源补价)。', '', '判据从 `crm.history-price-read` 来:**参数 pns 收数组,所有替代料一次传完**。', '没历史回 historyDays=9999、hit=false —— **那本身就是判据**(新料无历史 → 不稳 → B),', '不是缺数据,不必替它补。工具回的 lifecycle 若是 EOL/缺货/要求替代,', '说明替代料选错了 —— 不转标,当替代未果处置。', '', '转标写回清单行时:type_tag 只写 A 或 B(照规则,不许臆断);', '依据一句话落 basis 列(「替代料 X 历史价 N 天·行情稳 → 转 A」),逐条可回核;', 'orig_type 不动。**不许为过判据改标** —— 判据读的是基座按值现数的条数,你改不动。', ].join('\n'), // 结晶片段:查替代料行情这一步每单都一样 —— 确定性子序列,不必每次让模型重想 crystallized: [{ tool: 'crm.history-price-read', input: { pns: 'pns' } }], knowledgeRefs: ['三分类规则 P-03(A/B 两行)'], version: '2.0.0', }, ];