# Inventory Report

> 盘点归纳（Inventory & Report）：从任意杂乱目录盘点某类素材（成果、文献、证书、内容库、名单、资产），先定义分类法，再全目录检索，多源交叉核验，输出结构化汇总（表格/清单/一段话/报告）。泛化于一切"整理一堆东西并交叉核对后给出汇总"的任务。 Triggers when: 需要统计/汇总某主题的内容（年度成果、论文清单、软著台账、获奖名单、学生获奖、文献库、内容收藏、证书清单、资产盘点），需要核对数字/条目是否与多个来源一致，需要把杂乱的档案目录整理成能直接上交的表格与总结。 Commands: - /盘点 <目录> [主题] - 盘点指定目录下的素材并输出汇总表 + 一段话总结 - /盘点 核对 <清单> - 对已有清单做多源交叉核验，输出证据链 - /盘点 报告 - 生成 docx 版盘点报告 - /inventory <dir> [topic] - English alias Capabilities: 分类法设计、按关键词全目录检索（glob+rg）、多源交叉核验（xlsx统计表/官方名单PDF/证书OCR，含WPS异常xlsx的zipfile+XML兜底读取）、xlsx分类汇总表生成（带格式）、一段话总结、docx报告、数字口径以用户确认为准、矛盾点列证据链

- Skill: `cycleuser/inventory-report` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add cycleuser/inventory-report`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cycleuser/inventory-report/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- License: MIT
- Author: cycleuser (https://skillmd.com/u/cycleuser)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/cycleuser/inventory-report

---


## Safety Rules

参见 [_shared/core/safety-rules.md](../_shared/core/safety-rules.md)

关键补充：盘点是**只读操作**，不得修改任何源文件；输出写为用户指定目录的新文件。

# 盘点归纳 (Inventory & Report)

把"目录里一堆杂乱的东西"整理成"能直接上交/核对的清单与汇总"。适用于成果盘点、文献库核对、内容收藏统计、证书台账、名单核对等一切盘点类任务。核心是三件事：**定义分类法 → 全目录检索 → 多源交叉核验**。

## 通用工作流

```
Step 1 界定盘点对象
   主题（盘什么）、范围目录、时间窗口（可选）、归属人（可选）。

Step 2 定义分类法（taxonomy）
   按主题列分类别，并为每类给出检索关键词表。示例：
   成果类：论文/软著/专利/课题立项/教材/获奖/指导学生获奖/荣誉称号
   文献类：年份/主题/类型/来源
   内容类：作者/来源/数量/覆盖率
   关键：分类法由用户确认后再检索，避免白做。

Step 3 全目录检索
   每类用关键词 glob + rg 收集候选文件；优先命中权威文件
   （官方统计表、公示名单、台账、证书原件）。

Step 4 多源交叉核验（核心步骤）
   同一条目至少两个独立来源命中才算"已核实"：
   a) 单位统计表/台账（xlsx）—— WPS 异常时用 scripts/robust_xlsx.py 兜底
   b) 官方名单/公示（PDF）—— pymupdf 提取；扫描件 rapidocr OCR
   c) 原始凭证（证书/合同/通知书）—— OCR 核对姓名/编号/日期
   矛盾时：列出证据链（各出处路径），以用户确认口径为准。

Step 5 输出
   a) xlsx 汇总表：标题 + 表头 + 按类别分组明细 + 分类统计 sheet
   b) 一段话总结：固定句式，全阿拉伯数字计数
   c) （可选）docx 报告
```

## 输出规范

### xlsx 汇总表

- 主 sheet：`序号|年度|类别|名称|具体信息|级别|时间`，类别列加底色，标题合并居中，冻结首行。
- 副 sheet：类别×时间的数量矩阵。
- 字体微软雅黑，表头深蓝底白字。

### 一段话总结（通用句式）

```
<对象>共<N>类：<类别A><N>A（明细计数）、<类别B><N>B（明细计数）……
按 类别→数量→子明细 的顺序，单一自然段，全阿拉伯数字。
```

### 数字口径铁律

1. 以用户最后确认的数字为准，不自行推算。
2. 需要区分统计的子项必须分开（一作/通讯/参与、第一完成人/参与、国家级/省级/校级、已授权/受理中）。
3. 校级不入省级以上；交底书/申请中不算获批。

## Anti-Patterns

| 违规 | 严重度 | 后果 |
|------|--------|------|
| 未先确认分类法就检索 | 中 | 盘错对象，白做 |
| 单来源下结论 | 高 | 数字与官方不符 |
| 改口径不与用户确认 | 高 | 与事实冲突 |
| 覆盖/删除源档案 | 高 | 数据丢失 |
| openpyxl 读 WPS xlsx 失败即放弃 | 中 | 漏统计表数据（应 robust_xlsx 兜底） |

## 依赖

- Python：`openpyxl`、`pymupdf`、`rapidocr-onnxruntime`、`python-docx`、`PIL`
- 脚本：`scripts/robust_xlsx.py`（WPS/异常 xlsx → 文本行兜底解析）、`scripts/gen_summary.py`（xlsx 汇总表 + 一段话总结生成）

## 文件结构

```
skills/inventory-report/
├── README.md
├── SKILL.md
├── rules/
│   ├── taxonomy.md      # 分类法与关键词检索
│   ├── verification.md  # 多源交叉核验协议
│   └── output.md        # xlsx/总结/报告输出规范
└── scripts/
    ├── robust_xlsx.py   # 健壮 xlsx → 文本（兼容 WPS 异常样式）
    └── gen_summary.py   # 生成 xlsx 汇总表 + 一段话总结
```

## 版本历史

| 版本 | 日期 | 变更 |
|------|------|------|
| 1.0.0 | 2026-09-01 | 初始版本：从成果盘点/文献管理/内容收藏核对等多次盘点任务提炼的泛化盘点协议 |

