Archived
A2-A7 全部补齐到验收线;顺手把几处「门拦住却不给路」的坑填了
活动:A2 选型 / A3 寻源 / A4 定价 / A6 议价 / A7 归档五件各补成真活动包 —— 契约宽进(input.required 空,归一在活动内)、台账必填声明(含行级 requiredWhen)、 入场哨兵与 L1/L2 判据一律读基座数、两份件(在办可编辑 + 办结静态快照)、 三案例常备、包内自测。e2e 各三案例 released、行动被拒 0、发口正确、提交闸每单真拦。 基座(共享面,改一处影响所有活动,故每处都带回归): · 重发判断走在站上场之前 —— 人答完那步常已收掉,readyToWork 先抛「不能再往它上面挂活」, 于是「重发已答过的卡 = 无事发生」这条唯一活路在最需要时够不着,A1 基线当场熔断; · 决策卡补幂等兜底(与执行工单同一把尺):头两次无事发生,第三次起才算被拒; · 输出没成形先就地重问一次,原话进工作日志、不再摆上卡面; · 工具调用读数 tool_<名>_calls —— 「机检只读基座数」这条纪律第一次覆盖到工具; · 执行卡 steps/standard 补进出参 schema(从前能到卡面全靠厂商 JSON 模式宽松); · 件的就地更新改逐节点 morph,保存先把新值镜像进只读那份 —— 不闪、不等回声。 A1(基线,全程守住):措辞三档对齐(必填/建议/选填)、禁止拿历史价当客户目标价、 卡骨架从步骤剧本搬进说明书(压成一拍连做时剧本没摊开,会发出没有指导书的裸卡)。 契约两处**新增可选字段**(非破坏):FieldDeclaration.requiredWhen、工单 finalHtml; api-report 同批更新。docs/adr 与 docs/archive 的 13 份文件在工作树里不见了, 本次予以恢复而非提交删除。 门禁:typecheck / lint / depcruise / test(1366)全绿。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,46 +1,49 @@
|
||||
/**
|
||||
* A3 技能 —— 寻源的方法经验(AM 08)。
|
||||
* loop 里技能由 AI **按适用描述临场装配**:常驻上下文只有目录,按事加载正文。
|
||||
* 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.pick-channels'),
|
||||
label: '按场景圈渠道',
|
||||
applicability: '拿到料号与场景,要决定向谁发询时。',
|
||||
id: skillIdSchema.parse('sourcing.normalize-roster'),
|
||||
label: '归一目标报价清单',
|
||||
applicability: '开案第一步:把上游清单(或单飞需求)整份落成目标报价清单时。',
|
||||
method: [
|
||||
'渠道不是越多越好:发得越广,回价越慢、口径越乱、对供应商的信用消耗越大。',
|
||||
'上游载荷是**全部落地行混在一起**的一份:选型转来(`rows`)的清单行带 alt_pn 与现标,',
|
||||
'受理直达(`records`)的以受理记录行(带 eau/brand)为准;带总数的结论行不是料,别落。',
|
||||
'**按 pn 归并**,一颗料一行,一拍写完(rows 收数组)。',
|
||||
'',
|
||||
'按场景定档:',
|
||||
'· 常规补货 → 原厂代理 2 家足够,比的是账期与交期。',
|
||||
'· BOM 后期 / 急单 → 加 1–2 家现货商,比的是**能不能拿到货**,价格其次。',
|
||||
'· 停产料 → 直接问现货商与拆解渠道,原厂问了也是白问。',
|
||||
'',
|
||||
'每多发一家,就多一份要等的回价 —— 发询前先想清楚:这一家的回价会改变你的决定吗?',
|
||||
'不会,就别发。',
|
||||
'三条纪律:',
|
||||
'① PN 一个字符不许改;上游没给的列留空字符串,绝不写 0 顶空。',
|
||||
'② type_tag 照上游现标承继,本活动不改类 —— 改类是上游的职权。',
|
||||
'③ 单号 rfq_ref 原样承继;单飞认不出才造「SRC-<型号或类型>」,造完从头用到尾。',
|
||||
].join('\n'),
|
||||
crystallized: [],
|
||||
knowledgeRefs: ['渠道分级台账'],
|
||||
version: '1.0.0',
|
||||
knowledgeRefs: ['docs/MVP示例工作流.html §1.7'],
|
||||
version: '2.0.0',
|
||||
},
|
||||
{
|
||||
id: skillIdSchema.parse('sourcing.wait-or-ask'),
|
||||
label: '该等还是该问',
|
||||
applicability: '当下可为与目标所需交集为空(依赖断点)时。',
|
||||
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: [],
|
||||
knowledgeRefs: [],
|
||||
version: '1.0.0',
|
||||
// 结晶片段:查历史价这一步每单都一样 —— 确定性子序列,不必每次让模型重想
|
||||
crystallized: [{ tool: 'crm.history-price-read', input: { pns: 'pns' } }],
|
||||
knowledgeRefs: ['三分类规则 P-03(A 行的定义)'],
|
||||
version: '2.0.0',
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user