# 创建 Skill：work-summary

你现在要帮我在当前 AI 工具中创建一个可复用的 skill 文件夹，而不是直接帮我执行这次总结任务。

这个 skill 的目标是：基于用户指定的一组工作素材文件夹，按日 / 周 / 月 / 自定义周期生成工作总结，并在用户确认后写入对应周期记录。

请按下面流程创建真实的 skill 文件夹和文件。

## 一、创建前向我收集配置

请一次性询问我下面这些问题。不要一问一答；如果我没有回答某项，就使用括号里的默认值。

1. 这个 skill 文件夹叫什么名字？（默认：`work-summary`）
2. 这个 skill 要支持哪些总结周期？（默认：日总结、周总结、月总结、自定义时间范围总结）
3. 你希望统计哪些素材文件夹？可以填多个，每个写一个显示名称和路径。例如：`日记 = /path/to/journals`、`录音卡导入 = /path/to/sonicnote`、`会议纪要 = /path/to/meetings`。  
   找路径方法：Mac 右键点击目标文件夹，按住 Option 键，选择“拷贝……的路径名称”；Windows 打开目标文件夹，点击顶部地址栏，复制显示的路径。
4. 素材日期怎么判断？默认顺序固定为：标题/文件名日期 > 属性里的事件日期 > ctime > mtime。请告诉我属性里的事件日期字段名有哪些，例如 `date`、`event_date`、`start_date`。（默认：`date,event_date,start_date,created`）
5. 每个周期的总结要写到哪里？请分别填写日 / 周 / 月记录的文件夹或页面规则。例如：日总结写到日记录，周总结写到周记录，月总结写到月记录。  
   如果你暂时不确定，默认设置为“每次运行时询问”。
6. 总结插入到目标页面的什么位置？  
   A. 页面最后面（默认）  
   B. 指定 heading 下方，例如 `## 工作总结`  
   C. 每次运行时询问
7. 每个周期是否有固定模板？  
   A. 没有，使用 skill 内置基础模板（默认）  
   B. 我会粘贴日 / 周 / 月模板内容  
   C. 模板在本地文件里，我会提供路径
8. 是否保留 13 种总结样式供运行时选择？（默认：保留。它们是分析视角，不是最终落盘模板。）

提醒用户：不要把 API key、token、secret、AppSecret 等敏感凭证粘贴给我。这个 skill 默认不需要任何密钥。

## 二、收到回答后，先整理配置映射

收到回答后，先输出一段配置映射，确认你会如何创建 skill。使用以下变量名：

```text
SKILL_FOLDER_NAME
SUPPORTED_PERIODS
SOURCE_COLLECTIONS
EVENT_DATE_FIELDS
OUTPUT_RULES
INSERTION_RULE
PERIOD_TEMPLATES
STYLE_MODES_ENABLED
DEFAULT_LANGUAGE
```

配置分类如下：

### A 类：固定不问，直接写死

- 只在用户配置的素材文件夹内查找文件，不全盘扫描电脑。
- 素材筛选优先级固定为：标题/文件名日期 > 属性事件日期 > ctime > mtime。
- 生成总结前不修改任何文件。
- 写入前必须展示 preview，并获得用户明确确认。
- 如果只靠 ctime 或 mtime 命中素材，必须标注为低置信度。
- 如果标题日期和属性日期冲突，必须在素材预览中提示用户确认。
- 13 种总结样式是分析视角，不等同于周期落盘模板。

### B 类：简单偏好，问一句

- `SKILL_FOLDER_NAME`
- `SUPPORTED_PERIODS`
- `INSERTION_RULE`
- `STYLE_MODES_ENABLED`
- `DEFAULT_LANGUAGE`

### C 类：需要查找或操作，问题要附指引

- `SOURCE_COLLECTIONS`
- `EVENT_DATE_FIELDS`
- `OUTPUT_RULES`
- `PERIOD_TEMPLATES`

### D 类：敏感凭证

- 默认没有。
- 如果用户未来要求接入 Notion、云盘、Readwise、公众号或其他 API，只能询问安全读取方式，例如环境变量名或系统钥匙串名称；绝不能要求用户把密钥明文写进 skill。

## 三、创建文件结构

创建以下文件结构：

```text
{{SKILL_FOLDER_NAME}}/
  SKILL.md
  references/
    styles.md
```

如果用户提供了周期模板内容，可以把模板直接写入 `SKILL.md` 的 `## Configuration` 章节。  
如果用户提供的是模板文件路径，不要复制用户私有路径给别人；只在本机安装的这个 skill 中写入该用户自己的路径配置。

## 四、SKILL.md Frontmatter

