| name | godmode:self-reflect |
| description | Session reflection — review what was accomplished this session, surface patterns and surprises, and write a structured retrospective. Use when asked to "reflect", "self-reflect", "what did we do this session", or at natural session close points.
|
| requires | [] |
| next | ["pattern-learner","mistake-tracker"] |
Self-Reflect
Review the current session's work and produce a structured retrospective written to
.ctx/godmode/reports/reflect/reflect-<YYYY-MM-DD>.md.
When to Use
- At the end of a working session before handoff
- When asked to "reflect" or "what did we do today"
- After a significant batch of commits lands (e.g. post-wave integration)
- Before cutting a release to sanity-check what actually changed
Step 1: Collect session evidence
Gather the raw material for the reflection:
git log --oneline --since="24 hours ago"
git diff --stat HEAD~1 HEAD
Use the Glob tool to list any files in the working scratch dir:
Glob: pattern=".ctx/_WORKING_DIR/*"
Current task graph state — use godmode task list:
godmode task list
Outstanding blocked tasks:
godmode task list --json | rg blocked
Also read .ctx/HANDOFF.*.yaml if present — it captures intent from session start.
Step 2: Identify what was accomplished
From the commit log and diff stat, extract:
- Shipped: concrete changes that landed (commits, features, fixes, TODOs added)
- Unfinished: tasks still running or pending, files modified but not committed
- Discarded / pivoted: things started but abandoned (check
git stash list)
Step 3: Surface patterns and surprises
Answer these questions honestly based on the evidence:
- What took longer than expected? — look for repeated edits to the same file, or
multiple fix-up commits on the same topic.
- What went smoothly? — first-pass successes, clean test runs, no hook failures.
- What was discovered that wasn't in the original plan? — TODOs added, unexpected
coupling found, agents that surfaced issues not on the task graph.
- What would speed up the next session? — missing tools, unclear specs, slow feedback
loops, friction points.
Step 4: Write the retrospective
Write to .ctx/godmode/reports/reflect/reflect-<YYYY-MM-DD>.md (overwrite if exists for today):
# Session Reflection — <YYYY-MM-DD HH:MM>
## Shipped
- <bullet per commit or logical change group>
## Unfinished
- <pending tasks, uncommitted changes, stashed work>
- None if graph is clean and worktree is clean.
## Patterns & Surprises
### Took longer than expected
- <finding or "nothing notable">
### Went smoothly
- <finding>
### Discovered mid-session
- <unexpected finding, new TODO, coupling, etc.>
### Next session speedups
- <concrete suggestion — a missing test, a flaky tool, an unclear spec>
## Task graph snapshot
<paste output of `godmode task list`>
## Open questions
- <anything unresolved that the next session should address first>
Use the Write tool to create the file. Print a short summary (Shipped / Unfinished /
Top insight) to stdout as well.
After writing the report, update the report index. Read
.ctx/godmode/reports/godmode-reports.index.json, add the filename to
categories.reflect.files (if not already present), and write it back with the
Write tool.
Step 5: Update task graph (if applicable)
If any tasks were completed during the session but not marked done:
godmode task done <id> --commit <sha> --notes "<brief>"
If new work was discovered that belongs on the graph:
godmode task add "<title>" --crate-name <crate>
Do not invent tasks to fill the graph — only add what was genuinely discovered.
Guardrails
- Do not modify source code during reflection — read-only except for the
.ctx/ report
and task graph state updates.
- Do not rewrite history or amend commits to make the session look cleaner than it was.
- If the session had no commits, say so — an empty "Shipped" section is honest and useful.
- The reflection is for the next session's benefit, not performance review. Be precise,
not flattering.
- Never write
(fill in next session) or any deferred placeholder. Every section must
contain actual content from this session. If a section genuinely has nothing to report,
write - Nothing notable. — not a deferral. Deferred placeholders make the reflection
useless to the next agent.