memtrace-api-topology
Map API endpoints, outbound HTTP calls, and cross-repo service topology in indexed source code. Use when the user asks about API endpoints, HTTP routes,…
Find files that historically co-change with a target symbol or file, ranked by co-occurrence across git episodes. Use when the user asks about historical coupling, co-change, what changes with this, hidden dependencies, or what else needs to move for source code. Do not use git
$ npx -y skills add syncable-dev/memtrace-public --skill memtrace-cochange --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/memtrace-cochangeContext preview
The summary Claude sees to decide when to auto-load this skill.
Find files that historically co-change with a target symbol or file, ranked by co-occurrence across git episodes. Use when the user asks about historical coupling, co-change, what changes with this, hidden dependencies, or what else needs to move for source code. Do not use git
name: memtrace-cochange description: "Find files that historically co-change with a target symbol or file, ranked by co-occurrence across git episodes. Use when the user asks about historical coupling, co-change, what changes with this, hidden dependencies, or what else needs to move for source code. Do not use git log, git diff, Grep, or manual file search to correlate changes; Memtrace queries co-change and temporal graph data directly."
Find **files** that historically co-change with a target symbol or file path — ranked by co-occurrence frequency across git episodes. Surfaces **behavioral coupling** the static call graph cannot see.
`get_impact` answers "who calls this?" (structural). `get_cochange_context` answers "what files always move when this moves?" (historical, file-level).
They are complementary. A file with no call-graph edges to the target can still be a strong cochange partner if it's always modified alongside it in every commit.
> **Parameter types:** Numbers (`limit`, `window_days`, etc.) must be JSON numbers — not strings.
| Parameter | Required | Default | Notes | |---|---|---|---| | `repo_id` | yes | — | | | `target` | yes | — | Symbol name **or** file path substring — **not** `symbol` | | `limit` | no | **10** | Max cochanged files returned | | `window_days` | no | **30** | Lookback from `as_of` | | `as_of` | no | now | Window anchor | | `branch` | no | any branch | |
{
"repo_id": "memdb",
"target": "execute",
"limit": 10,
"window_days": 30
}Full parameter spec for every Memtrace tool: `references/mcp-parameters.md` (bundled at the memtrace-skills plugin root).
{
"cochanged_files": [
{
"file_path": "src/order/types.rs",
"cochange_count": 8,
"last_cochanged_at": "2026-04-13T10:43:00Z"
}
],
"target_files": ["src/order/service.rs"]
}There is **no** `cochanges[]` with symbol names — results are **file-level**.
Use `find_symbol` if needed. Pass the symbol **`name`** or a **`file_path`** as `target`.
See required parameters above.
High `cochange_count` on a file → strong historical coupling. When you modify the target, review those files too — even without direct call-graph edges.
For symbols in cochanged files, optionally run `get_impact(target=...)`:
| Structural coupling | Historical coupling | Interpretation | |---|---|---| | Yes | Yes | Core dependency — highest risk | | No | Yes | Hidden coupling — history-only | | Yes | No | Called often but changed independently |
| Mistake | Reality | |---------|---------| | Only using `get_impact` for blast radius | Structural coupling misses behavioral coupling — always pair with cochange | | Ignoring cochanged files with no call-graph edges | A rarely-called file with high `cochange_count` is a strong coupling signal | | Using cochange as a dependency map | It's a change correlation, not a dependency graph — files can cochange without any direct relationship | | Passing `symbol:` | Required param is **`target`** | | Expecting `cochanges[]` with symbol names | Response is **`cochanged_files[]`** (file paths) | | Using `limit: 20` as default | API default is **10** | | Empty results with 0 git episodes | Run `replay_history` during indexing to populate co-change data |
Structural memory for AI coding agents. Bi-temporal graph, MCP-native, zero LLM calls. Cursor · Claude Code · Codex · DeepSeek Harness · Hermes · VS Code · Windsurf.
Repo: syncable-dev/memtrace-public
Map API endpoints, outbound HTTP calls, and cross-repo service topology in indexed source code. Use when the user asks about API endpoints, HTTP routes,…
Compute what a planned source-code change will break — blast radius, affected processes, cross-repo callers, temporal stability, and Cortex decision-memory…
Review GitHub pull requests with Memtrace's local graph-backed review engine. Use when the user asks to review a GitHub pull request, run Memtrace code review,…
Map an indexed source-code repo into a structured overview — scale, communities, central symbols, execution flows, API surface, recent activity. Use when the…
Keep the Memtrace index fresh while editing by watching a repo for live, incremental re-indexing. Use when the user asks to keep Memtrace fresh while editing,…
Orient at the start of a coding session, review what recently changed in a repository, and self-audit after completing work. Use when the user wants the daily…