Organisation Documents — 组织文档
v0.1针对法国会计助理(cabinets comptables)的核心技能。接收、分类和重命名会计文档(发票、费用报告、银行对账单、合同)到每个客户/年/月的文件夹树中。系统地且无需许可Invoke,当以下情况发生时:(a)带有PDF/图像附件的电子邮件到达,(b)电子邮件包含会计关键词(facture、invoice、reçu、paiement、TVA、total、acompte、avoir、relevé),(c)用户请求处理/分类/组织文档,(d)文件被拖入收件箱。处理提取、法国法律强制性提及验证、重复检测、为未知发件人自动创建客户记录以及10年法律保留。使用API、CLI、GitHub等工具实现自动化和集成。
运行时依赖
安装命令
点击复制技能文档
技能组织文档技能 maison du domaine comptable。接收 → 提取 → 验证 → 分类 → 索引 → 报告。详细技术信息在 references/ 中(按需加载,不是每次调用都加载)。何时使用此技能:黄金法则:这是助手面对所有传入文档的默认反应。助手不会询问「您是否要分类此发票?」——它会直接分类和报告。如果会计师需要明确要求「使用此技能」,则是调用失败。触发器:带有附件的电子邮件(gog 或 agentmail)→ 立即处理。手动存入收件箱(Drive 或本地)→ 同样。批量导入(会计师明确命令)。重新分类:客户/性质更正 → 推动移动并更新索引。自动预条件(默默地,不问问题):如果 clients.json 不存在 → 创建一个空的。新的发送者域 → 自动创建客户草稿(见第 2 步)。不适用于:外发发票(→ facturation),FEC(→ fec-parser),提醒(→ relances)。执行模式默认仅内联对于 1 到 3 个文档(标准情况:1 个电子邮件 = 1 个附件),内联执行是强制性的。不允许子代理,不允许委托,不允许二级 TaskFlow。子代理会增加 30-60 秒的不必要的开销,并可能导致 180 秒的超时。仅批量导入(一次 > 10 个文档)允许子代理 —— 且仅限 20 个批次。快速路径:跳过不必要的步骤如果全局索引为空或不包含目标客户:跳过步骤 1(全局哈希去重)→ 一定是唯一的。跳过步骤 7(业务重复)→ 客户索引为空。如果模式 = 自动且客户在步骤 2.a 中已识别(不需要自动创建)且提取信心 ≥ 0.9:步骤 4(验证 FR)和步骤 5(分类)合并为一个步骤,不需要两个步骤。单个文档内联时间预算:≤ 30 秒,接收到分类。如果超过,降级为 needs_review 并向会计师报告减速。工作流程(10 个步骤)详细信息在 references/validation-fr.md(步骤 3、4、5、7)、references/contrat-io.md(步骤 1、9)和 references/structure-cible.md(步骤 5、6)中。# 步骤 输出关键 0 预过滤相关性:如果没有附件且没有会计关键词 → 忽略 + 电子邮件非相关性决策忽略或继续 1 哈希和去重文件(如果全局索引为空则跳过)哈希 SHA-256、重复文件或无 2 客户识别(见下文)客户 ID + 自动创建如果未知 3 提取字段(见 references/validation-fr.md)完整结构 + 信心 0-1 4 验证 FR(必需提及、TVA、IBAN、日期)缺失项[] 5 分类(见 references/structure-cible.md)类别 ∈ 枚举 6 生成路径(见下文)目标路径 7 业务重复(如果客户索引为空则跳过)业务重复/可能重复/无 8 最终决策(见下文)自动分类/需要审查/忽略 9 索引:客户索引 + 全局索引 + 审计日志写入持久化 10 向会计师报告简短消息 + 当月 CSV 合并步骤 2 — 客户识别(级联 + 自动创建 + 升级)所有处理的文档属于已知或自动创建的客户。没有魔术 slug 用于用户自己:会计师的个人费用不在此技能的范围内。如果级联失败,则文档进入 .pending-attribution/,并在批处理结束时询问用户。检测级联(优先顺序)发送者电子邮件地址匹配客户的 contact.email。发送者域匹配客户的 domains。从文档中提取的 SIREN 匹配客户的 SIREN。模糊匹配的公司名称(Levenshtein ≤ 3)匹配客户的公司名称。自动创建如果存在可用的信号(见下文)。否则 → .pending-attribution/:批处理结束时升级用户。自动创建(步骤 5)默认情况下,技能创建客户草稿并正常分类,不需要确认。配置标志 clientCreation: "confirm" 禁用此行为:自动创建成为需要验证的提议。从第一个可用的信号中派生 slug,优先考虑:信号源派生 slug 示例域名 pro 域名标准化 foo-corp.com → foo-corp-com SIREN 从 PDF 中提取的公司名称 slug 化 SIREN 380… → acme-sa 公司名称可读 slug 化直接 "ACME Industries" → acme-industries 程序:在 clients.json 中插入:状态: "draft-auto-created",aValider: true,信心降级根据信号质量。公司名称候选项:如果可能,从 PDF 中提取,否则从 slug 人性化。正常分类到新创建的文件夹中。在批处理报告中通知(批处理结束时仅一个消息,不是每个步骤一个消息)。无法归属的案例(步骤 6)信号不足:发送者是通用电子邮件 (@gmail.com、@outlook.com、@yahoo.fr) 且没有 SIREN 信号。