# Patent Report

> 生成专利管理状态报告，包含流水线概览、月度活动、工作焦点和项目维度分解。触发词：专利报告、月报、专利状态、进展汇报、patent report、report。

- Skill: `jeandoom/patent-report` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jeandoom/patent-report`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jeandoom/patent-report/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Jeandoom (https://skillmd.com/u/jeandoom)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/jeandoom/patent-report

---


# Patent Report Generator

生成专利管理状态报告，包含工作焦点、流水线概览、月度活动和项目维度分解。
**只读操作**：仅读取文件和 git 历史，不创建或修改任何文件。

## 触发条件

用户提到以下任一关键词时使用本 skill：
- "专利报告", "专利月报", "专利状态", "状态报告"
- "进展", "专利进展", "工作汇报", "月报"
- "patent report", "report"
- 用户明确指定时间范围并要求查看专利情况

---

## 执行流程

### 步骤 1：确定报告时间范围

**优先级**：用户显式指定的范围 > 自动检测。

**自动检测逻辑**：

1. 获取当前日期（使用 `date +%Y-%m-%d`）
2. 提取当前日（day of month）
3. 判断逻辑：
   - **如果 day ≤ 7**：报告覆盖**上月 + 本月**两个时间范围
   - **如果 day > 7**：报告仅覆盖**本月**
4. 将时间范围格式化为 `YYYY-MM` 标签列表

**用户显式指定**：

用户可能用以下方式指定时间范围，统一解析为月份列表 `[YYYY-MM, ...]`：
- "上个月的报告" → 上一个 YYYY-MM
- "4月和5月的" → [2026-04, 2026-05]
- "2026年以来的" → 从 2026-01 到当前月的所有月份
- "今年" → 当前年份的所有月份

### 步骤 2：读取全局流水线状态

读取 `D:/code/patent/records/_pipeline.md`，提取四个状态区域的条目数和内容：

| 状态区域 | 提取内容 |
|---------|---------|
| 已完成 (patented) | 创新点名称、项目、价值、专利文档路径、完成日期(YYYY-MM) |
| 已入围 (shortlisted) | 所有行（如有） |
| 编写中 (drafting) | 所有行（如有） |
| 待筛选 (discovered) | 创新点名称、项目、级别、价值、发现日期 |

### 步骤 3：读取专利生命周期记录

遍历 `D:/code/patent/records/*/record.md`（使用 Glob `records/**/record.md`）。

对每个 record.md，提取 frontmatter 和正文的**生命周期事件**：
- `patent_name`：专利名称
- `created_at`：创建日期
- `review_count`：审查回复次数
- 生命周期事件行格式：`- **YYYY-MM-DD**: 描述`，按事件日期归属到对应 YYYY-MM 月份

### 步骤 4：读取项目创新点数据

遍历 `D:/code/patent/innovations/*/_index.md`（使用 Glob `innovations/**/_index.md`）。

对每个项目：
1. 读取 `_index.md`，提取 frontmatter（`project_name`, `last_analyzed_at`, `total_innovations`）和正文中创新点表
2. 读取该目录下所有非 `_index.md` 的 `.md` 文件，提取 frontmatter：
   - `name`, `title`, `status`, `innovation_level`, `patent_value`
   - `discovered_at`（判断是否在报告时间范围内）
   - `patent_doc`（关联的专利文档路径）

### 步骤 5：检测工作焦点

使用两种信号源交叉验证：

**信号源 A — Git 提交历史**：

```bash
cd D:/code/patent && git log --format="%ad %s" --date=short --since="2 weeks ago"
cd D:/code/patent && git log --format="%ad" --date=short --since="2 weeks ago" --name-only
```

从提交信息中提取：
- 最近活跃的项目（commit message 中提到的项目名）
- 最近的操作类型（"分析" / "创建专利" / "审查回复" / "发现创新"）
- 最近变更的目录（records/ 对应管理操作，patents/ 对应文档操作，innovations/ 对应发现操作）

**信号源 B — 生命周期事件**：

从步骤 3 收集的生命周期事件中，筛选出报告时间范围内的事件，按频率和近期程度辅助判断。

**综合判定规则**：

将信号归类为以下焦点类型：
- `创新发现`：commit 涉及 `innovations/` 目录
- `专利编写`：commit 涉及 `patents/` 下的 `.md` 文件创建
- `审查回复`：commit 涉及 `回复-` 文件，或 record 中有审查回复事件
- `项目管理`：commit 涉及 `records/` 或 `_pipeline.md`

按涉及文件数量和事件数量排序，**数量最多的为主要工作焦点，放在报告最前面重点说明**。

### 步骤 6：筛选月度活动数据并生成报告

基于步骤 1 确定的月份列表，从已收集的数据中筛选月度活动：

| 数据来源 | 筛选条件 |
|---------|---------|
| innovations/ 文件 | `discovered_at` 匹配目标月份 |
| record.md 生命周期事件 | 事件日期匹配目标月份 |
| patents/ 目录 | 目录名 `patents/{YYYY-MM}/` 匹配目标月份 |
| _pipeline.md patented 区域 | 完成日期列匹配目标月份 |

按以下结构输出 Markdown 报告到对话，**不创建文件**：

---

## 报告模板

````markdown
# 专利管理报告

**报告日期**：YYYY-MM-DD
**覆盖时间范围**：YYYY-MM [, YYYY-MM]

---

## 🔥 工作焦点

> 基于最近 2 周的活动检测

**主要焦点**：{焦点类型} — {具体描述}

{2-3 句话说明当前正在做什么、进展到什么阶段}

**最近操作**：
- YYYY-MM-DD: {操作描述}
- YYYY-MM-DD: {操作描述}
- ...

---

## 📊 流水线状态概览

| 状态 | 数量 |
|------|------|
| ✅ 已完成 (patented) | N |
| 📋 已入围 (shortlisted) | N |
| ✏️ 编写中 (drafting) | N |
| 🔍 待筛选 (discovered) | N |
| **合计** | **N** |

---

## 📅 月度活动摘要

### YYYY-MM 月

| 指标 | 数量 |
|------|------|
| 新发现创新点 | N |
| 新建专利文档 | N |
| 审查回复 | N |

**新建专利**：
- {专利名称} — {项目}

**审查回复**（如有）：
- {专利名称} — 第 N 次回复

**新发现创新点**（如有）：
- {创新点名称}（{项目}，{级别}，{价值}）

> 如果该月无活动：备注"本月无专利相关活动记录"

[如有上月，重复上述结构]

---

## 🏢 项目维度

### {项目名}

**最后分析**：YYYY-MM-DD | **创新点总数**：N

| 创新点 | 级别 | 价值 | 状态 |
|--------|------|------|------|
| {title} | {level} | {value} | {status} |

---

## 📌 当前优先事项

基于流水线状态和工作焦点，建议的下一步操作：

1. {具体建议}
2. {具体建议}
````

---

## 边界情况处理

1. **指定时间范围内无活动**：月度活动摘要保留该月份，指标全部显示 0，添加备注"本月无专利相关活动记录"
2. **空项目目录**：如果某项目目录缺少 `_index.md`，跳过该项目
3. **无 git 历史**：如果 `git log` 返回空结果，跳过工作焦点检测，报告中标注"无法检测工作焦点"
4. **单月查询**：用户指定单个月份时只展示该月数据，不自动扩展

## 注意事项

1. **只读操作**：不创建、修改或删除任何文件
2. **数据来源优先级**：`_pipeline.md` 为全局权威数据源，`record.md` 生命周期事件为补充
3. **日期格式**：日期使用 `YYYY-MM-DD`，月份使用 `YYYY-MM`
4. **报告语言**：默认中文
5. **工作焦点放最前面**：这是用户最关心的内容，必须突出显示

