Files
awesome-copilot/skills/codebase-memory-mcp
Anton StandrikandClaude Fable 5.1 9a4f26e54d Update codebase-memory-mcp skill for v0.11.0 🤖🤖🤖 (#3430)
* docs(skills): update codebase-memory-mcp skill for server v0.11.0

codebase-memory-mcp v0.11.0 (2026-09-15) added get_file_outline,
compare_graphs and manage_adr set_sections, changed result paging
(next_offset / next_cursor / per-stream continuation fields) and
marked the query tools read-only. Bring the skill in line with that
surface and fix two statements that were wrong against the server:
search_graph has no direction argument, and query and semantic_query
cannot be combined in one call.

Every claim was checked against a live 0.11.0 server. An A/B on 54
headless runs scored this text 18/18, the published text 16/18 and
no skill 12/18.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(skills): fix three codebase-memory-mcp statements found in review

- a .cbmignore negation can re-include the built-in skip directories,
  except .git, node_modules, .worktrees and .claude-worktrees
- the dead-code query also excludes inbound CALL_REFERENCE edges, so
  callbacks passed as values are not listed
- HTTP_CALLS edges always carry callee and url_path; method, args and
  via depend on the extraction path

Each point was confirmed in the v0.11.0 source.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(skills): align codebase-memory-mcp skill with the v0.11.0 source

A check of the skill's statements about server behaviour against the
v0.11.0 source, prompted by the Copilot review:

- get_code_snippet: auto outlines File, Module, Class and Interface nodes
  longer than 200 lines; only source_mode="full" returns their body
- check_index_coverage: list all six path statuses, the freshness rule
  and the scope statuses
- search_graph: relationship keeps nodes that touch such an edge; the
  degree filter always counts five fixed edge types
- query_graph: on stale_cursor, re-run without the cursor

Each corrected statement was then run on a live 0.11.0 server.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(skills): fix the dead-code shortcut, add two 0.11.0 gotchas

Review round three on the codebase-memory-mcp skill:

- the table's dead-code shortcut searched every label and returned File,
  Module and Project nodes; it now passes label="Function" and says to
  repeat with label="Method". exclude_entry_points is dropped: with
  max_degree=0 it cannot exclude anything
- manage_adr: mode="update" replaces the whole document, set_sections
  rewrites only the named sections, and an unmatched name is appended
- compare_graphs: identities begin with each snapshot's project name, so
  unchanged symbols show up as added and removed; strip the prefixes

All three were reproduced on a live 0.11.0 server, and the other tool
calls in the skill's reference section were re-run there as written.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(skills): name the two request-error statuses of check_index_coverage

Review round four on the codebase-memory-mcp skill: gotcha 5 listed the
index-coverage statuses but not outside_project and invalid_path, which
v0.11.0 returns when the request itself is wrong (an absolute or empty
path, a path with .., or a non-string entry). Those rows carry
freshness=unavailable and recommended_action=use_project_relative_path,
so the fix is the path, not reading source or reindexing. Scope rows
never carry a recommended_action; the text said every row did.

Both reproduced on a live 0.11.0 server against a fresh index.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(skills): split outside_project by cause in check_index_coverage

Review round five on the codebase-memory-mcp skill: gotcha 5 described
every outside_project row as a request error. In v0.11.0 that is only
the normalization branch (an absolute or empty path, or one with ..),
which shares freshness=unavailable and
recommended_action=use_project_relative_path with invalid_path (a
non-string, a control character, or a path that normalizes to nothing
such as ./). A syntactically valid relative path whose target resolves
through a symlink outside the canonical root is also outside_project,
but with freshness=outside_project and the generic
read_source_and_reindex action. The text now separates the two and
tells the agent not to follow the link to its external target, which
is the Rooted Filesystem Fallback boundary.

Reproduced on a live 0.11.0 server against a fixture with a file
symlink and a directory symlink pointing outside the root, and checked
in src/mcp/mcp.c (coverage_normalize_rel, coverage_path_freshness,
cbm_path_within_root, coverage_recommended_action).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* docs(skills): correct search_code paging and ADR section names

Review round six on the codebase-memory-mcp skill:

- gotcha 3 gave search_code one 10-row page. In v0.11.0 it pages three
  streams independently: 10 symbol results (result_offset, next_offset),
  5 raw matches (raw_offset, raw_next_offset) and 20 directories
  (directory_offset, directory_next_offset), each with its own has_more
  flag
- gotcha 9 sent the agent to the default outline mode to pick a name for
  set_sections. outline lists every heading level, including lines inside
  fenced blocks, while set_sections writes only unfenced ## sections and
  appends a new one for any other name; the writable names come from
  mode="sections"

Both reproduced on a live 0.11.0 server: search_code returned the three
flags separately, and set_sections with a level-3 and a fenced heading
name appended two sections to a scratch ADR instead of editing it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 13:43:00 +11:00
..
2026-10-07 13:43:00 +11:00