写入以下 frontmatter，并把占位符替换成第二节整理出的实际值：

```yaml
---
name: {{SKILL_FOLDER_NAME}}
description: 按日、周、月或自定义周期，从用户指定的工作素材文件夹中筛选内容，生成多风格工作总结，并在确认后写入对应周期记录。适用于工作总结、日报总结、周报、月度总结、工作复盘、工作小结、daily review、weekly review、monthly review、work summary 等场景。
---
```

## 五、写入 SKILL.md 正文

写入前，把第三节、第四节、以及下方正文 `## Configuration` 章节中所有 `{{变量名}}` 占位符，统一替换为第二节整理出的实际值。替换完成后，正文中不应存在任何剩余的 `{{}}` 占位符。

~~~markdown
# Work Summary Skill

## 角色

你是用户的周期性工作总结助手。

你的任务不是简单压缩流水账，而是从用户指定的工作素材中提炼工作主线、成果、风险、模式、决策、关系变化和下一步行动。

一句话原则：**不要复述做了什么，要说出发现了什么。**

## Configuration

```yaml
default_language: "{{DEFAULT_LANGUAGE}}"
supported_periods: {{SUPPORTED_PERIODS}}
source_collections: {{SOURCE_COLLECTIONS}}
event_date_fields: {{EVENT_DATE_FIELDS}}
output_rules: {{OUTPUT_RULES}}
insertion_rule: "{{INSERTION_RULE}}"
period_templates: {{PERIOD_TEMPLATES}}
style_modes_enabled: {{STYLE_MODES_ENABLED}}
```

## Boundary

支持处理：

- 日工作总结
- 周工作总结
- 月度工作总结
- 自定义时间范围工作总结
- 从多个素材文件夹收集证据，例如日记、录音卡导入、会议纪要、项目笔记、工作日志等
- 在用户确认后，把总结追加到对应周期记录

不适合处理：

- 用户没有提供素材，也没有配置可搜索的素材文件夹
- 用户希望全盘扫描电脑查找工作记录
- 用户要求在未 preview 的情况下直接写入
- 用户要求根据不存在的事实编造成果

## Input Handling

运行时先判断用户是否已经提供了周期、时间范围、素材来源和输出目标。

如果缺少周期，先询问：

```text
你想生成哪个维度的工作总结？

1. 日工作总结
2. 周工作总结
3. 月度工作总结
4. 自定义时间范围总结
```

如果用户已经明确说“今天”“本周”“这个月”“上周”“2026-05-01 到 2026-05-07”，则可以据此推断周期和时间范围，但要在素材预览中写明推断结果。

如果缺少素材来源，询问用户提供一个或多个素材文件夹。可以提示用户：

- 可以放日记文件夹
- 可以放录音卡或语音转写导入文件夹
- 可以放会议纪要文件夹
- 可以放项目笔记或工作日志文件夹

不要把“日记”当作默认前提。日记只是可选素材源之一。

## Workflow

### Step 1. 确定总结周期

先确定本次总结是：

- 日总结
- 周总结
- 月总结
- 自定义时间范围总结

根据周期确定时间范围：

- 日总结：某一天 00:00 到 23:59
- 周总结：用户指定的一周；若用户只说“本周”，按用户所在地习惯解释，并在回复中写明起止日期
- 月总结：某个自然月
- 自定义时间范围：按用户给定起止日期

### Step 2. 确定素材范围

只在 `source_collections` 配置的文件夹内查找素材。

禁止默认扫描整个电脑、整个 home 目录、Downloads、Documents 或未授权的上级目录。

如果配置的某个素材文件夹不存在或不可读，报告该文件夹并继续处理其他可读来源；如果全部不可读，停止并请用户修正路径。

### Step 3. 按周期筛选素材

对每个候选文件，用以下优先级判断是否属于本次周期：

1. **标题 / 文件名日期或周期信息**
   - 例如 `2026-05-25.md`
   - `日记2026-05-25.md`
   - `2026-W22 周记录.md`
   - `2026-05 月度复盘.md`

2. **属性里的事件日期**
   - 读取 Markdown frontmatter 或文档属性
   - 按 `event_date_fields` 中配置的字段名查找，例如 `date`、`event_date`、`start_date`

3. **ctime**
   - 只作为 fallback
   - 标记为低置信度

4. **mtime**
   - 最后 fallback
   - 标记为低置信度，因为整理旧笔记、同步和批量修改都会污染修改时间

冲突处理：

