/** * A3 技能 —— 寻源询价 MVP 简化形的方法经验(AM 08)。 * * **载方法,不载权力**;渐进披露:常驻上下文只有目录,按事加载正文。 * 剧本改了口径,技能里同一句也要跟着改 —— 2026-08-02 改盘后: * 询价的实质工作在 PRM 系统外,系统管归一 / 预填 / 组卡 / 齐检; * 旧的「按场景圈渠道」「该等还是该问」讲的是 PRM 脑子里的方法,系统不替他办,删。 */ import { skillIdSchema } from '@contracts'; import type { Skill } from '@contracts'; export const SOURCING_SKILLS: Skill[] = [ { id: skillIdSchema.parse('sourcing.normalize-roster'), label: '归一目标报价清单', applicability: '开案第一步:把上游清单(或单飞需求)整份落成目标报价清单时。', method: [ '上游载荷是**全部落地行混在一起**的一份:选型转来(`rows`)的清单行带 alt_pn 与现标,', '受理直达(`records`)的以受理记录行(带 eau/brand)为准;带总数的结论行不是料,别落。', '**按 pn 归并**,一颗料一行,一拍写完(rows 收数组)。', '', '三条纪律:', '① PN 一个字符不许改;上游没给的列留空字符串,绝不写 0 顶空。', '② type_tag 照上游现标承继,本活动不改类 —— 改类是上游的职权。', '③ 单号 rfq_ref 原样承继;单飞认不出才造「SRC-<型号或类型>」,造完从头用到尾。', ].join('\n'), crystallized: [], knowledgeRefs: ['docs/MVP示例工作流.html §1.7'], version: '2.0.0', }, { id: skillIdSchema.parse('sourcing.prefill-hist'), label: 'A 类按历史价预填基准', applicability: '清单落好后,要给 A 类行预填基准价时。', method: [ 'A 类的意思就是**库内历史价可用**(≤90 天且行情稳)—— 基准价直接取历史价,', '不必劳烦 PRM 再问一遍。调 `crm.history-price-read`:**pns 收数组一次传完**;', '**取价对象 = alt_pn 有值取 alt_pn,否则取 pn**(选型转来的 A 行,行情稳的是替代料)。', '', '出参逐行照抄:base_price = lastPrice、price_basis 写 HIST(大写,基座按值现数)。', 'hit=false 的 A 行**别编价** —— 留空当 B 类待询处理:上游打标与库内现状偶有出入,', '照实处理,不替谁圆场。', ].join('\n'), // 结晶片段:查历史价这一步每单都一样 —— 确定性子序列,不必每次让模型重想 crystallized: [{ tool: 'crm.history-price-read', input: { pns: 'pns' } }], knowledgeRefs: ['三分类规则 P-03(A 行的定义)'], version: '2.0.0', }, ];