name: review description: Weekly review that scans all context files, surfaces stale items, asks reflection questions, and updates context. The habit that keeps everything fresh. Use when user says "/review", "weekly review", "let's review", or similar. argument-hint: [--domain=baby|finances|career|...] [--quick]
Read every context.md and reference.md in the repo. These are the review's data sources.
Discover, don't enumerate. Do not work from a hard-coded list — it goes stale as domains are added, and the review's whole job is catching staleness. Discover the files at runtime:
# Tier 1 — working memory (always read)
find . -name context.md -not -path './.git/*' | sort
# Tier 2 — reference memory (read for depth, skip with --quick)
find . -name reference.md -not -path './.git/*' | sort
Always read every context.md the first command returns, plus decisions.md (root). Read them in parallel — they're small. This guarantees no domain is ever missed.
Also read (Tier 2 — for depth, when not using --quick): every reference.md the second command returns.
If --domain flag is set, only report on that domain but still read root files (context.md, decisions.md) for cross-referencing.
2. Staleness Audit
For each domain, assess freshness:
Session History Check
- Parse the most recent session history entry date from each context.md
- Calculate days since last session activity
- Categorize:
- Active: Session within last 14 days
- Cooling: 15-30 days since last session
- Stale: 31-90 days since last session
- Dormant: 90+ days since last session
Content Freshness
- Check "Last updated" dates in context files
- Flag any section explicitly marked with a date that's >60 days old
- Check for items marked "TBD", "TODO", "Action needed", "Not started" — these are open loops
Context Size Check
- Count lines in each context.md
- Flag any >100 lines (may need archiving or tier split to reference.md)
Session History Cap (protocols/memory.md)
- Flag any context.md whose session history exceeds ~5 entries or ~1 month — older entries graduate to
{domain}/archive/sessions-{year}.mdduring the interactive phase - Flag option-comparison working docs (palettes, sourcing comparisons, shortlists) whose decision has been made — they graduate to
{domain}/archive/(Archive After Decision rule)
3. Open Loops Detection
Scan all context files for unresolved items:
Action Items
Look for patterns indicating incomplete work:
- "Not started" / "not yet" / "TBD" / "TODO"
- "Action needed" / "needs" / "research needed"
- Unchecked items in checklists (
- [ ]) - "Waiting on" / "blocked by"
- Items with target dates that have passed
Stale Decisions
From decisions.md:
- Decisions with review dates that have passed
- Decisions with review dates within 30 days
- Decisions whose assumptions may have changed (cross-reference with context)
Orphaned Priorities
Items listed as "active priorities" in context files that haven't shown progress in session history.
4. Generate Reflection Questions
Based on what was found, generate 3-5 targeted reflection questions. These should be:
- Specific — based on actual context, not generic
- Forward-looking — "What's the next step on X?" not "How do you feel about X?"
- Cross-domain — spot connections the user might miss
- Actionable — should lead to a concrete update or decision
Question Templates (adapt to findings)
For stale domains:
"{Domain} hasn't been touched in {N} days. Has anything changed, or is it stable by design?"
For open loops:
"You flagged {item} as needed back in {date}. Still relevant, or can we close this?"
For approaching deadlines:
"{Deadline} is {N} days away. What's the status on {related item}?"
For cross-domain connections:
"The {domain1} plan depends on {assumption from domain2}. Has that assumption held up?"
For decisions due review:
"Decision {ID} was set for review {trigger}. The context now is {summary}. Worth revisiting?"
For life-stage transitions:
"With {life event} approaching, have you thought about how it affects {domain}?"
5. Domain-by-Domain Status
For each domain with activity (skip truly dormant domains unless they have open loops):
### {Domain Name}
**Last active**: {date} ({N days ago})
**Status**: {Active / Cooling / Stale / Dormant}
**What's current:**
- {Key current items from context}
**Open loops:**
- {Any unresolved items}
**Suggestion:** {One actionable suggestion if relevant}
Ordering
- Domains with open loops or approaching deadlines first
- Active domains next
- Stale/dormant domains last (brief mention only)
6. Format the Review
Header
# Weekly Review: {Day of Week}, {Date}
**Leo**: {age in days/weeks/months} | **Paternity leave ends**: {N} days (Aug 1)
Section: Health Check
## System Health
| Domain | Last Active | Status | Open Loops |
|--------|-------------|--------|------------|
| Baby | Feb 5 | Active | 2 |
| Finances | Feb 3 | Active | 1 |
| Career | Feb 1 | Cooling | 3 |
| ... | ... | ... | ... |
**Context files**: {X} of {Y} under 100 lines ✓
**Decisions**: {N} active, {M} due for review
Section: Needs Attention
## Needs Attention
### Open Loops
- **{Domain}**: {Item} — {context}
- **{Domain}**: {Item} — {context}
### Decisions Due for Review
- **{ID}: {Title}** — {Review trigger}. {Brief context on why it matters now}
### Approaching Deadlines
- **{Date}** — {Item} ({domain})
Section: Reflection Questions
## Reflection Questions
1. {Question}
2. {Question}
3. {Question}
Present these as a conversation — pause after questions and wait for the user to respond. Don't rush past them.
Section: Domain Status (full review only, skip with --quick)
## Domain Status
{Domain-by-domain breakdown from step 5}
Footer
---
*Take your time with the questions. We can update context files with anything that's changed.*
7. Interactive Phase
After presenting the review, shift to interactive mode:
- Wait for responses to reflection questions
- Update context files based on answers
- Close open loops — mark items as done, remove stale ones, update status
- Log decisions if any are made during the review (offer to use decision journal)
- Enforce the Session History Cap — graduate entries older than ~5 sessions/1 month to
{domain}/archive/sessions-{year}.md, and decided option-docs to archive (see protocols/memory.md anti-bloat rules)
This is a conversation, not a report. The review is the prompt for a productive discussion.
8. Update Session History
After the review is complete, add an entry to projects/ai-assistant/context.md:
### YYYY-MM-DD
- Ran weekly review
- Domains reviewed: {count}
- Open loops found: {count}
- Items resolved: {count}
- Context files updated: {list}
Also update session history in any domain context files that were modified during the review conversation.
If no previous review has been run:
- Don't mention "since last review" — just present the current state
- May find more open loops than usual — prioritize rather than overwhelm
- Suggest a review cadence: "Want to do this weekly? Sunday evenings work well for some people."
Everything Is Fresh
If all domains are active and no open loops:
## System Health
Everything looks current. No stale items, no overdue reviews.
Still worth asking:
1. {One forward-looking question}
2. {One cross-domain question}
Keep it brief — don't manufacture issues.
Very Long Gap (>30 days since any session)
- Expect more stale items — that's fine, don't guilt-trip
- Focus on "what's changed?" rather than "you haven't been here"
- Prioritize: "Let's focus on the 3 most important things first"
- Offer to do a quick pass now and deep dive on specific domains later
Single Domain Review
With --domain=X:
- Deep dive into that domain only
- Still check cross-references to other domains
- More detailed questions (5-7 instead of 3-5)
- Check reference.md for that domain too
Review Finds Contradictions
If context files contradict each other or the decision journal:
- Flag clearly: "I noticed {file1} says X but {file2} says Y — which is current?"
- Don't auto-resolve — ask the user
- Update the correct file once confirmed
Context File Too Long
If context.md exceeds 100 lines:
- Flag it in the health check
- Offer to help split: "Your {domain}/context.md is at {N} lines. Want to move stable facts to reference.md and archive old session history?"
- Don't do this automatically — it's a review conversation item
Quick Mode (--quick)
With --quick:
- Skip domain-by-domain status section
- Show only: health check table, open loops, decisions due, and 3 questions
- No interactive phase — just the report
- Target: readable in under 60 seconds
System Health
| Domain | Last Active | Status | Open Loops |
|---|---|---|---|
| Baby | Feb 6 | Active | 2 |
| Finances | Feb 3 | Active | 1 |
| Career | Feb 6 | Active | 1 |
| Cooking | Feb 1 | Cooling | 0 |
| Home | Jan 28 | Cooling | 0 |
| Projects | Feb 6 | Active | 0 |
| Hobbies | Jan 15 | Stale | 0 |
| Interests | Jan 20 | Stale | 0 |
Context files: 18 of 22 under 100 lines ✓ (finances: 116 lines, career: 122 lines — consider archiving) Decisions: 10 active, 0 due for review
Needs Attention
Open Loops
- Baby: Register Leo at Grange Street Surgery once parents confirmed
- Baby: Add Leo to Meta PMI — confirm window with HR
- Finances: Child Benefit claim (within 3 months of birth, by ~Jul 2)
- Cooking: Freezer inventory hasn't been re-tallied since Mar 14 — what's actually left?
Approaching Deadlines
- Apr 21 — Water Babies free-cancellation deadline (baby)
- Apr 30 — 1-month follow-up at The Children's Clinic (baby)
- May 5 — First Water Babies lesson (baby)
- ~late May — 6-week GP check + 8-week vaccinations window (baby)
Reflection Questions
How is Andrada's C-section recovery going? Two weeks in — is she mobile, resting enough, any follow-ups scheduled?
Leo's feeding rhythm — responsive paced feeding is going well per Dr Taylor's rule. Any patterns worth capturing (night stretches, growth spurts, cluster feeds)?
Freezer stock hasn't been re-tallied since Mar 14 — worth 2 minutes with the whiteboard to know what's left for the next month?
Hobbies are rightly on pause. Anything you're missing, or is this the relief reset you expected from the newborn phase?
Take your time with the questions. We can update context files with anything that's changed.