license-pre-audit

进出口许可文档智能预审系统。支持 PDF 和图片处理:自动提取合同号、出口国、进口商、总金额、数量、重量、合格证编号、生产商、报关口岸等字段,检测公章,按审核规则执行审核,生成 MD 和 JSON 审核报告。支持 CLI 和对话交互两种方式触发。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "license-pre-audit" with this command: npx skills add njkahn/license-pre-audit

License Pre-Audit - 进出口许可文档智能预审系统

进出口许可文档智能预审系统,支持:

  1. CLI 命令行:直接指定目标文件夹或压缩包路径执行命令。
  2. 对话交互:在聊天界面输入触发词(如"审核"/"审核许可证"/"许可证"),然后上传文件夹或压缩包。

系统将自动解压、提取 PDF、图片 文件目标字段,根据审核规则 执行审核、检测公章,并生成结构化 JSON 报告和 Markdown 表格。

系统结构

license-pre-audit/
├── SKILL.md                    # 技能说明
├── references/                 # 配置文件
│   ├── audit-rules.json        # 审核规则配置
│   ├── doc-types.json          # 文档类型配置
│   ├── settings.json           # 上传格式、路径、输出路径、触发指令、缓存配置
│   └── demo/                   # 示例数据
│       ├── test/               # 示例文件夹
│       └── test.zip            # 示例压缩包
├── assets/                     # 运行时数据
│   ├── files/                  # 解压文件目录
│   └── reports/                # 报告输出目录
└── src/
    ├── index.js                # 主流程(整合 CLI+ 压缩包 + 表格)
    ├── prompts/                # Prompt 文件(MD 格式)
    │   ├── extract-fields.md   # 字段提取 Prompt
    │   └── audit-rules.md      # 审核规则 Prompt
    ├── utils/                  # 工具函数
    │   ├── pdf-ocr.js          # PDF/图片文本提取
    │   ├── stamp-detect.js     # 盖章检测
    │   ├── field-normalize.js  # 字段标准化
    │   ├── extract-archive.js  # 压缩包解压
    │   ├── generate-table.js   # 表格生成
    │   └── check-deps.js       # 依赖检测与自动安装(新增)
    └── rules/                  # 11 条审核规则
        ├── index.js            # 规则总入口
        ├── rule-stamp.js       # 规则 1: 盖章检查
        ├── rule-contract-no.js # 规则 2: 合同号
        ├── rule-exporter.js    # 规则 3: 出口国
        ├── rule-importer.js    # 规则 4: 进口商
        ├── rule-amount.js      # 规则 5: 金额检查
        ├── rule-quantity.js    # 规则 6: 数量检查
        ├── rule-weight.js      # 规则 7: 重量检查
        ├── rule-mtc-no.js      # 规则 8: 合格证编号
        ├── rule-manufacturer.js # 规则 9: 生产商
        ├── rule-customs.js     # 规则 10: 报关口岸
        └── rule-summary.js     # 规则 11: 审核摘要

🚀 快速开始

首次使用 - 自动检测依赖

技能首次运行时会自动检测依赖,如果缺少依赖会提示并询问是否自动安装:

# 首次运行会自动检测并安装缺失的依赖
node <技能路径>/src/index.js <路径>

# 输出示例:
🚀 License Pre-Audit - 依赖检测
═══════════════════════════════════════════
🖥️  检测到操作系统:MACOS
────────────────────────────────────────────────────────────
✅ python          - Python 3.x 运行时 - 已安装
✅ poppler         - PDF 转图片工具 - 已安装
❌ tesseract       - OCR 引擎(支持中英文) - 未安装
❌ pdfplumber      - Python PDF 文本提取库 - 未安装
────────────────────────────────────────────────────────────
📊 结果:2 个已安装,2 个缺失

🔍 发现缺失的依赖,准备自动安装...
是否继续自动安装缺失的依赖?(y/n): y

