| name | daily |
| description | 扫描并补齐缺失的每日工作日志。对比 logs/daily/ 已有日志与 git 有提交的日期(按 07:00 边界归属),列出「昨天及之前、有 commit 但无日志」的日期,逐日生成骨架并补写当日摘要和改动意义。不执行 git add/commit,不补齐今天。 |
/daily — 补齐缺失的每日工作日志
铁律
- 不执行 git commit / git add:只写日志文件
- 不补齐今天:今天的日志还在进行中,除非用户显式
/daily <今天日期>
- 07:00 边界归属:
YYYY-MM-DD.md 覆盖 YYYY-MM-DD 07:00 ~ YYYY-MM-DD+1 07:00 的 commit(凌晨 0-7 点归前一天)
- 分支模式:
- 无参数
/daily:扫描所有缺口并逐一补齐
- 带参数
/daily YYYY-MM-DD:只补齐指定日期(允许补今天)
无参数 /daily 执行步骤
1. 扫描已有日志
ls logs/daily/*.md 2>/dev/null | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}' | sort -u
2. 列出所有有提交的日期(按 07:00 边界归属)
git log --date=iso --pretty=format:"%cd" \
| awk '{ date=$1; time=$2; if (time < "07:00:00") { cmd="date -d \"" date " -1 day\" +%Y-%m-%d"; cmd | getline date; close(cmd); } print date }' \
| sort -u
3. 计算缺口
集合差:{有提交的日期} − {已有日志的日期} − {今天},得到要补齐的日期列表。
4. 展示清单 + 确认
向用户展示:
以下日期有 commit 但无日志,将逐一补齐:
- 2026-04-20(N 次提交)
- 2026-04-21(M 次提交)
共 2 天需补齐。是否继续?
等待用户确认后再执行第 5 步(除非用户已开启自动确认)。
5. 逐日补齐
对每个缺失日期 D:
- 生成骨架:创建
logs/daily/D.md,内容见「日志格式」节
- 收集当日 commit 信息:
git log --since="D 07:00" --until="D+1 07:00" --oneline
git log --since="D 07:00" --until="D+1 07:00" --name-only --format="" | sort -u | wc -l
- 撰写当日摘要:从 commit message 和变更文件中提炼 5-9 条核心工作,末尾加
· 提交N次代码
- 撰写改动意义(三问各 1-3 句,合计 150-200 字):
- 为什么做这些事?(动机和背景)
- 要解决什么问题?(痛点和目标)
- 会影响什么最终交付物?(成果和价值)
- 汇报:
✅ D 已补齐(N 次提交)
6. 汇总输出
补齐完成:
- 2026-04-20 ✅
- 2026-04-21 ✅
共 2 天,未执行 git add/commit。
带参数 /daily YYYY-MM-DD 执行步骤
跳过扫描和清单确认,直接对该日期执行「第 5 步:逐日补齐」流程。允许指定今天。
日志格式
logs/daily/D.md 结构:
# 工作日志 D
## 当日摘要
```
【项目名 D】
· 核心工作1(含数字)
· 核心工作2
· ...
· 提交N次代码
```
## 改动意义
**为什么做这些事?**
(动机和背景,1-3 句)
**要解决什么问题?**
(痛点和目标,1-3 句)
**会影响什么最终交付物?**
(成果和价值,1-3 句)
---
## 提交记录
<!-- 由 git log 自动填入 -->
数据统计参考命令
git log --since="D 07:00" --until="D+1 07:00" --oneline | wc -l
git log --since="D 07:00" --until="D+1 07:00" --name-only --format="" | sort -u | wc -l
git log --since="D 07:00" --until="D+1 07:00" --diff-filter=A --name-only --format="" | sort -u
git log --since="D 07:00" --until="D+1 07:00" --name-only --format="" | sort -u
输出后
- 只写日志文件,不触碰 git
- 若某日有提交但 07:00 边界过滤后实际为 0 次,说明全部 commit 已归属前一天,跳过该日
- 有疑问不确定时询问用户,不要自作主张归并或跳过