Agent skill

Update Codebase Map

by Eigenwise in Eigenwise/eigenwise-toolshed

Refresh an existing .claude/.codebase-info/ map after code changes.

MITAuto-check passedDevOps & Cloud

Install Update Codebase Map

skills CLI
$ npx skills add Eigenwise/eigenwise-toolshed --skill update-codebase-map -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Eigenwise/eigenwise-toolshed update-codebase-map --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Eigenwise/eigenwise-toolshed.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/codebase-mapper/skills/update-codebase-map .claude/skills/update-codebase-map && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
update-codebase-map
GitHub stars
277
Token cost
~3.1k tokens
SKILL.md length
1,533 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
MIT

At a glance

Refresh an existing .claude/.codebase-info/ map after code changes.

  • Works in 5 steps: Load current state → Detect what changed → Re-assess the warranted doc set, then… → …
  • Architecture docs
  • SKILL.md covers Prerequisite, Process, Guidelines and Success criteria
  • Calls git and node

What it does

Update Codebase Map is an agent skill from Eigenwise/eigenwise-toolshed. Refresh an existing .claude/.codebase-info/ map after code changes. Use for stale codebase or architecture docs; use map-codebase to create one.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud. The repository describes itself as: Six Claude Code plugins for the work that keeps coming back: repo maps, conditional rules, ticketed parallel work, extra subscription models, local usage metrics, and guided setup. The licence is MIT.

When your agent uses it

  • Architecture docs
  • Use map-codebase to create one

Example prompts

  • “/update-codebase-map”

Requirements

  • Docker

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Load current state
  2. Detect what changed
  3. Re-assess the warranted doc set, then map changes to documents
  4. Apply targeted edits
  5. Re-record state

What it can do on your machine

Read from SKILL.md and the folder at commit 0140ec1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Update Codebase Map loads about 3.1k tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 1,533 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~41
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Eigenwise/eigenwise-toolshed at commit 0140ec1, republished under its MIT licence (© Eigenwise). 1,533 words, ~3,146 tokens.

