Patent Report Generator
生成专利管理状态报告,包含工作焦点、流水线概览、月度活动和项目维度分解。 只读操作:仅读取文件和 git 历史,不创建或修改任何文件。
触发条件
用户提到以下任一关键词时使用本 skill:
- "专利报告", "专利月报", "专利状态", "状态报告"
- "进展", "专利进展", "工作汇报", "月报"
- "patent report", "report"
- 用户明确指定时间范围并要求查看专利情况
执行流程
步骤 1:确定报告时间范围
优先级:用户显式指定的范围 > 自动检测。
自动检测逻辑:
- 获取当前日期(使用
date +%Y-%m-%d) - 提取当前日(day of month)
- 判断逻辑:
- 如果 day ≤ 7:报告覆盖上月 + 本月两个时间范围
- 如果 day > 7:报告仅覆盖本月
- 将时间范围格式化为
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)。
对每个项目:
- 读取
_index.md,提取 frontmatter(project_name,last_analyzed_at,total_innovations)和正文中创新点表 - 读取该目录下所有非
_index.md的.md文件,提取 frontmatter:name,title,status,innovation_level,patent_valuediscovered_at(判断是否在报告时间范围内)patent_doc(关联的专利文档路径)
步骤 5:检测工作焦点
使用两种信号源交叉验证:
信号源 A — Git 提交历史:
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 报告到对话,不创建文件:
报告模板
# 专利管理报告
**报告日期**: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. {具体建议}
边界情况处理
- 指定时间范围内无活动:月度活动摘要保留该月份,指标全部显示 0,添加备注"本月无专利相关活动记录"
- 空项目目录:如果某项目目录缺少
_index.md,跳过该项目 - 无 git 历史:如果
git log返回空结果,跳过工作焦点检测,报告中标注"无法检测工作焦点" - 单月查询:用户指定单个月份时只展示该月数据,不自动扩展
注意事项
- 只读操作:不创建、修改或删除任何文件
- 数据来源优先级:
_pipeline.md为全局权威数据源,record.md生命周期事件为补充 - 日期格式:日期使用
YYYY-MM-DD,月份使用YYYY-MM - 报告语言:默认中文
- 工作焦点放最前面:这是用户最关心的内容,必须突出显示