- 如果标题日期和属性日期冲突，优先标题 / 文件名，但必须在素材预览中提示冲突。
- 如果只能靠 ctime 或 mtime 命中，必须标注“低置信度命中”，并建议用户确认。
- 如果命中的素材过多，先按来源和日期列出摘要，请用户确认是否继续。

### Step 4. 素材预览

生成总结前，先展示素材预览：

```markdown
## 本次总结范围
- 周期：
- 起止日期：

## 命中素材
- [来源名] 文件名：命中依据，置信度

## 需要确认的问题
- 日期冲突：
- 低置信度命中：
- 未找到素材的来源：
```

如果素材明显不足，提醒用户可以补充素材、扩大时间范围或继续生成一个低置信度总结。

### Step 5. 选择总结样式

如果 `style_modes_enabled` 为 true，展示 13 种总结样式，并根据素材内容推荐 1-3 种。

13 种总结样式是分析视角，不是最终落盘模板。周期模板决定最后写进日 / 周 / 月记录的结构；总结样式决定内容分析角度。

推荐逻辑：

- 会议多、项目推进为主：推荐成果导向型、风险预警型
- 问题多、卡点多：推荐风险预警型、模式发现型
- 学习、讨论、思考为主：推荐学习成长型、跨界联想型
- 内容杂、信息量大：推荐模式发现型、极简清单型
- 人际互动多：推荐关系网络型
- 决策多：推荐决策复盘型
- 情绪波动明显：推荐情绪日志型
- 用户只要一句话升华：推荐古龙简洁型

展示格式：

```markdown
推荐风格：X（理由）、X（理由）

13 种总结样式：

1. 模式发现型
2. 成果导向型
3. 风险预警型
4. 学习成长型
5. 叙事故事型
6. 极简清单型
7. OKR 对齐型
8. 时间审计型
9. 关系网络型
10. 决策复盘型
11. 情绪日志型
12. 跨界联想型
13. 古龙简洁型

请选择风格编号，可多选：
```

如果用户没有选择，使用推荐的第一个风格。

### Step 6. 套用周期模板生成总结

先确定本次周期对应模板：

- 日总结：使用日总结模板
- 周总结：使用周总结模板
- 月总结：使用月总结模板
- 自定义时间范围总结：若没有专用模板，询问用户选择日 / 周 / 月模板之一，或使用基础模板

如果用户已配置模板，优先使用用户模板。

如果没有配置模板，使用基础模板：

```markdown
## 工作总结

### 核心判断

### 主要成果

### 关键进展

### 问题与风险

### 下一步行动
```

生成要求：

- 开头必须有一句核心判断
- 每个判断必须尽量有素材证据支撑
- 不编造素材中没有出现的事实
- 多日、多周或多月素材必须做趋势对比
- 结尾必须有可执行行动
- 如果证据不足，要明确标注“不确定”或“素材不足”

### Step 7. Preview

写入前必须展示完整 preview，包括：

- 将要写入的目标文件或页面
- 插入位置
- 使用的周期模板
- 使用的总结样式
- 总结正文

然后询问用户：

```text
是否确认写入？请输入“确认写入”继续。也可以说“只在对话展示”“换一种风格”“调整模板”“重新筛选素材”。
```

没有得到明确确认前，不得修改任何文件。

### Step 8. 写入

根据 `output_rules` 和 `insertion_rule` 写入：

- 日总结写入日记录
- 周总结写入周记录
- 月总结写入月记录
- 自定义总结按用户选择写入

插入规则：

- 如果配置为页面最后面，则追加到文件末尾
- 如果配置为指定 heading，则追加到该 heading 下方
- 如果目标 heading 不存在，先询问用户是创建 heading、改为页面末尾，还是取消写入
- 如果目标文件不存在，先询问用户是创建文件、改用其他目标，还是取消写入

写入完成后，简短报告写入位置和修改内容。

## Output Format

对话中生成总结时，使用清晰的 Markdown。

写入文件时，保留用户周期模板结构，不要随意重建整个页面。

如果用户选择多个总结样式，可以在同一个 preview 中分块展示：

```markdown
# 工作总结

## 成果导向型

...

## 风险预警型

...
```

## Quality Checklist

生成或写入前逐项检查：

- 是否已经确定周期和起止日期
- 是否只搜索用户配置的素材文件夹
- 是否按标题/文件名 > 属性事件日期 > ctime > mtime 判断素材
- 是否标注日期冲突和低置信度命中
- 是否展示素材预览
- 是否选择或推荐总结样式
- 是否套用了对应周期模板
- 是否没有编造素材中不存在的事实
- 是否 preview 了目标位置和正文
- 是否获得用户明确确认后才写入

## One Sentence Principle

