Help us improve
Share bugs, ideas, or general feedback.
From claude-code-enhance
Regenerates the project codemap files (hotfiles.md, recent.md) from git history. Run weekly or before starting major architectural work to keep the SessionStart-injected codemap fresh. Triggers on user prompts like "refresh codemap", "update hotfiles", "regenerate codemap", "what's been hot lately", "what changed this month", "rebuild project map", or after significant rebases / merges that may have shifted the change-frequency picture. Does NOT regenerate overview.md — that's hand-curated and should only be edited when the architecture genuinely changes.
npx claudepluginhub tenxengineer/claude-code-enhanceHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-code-enhance:refresh-codemapThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Regenerates the auto-generated portions of the project codemap.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
Regenerates the auto-generated portions of the project codemap.
test -d .codemap || { echo "No .codemap/ in current directory tree"; exit 1; }
If no .codemap/, the project hasn't been bootstrapped yet. Tell the user
to run codemap bootstrap manually (write .codemap/overview.md and create
the directory) before this skill can help.
cd "$(git rev-parse --show-toplevel)" || exit 1
cat > .codemap/hotfiles.md << 'EOF'
# Hot Files — <project name>
Top files by 90-day change frequency. **Where 80% of recent activity happens =
where 80% of new bugs hide.** Extra care when touching anything in this list.
Generated: <YYYY-MM-DD>
| Changes | File |
|---|---|
EOF
git log --since="90 days ago" --name-only --pretty=format: 2>/dev/null \
| grep -v '^$' | sort | uniq -c | sort -rn | head -20 \
| awk '{printf "| %s | `%s` |\n", $1, $2}' \
>> .codemap/hotfiles.md
After regeneration:
The user audits the annotations before committing. The auto-generated table is the data; the annotations are the judgment.
cd "$(git rev-parse --show-toplevel)" || exit 1
git log --since="30 days ago" --pretty="format:%ad|%s" --date=short 2>/dev/null
Use the output to write a NEW .codemap/recent.md that summarizes:
Style: terse, judgment-laden, action-oriented. Not a commit log replay.
bash ~/.claude/hooks/inject-project-codemap.sh | jq -e '.hookSpecificOutput.hookEventName == "SessionStart"' \
&& echo "✓ codemap hook valid"
Report total injected size:
chars=$(~/.claude/hooks/inject-project-codemap.sh | jq -r '.hookSpecificOutput.additionalContext' | wc -c | tr -d ' ')
echo "Codemap injection: $chars chars (~$((chars / 4)) tokens)"
If injection size exceeds ~6000 tokens, suggest the user trim overview.md or split hotfiles into a top-10 instead of top-20.
The codemap is gitignored by default — see if .gitignore already has
.codemap/ listed. If not, ask the user whether they want it committed
(useful for team sharing) or kept local (keeps repo clean).
.codemap/ exists yet — that's a bootstrap task, not a refresh task.The codemap covers what Serena does NOT: architectural narrative, git-derived heat maps, recent activity summaries. Serena handles structural queries (find_symbol, find_references, get_symbol_overview) — those don't go in the codemap because they're answered live by Serena. Don't try to capture Serena's domain in the codemap; you'll just create staleness.