BD BIPPI-imp-trm-accstmt
银行对账单转换为各系统标准银行账户流水导入模板的技能。当用户需要将银行对账单文件(MT940格式的SWIFT银行对账单、国内各银行的Excel格式对账单、或PDF格式对账单)转换为BIPV5、金蝶云星瀚(EAS_YXH)、保融ATS(FINGARD)、九恒星司库(NSTC)、用友NCC(YYNCC)等系统的标准导入模板时,**必须使用此技能**。 **核心功能**:解析MT940/Excel/PDF格式银行对账单 → 智能字段映射 → 生成对应系统标准Excel/xls导入模板 **支持的目标系统**: - **BIPV5**(默认):银行流水处理 Excel 模板 - **EAS_YXH**(金蝶云星瀚):离线明细导入 .xlsx 模板 - **FINGARD**(保融ATS):离线信息 .xls 模板 - **NSTC**(九恒星司库):批量导入银行明细格式 .xls 模板 - **YYNCC**(用友NCC):数据页签 .xls 模板 **必须触发场景**: - "银行对账单转换"、"MT940解析"、"银行流水导入模板" - "境外银行对账单"、"SWIFT对账单处理"、"生成BIP导入文件" - "PDF对账单转换"、"PDF银行流水"、"银行PDF导入" - "转换为金蝶云星瀚模板"、"EAS_YXH导入"、"金蝶流水导入" - "转换为保融ATS"、"FINGARD对账单"、"保融流水导入" - "转换为九恒星"、"NSTC导入"、"九恒星司库流水" - "转换为用友NCC"、"Yonyou NCC导入"、"NC流水" - "bank statement import"、"MT940 to BIP"、"PDF to BIP" - 处理MT940格式(TXT/STA文件)的银行对账单 - 国内银行Excel格式对账单转换(如招商银行、中信银行、兴业银行等) - 国内银行PDF格式对账单转换(如农商行、平安银行、恒丰银行、浙商银行、郑州银行等) - 批量转换多银行对账单生成导入模板(合并为单个文件) - 将银行流水数据导入到BIPV5、金蝶云星瀚、保融ATS、九恒星司库、用友NCC等系统 - 处理对账单中账号与交易明细分离的情况 - 当用户提到银行对账单、MT940、SWIFT、银行流水、账户流水、PDF对账单、金蝶/保融/九恒星/用友等关键词时 **输出位置**:默认情况下,输出文件将保存在与输入文件相同的目录中,保持数据同位置管理。 **特性说明**: - 支持MT940格式解析(SWIFT标准银行对账单) - 支持国内各银行Excel格式对账单(招商、中信、兴业、浦发、民生、徽商、广西北部湾、渤海、国开、中原等) - **支持国内各银行PDF格式对账单**(文本型PDF + 可选OCR支持图片型PDF) - 内置余弦相似度算法智能匹配字段(自动处理列名差异) - 支持对方账号/对方名称的多种别名匹配(对方账号、对手账号、收款账号等) - 可配置的JSON映射文件支持灵活扩展新的银行格式和目标系统 - 支持借贷标识自动分离、日期格式转换、币种处理 - 支持从表头区域自动提取本方账号信息 - 自动清理账号中的币种标识(如"账号(人民币)"自动处理) - PDF解析支持多种列头折行格式(如"交易时"+"间" → "交易时间") - PDF解析使用PyMuPDF的X/Y位置信息按列重组表格(不依赖固定列数) - 5 个目标系统的输出严格遵循各自模板格式(EAS_YXH 保留单元格批注和下拉项;FINGARD/NSTC/YYNCC 保留说明 sheet 和对照表) **注意**:本技能通过可配置的映射文件支持灵活扩展新的银行格式和目标系统,无需修改代码即可适应新的对账单格式。 **模板文件加载策略(兼容 clawhub 等不支持上传二进制模板的市场)**: - 5 个目标系统的导入模板位于 `assets/template/` 目录下: - `YYBIPV5_banktransaction.xlsx` — BIPV5 - `eas_yxh_banktransaction.xlsx` — 金蝶云星瀚 - `fingard_banktransaction.xls` — 保融ATS - `nstc_banktransaction.xls` — 九恒星司库 - `yyncc_banktransaction.xls` — 用友NCC - 当用户基于 clawhub 之类的市场安装本 skill,且 `assets/template/` 目录下缺失对应模板文件时,会自动从预配置的互联网地址下载到本地使用。 - 模板加载统一入口:`scripts/core/template_manager.py::r
As a process D 41/100 · Unfinished process — weak spots: result and completion, when it triggers, inputs and preconditions
How to improve
- Say in the description WHEN to use the skill ("use when…", example requests): that is the agent's main cue.
- Shorten the description to 1024 characters.
- A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.
Guard findings · 1
✓ No critical or high findings
Medium and low: 1
-
low Obfuscation
obf-base64-blobscripts/parsers/mt940_parser.py:673Long base64-looking blob (quoted — discussed, not commanded):86:/PT/FT/BE/BeneficiaryName/BN1/Address1/BN2/Address2/BO/OrderingParty/PY/PaymentInfo
quoted
Files scanned: 27. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
- error
description-longdescription is 2033 chars, limit 1024 - warning
name-formatname should be kebab-case (lowercase letters, digits, hyphens) - warning
description-no-whendescription does not say WHEN to use the skill (no "use when") - note
description-budgetdescription takes 2033 of the ~15000-char shared budget for all skills
Process rating: all ten parameters 41/100
- 0Result and completion. Does not say what the result is
- 0Inputs and preconditions. Does not say what the process needs to start
- 0Failures and branches. Linear process with no failure handling
- 0Progress reporting. Says nothing while it works
- 20When it triggers. No condition that starts the skill
- 40Consistency. Frontmatter name (BIPPI-imp-trm-accstmt) differs from the folder (imp-trm-accstmt)
- 60Tools and files. Uses tools (python) that frontmatter does not declare
- 100Steps. 53 steps
- 100Execution cost. Instruction body is 1861 tokens
- 100Running it twice. No mutating operations
- low 13 top-level sections: this looks like several domains in one skill
- medium 29 test cases, all positive: not one "should refuse" or "should ask first"
- low No test case covers injection arriving through data
Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.
Quality signals
- +4Description does not say when NOT to use the skill (false activations)
- +3Description length 2032: 120–800 characters recommended
- +3Output format is not stated: the model decides each time
- +1No license
- +2Single-language instructions
- +5Description quotes 24 example trigger phrases
- +4Structure: 28 headings
- +3Step-by-step instructions: 53 items
- +4Has examples (10 code blocks)
- +4Reference files are cited in the instructions (1 of 1)
- +3All 1 scripts are documented
Quality base 70; lint remarks subtract, signals add up to 100. Result: 48.