assert.ok(fs.statSync(built).mtimeMs>=fs.statSync(path.join(root,'packages/finance/services/records.uts')).mtimeMs,'Compile MP-WEIXIN before testing');
verify('same missing field: AI advice replaces fallback',[advice('欠款总余额尚未填写,建议补充。',['readiness:missing-totalDebtBalance'])],[debt],[debtReason],['欠款总余额尚未填写,建议补充。']);
verify('fact and readiness references resolve to the same problem',[advice('请补齐欠款',['fact:totalDebtBalance']),advice('欠款待补充',['readiness:missing-totalDebtBalance'])],[debt],[debtReason],['请补齐欠款']);
verify('same readiness problem with different wording appears once',[advice('请补齐欠款',['readiness:missing-totalDebtBalance']),advice('欠款待补充',['readiness:missing-totalDebtBalance'])],[debt],[debtReason],['请补齐欠款']);
verify('empty advice does not suppress real missing fields',[advice(' ',['readiness:missing-totalDebtBalance'])],[debt],[debtReason],['补充欠款总余额']);
verify('provided and inapplicable fields create no fallback',[],[field('company','单位','provided'),field('annualRevenue','营收','not_applicable')],[],[]);
verify('invalid format uses verification fallback',[],[field('totalDebtBalance','欠款总余额','invalid')],[],['核实欠款总余额']);
verify('different problems on the same field remain separate',[advice('请核实额度格式',['readiness:invalid-creditCardUsedLimit']),advice('已用额度超过总额度',['readiness:issue-card-limit'])],[field('creditCardUsedLimit','已使用总额度','invalid')],[reason('invalid-creditCardUsedLimit','INVALID_FIELD',['creditCardUsedLimit']),reason('issue-card-limit','CREDIT_CARD_USED_EXCEEDS_LIMIT',['creditCardUsedLimit','creditCardTotalLimit'],['card-limit'])],['请核实额度格式','已用额度超过总额度']);
verify('combined advice covers each of its missing fields',[advice('请补齐欠款和收入',['readiness:missing-totalDebtBalance','readiness:missing-monthlyIncome'])],[debt,income],[debtReason,reason('missing-monthlyIncome','MISSING_FIELD',['monthlyIncome'])],['请补齐欠款和收入']);
verify('new problem in overlapping advice is retained',[advice('请补齐欠款',['readiness:missing-totalDebtBalance']),advice('请补齐欠款和收入',['readiness:missing-totalDebtBalance','readiness:missing-monthlyIncome'])],[debt,income],[debtReason,reason('missing-monthlyIncome','MISSING_FIELD',['monthlyIncome'])],['请补齐欠款','请补齐欠款和收入']);
verify('unknown evidence cannot hide a missing field',[advice('请核实其他资料',['readiness:unknown'])],[debt],[],['请核实其他资料','补充欠款总余额']);
verify('surrounding whitespace and duplicate evidence do not create duplicate advice',[advice(' 请补齐欠款 ',['readiness:missing-totalDebtBalance','readiness:missing-totalDebtBalance']),advice('请补齐欠款',['readiness:missing-totalDebtBalance'])],[debt],[debtReason],['请补齐欠款']);
verify('ordinary fact evidence is not a problem identity',[advice('保留收入证明材料',['fact:monthlyIncome']),advice('控制每月还款负担',['fact:monthlyIncome'])],[field('monthlyIncome','月收入','provided')],[],['保留收入证明材料','控制每月还款负担']);
verify('same known consistency issue is consolidated',[advice('核实信用卡额度',['readiness:issue-card-limit']),advice('已用额度超过总额度,请核实',['readiness:issue-card-limit'])],[],[reason('issue-card-limit','CREDIT_CARD_USED_EXCEEDS_LIMIT',['creditCardUsedLimit','creditCardTotalLimit'],['card-limit'])],['核实信用卡额度']);
verify('unknown reference alone cannot equate different problems',[advice('准备收入证明',['readiness:unknown']),advice('核实负债资料',['readiness:unknown'])],[debt],[],['准备收入证明','核实负债资料','补充欠款总余额']);