# Daily

> 扫描并补齐缺失的每日工作日志。对比 logs/daily/ 已有日志与 git 有提交的日期（按 07:00 边界归属），列出「昨天及之前、有 commit 但无日志」的日期，逐日生成骨架并补写当日摘要和改动意义。不执行 git add/commit，不补齐今天。

- Skill: `orangeviolin/daily` (Agent Skill)
- Install (CLI): `npx skillmds@latest add orangeviolin/daily`
- Raw SKILL.md: https://api.skillmd.com/api/skills/orangeviolin/daily/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: OrangeViolin (https://skillmd.com/u/orangeviolin)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/orangeviolin/daily

---


# /daily — 补齐缺失的每日工作日志

## 铁律

1. **不执行 git commit / git add**：只写日志文件
2. **不补齐今天**：今天的日志还在进行中，除非用户显式 `/daily <今天日期>`
3. **07:00 边界归属**：`YYYY-MM-DD.md` 覆盖 `YYYY-MM-DD 07:00` ~ `YYYY-MM-DD+1 07:00` 的 commit（凌晨 0-7 点归前一天）
4. **分支模式**：
   - **无参数 `/daily`**：扫描所有缺口并逐一补齐
   - **带参数 `/daily YYYY-MM-DD`**：只补齐指定日期（允许补今天）

## 无参数 `/daily` 执行步骤

### 1. 扫描已有日志

```bash
ls logs/daily/*.md 2>/dev/null | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}' | sort -u
```

### 2. 列出所有有提交的日期（按 07:00 边界归属）

```bash
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`：

1. **生成骨架**：创建 `logs/daily/D.md`，内容见「日志格式」节
2. **收集当日 commit 信息**：
   ```bash
   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
   ```
3. **撰写当日摘要**：从 commit message 和变更文件中提炼 5-9 条核心工作，末尾加 `· 提交N次代码`
4. **撰写改动意义**（三问各 1-3 句，合计 150-200 字）：
   - 为什么做这些事？（动机和背景）
   - 要解决什么问题？（痛点和目标）
   - 会影响什么最终交付物？（成果和价值）
5. **汇报**：`✅ D 已补齐（N 次提交）`

### 6. 汇总输出

```
补齐完成：
- 2026-04-20 ✅
- 2026-04-21 ✅

共 2 天，未执行 git add/commit。
```

## 带参数 `/daily YYYY-MM-DD` 执行步骤

跳过扫描和清单确认，直接对该日期执行「第 5 步：逐日补齐」流程。允许指定今天。

## 日志格式

`logs/daily/D.md` 结构：

```markdown
# 工作日志 D

## 当日摘要

​```
【项目名 D】

· 核心工作1（含数字）
· 核心工作2
· ...
· 提交N次代码
​```

## 改动意义

**为什么做这些事？**

（动机和背景，1-3 句）

**要解决什么问题？**

（痛点和目标，1-3 句）

**会影响什么最终交付物？**

（成果和价值，1-3 句）

---

## 提交记录

<!-- 由 git log 自动填入 -->
```

## 数据统计参考命令

```bash
# 当日提交次数
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 已归属前一天，跳过该日
- 有疑问不确定时询问用户，不要自作主张归并或跳过