🚀 开始自动安装缺失的依赖...
📦 正在安装 tesseract...
   命令:brew install tesseract tesseract-lang
   安装进度:
────────────────────────────────────────────────────────────
... (安装过程)
────────────────────────────────────────────────────────────
✅ tesseract 安装成功!

跨平台支持

  • macOS: 使用 brew 自动安装
  • Linux (Ubuntu/Debian): 使用 apt-get 自动安装(需要 sudo)
  • Windows: 尝试使用 choco (Chocolatey) 自动安装,失败时提供手动安装指引

方式 1: CLI 命令行(文件夹)

# 审核文件夹中的所有文档
node <技能路径>/src/index.js <许可证文件夹路径>

# 示例(使用内置 demo 文件夹)
node ./src/index.js ../references/demo/test

方式 2: CLI 命令行(压缩包)

# 审核压缩包(zip/rar/tar.gz)
node <技能路径>/src/index.js <许可证压缩包路径>

# 示例(使用内置 demo 压缩包)
node ./src/index.js ../references/demo/test.zip

方式 3: 对话交互(推荐)

使用步骤

  1. 在对话界面输入触发词,如:审核/ 审核许可证 / 许可证( 触发词可在 references/settings.json 中配置 )
  2. 上传许可证压缩包(zip/rar/tar.gz)或 许可证文件夹(也可发送压缩包或文件夹的路径)
  3. 系统自动解压、提取、审核、生成报告
  4. 返回 Markdown 表格和 JSON 报告下载链接

输出:

  • JSON 报告:audit-result-<timestamp>.json
  • Markdown 表格:audit-result-<timestamp>.md

支持的输入格式

压缩包格式

  • ZIP: .zip
  • RAR: .rar
  • TAR: .tar, .tar.gz, .tgz

文档格式

  • PDF: .pdf
  • 图片: .jpg, .jpeg, .png, .webp

支持的文档类型

  1. 合同 (contract) - 包含"Contract"、"合同"等关键词
  2. 合格证 (certificate) - 包含"Quality Certificate"、"质量合格证书"等
  3. 许可证表单 (permitform) - 包含"Import/Export"、"许可证"等

字段提取

字段说明文档类型
contractNo合同编号contract, form
exportCountry出口国家contract, form
importerEn进口商英文contract, form
importerCn进口商中文contract, form
customsPort报关口岸form
mtcNo合格证编号certificate, form
manufacturer生产厂商certificate, form
bussDetial货物详情数组contract, form
totalAmount总金额contract, form
totalQuantity总数量contract, form
totalWeight总重量contract, form
hasStamp是否盖章certificate

审核规则(11 条)

  1. 盖章检查
  2. 合同号提取验证
  3. 出口国检查
  4. 进口商检查
  5. 金额检查(±5% 容忍度)
  6. 数量检查(±5% 容忍度)
  7. 重量检查
  8. 合格证编号检查
  9. 生产商检查
  10. 报关口岸检查
  11. 整体结果

输出格式

⚠️ 重要:Markdown 表格发送方式(企业微信/飞书/所有聊天平台)

核心要求:在对话交互模式(压缩包/文件夹上传)下,必须执行以下流程:

  1. 脚本生成报告index.js 生成 JSON 和 MD 报告文件
  2. 助手读取 MD 文件:脚本执行完成后,助手必须直接读取生成的 .md 文件内容
  3. 直接发送 Markdown:助手将 MD 文件内容原样作为 Markdown 发送到聊天界面(企业微信/飞书/其他平台)
    • 不要通过 console.logconsole.error 输出表格
    • 不要只返回文件路径
    • 必须读取文件内容并作为 Markdown 消息发送
  4. 平台兼容性:此方式适用于所有聊天平台(企业微信、飞书、Telegram、Discord 等),确保 Markdown 表格正确渲染

原因

  • console.log/error 输出的内容会被当作纯文本处理,Markdown 格式丢失
  • 只返回文件路径,聊天界面无法自动渲染
  • 只有直接发送 Markdown 内容,各平台才能正确渲染为表格

