Archived
活动: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>
85 lines
5.0 KiB
TypeScript
85 lines
5.0 KiB
TypeScript
/**
|
|
* 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',
|
|
},
|
|
];
|