From field-notes
End-of-session retrospective — analyze the current session's journal entries and surface actionable insights for future sessions. Use before ending a long session or at natural stopping points.
How this skill is triggered — by the user, by Claude, or both
Slash command
/field-notes:reflectThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A structured retrospective for the current session. Reads the journal entries written during this session, analyzes what happened, and produces actionable takeaways that improve future work.
A structured retrospective for the current session. Reads the journal entries written during this session, analyzes what happened, and produces actionable takeaways that improve future work.
This is not a summary — it's a thinking exercise. The agent examines its own work with fresh eyes.
Announce at start: "Reflecting on this session."
Read .claude/journal.jsonl and filter to entries from the current session (by timestamp range or session identifier). Also check:
git log for commits made during the sessiongit diff --stat for uncommitted changesTaskList for task completion statusBuild a chronological narrative of what happened:
Session Timeline:
10:15 — Started with zenflow:collab, exploring SSE implementation
10:30 — Found rate limiter bug, delegated to worktree agent
10:45 — Designed notification schema together
11:00 — Created plan (resources/plans/245-notifications.md)
11:15 — Started zenflow:dispatch, tasks 1-3 in parallel
12:00 — Tasks 1-2 complete, task 3 partial (missing reconnection)
12:15 — Fixed task 3 with implementer re-dispatch
12:30 — zenflow:check-work passed all gates
12:35 — Rate limiter PR merged from worktree delegate
Ask these questions about the session:
What went well?
What was harder than expected?
What was learned?
What should change?
Format the reflection as actionable items:
## Session Reflection — 2026-03-27
### Timeline
[chronological narrative]
### What Went Well
- Two-stage dispatch review caught the missing reconnection handler
before it reached check-work — saved a full test cycle
- Worktree delegation for the rate limiter was fire-and-forget,
kept the main session clean
### What Was Harder Than Expected
- SSE reconnection logic needed 3 iterations to get the backoff
timing right — the test was flaky with exact timing assertions
→ **Takeaway:** Use tolerance-based assertions for timing tests
### What Was Learned
- Bun's SSE implementation requires explicit keep-alive pings
(not documented, found by reading source)
→ **Consider:** Add to project docs or CLAUDE.md
### Suggested Actions
- [ ] Add timing test conventions to .claude/rules/testing.md
- [ ] Document SSE keep-alive requirement in ARCHITECTURE.md
- [ ] Update zen.local.md audit sections to include new SSE module
### For Future Sessions
- When working on SSE, load the stream handler source first —
the types don't tell the full story
- The notification schema is stable now — safe to build on
Append a journal entry of type reflection:
{
"timestamp": "2026-03-27T12:40:00.000Z",
"type": "reflection",
"summary": "Session reflection: SSE notifications + rate limiter fix",
"insights": "Two-stage review caught reconnection gap; worktree delegation kept context clean",
"suggestedActions": [
"Add timing test conventions to testing.md",
"Document SSE keep-alive in ARCHITECTURE.md"
],
"sessionDuration": "2.5 hours",
"entriesReviewed": 4
}
After presenting the reflection, ask:
"Any of these suggested actions worth doing now?"
Options:
.claude/rules/npx claudepluginhub brewpirate/zen-flow --plugin field-notesReflects on the current Claude Code session to produce a structured retrospective with what went well, what didn't, and actionable takeaways.
Automatically triggers session retrospectives at end or on keywords like 'retrospect', '복기', '회고'. Highlights mistakes prominently, logs to wiki via retrospect tool.
Reflects on Claude Code session progress at breakpoints or task shifts, generating summaries, learnings, decisions, tasks review, and persistence suggestions.