TRIGGERS 多场景同时命中时只读第一条,漏了后续路由

📅 2026-06-13

症状

你看到什么?

用户说"审计五件套"来审计一个 Excel 文件。这是一个数据录入项目,TRIGGERS.md 有两条路由同时命中:

  • “审计五件套 / 跑审计” → 加载 audit-four-piece.md
  • “数据录入项目” → 加载 audit-four-piece-data.mdexcel-com-audit.mddata-cross-verify.md

但实际操作中只读了第一条(通用版),漏了数据版三条。用户提醒"我记得优化过你的记忆啊,为什么还做不到"——因为之前已经修过这个问题,但触发匹配逻辑没改彻底。

后果:跑完审计流程后,数据特有的坑(收支=明细交叉验证、实发=应发检查、Excel COM 修复模式)全部没做。

根因

到底为什么出问题?

  1. 匹配策略是"命中即停":扫到第一个匹配行就停下来加载了,没继续往下扫
  2. 没有 OR → AND 的思维转换:多条路由匹配同一任务时,取的文件应该是并集(AND),不是第一个命中(OR)
  3. TRIGGERS 表设计有盲区:通用路由和专用路由分开写,但加载逻辑没做合并
  4. 事后没自检:加载完文件后没问自己"用户说的是审计+Excel,我有没有读 Excel 相关的路由?"

修复

怎么做?

匹配策略改为"全量扫描 + AND 合并"

T R I G G E R S . m d

例如用户说"审计这个 Excel":

1 2 3 : : : = " " " { a 4 u E d x i " c t " e - l f " o a u u a r d u - i d e p t i x i - t c e f - e c o f l e u o - . r u c m - r o d p - m , i p - e i a a c e u u e c d d . e i i m - t t d d . - a m f t d o a u . r m - d p , i e e c x e c - e d l a - t c a o . m m - d a , u d e i x t c . e m l d - , c o d m a - t a a u - d c i r t o . s m s d - , v e d r a i t f a y - . c m r d o s s - v e r i f y . m d }

自检问题(加载完文件后问自己):

  1. 用户提到了哪些关键词?
  2. TRIGGERS.md 里有多少行匹配了这些关键词?
  3. 我有没有全部读?

怎么避免

下次怎么不踩?

  1. 扫全表不早停:触发匹配时遍历 TRIGGERS.md 全部行,收集所有匹配项
  2. AND 合并取并集:多条路由的文件列表取并集,去重后全读
  3. 自检三板斧
    • 用户说了什么关键词?
    • 还有什么场景也匹配这个关键词?(翻 TRIGGERS 全表确认)
    • 全量加载了吗?
  4. 用户纠正过的地方加红线:这个坑已经被纠正过了,TRIGGERS.md 里"审计五件套"行的文件列表已更新为全量