From superpowers
Use when starting any task in a project - keeps CLAUDE.md instruction file current with high-level project state, prompts for init if missing, adds reflection todo before work to ensure documentation stays updated
How this skill is triggered — by the user, by Claude, or both
Slash command
/superpowers:self-maintaining-claude-mdThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**CLAUDE.md is your project's instruction file for Claude.** It must stay current with the project's high-level state.
CLAUDE.md is your project's instruction file for Claude. It must stay current with the project's high-level state.
Core principle: Add reflection todo BEFORE starting work, or you WILL forget to update CLAUDE.md later.
Before ANY task, check if CLAUDE.md exists in the project root.
If missing:
Why: User-initialized CLAUDE.md ensures proper setup and user preferences.
Before starting ANY implementation task, add this todo:
"Reflect on changes and update CLAUDE.md"
ALWAYS add this todo AT THE END of your todo list, before researching, coding, or planning.
Important: This todo goes LAST so it runs AFTER all implementation work completes.
No exceptions:
Why: "Later" means "forgotten". Adding the todo takes 10 seconds. Forgetting to update CLAUDE.md wastes hours of future work. Placing it at the end ensures you update documentation after completing the actual work.
When processing the reflection todo, maintaining CLAUDE.md means ADD, UPDATE, or REMOVE content as needed.
Three types of maintenance:
✅ DO include:
❌ DO NOT include:
Why: CLAUDE.md guides HOW to build, not WHAT was built. Implementation details belong in README, not instructions.
Important: CLAUDE.md shows ONLY current state.
When maintaining:
Why: CLAUDE.md is active instructions, not history. Git preserves history. Mixed old/new creates confusion.
| Situation | Action |
|---|---|
| No CLAUDE.md exists | Prompt user to run init command |
| Starting new task | Add reflection todo at END of list BEFORE work |
| "Update docs" todo exists | ALSO add specific reflection todo at end |
| Updating CLAUDE.md | Only high-level patterns, delete legacy |
| Manager says skip process | Add reflection todo anyway (10 seconds) |
Creating it yourself skips user preferences and proper setup. ✅ Fix: Always prompt user to run init command.
Generic todos get skipped or misinterpreted. ✅ Fix: Add specific "Reflect on changes and update CLAUDE.md" todo.
Skipping 10 seconds now costs hours later when CLAUDE.md is outdated. ✅ Fix: Add the todo BEFORE work. Non-negotiable.
"Later" means "forgotten". Always forgotten. ✅ Fix: Add it at the END of your todo list, before starting research, planning, or coding.
Waiting means forgetting what decisions were made and why. ✅ Fix: Add reflection todo now, process after implementation.
Implementation catalog doesn't help future work. ✅ Fix: Only include high-level architectural decisions.
Mixed old/new instructions create confusion and errors. ✅ Fix: Delete all legacy info. Git preserves history.
If you're thinking:
All of these mean: You're violating the workflow. Stop and follow the skill.
Without reflection todo:
With reflection todo added BEFORE work:
The 10 seconds to add the todo saves hours of future confusion.
npx claudepluginhub asermax/claude-plugins --plugin superpowersCreates and improves CLAUDE.md files for project memory and agent configuration using TDD workflow with task tracking. Activates on 'create CLAUDE.md', 'setup project', 'configure agent'.
Guides effective maintenance of CLAUDE.md files: adding lessons learned, updating conventions, restructuring instructions. Covers when to update/remove rules, structure templates, hierarchy, and size limits.
Captures conversation outcomes into CLAUDE.md — decisions, preferences, patterns, and conventions established during the session.