实现方式

# 脚本执行后,助手执行:
md_file=$(ls -t assets/reports/audit-result-*.md | head -1)
cat "$md_file"  # 读取并发送内容

1. Markdown 表格(压缩包模式)

在聊天界面或控制台直接显示二维表格:

检查项申请表合同/合格证预审结果
合同编号AFT250890AFT250890✅ 通过
出口国中国中国✅ 通过
进口商(英文)Stock CompanyStock Company✅ 通过
总金额47060¥47,060.00✅ 通过
总数量180千克1 lot❌不通过
合格证编号2025032601,0281198772025032601✅ 通过
生产商江苏国强镀锌实业有限公司江苏国强镀锌实业有限公司✅ 通过
盖章情况已盖章已盖章✅ 通过

横向: 申请表 | 合同/合格证 | 预审结果
纵向: 9 个检查项(合同编号、出口国、进口商、总金额、总数量、合格证编号、生产商、报关口岸、盖章情况)

上面是表格,表格下面是 整体结果 和 详细审核说明。

2. JSON 报告(完整详细信息)

{
  "timestamp": "2026-04-13T06:01:19.853Z",
  "folder": "../references/demo/test",
  "totalFiles": 3,
  "processedFiles": 3,
  "auditResults": [
    {
      "filename": "SC NO.JYIE-2025-137.pdf",
      "docType": "合同",
      "extractedFields": {
        "contractNo": "JYIE-2025-137",
        "exportCountry": "中国",
        "importerEn": "RAMATEX TEXTILES INDUSTRIAL SDN,BHD",
        "importerCn": "马来西亚利玛纺织有限公司",
        "totalAmount": "CNY980,000.00",
        "totalQuantity": "1 lot",
        "totalWeight": "",
        "bussDetial": [
          {
            "commodity": "Air condition system 空调系统",
            "quantity": "1 lot",
            "weight": "",
            "unitPrice": "980000 CNY",
            "amount": "980000 CNY"
          }
        ]
      },
      "hasStamp": true
    },
    {
      "filename": "angle bar.jpg",
      "docType": "合格证",
      "extractedFields": {
        "mtcNo": "2025032601",
        "manufacturer": "江苏国强镀锌实业有限公司"
      },
      "hasStamp": true
    },
    {
      "filename": "b699b609-cfa3-4de1-bc16-65a65d6f2ab8.png",
      "docType": "申请表",
      "extractedFields": {
        "contracNo": "JYIE-2025-137",
        "exportCountry": "中国",
        "importerCn": "马来西亚利玛纺织有限公司",
        "importerEn": "RAMATEX TEXTILES INDUSTRIAL SDN BHD",
        "customsPort": "上海海关",
        "bussDetial": [
          {
            "commodity": "角钢(除名加工外未经进一步加工)",
            "quantity": "180 千克",
            "unitPrice": "55 人民币元",
            "amount": "990 人民币元"
          }
        ],
        "totalAmount": "980000 人民币元",
        "totalQuantity": "180 千克",
        "mtcNo": "2025032601,028119877",
        "manufacturer": "江苏国强镀锌实业有限公司"
      },
      "hasStamp": true
    }
  ],
  "auditSummary": {
    "reviewResult": "整体审核结果:建议不通过",
    "reviewDetail": "1. 合同编号一致:JYIE-2025-137\n2. 出口国一致:中国\n3. 进口商英文名称一致:RAMATEX TEXTILES INDUSTRIAL SDN,BHD\n5. 合格证编号一致:2025032601\n6. 生产商信息一致:江苏国强镀锌实业有限公司\n7. 货物详情不一致\n8. 价格总计高度相似:CNY980,000.00 vs 980000 人民币元\n9. 货物总量不一致\n\n不通过项共 2 项。",
    "sign": {
      "reviewResult": "通过",
      "reviewDetail": "合同已盖章。合格证已盖章"
    },
    "contracNo": {
      "reviewResult": "通过",
      "reviewDetail": {
        "formdata": "JYIE-2025-137",
        "attachdata": "JYIE-2025-137"
      }
    },
    "exporter": {
      "reviewResult": "建议通过,需人工复审",
      "reviewDetail": {
        "formdata": "中国",
        "customsPort": "上海海关",
        "attachdata": "中国"
      },
      "note": "出口国为中国,报关口岸非保税区,需复核。"
    },
    "importerEn": {
      "reviewResult": "通过",
      "reviewDetail": {
        "formdata": "RAMATEX TEXTILES INDUSTRIAL SDN BHD",
        "attachdata": "RAMATEX TEXTILES INDUSTRIAL SDN,BHD"
      },
      "note": "进口商名称高度相似(空格/后缀差异),视为一致"
    },
    "bussDetial": {
      "reviewResult": "不通过",
      "reviewDetail": {
        "formdata": "未匹配",
        "attachdata": "未匹配"
      }
    },
    "totalAmount": {
      "reviewResult": "建议通过,需人工复审",
      "reviewDetail": {
        "formdata": "980000 人民币元",
        "attachdata": "CNY980,000.00"
      },
      "note": "金额高度相似,建议通过但需人工确认"
    },
    "totalQuantity": {
      "reviewResult": "不通过",
      "reviewDetail": {
        "formdata": "180 千克",
        "attachdata": "1 lot"
      },
      "note": "数量不一致"
    },
    "mtcNo": {
      "reviewResult": "通过",
      "reviewDetail": {
        "formdata": "2025032601,028119877",
        "attachdata": "2025032601"
      },
      "note": "申请表包含多个合格证编号"
    },
    "manufacturer": {
      "reviewResult": "通过",
      "reviewDetail": {
        "formdata": "江苏国强镀锌实业有限公司",
        "attachdata": "江苏国强镀锌实业有限公司"
      }
    }
  }
}

