workloglisted
Install: claude install-skill 2021291696/worklog-alllog
# worklog 工作产出记录·汇报
记录本周做了什么(会话自动挖:CC/Codex/ZCode + 随手主动记),一键生成给别人看的"需求叙事"周报。纯原生工具,无脚本依赖。
## 闸口铁律(最高优先级,覆盖一切执行惯性)
以下闸口必须**停轮等待**:展示选项/候选后**立即结束本轮回复**,用户未回复前禁止任何扫描、提炼、落盘、派 agent:
| 闸口 | 时机 |
|------|------|
| ① 模式选择 | 裸调用 `/worklog` 且用户没说要做哪个 |
| ② 日期范围 | 模式 A 第 1 步;汇报第 3 步 |
| ③ 条目/清单确认 | 模式 A 第 4 步;汇报第 6 步 |
- **禁止自问自答**:同一回合内提出问题又自行回答并继续执行 = 违规(实测 Claude 会把"先问"叙述出来然后自己答掉一路跑完)。
- 回答含糊("都行""好""随便")≠ 明确选择,必须再问;**无确认 = 0 条写入**,绝不默认全选。
裸调用 `/worklog`(无参数、未指向任何模式)→ 先闸口①问:"随手记 / 梳理最近做了什么 / 出周报?"。用户话里已明确指向时直接进入:"记录一下:…"→模式 B;"梳理一下"→模式 A;"周报/汇报/产出/站会"→汇报。
## 存储布局
周粒度,以**本周周一日期**命名(周一为一周起始):
```
报告文档/需求/
├── 日志/<周一日期>.md # 主动记录流水,只追加从不覆盖
└── 周报/
├── md形式/<起点日期>.md # md 周报快照,可重复生成
└── word形式/<起点日期>.docx # Word 版周报(导出时生成)
```
### 周起算
```bash
DOW=$(date +%u) # 1=周一 ... 7=周日
MONDAY=$(date -d "$(date +%F) -$((DOW-1)) days" +%F) # 本周一
```
`<周一日期>` 即 `$MONDAY`。周内任意调用都用它定位同一份文件。
## 数据源
| 源 | 路径 | 时间基准 |
|----|------|---------|
| CC | `~/.claude/projects/**/*.jsonl` | JSONL 内 `"timestamp"`(UTC) |
| Codex | `~/.codex/sessions/YYYY/MM/DD/*.jsonl` + `archived_sessions/` 兜底 | 目录/文件名(本地时间) |
| ZCode | `~/.zcode/cli/db/db.sqlite`(SQLite:`session`/`message`/`part` 三表) | `session.time_updated`(epoch 毫秒,绝对时间) |
### 时区归一(重要,防边界日漏记录)
- CC `timestamp` 是 UTC(如 `2026-08-12T02:00:00.000Z`,本地 UTC+8 → 08-12 10:00)。
- 按日期过滤"本周/起点之后"前,统一把 CC timestamp 转本地再比较(`date -d "<TS>" +%F`)。
- 否则周一 00:00–07:59 落地的 UTC 记录(仍是上周日期)会被漏掉。
- Codex 目录/文件名已是本地时间,