travel_subsidy
When the user uploads 发票.zip and 火车票.zip, use the included data tables to calculate eligible business-trip subsidy records, split related vs remaining files, create output workbooks, package two result zips, and report progress at every key step.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/attorneytao/travel-subsidyTravel Subsidy
Use this skill only when the user provides two zip archives named exactly:
发票.zip火车票.zip
The archives contain:
- invoice / ticket files (
.pdf,.jpg,.jpeg,.png,.webp) - and at least one structured data table describing the corresponding files
This skill calculates which records can be used to support 出差补助 and produces two result zip packages.
Goal
Process the two archives as follows:
- Unzip both archives into a dedicated run directory.
- Read the included structured tables.
- Match each table row to its corresponding file by filename or stable file identifier.
- Do not OCR the files unless the table is obviously unusable or missing required fields.
- Build a chronological travel evidence set.
- Infer travel city / route information:
- for train tickets: use the provided 始发站/到达站所在城市 fields directly
- for invoices: infer city from
备注- if it is a lodging invoice, determine the hotel city from the hotel name
- if it is an air-ticket-related invoice, extract route/city information from
备注
- Determine which records can support a valid 出差补助 claim.
- Put the records/files related to 出差补助 into one folder.
- Put all remaining records/files into another folder.
- Produce two zip outputs:
- Zip 1: 出差补助计算表 + 出差补助相关文件
- Zip 2: 剩余文件 + 剩余信息整理表
- Report progress to the user at every key node.
Mandatory progress updates
You must give the user a visible progress update at every key node.
At minimum, send these updates:
已收到发票.zip和火车票.zip,开始检查压缩包压缩包检查完成,开始解压文件解压完成,开始识别数据表和票据文件已识别发票数据表与火车票数据表,开始读取结构化信息结构化信息读取完成,开始建立文件与表格行的对应关系对应关系建立完成,开始提取城市与行程信息城市与行程信息提取完成,开始组装出差行程出差行程组装完成,开始计算可报销出差补助计算完成,开始拆分补助相关文件和剩余文件拆分完成,开始生成出差补助计算表和剩余信息表表格生成完成,开始打包输出文件打包完成,准备回传结果任务完成
If processing many rows/files, also emit periodic progress, for example:
发票信息处理进度:X / N火车票信息处理进度:Y / M行程组装进度:K / T
If any fatal or partial failure occurs, immediately report:
- which step failed
- which file or row failed
- whether partial outputs were still produced
Input validation rules
Only use this skill if both required archives are present.
Expected exact filenames:
发票.zip火车票.zip
If one archive is missing, stop and tell the user clearly.
Do not guess if filenames are ambiguous unless the user explicitly says which file is which.
Working directory rules
Create a dedicated run directory under {baseDir}/runs/.
Example:
mkdir -p "{baseDir}/runs"
ts="$(date +%Y%m%d-%H%M%S)"
run_dir="{baseDir}/runs/travel-subsidy-${ts}"
mkdir -p "$run_dir/input" "$run_dir/invoice_zip" "$run_dir/train_zip" "$run_dir/work" "$run_dir/output"
Never modify the original uploaded archives in place.
Archive extraction rules
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-attorneytao-travel-subsidy": {
"enabled": true,
"auto_update": true
}
}
}