-
feat(ai/script): Phase B — K00/K01/K03/K06/K07/K09 + objection-bank + safety-self-check · 52ca8c28
补齐 K00-K09 全 10 个 ICD-10 牙科 dx skill 覆盖 + 2 个 playbook。 diagnosis/(6 个): K00-development 发育/萌出异常(乳牙滞留/多生牙,allowedPop: child/teen) K01-impacted 阻生牙(智齿,allowedPop: teen/adult/elder) K03-hard-tissue 牙体硬组织非龋损伤(磨损/楔状缺损/酸蚀/隐裂) K06-gum-alveolar 牙龈/牙槽嵴疾患(增生/肿物,谨慎不主动提"癌") K07-ortho 正畸(K07,长周期1-3y,儿童8-12黄金窗,严禁报价) K09-jaw-cyst 颌骨囊肿(高风险,必须外科会诊,话术高度谨慎, 1 周内必须复联拒绝者) playbooks/(2 个): objection-bank 异议总库 8 种通用高频异议 + scenario × pop 优先级矩阵 (priority 200,全场景加载,跟 dx 特化异议互补) safety-self-check safety 规则描述版,让 LLM 输出前主动核查 6 条 close 段 约束 + 禁词,主动规避 safety gate 命中(命中→走 fallback) (priority 250,机器规则仍在 call.ts safetyRules, 本 SKILL.md 是 LLM 看的描述版,两者同步维护) 验证(本地 smoke): - nest build 成功,19 个 SKILL.md + base-system.md 全部 copy 到 dist - composer 4 案例端到端验证全通过: * 成人 K08 → matches 6 个 skill(scenario + K08 + returning + adult + objection + safety) * 儿童 K02 → matches 6 个 skill(child + new + K02 + ...) * 老人 K05+K08 → matches 7 个 skill(多 dx 多 skill 命中) * 儿童 K08 → 正确排除 K08(allowedPopulation 跨维度约束生效), 只 matches 5 个 skill(scenario + child + ...)luoqi committed