技能特性

  • 智能依赖安装:自动检测操作系统,自动安装缺失依赖(poppler、tesseract、pdfplumber),同事无需手动安装
  • 混合模式盖章检测:LLM 优先 + OCR 关键词校准
  • 智能金额识别:自动识别 "CNY980,000.00" 与 "980000 人民币元",美元、日元等类似 金额中英文单元前后判断
  • 相似性检测增强:数据比对相似值识别,酌情判定:"建议通过,需人工复审"
  • 印章识别增强:支持圆形、半圆形、长方形、正方形、红色、蓝色印章,LLM 优先 + OCR + 正则 多重识别
  • 编号易混字符标准化:合格证编号: 易混淆字符标准化(8-B, 0-O, 1-I, 3-E, 5-S, 2-Z, 7-T)
  • 压缩包支持:自动解压 zip/rar/tar.gz,验证文件类型
  • 二维表格输出:Markdown 表格直观展示审核结果
  • 多模式触发:CLI 命令行 + 对话交互(输入触发词后上传文件)
  • 触发词可配置:在 references/settings.json 中自定义触发词(跨平台通用)
  • 安全配置:LLM 敏感信息自动从 OpenClaw 配置读取,加密存储,内存缓存

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Cloudbase

CloudBase is a full-stack development and deployment toolkit for building and launching websites, Web apps, 微信小程序 (WeChat Mini Programs), and mobile apps wit...

Registry SourceRecently Updated
1.4K0binggg
Coding

Notion Publisher

Publish articles to Notion using cached local copies of the target database's default Notion template when available. Use this skill when the user types /not...

Registry SourceRecently Updated
Coding

Tuya Smart Control

Control Tuya smart home devices via natural language. Use when the user asks to control smart devices (turn on/off lights, AC, plugs, adjust brightness/tempe...

Registry SourceRecently Updated
Coding

copilot-team-scaffold

Initialize a multi-agent AI development framework for any project. Creates .github/ structure with agents, hooks, instructions, prompts, and planning-with-fi...

Registry SourceRecently Updated