← ClaudeAtlas

memtrace-cochangelisted

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.
syncable-dev/memtrace-public · ★ 474 · AI & Automation · score 79
Install: claude install-skill syncable-dev/memtrace-public
## Overview 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. ## Required parameters | 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 | | ```json { "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). ## Output ```json { "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 symbo