/** * A6 技能 —— 议价与出单的方法经验(AM 08)。 */ import { skillIdSchema } from '@contracts'; import type { Skill } from '@contracts'; export const NEGOTIATE_SKILLS: Skill[] = [ { id: skillIdSchema.parse('negotiate.compose-quote'), label: '拟一份能发出去的报价单', applicability: '定价已过审批,要生成正式报价单时。', method: [ '报价单是**要发给客户**的东西,所以每一项都得能兑现:', '· 单价与交期照审批通过的草案抄,不做任何「顺手优化」——改价要重新过审批点。', '· SPQ / MOQ / 贸易条款 / 有效期缺一不可:缺了客户会追问,追问就是又一轮往返。', '· 有效期按行情波动定,不要一律写「长期有效」——那等于把汇率与料价风险自己扛了。', '', '拿不准的项**宁可空着走补全**,不要填一个看起来合理的值:', '报价单一旦发出就是承诺,发出前的空白是成本,发出后的错误是损失。', ].join('\n'), crystallized: [], knowledgeRefs: ['报价单模版规范'], version: '1.0.0', }, { id: skillIdSchema.parse('negotiate.pick-outcome'), label: '选对议价出口', applicability: '客户回复后,要确认议价结果出口时。', method: [ '三个出口对应三种后续,**恰发一口**:', '· 成交 → 转订单履约,这条流走到终点。', '· 有异议 → 回 A4 重开新实例重算 —— 注意是**新实例**,旧的已终、不再入算。', '· 拒绝 / 超时 → 转 A7 情报归档:把拒绝原因与竞对价位登记下来。', '', '「拒绝」不是失败终态。这一单丢了,但拒绝原因回写历史情报后,', '下一单的三分类与利润模型会用上它 —— 这才是归档存在的理由。', ].join('\n'), crystallized: [], knowledgeRefs: [], version: '1.0.0', }, ];