Download SKILL.mdSave it as .claude/skills/update-codebase-map/SKILL.md (or your agent's skills folder).
name
update-codebase-map
description
Refresh an existing .claude/.codebase-info/ map after code changes. Use for stale codebase or architecture docs; use map-codebase to create one.

Update Codebase Map

Bring an existing map up to date with surgical edits : detect changes, touch only the affected documents, keep everything internally consistent. This is a refresh, not a full rewrite.

Prerequisite

A .claude/.codebase-info/ directory with INDEX.md must already exist. If it doesn't, stop and use the map-codebase skill to create the initial map.

Process

The installed Mapper hook tells the main session to assess the map after code changes and invoke this skill immediately when documentation work is warranted. A true no-op ends without editing the map or refreshing state. This process does not wait for a separate user approval.

Step 1 : Load current state

Read .claude/.codebase-info/.map-state.json to get gitCommit, mappedAt, and the list of existing documents. Skim INDEX.md to recall what's already covered. (If .map-state.json is missing : e.g. a map from an older version : fall back to the mappedAt date in INDEX.md, and plan to write a fresh .map-state.json at the end.)

Step 2 : Detect what changed

Git repo (preferred : precise): diff against the last-mapped commit.

bash
git diff --stat <gitCommit>..HEAD          # which files changed, added, deleted
git log --oneline <gitCommit>..HEAD        # what the changes were about
git diff <gitCommit>..HEAD -- package.json pyproject.toml go.mod Cargo.toml composer.json Gemfile   # dependency churn (adjust to the project's manifests)

No git, or no stored commit (fallback): find source files modified since the map was written.

bash
# files newer than the index (skip noise dirs)
find . -type f -newer .claude/.codebase-info/INDEX.md \
  -not -path '*/.git/*' -not -path '*/node_modules/*' -not -path '*/vendor/*' \
  -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/target/*' -not -path '*/.venv/*'
Step 2a : Decide whether to hand off

Do not ask the user whether to update the map, run this skill, or create a handoff. Decide using this process, announce the applicable documentation-check outcome, and immediately perform the warranted update or handoff without waiting for a reply.

A true no-op stays inline: report that no documented behavior, structure, interface, dependency, or convention changed, then leave the map alone. Do not create a ticket merely to refresh timestamps or state.

For an incremental refresh, work inline in the invoking session when the diff since the stored gitCommit touches fewer than ~15 files across already-mapped areas and adds or removes no top-level aspect. Apply Steps 3 through 5 directly. Do not create a ticket or dispatch an agent for this case.

Use an optional shared-tree artifact handoff for a full remap or large structural drift: a new subsystem, a deleted service, or the first Dockerfile or datastore. For incremental work, stay inline. Inspect the session tool roster before reading further. The handoff requires the native Agent tool plus Sidequest category_list, add, comment, dispatch, and pulse. Do not probe the Sidequest CLI or dashboard. Read the live codebase-exploration category and hand off only when it is enabled and its contract permits one bounded documentation-artifact write while keeping project source read-only.

  • When the tools are absent, continue inline without an error banner. Standalone Codebase Mapper does not require Sidequest.
  • When Sidequest is present but the category is missing, disabled, or does not permit the bounded .claude/.codebase-info/ artifact root, continue inline and say: Sidequest is loaded, but its live taxonomy cannot accept map artifacts yet.
  • A read-only category with that artifact root is ready: shared-tree artifact mode permits the bounded map write and refuses every other project path.
  • When it is ready, you may create one codebase-exploration artifact ticket with files: [".claude/.codebase-info/"] and this exact clause. Do it immediately without checking in with the user: Artifact write carve-out: write only .claude/.codebase-info/**; all project source is read-only.

The handoff ticket records the stored gitCommit, current HEAD, initial dirty-source status outside .claude/.codebase-info/, and the current map document list. Its writer diffs from stored state through the visible working tree, reassesses the warranted docs, preserves intentional manual map edits, touches only affected docs, and replaces .map-state.json last. It must inspect the shared tree, verify every cited path, skip generated/vendor/secret material, never touch CLAUDE.md, and never invoke map-codebase or create nested mapping tickets. Include this lifecycle marker verbatim:

text
Shared-tree artifact mode: leave the generated map as working-tree output; verify, comment, and close with done. Do not commit, submit, push, or edit source.

The invoking parent session verifies the generated paths and state after the writer closes, then commits the map if its flow permits.

Before dispatch, comment this reason:

text
Shared-tree dispatch is required because the map must describe the current working tree, including intentional uncommitted source, and the generated .claude/.codebase-info/** files must remain visible to the invoking session.

Dispatch with { sharedTree: true }, pass returned spawn fields to the native Agent unchanged, then end the turn. Resume only on native completion, never by polling or a proxy waiter. Do not make concurrent project edits while the writer owns the shared tree.

On completion, inspect the ticket evidence and verify INDEX.md, changed paths, and hashes without redoing the codebase reading:

text
node -e "const fs=require('node:fs'),c=require('node:crypto'),p='.claude/.codebase-info/',s=JSON.parse(fs.readFileSync(p+'.map-state.json','utf8'));if(!Array.isArray(s.documents))throw Error('documents');for(const n of new Set(['INDEX.md',...s.documents])){const b=fs.readFileSync(p+n,'utf8');if(!s.hashes||s.hashes[n]!==c.createHash('sha256').update(b.replace(/\r/g,'')).digest('hex'))throw Error(n)}"

Require cited-path checks, docs created/updated/removed, and confirmation that CLAUDE.md is untouched. A writer whose source snapshot moves reconciles once or releases rather than certifying a mixed snapshot. For a broad diff, use a codebase-exploration story with read-only area tickets and one dependent final artifact writer. Area tickets report paths, symbols, entry points, and flows in their threads; never use nested generic tasks.

For an add, dispatch, spawn, or executor failure, inspect pulse and the ticket thread. Retry once only when a diagnosis changes the launch and no live claim remains. After a second failure, record the evidence, ensure no writer owns the claim, validate or repair any partial map inline in this shared tree, replace state last, and comment that the ticket completed through inline fallback. Give the user one short line naming the failure and inline fallback.

Show full SKILL.md (715 more words)Show less
Step 3 : Re-assess the warranted doc set, then map changes to documents

An update is not only "edit the docs that exist." First re-evaluate which documents this codebase now warrants, because the right set drifts as the project grows. The map should always carry the docs that apply now, no more and no less:

  • A new aspect appeared → add its doc. The project gained its first Dockerfile/compose.yaml, so create docker.md now even though the last map had none. First datastore → add database.md. First dependency manifest → add dependencies.md. A new major subsystem that no standard doc covers → add a custom doc (e.g. ml-pipeline.md, realtime.md), the same way map-codebase would. This is the common case the user cares about: you don't make docker.md until there's Docker, and once the code is dockerized, the next update is exactly when it should appear.
  • An aspect vanished → prune its doc. A service, integration, or datastore was removed, so delete the now-empty doc and its INDEX.md row.

Then map the remaining changes onto the existing documents:

If this changed…Update…
Directory layout (folders added/removed/renamed)directory-structure.md
Components / services / module boundariesarchitecture.md, modules.md
New/removed routes, CLI commands, jobs, handlersentry-points.md
API contracts, events, queues, integrationscommunication.md
Schema, migrations, new tables/collectionsdatabase.md
Dependency manifest (added/removed/upgraded)dependencies.md, maybe tech-landscape.md
Design patterns, error handling, test setup, configpatterns.md
Linter/formatter config or naming conventionscoding-style.md
Container/compose setupdocker.md
Setup steps or common processesonboarding.md
Project name/description, or any doc added/removedINDEX.md

Prioritize structural changes (new/removed entry points, components, infra, data model) over cosmetic ones. Skip pure internal refactors that don't change any documented interface, layout, or convention.

Step 4 : Apply targeted edits

For each affected document:

  1. Read it.
  2. Make focused edits : change only what's now different; don't rewrite the whole file.
  3. Update its *Last Updated: YYYY-MM-DD* line to today's real date.

Then carry out the additions and removals you identified in Step 3:

  • New doc for an aspect that appeared: create it from the matching template in ../map-codebase/references/document-templates.md (or, for a non-standard aspect, follow the same shape), then add it to INDEX.md and to the documents list in state.
  • Prune a doc for an aspect that vanished: delete the now-empty doc (and its INDEX.md row), or prune the stale sections from a shared doc. Remove orphaned references.
Step 5 : Re-record state

After the final document edits, run the bundled state writer from the installed plugin:

bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/write-map-state.js" --project .

It discovers the current documents, records today's date and the current commit (or null outside a git repo), hashes the final bytes, and atomically replaces .map-state.json last. A manual edit or interrupted write can leave hashes stale; that is safe because hooks hash live files and treat the manifest only as a consistency check.

Then summarize for the user: which docs you updated, created, or removed, and why. Outside shared-tree artifact mode, commit the refreshed map unless the user explicitly says not to commit, and include .map-state.json alongside the edited docs. An uncommitted manifest means every other checkout sees stale hashes and re-flags docs that are actually current. If git check-ignore .claude/.codebase-info/INDEX.md matches (a broad .claude/* rule), add !.claude/.codebase-info/ and !.claude/.codebase-info/** to .gitignore in the same commit; the ignore warning on git add does not mean the map is local-only. If the user explicitly says not to commit, leave the verified map changes and .map-state.json in the working tree and say plainly that they still need review or committing.

Guidelines

  • Surgical, not sweeping. Targeted edits keep diffs reviewable and history meaningful.
  • Verify before writing. Every path you add must exist; every path you remove must really be gone.
  • No churn for churn's sake. If nothing meaningful changed, say so and leave the map and state untouched.
  • Never touch CLAUDE.md. The plugin's hook handles loading; the map lives entirely in .claude/.codebase-info/. Leave CLAUDE.md (and CLAUDE.local.md) alone.

Success criteria

  • Changes since the last map detected (via stored commit, or mtime fallback)
  • Warranted doc set re-assessed: docs added for aspects that appeared (e.g. Docker, a datastore), docs pruned for aspects that vanished
  • Only affected documents edited; new areas documented; removed areas pruned
  • INDEX.md reflects any added/removed docs
  • Last Updated dates current on every touched doc
  • CLAUDE.md left untouched
  • .map-state.json rewritten with today's date, current commit, and document list
  • Map changes committed including .map-state.json (or the user told plainly they still need committing)

© Eigenwise, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/codebase-mapper/skills/update-codebase-map of Eigenwise/eigenwise-toolshed.

Open the folder on GitHubat commit 0140ec1

Compare with similar skills

Update Codebase Map next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Update Codebase Map compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Update Codebase Map this skillEigenwise/eigenwise-toolshed277—~3.1kAutomated safety check: PassMIT
Monitor CInrwl/nx29k5 repos~4.7kAutomated safety check: PassMIT
Terraform and OpenTofu Guideagentscope-ai/QwenPaw35k6 repos~4.2kAutomated safety check: PassApache-2.0
Vercel Optimize Auditvercel-labs/agent-skills32k8 repos~4.3kAutomated safety check: PassNone
Analyze GitHub Action Logswithastro/astro63k1 repos~1.3kAutomated safety check: PassCustom licence
Docs Learn PR Previewnetdata/netdata81k—~2kAutomated safety check: PassGPL-3.0

Similar skills

  • Monitor CI

    nrwl/nx

    Monitor Nx Cloud CI pipeline and handle self-healing fixes. An agent skill from nrwl/nx.

    29k GitHub starsUsed in 5 repos~4.7k tokens
    DevOps & CloudAuto-check passed
  • Terraform and OpenTofu Guide

    agentscope-ai/QwenPaw

    Guidance for writing and testing Terraform and OpenTofu code: module structure, naming, test approaches, CI/CD workflows, state handling and security scanning.

    35k GitHub starsUsed in 6 repos~4.2k tokens
    DevOps & CloudAuto-check passed
  • Vercel Optimize Audit

    vercel-labs/agent-skills

    Official

    Runs a metrics-first audit of a deployed Vercel project, gating investigations on real signals to produce ranked, citation-backed cost and performance recommendations.

    32k GitHub starsUsed in 8 repos~4.3k tokens
    DevOps & CloudAuto-check passed
  • Official

    Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.

    63k GitHub starsUsed in 1 repo~1.3k tokens
    DevOps & CloudAuto-check passed
  • Docs Learn PR Preview

    netdata/netdata

    Use only when the user explicitly asks to build, run, preview, inspect, or validate learn.netdata.cloud locally using the contents of a PR or documentation branch before merge.

    81k GitHub stars~2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Repo Mirror Sources

    netdata/netdata

    Inspect Netdata-org source checkouts under NETDATAREPOSDIR, or set up and synchronize that mirror when requested.

    81k GitHub stars~1.2k tokensUpdated today
    DevOps & CloudAuto-check: notes

More from Eigenwise/eigenwise-toolshed

All 14 skills in this repo
  • Add Rule

    Eigenwise/eigenwise-toolshed

    Create or edit a live-rules instruction in the project's atomic rule set.

    277 GitHub stars~1.9k tokensUpdated 2 days ago
    Auto-check passed
  • Map Codebase

    Eigenwise/eigenwise-toolshed

    Create a self-maintaining codebase map in .claude/.codebase-info/.

    277 GitHub stars~4.2k tokensUpdated 2 days ago
    Auto-check passed
  • Setup

    Eigenwise/eigenwise-toolshed

    Set up a Claude Code workspace for a new or existing project, informed by hindsight from the user's whole session history.

    277 GitHub stars~4.5k tokensUpdated 2 days ago
    Auto-check passed
  • Groom

    Eigenwise/eigenwise-toolshed

    Audit a Sidequest board for completed, stale, duplicate, or superseded tickets, then safely close clear cases.

    277 GitHub stars~3.4k tokensUpdated 2 days ago
    Auto-check passed
  • Manage Rules

    Eigenwise/eigenwise-toolshed

    Inspect, audit, enable, or disable project live-rules. An agent skill from Eigenwise/eigenwise-toolshed.

    277 GitHub stars~2k tokensUpdated 2 days ago
    Auto-check passed
  • Toolshed Doctor

    Eigenwise/eigenwise-toolshed

    Run a read-only health check for Quartermaster and installed Toolshed plugins.

    277 GitHub stars~1.7k tokensUpdated 2 days ago
    Auto-check passed

Categories

Questions about Update Codebase Map

What does Update Codebase Map do?

Refresh an existing .claude/.codebase-info/ map after code changes. Update Codebase Map is an agent skill from Eigenwise/eigenwise-toolshed.codebase-info/ map after code changes.

When should I use Update Codebase Map?

Update Codebase Map fits situations like: architecture docs; use map-codebase to create one.

How do I install Update Codebase Map in Claude Code?

Run `npx skills add Eigenwise/eigenwise-toolshed --skill update-codebase-map -a claude-code`. Or copy the skill folder (plugins/codebase-mapper/skills/update-codebase-map in Eigenwise/eigenwise-toolshed) into .claude/skills/update-codebase-map in your project. Claude Code loads it when a task matches its description.

How do I install Update Codebase Map in Codex?

Run `npx skills add Eigenwise/eigenwise-toolshed --skill update-codebase-map -a codex`. Or copy the skill folder (plugins/codebase-mapper/skills/update-codebase-map in Eigenwise/eigenwise-toolshed) into .agents/skills/update-codebase-map in your project. Codex loads it when a task matches its description.

Can I use Update Codebase Map in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Eigenwise/eigenwise-toolshed --skill update-codebase-map -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-codebase-map, .gemini/skills/update-codebase-map, .github/skills/update-codebase-map and .opencode/skills/update-codebase-map in your project.

What does Update Codebase Map need to run?

Going by SKILL.md and its folder, Update Codebase Map needs the command-line tools its instructions call (git and node). Our summary lists: Docker.

Does Update Codebase Map access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Update Codebase Map safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Update Codebase Map use?

Update Codebase Map is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Update Codebase Map use?

About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Update Codebase Map?

Skills that share tags, products or a category with Update Codebase Map: Monitor CI (nrwl/nx, 29k stars), Terraform and OpenTofu Guide (agentscope-ai/QwenPaw, 35k stars), Vercel Optimize Audit (vercel-labs/agent-skills, 32k stars) and Analyze GitHub Action Logs (withastro/astro, 63k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Update Codebase Map?

Eigenwise (a GitHub user) maintains it in Eigenwise/eigenwise-toolshed, which has 277 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 5, 2026.

Source: Eigenwise/eigenwise-toolshed on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.