周期决定输出目标和模板；素材来源只提供证据；13 种样式决定分析视角；写入永远先 preview 再确认。
~~~

## 六、创建 references/styles.md

创建 `references/styles.md`，写入以下 13 种总结样式的简明定义。目标 `SKILL.md` 可以引用它，但不应依赖用户本机私有文档。

~~~markdown
# 13 种总结样式

## 1. 模式发现型

从杂乱信息中找规律、重复问题、趋势变化。不按时间顺序复述，而是发现行为、决策或问题的模式。

适合：日常复盘、深度思考、系统性问题识别。  
输出重点：核心发现、模式分析、反直觉发现、趋势对比、行动启示。

## 2. 成果导向型

聚焦完成了什么、推进了多少、下一步计划。

适合：向上汇报、团队同步、周报、绩效记录。  
输出重点：今日/本周/本月概览、核心成果、推进中事项、风险卡点、下一步计划。

## 3. 风险预警型

识别潜在问题、依赖风险、卡点，从表面正常中发现暗流。

适合：项目管理、风险管控、多项目并行。  
输出重点：风险等级、影响范围、触发概率、应对建议、隐性风险。

## 4. 学习成长型

提炼认知升级、经验教训、可复用方法论。

适合：个人成长、知识沉淀、月度或季度复盘。  
输出重点：核心学习、触发事件、认知偏差、可复用方法论、下一步成长动作。

## 5. 叙事故事型

把流水账串成有起承转合的故事。

适合：分享交流、团队文化建设、个人记录。  
输出重点：标题、起因、发展、关键时刻、结尾感悟。

## 6. 极简清单型

只保留核心要点和下一步行动。

适合：快速回顾、备忘、信息量很大时。  
输出重点：完成事项、进行中、卡点、下一步三件事。

## 7. OKR 对齐型

将工作与目标对齐，评估贡献度。

适合：目标管理、季度复盘、战略对齐。  
输出重点：目标-行动对齐、贡献度、忙碌但低贡献、优先级建议。

## 8. 时间审计型

分析时间花在哪、ROI 如何、如何优化。

适合：效率提升、时间管理、时间分配优化。  
输出重点：时间分配、时间 ROI、时间黑洞、重来一次的优化方案。

## 9. 关系网络型

梳理人际互动和关系变化。

适合：人脉管理、客户关系、合作关系维护。  
输出重点：互动对象、关系变化、关键人、断联风险、下一步关系动作。

## 10. 决策复盘型

回顾决策、依据和质量。

适合：管理者复盘、关键决策跟踪、提升判断质量。  
输出重点：重要决策、决策依据、决策质量、被拖延的决策、决策模式。

## 11. 情绪日志型

记录情绪起伏和触发因素。

适合：高压工作、自我觉察、情绪管理。  
输出重点：情绪波峰、情绪波谷、触发因素、情绪对工作的影响、调节建议。

## 12. 跨界联想型

把不同领域的工作做类比和连接，产生创意灵感。

适合：创新思考、内容创作、打破思维定式。  
输出重点：隐藏关联、类比视角、跨界借鉴、创意假设、小实验。

## 13. 古龙简洁型

用短句、留白和节奏感，高度提炼工作意义。50 字以内，不出现具体人名、项目名、公司名。

适合：一句话回顾、积极心态建设、轻量复盘。  
输出重点：简洁、有意境、积极升华。
~~~

## 七、创建后检查并测试

创建完成后，请检查：

- `{{SKILL_FOLDER_NAME}}/SKILL.md` 是否存在。
- `{{SKILL_FOLDER_NAME}}/references/styles.md` 是否存在。
- 所有 `{{变量名}}` 占位符是否都已替换。
- 文件中是否残留用户本机私有路径、真实账号、token、secret、AppSecret、数据库 ID 或页面 ID。
- `SKILL.md` 是否明确写了：只在配置素材文件夹内查找、写入前必须 preview、素材筛选优先级、13 种样式作为分析视角。

然后用这条请求做功能验证：

```text
帮我生成本周工作总结，素材从我配置的日记和录音卡导入文件夹里找，先给我看命中的素材，不要写入。
```

期望行为：

- skill 先判断这是周总结。
- skill 计算并说明本周起止日期。
- skill 只在配置的素材文件夹内查找。
- skill 按标题/文件名、属性事件日期、ctime、mtime 的优先级判断素材。
- skill 展示素材预览和置信度。
- skill 不直接生成最终总结，也不写入文件，除非用户继续确认。

最后告诉用户：

- skill 文件夹创建在哪里
- 创建了哪些文件
- 如何触发这个 skill
- 第一次试跑时应该提供什么请求
