Whylog record
记录本次会话变更背后的"为什么"——决策依据、方案选择、考虑过的替代方案——追加到 docs/decisions/log.md。凡产生文件改动或技术决策的任务完成后触发。From its SKILL.md
npx -y skills add zzusp/doc-first-dev --skill whylog-recordAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `date "+%Y-%m-%d %H:%M" 2>/dev/null || powershell -Command "Get-Date -Format 'yyyy-MM-dd HH:mm'"`.
SKILL.md
3.3 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
whylog-record
在产生文件改动或技术决策的任务完成后,记录决策上下文到
docs/decisions/log.md。
0. 判断是否记录
回顾本次对话,按以下规则判断:
记录:修改了项目源码/配置/依赖、修复了 bug、做出了技术决策或方案选择
酌情记录:仅修改了文档或测试——满足以下任一条件则记录,否则跳过:① 修改时存在多个方案的选择(有取舍行为);② 修改原因不显而易见(非单纯的格式整理或拼写修正)
跳过:纯问答、纯阅读/探索、任务未完成或被取消、whylog skill 自身执行、仅修改了 docs/decisions/ 下的文件
若判断为跳过,输出一行说明(如"无需记录:纯问答")后直接结束,不执行后续步骤。
1. 确保日志文件存在
若 docs/decisions/log.md 不存在,创建目录和文件,写入 # Decision Log。
2. 写入记录
新 entry 必须追加到文件最末尾。不得插入已有 entry 之间。 写入后确认:新 entry 是文件中最后一个
## YYYY-MM-DD HH:MM标题,且其日期不早于前一条 entry 的日期。
写入前执行以下命令获取当前日期和时间(自动适配平台),填入标题:
date "+%Y-%m-%d %H:%M" 2>/dev/null || powershell -Command "Get-Date -Format 'yyyy-MM-dd HH:mm'"
格式自由,外层结构统一:
## YYYY-MM-DD HH:MM — {简短标题}
{1~5 句话,不要硬凑。包含以下要素,按需取舍:}
- 做了什么、为什么
- 选了什么方案、考虑过什么替代方案
- 涉及哪些关键文件
不同场景的写法参考:
- 实现功能:选择 JWT + httpOnly cookie 而非 server-side session。原因:需支持多实例部署,session 需共享存储。考虑过 Redis session 但团队无运维经验。涉及:
src/auth/middleware.ts - 修复 bug:修复分页偏移量计算错误,原因是 offset 从 1 开始而非 0。涉及:
src/api/list.ts - 重构/配置:将日志轮转触发条件从行数改为 entry 数量,减少换行策略导致的触发抖动。
- 纯决策(无代码改动):决定 API 版本策略采用 URL path 而非 header,便于调试和缓存。放弃 header 方案因客户端兼容性差。
3. 向用户展示
写入后输出一行摘要,格式固定为:
已记录: {标题} → docs/decisions/log.md
其中 {标题} 与写入的标题保持一致。用户可要求修正。
4. 日志轮转
统计 log.md 中以 ## YYYY-MM-DD HH:MM 开头的标题数量,若 >= 150:
- 取
log.md中第一条 entry 标题的月份(YYYY-MM)作为归档文件名,避免跨月内容被错误归入当前月 - 将
log.md全部内容追加到docs/decisions/log-YYYY-MM.md(不存在则创建) - 确认写入成功后,重建
log.md,写入# Decision Log和排序说明 - 若该归档文件超过 2000 行,拆分为
log-YYYY-MM-01.md、log-YYYY-MM-02.md…(按序递增) - 告知用户已轮转至哪个归档文件
What ships with it: 3 files
8.2 KB alongside SKILL.md
evals/
- eval-01-record-vs-skip.md2.8 KB
- eval-02-log-rotation.md2.6 KB
- eval-03-edge-cases.md2.8 KB