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.
From agent-journalnpx claudepluginhub brewpirate/zen-flow --plugin agent-journalThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Configures VPN and dedicated connections like Direct Connect, ExpressRoute, Interconnect for secure on-premises to AWS, Azure, GCP, OCI hybrid networking.
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/