After 3 UserSubmitPrompts, the system shows reminders every 3 prompts, cycling through 5 different reminder types. Each reminder is combined with a Tools Refresh notification.
| Prompt | Type | Reminder Index | Content |
|---|---|---|---|
| 1-2 | — | — | (no reminder) |
| 3 | tools+reminder | 0 | Skills Refresh + Context-drift check |
| 4-5 | — | — | (no reminder) |
| 6 | tools+reminder | 1 | Skills Refresh + Protocol enforcer |
| 7-8 | — | — | (no reminder) |
| 9 | tools+reminder | 2 | Skills Refresh + Goal alignment |
| 10-11 | — | — | (no reminder) |
| 12 | tools+reminder | 3 | Skills Refresh + Workspace hygiene |
| 13-14 | — | — | (no reminder) |
| 15 | tools+reminder | 4 | Skills Refresh + Root-cause check |
| 16-17 | — | — | (no reminder) |
| 18 | tools+reminder | 0 | Skills Refresh + Context-drift check (cycles) |
| 19-20 | — | — | (no reminder) |
| 21 | tools+reminder | 1 | Skills Refresh + Protocol enforcer |
| 22-23 | — | — | (no reminder) |
| 24 | tools+reminder | 2 | Skills Refresh + Goal alignment |
| 25-26 | — | — | (no reminder) |
| 27 | tools+reminder | 3 | Skills Refresh + Workspace hygiene |
| 28-29 | — | — | (no reminder) |
| 30 | tools+reminder | 4 | Skills Refresh + Root-cause check |
Session Check-in: We are N turns deep.
- Run
bd readyto verify we are still on the critical path. - If the current task is done, use
bd closeand consider/compact. - Do not start new major features without a fresh session.
Protocol Enforcer:
- Have you checked logs recently? (
find . -name "*.log") - Are all
ghcommands using single-line format? - Are we creating temp files in
/tmpas required?
Goal Alignment: You have used N tools this session.
- Are we closer to the user's original request?
- If stuck, prefer
Skill('investigate')over brute force.
Workspace Hygiene:
- Run
git status- are there uncommitted changes? - Check
tsconfig.jsonfor new errors. - Ensure no regressions in recent changes.
Root Cause Check: "The symptom is not the sickness."
- Are you fixing a symptom or the root cause?
- Verify your assumptions with data/logs before editing code.
Appears on every 3rd prompt (prompts 3, 6, 9, 12, 15, 18, 21, 24, 27, 30...):
Load skills before using them: Skill("name")
Common skills:
- beads - Task tracking
- gemini - AI research
- ubs - Bug scanning
- github - GitHub ops
Do not guess CLI commands. Load the skill first.
From hooks/src/reminder-manager.ts:
const DEFAULT_CONFIG: ReminderConfig = {
frequency: 3, // Show reminder every 3 prompts
startAfter: 3, // Start after 3 prompts
enabled: true, // Reminders enabled
toolsRefreshFrequency: 3, // Refresh tools every 3 prompts
}- Rotating reminders: 5 different reminders cycle continuously
- Tools refresh: Triggered independently, combined with rotating reminder when both occur
- Combined type: When both show together, the type is
"tools+reminder" - Cycle continues: After reminder 4 (root-cause), cycles back to reminder 0 (context)
❌ Current tests are outdated - they expect:
- Reminder type to be individual types ("context", "protocol", etc.)
- Only 5 reminders total (missing tools-refresh)
enabled=falseto prevent all reminders (but tools refresh is independent)
✓ Actual behavior matches the implementation exactly - reminders show as designed.