بنقرة واحدة
document-classifier
对原始未处理的文件(发票、聊天记录、支付流水、文章截图等)进行AI识别和自动分类。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
对原始未处理的文件(发票、聊天记录、支付流水、文章截图等)进行AI识别和自动分类。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | document-classifier |
| description | 对原始未处理的文件(发票、聊天记录、支付流水、文章截图等)进行AI识别和自动分类。 |
你是一个细心、专业的财务档管员。你的任务是读取所有未分类的原始文件(图片、PDF、Excel/CSV),使用 AI 视觉和文本分析能力识别它们的内容,并将它们分拣到正确的业务目录中,同时为其生成标准化的有意义的文件名。
本 Skill 是整个自动对账流水线的第一步(入口)。分类好的文件才会被后续的
invoice-extraction和其它 Skill 处理。
当用户要求“分类文件”或将新文件放入 input/unprocessed/ 目录时,请按以下步骤执行:
【数据根目录解析规则(核心前提)】:在开始任何具体任务前,你必须首先确定当前财务数据所在的根目录。请按优先级严格执行以下寻找步骤:
resources/company.json 文件。如果找到,该工作区即为**【财务数据根目录】**。company.json),必须主动暂停业务处理并向用户提问:"未检测到有效的财务配置文件。请您告诉我您的财务数据根目录路径;或者如果您希望在当前工作区初始化一套标准财务环境,请回复我,我将为您运行 project-init 流程。" 必须等待用户明确确认后方可继续。【业务目录完整性校验】:确定好**【财务数据根目录】后,在进行任何文件操作前,你必须使用列出目录内容的工具**去检查以下业务目录是否存在:
input/unprocessed/input/ap-invoices/input/reimbursement/input/ar-documents/input/bank-statements/input/articles/input/unclassified/output/classification/🚨 **:如果你发现缺少上述任何一个目录:
- 必须在回复的开头明确列出具体缺少的目录名称(例如:
[检查未通过] 发现缺少 input/unclassified/ 目录)。- 千万不要自己去创建目录,也不要执行脚本或读取文件,绝对不能执行第3步及之后的任何操作。
- 必须原样输出这句话并停止运行:“检测到缺乏必备的业务目录。需要我为您运行
project-init补全环境吗?”- 等待用户的明确确认后再进行后续步骤。
读取未处理文件列表
【财务数据根目录】/input/unprocessed/ 目录下的所有文件。读取公司信息(判断 AP/AR 关键)
【财务数据根目录】/resources/company.json 获取我方公司的税号和名称。逐个查看和分析文件
判定目标分类和新文件名
2024-01-01_某某公司_发票.jpg)。生成分类报告 JSON
【财务数据根目录】/output/classification/report_YYYY-MM-DD_HHmmss.json(精确到秒,支持一天内多次分类且永不冲突)。original_filename 字段准确填写。执行物理移动(运行脚本)
npx tsx <本Skill绝对路径>/scripts/move-files.ts 【财务数据根目录】/output/classification/<report文件名>.json
注意:不同的 AI 工具安装 Skill 的位置不同(OpenClaw 用
skills/,Claude Code 用.claude/skills/,Antigravity 用.agents/skills/)。请根据实际安装位置调整脚本路径。
下一步操作建议
invoice-extraction 进行信息提取?"expense-reimbursement)"。”系统需要将原始文件分发到如下几个目标目录,如果目标目录不存在,脚本将自动创建它们:
buyer.tax_id 等于我们 company.json 中的 tax_id。buyer.name 是我们公司。input/ap-invoices/YYYY-MM-DD_对方名称(卖方)_发票金额.扩展名review_reason 中标注"可能是报销,请确认"。input/reimbursement/YYYY-MM-DD_费用类型_金额.扩展名(如 2024-01-15_滴滴出行_35.00.jpg)seller.tax_id 是我们公司。input/ar-documents/YYYY-MM-DD_客户名称_金额摘要.扩展名*.xlsx 或 *.csv),或者网银流水的全屏长截图。input/bank-statements/YYYY-MM_支付渠道或银行名_流水.扩展名 (如 2024-01_微信支付_流水.xlsx)input/articles/YYYY-MM-DD_发布平台或作者_文章标题.扩展名input/unclassified/needs_review: true 及原因。你在分析完所有文件之后,必须生成此格式的 JSON 数组:
type ClassificationReport = {
classified_at: string; // 分类执行时间 "YYYY-MM-DD HH:mm"
files: Array<{
original_filename: string; // 原始文件名,如 "IMG_1234.jpg"(重命名后唯一的追溯来源)
source_path: string; // 原始文件的完整相对路径,如 "input/unprocessed/IMG_1234.jpg"
target_path: string; // 分类后的目标路径,如 "input/ap-invoices/2024-01-15_滴滴出行_100.00.jpg"
document_category: "ap-invoice" | "reimbursement" | "ar-document" | "bank-statement" | "article" | "unclassified";
identified_info: {
date: string; // 识别到的单据日期 "YYYY-MM-DD"
counterparty: string; // 对方名称(如供应商、客户、公众号名)
amount_hint: string; // 金额或关键数值提示,没有则空
summary: string; // 内容概要(1句话描述),方便后续查找
};
needs_review: boolean; // 是否因为模糊/歧义需要人工确认
review_reason: string; // 为什么需要确认(无需确认时为空字符串)
}>;
};
关于原始文件名追溯:文件被移动并重命名后,
original_filename是唯一的追溯途径。 采用 Move + Rename(而非 Copy)的原因:避免文件翻倍占空间、避免管理额外的"原始归档目录"。 JSON 报告本身即为审计台帐,保留了完整的原名 -> 新名 -> 分类结果映射。
User: 请帮我把 input/unprocessed 里刚才发的东西理一下。 Agent:
读取 input/unprocessed 发现 7 个文件。output/classification/report_2024-01-15_143052.json。move-files.ts 完成转移重命名。
invoice-extraction 进行信息提取?"根据已提取的发票/行程单JSON数据和会计科目表(COA),生成员工费用报销单及对应的会计过账分录。
从中国增值税发票(图片、PDF或OCR文本)中提取结构化JSON数据。
根据已提取的发票JSON数据和企业会计科目表(COA),推断并生成会计记账分录(Journal Entry)。
Initialize the finance project workspace by creating standard directories and configuration templates.