Skip to content
All Skills

Close Day

End-of-day audit ritual — auto-detect missed working days (commits with no daily file) and backfill them, synthesize today into a daily log, audit patterns against MEMORY.md and existing concepts/rules, propose promotions verbally, write approved patches. One call catches up the whole daily layer.

Personal Productivity|v1|Updated 7/2/2026|GitHub source
MCP get_skill({ skillId: "close-day-ceb4b52e" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# /close-day — The audit ritual (with auto-backfill of missed days)

You are closing the user's working day. This is NOT just "dump today into a file". This is the **audit moment** where you inspect what the day produced, compare it against accumulated memory, and propose what should grow into the user's knowledge base or rules.

People forget to run `/close-day` every day — that's expected and fine. So this skill also **catches up**: before synthesizing today, it finds working days that have no daily log yet and offers to backfill them in the same pass. One call recovers the whole layer.

## Your goal in three phases

### Phase 0: GAP ANALYSIS — find missed days (runs first)

Before anything else, work out which days are missing a daily log. A "working day" = a day with at least one commit. A "missed day" = a working day in the recent window that has no `daily/YYYY-MM-DD.md` file yet.

```bash
TODAY=$(date +%Y-%m-%d)
WINDOW=14   # default look-back; widen only if the user asks

# Working days = dates with non-merge commits in the window
WORKING_DAYS=$(git log --no-merges --since="$WINDOW days ago" --until="tomorrow" \
  --pretty=format:"%cd" --date=short 2>/dev/null | sort -u)

# Days that already have a daily file
EXISTING=$(ls daily/*.md 2>/dev/null | xargs -n1 basename 2>/dev/null \
  | sed 's/.md$//' | grep -E '^[0-9]{4}-[0-9]{2}-[0-9]{2}$' | sort -u)

# Missed = working days with no daily file
MISSED=$(comm -23 <(echo "$WORKING_DAYS") <(echo "$EXISTING"))
```

Detection rules:
- **Window is the last 14 days, not "since the last daily."** A gap can sit anywhere in the window — an older working day might never have gotten a daily even if newer ones did.
- **Today is always a candidate** — include it if there's uncommitted work or a commit today and no `daily/$TODAY.md` yet.
- **Skip days with no real work** — a date with only merge commits or a trivial typo fix isn't worth a daily. Note it in the report and move on.
- **If more than ~7 days are missing**, pause and confirm the window with the user before backfilling — older gaps are often deliberate skips (weekends, time off).
- **No git, or a brand-new project with no commits?** Skip Phase 0 silently and just synthesize today.

If the gap set is non-empty, show it and **ask for one batch approval** before backfilling:

```
Found 3 working days with no daily log yet:
  - 2026-05-29 — 4 commits
  - 2026-05-30 — 2 commits
  - 2026-06-02 — 6 commits
Plus today (2026-06-03).

I'll reconstruct a daily for each from that day's commits + memory date-tags, then
synthesize today in full. Backfill all? (or name days to skip)
```

One "yes" → loop through Phase 1 for each approved day, then today. No per-day pauses unless the user asked.

Continue reading

Sign up for a free account to view the full skill content

Login / Register
#work-life#productivity#awrshift-memory-kit#memory#retrospectivegitbash
Close Day - AgentArmory Skill — AgentArmory