filip-podstavec/claude-leverage/refresh-context-map

Claude Code and agent skill by filip-podstavec/claude-leverage

Trust tier 3
  • community
  • ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Source check pending

Checking that the SKILL.md file is still in the repository.

USE WHEN AIDEV anchors / per-dir AGENTS.md / ADRs have changed in this repo and the smart-context-surfacing PreToolUse hook needs an updated manifest. Rebuilds `.claude-leverage-context-map.json` at the repo root by running `scripts/build-context-map.py`. Read-only on source — only writes the manifest.

Install

npx vskill@latest install filip-podstavec/claude-leverage/refresh-context-map

Semi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard

SKILL.md

refresh-context-map

Rebuild the smart-context-surface manifest used by the PreToolUse hook (scripts/hooks/context-surface.sh). See `docs/adr/0008-smart-context-surfacing-via-pretooluse-hook.md` for the design rationale.

When to invoke

  • After adding / moving / deleting AIDEV-NOTE / AIDEV-TODO / AIDEV-QUESTION anchors.
  • After adding / removing per-directory AGENTS.md files.
  • After adding new ADRs in docs/adr/ that reference specific source files.
  • After a git merge that touched anchor-bearing files (.gitattributes keeps

the local manifest on conflict via merge=ours, but it'll be stale relative to the merged tree until rebuilt).

  • When /stack-check flags drift between the manifest and git ls-files.
  • Once per significant refactor that moved a lot of files.

When NOT to invoke

  • On every commit — opt-in pre-commit hook (.githooks/) does it automatically

if enabled. If you've enabled it, manual /refresh-context-map is redundant.

  • When you have not adopted the smart-context-surfacing stack in this repo

(no .claude-leverage-context-map.json present means the PreToolUse hook silently no-ops — nothing to refresh).

What it does

Runs:

bash
python ${CLAUDE_PLUGIN_ROOT}/scripts/build-context-map.py

from the repo root. The script:

  1. Walks every git-tracked file (via git ls-files), skipping binaries (NUL-byte sniff).
  2. For each file with AIDEV-* anchors, indexes:
  • Anchors inside the file
  • Anchors in sibling files (same directory)
  • The chain of AGENTS.md from dirname(file) to repo root
  • ADR files (docs/adr/*.md) that mention this file path verbatim (word-boundary match)
  1. Writes .claude-leverage-context-map.json at the repo root, atomically (.tmp + rename).

The PreToolUse hook reads this manifest on every Read/Edit/Write/MultiEdit and injects a per-file context slice via hookSpecificOutput.additionalContext.

Hard rules

  • Never hand-edit `.claude-leverage-context-map.json`. It's generated. Edit

the source (anchors, per-dir AGENTS.md, ADRs) and rebuild. A hand-edited manifest drifts from the tree, and the next rebuild silently overwrites it.

  • The manifest IS committed — it is not gitignored. Unusual for a generated

artifact, but deliberate: every clone and every session gets a fresh-enough copy with no build step. .gitattributes sets merge=ours so merge conflicts on it auto-resolve to local — rebuild afterward (see "When to invoke").

  • Read-only on source. This skill only ever writes the manifest; it never

touches the files it indexes.

If the rebuild fails

A failed rebuild is safe. If python is missing or the script errors, the manifest is simply not updated — the PreToolUse hook then reads a stale (or absent) manifest and no-ops gracefully, surfacing slightly less context. It never blocks a tool call. So a failed rebuild degrades the feature; it does not break your session. Fix the Python environment and re-run when convenient.

Verifying the rebuild

After running, the script prints a summary line:

Wrote ./.claude-leverage-context-map.json (234 files, 89 anchors)

Higher numbers than last time → you've added anchors / ADR references. Lower numbers → anchors were deleted or files removed from git ls-files.

To check drift without writing (CI use):

bash
python scripts/build-context-map.py --check
# exit 0 if up to date, exit 1 with "DRIFT:" line on stderr if regen would differ

Opting out per-session

Set CLAUDE_LEVERAGE_CTX_DISABLE=1 in the environment to disable the hook entirely without removing the manifest. Useful for one-off diagnostic sessions where the context injection is noise.

Verbose mode

By default the hook surfaces only AIDEV-* anchors (the trap-catching content per the Run-3 token-tax finding). Set CLAUDE_LEVERAGE_CTX_VERBOSE=1 to also include per-dir AGENTS.md references and related ADR paths in every injection. Useful in repos where the per-dir AGENTS.md surface is dense and worth the extra tokens; off by default to keep the tax minimal in the common case.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
68
Repository forks
3
7-day trend score
21

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 15 Aug 2026, 2 months ago.

Extension points

  • hookPre/post lifecycle hooks

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/filip-podstavec/claude-leverage/refresh-context-map/badge)](https://verified-skill.com/skills/filip-podstavec/claude-leverage/refresh-context-map)

Something wrong with this skill or its page? Tell us.