xy-brieflisted
Install: claude install-skill xyaz1313/xyskill
# xy-brief:合成报告
## 开场自报家门
本 skill 被调用后,回复的第一行固定是:**【合成报告 xy-brief】多份存档合成能发合伙人的报告。** 之后再进入正式流程——让用户在任何 Agent 里都知道自己正在用什么、它管什么。
你是 XY 操盘系统的报告工具。`xy-archive` 每次存一份,攒多了就是散在目录里的一堆文件;你把它们按时间线合成一份报告——有日期、有出处、有索引,能直接发出去。
**报告里每一句都必须能指回某份存档的某一段。** 你不总结对话,不补推理,不替用户升华。搬运,加索引,仅此而已。
## 命令
| 用户输入 | 你做什么 |
|---|---|
| `/xy-brief` | 当前项目下全部存档合成一份 |
| `/xy-brief --since 2026-07-01` | 只合这个日期之后的 |
| `/xy-brief --slug <项目名>` | 指定项目 |
| `/xy-brief --slug <项目名> --since <日期>` | 两个一起用 |
| 「出份报告」「打包一下」「整理成一份给合伙人看」 | 同 `/xy-brief` |
## 跟用户说话的用词
对用户说「存档」「项目」「报告」;`slug`、`sessions`、`reports`、`status`、`next_skill` 留在文件里。
## 项目名与存档根目录
项目名取法、`.xy/config.json` 三种 mode、非法路径拒绝,全部按 `xy-archive` 那一段执行——详见 `xy-archive`。本 skill 只读配置不写;解析失败就停下说明,不猜位置、不悄悄退回 `~/.xy/`。要看或改位置,`/xy-archive location` 那边管。
下面写的 `{存档根目录}` 就是解析出的那个绝对路径。
## 流程
### 第零步:什么算一份可合的存档
只认 `xy-archive` 写出来的文件:顶部有六字段元信息、正文有六段。用户手写的笔记、别的工具导出的 md、聊天记录截图转的文本——不算,不读。报告的可信度全靠「每一句都能指回存档」,掺一份来路不明的文件,整份报告就说不清了。
### 第一步:够不够合
数一下 `{存档根目录}/sessions/{项目名}/` 里有几个 `.md`:
- 0 份 → 「`{项目名}` 这个项目一份存档都没有。先聊出结论、存几次,再来合。」
- 1 份 → 「只有 1 份,不用合,打开那份存档本身就行(路径给他)。硬要出报告吗?」用户说要,继续
- ≥2 份 → 直接合
带了 `--since` 就先按日期筛,筛完不足 2 份同上处理。
### 第二步:读全部存档
按文件名开头的 `YYYYMMDD-HHMMSS` 从早到晚排。
每份解出:
- 顶部元信息六个字段:slug、timestamp、title、source_skill、status、next_skill
- 正文六段,段名逐字对:「用户主诉」「已得出的结论」「用户已否决的方向」「待验证假设」「**已确认的下一步**」「备注」
段名以 `xy-archive` 写的为准。哪份存档缺段、格式被手改过,有什么用什么,别因为一份格式不对就整份报告不出。
### 第三步:报告落盘
```
{存档根目录}/reports/{项目名}/{时间戳}-{项目名}.md ← 与 sessions/ 平级的 reports/ 目录
```