memtrace-skills 0.8.63 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memtrace-skills",
3
- "version": "0.8.63",
3
+ "version": "1.0.0",
4
4
  "description": "Memtrace skills for AI coding agents — codebase exploration, temporal evolution, impact analysis, and more.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "memtrace-skills",
3
3
  "description": "Memtrace skills for codebase exploration, code search, relationship analysis, temporal evolution, blast radius impact, code quality, graph algorithms, API topology, GitHub PR code review, multi-agent fleet coordination (branch-scoped intents, conflict classification, and agent-judged Class C resolution), and multi-step workflows for change impact, incident investigation, refactoring, session continuity, co-change analysis, and episode replay, Cortex decision memory (decision recall, provenance, intent verification), session bookends (daily briefing, hotspots, self-audit), and single-symbol pre-edit preflight checks.",
4
- "version": "0.8.63",
4
+ "version": "1.0.0",
5
5
  "author": {
6
6
  "name": "Syncable",
7
7
  "email": "support@syncable.dev"
@@ -253,8 +253,15 @@ Returns `cochanged_files[]` with `file_path`, `cochange_count`, `last_cochanged_
253
253
  | `repo_id` | string | yes | — | |
254
254
  | `branch` | string | no | `"main"` | |
255
255
  | `include_tests` | boolean | no | `false` | |
256
- | `limit` | integer | no | `50` | |
257
- | `kinds` | array of string | no | all | Filter, e.g. `["Function","Method"]` |
256
+ | `limit` | integer | no | `20` (capped at 200) | |
257
+ | `include_historical` | boolean | no | `false` | `true` includes tombstoned-at-HEAD symbols |
258
+ | `as_of_micros` | integer | no | now | Anchor for HEAD-only filter |
259
+ | `min_confidence` | string | no | `"low"` | `"high"` \| `"medium"` \| `"low"` — filter by confidence band |
260
+
261
+ Dead candidates are Function/Method nodes **unreachable from roots** (exported /
262
+ `main` / HANDLES / `trait_impl` / framework allowlists) via forward
263
+ CALLS/REFERENCES/MAKES_API_CALL. Each result includes `confidence`,
264
+ `confidence_score`, and `reason: "unreachable from roots"`.
258
265
 
259
266
  ### `find_most_complex_functions`
260
267
  | Field | Type | Required | Default |
@@ -11,7 +11,7 @@ Code quality via graph analysis — dead code, complexity hotspots, repository s
11
11
 
12
12
  | Tool | Purpose | Required | Key optional |
13
13
  |------|---------|----------|--------------|
14
- | `find_dead_code` | Zero-caller symbols | `repo_id` | `include_tests`, `limit`, `kinds[]` |
14
+ | `find_dead_code` | Symbols unreachable from roots | `repo_id` | `include_tests`, `limit`, `min_confidence`, `include_historical` |
15
15
  | `find_most_complex_functions` | Ranked complexity hotspots | `repo_id` | **`top_n`** (def 20) — not `limit` |
16
16
  | `calculate_cyclomatic_complexity` | Score one symbol | `repo_id`, **`target`** | — |
17
17
  | `get_repository_stats` | Repository overview | `repo_id` | `branch` |
@@ -31,10 +31,20 @@ Full parameter spec for every Memtrace tool: `references/mcp-parameters.md` (bun
31
31
  ### 2. Dead code
32
32
 
33
33
  ```json
34
- { "repo_id": "memdb", "include_tests": false, "limit": 50 }
34
+ { "repo_id": "memdb", "include_tests": false, "limit": 50, "min_confidence": "high" }
35
35
  ```
36
36
 
37
- Exported symbols and entry points excluded by default. Results are candidates, not proof — callers via dynamic dispatch or reflection are invisible to the graph; verify before deleting.
37
+ `find_dead_code` seeds **roots** (`main`, exported symbols, HANDLES targets,
38
+ `trait_impl`, Magalz/framework allowlists), BFS-walks CALLS / REFERENCES /
39
+ MAKES_API_CALL forward, and reports Function/Method nodes **unreachable from
40
+ roots**. Each row includes `confidence` (`high` / `medium` / `low`) and
41
+ `confidence_score` (Skylos-style penalties for dynamic languages, ambiguous
42
+ hook names, methods). Use `min_confidence: "high"` for CI-safe cleanup;
43
+ omit or `"low"` to see all bands.
44
+
45
+ Results are still candidates, not proof — unmodeled dynamic dispatch can look
46
+ live or dead incorrectly. Verify before deleting. Prefer false-live over
47
+ false-dead.
38
48
 
39
49
  ### 3. Complexity hotspots
40
50
 
@@ -61,7 +71,7 @@ Ordered by call-graph out-degree.
61
71
 
62
72
  | Result | Carries |
63
73
  |--------|---------|
64
- | Dead-code entry (`find_dead_code`) | Symbol name + kind with zero graph callers e.g. `format_legacy` (Function) |
74
+ | Dead-code entry (`find_dead_code`) | Name, kind, path, `reason` (`unreachable from roots`), `confidence`, `confidence_score` |
65
75
  | Complexity row (`find_most_complex_functions`) | Symbol, complexity score, risk level — e.g. `processOrder` — 27, Critical |
66
76
  | Single score (`calculate_cyclomatic_complexity`) | Cyclomatic complexity for `target` |
67
77
  | Stats (`get_repository_stats`) | Node counts by kind, edge counts, community and process counts for `repo_id`/`branch` |
@@ -70,6 +80,8 @@ Ordered by call-graph out-degree.
70
80
 
71
81
  | Mistake | Reality |
72
82
  |---------|---------|
83
+ | Treating every dead-code row as deletable | Filter with `min_confidence: "high"`; still verify framework/dynamic use |
84
+ | Assuming “no inbound edge” is the model | Dead means unreachable from roots, not merely unreferenced |
73
85
  | `find_most_complex_functions(limit: 10)` | Param is **`top_n`** |
74
86
  | `calculate_cyclomatic_complexity(symbol_id=...)` | Required param is **`target`** |
75
87
  | Only looking at the highest complexity | Medium-complexity functions that are growing (check `get_evolution`) are often more urgent |
@@ -17,7 +17,7 @@ Run these three tools in parallel to build a candidate list:
17
17
  Call `find_most_complex_functions` with `top_n: 20`
18
18
 
19
19
  **b) Dead code:**
20
- Call `find_dead_code` to find unused symbols
20
+ Call `find_dead_code` (prefer `min_confidence: "high"`) for symbols unreachable from roots
21
21
 
22
22
  **c) Architectural bottlenecks:**
23
23
  Call `find_bridge_symbols` to find chokepoints with too much responsibility
@@ -104,7 +104,7 @@ For each item, include:
104
104
  |-----------|--------|
105
105
  | Complex + volatile + high blast radius | Highest priority — but plan carefully; incremental approach |
106
106
  | Complex + stable + low blast radius | Can wait; refactor when you're already touching nearby code |
107
- | Dead code with zero callers | Run Cortex provenance/recall first; zero callers is not proof that no decision/contract keeps it |
107
+ | Dead code (`unreachable from roots`, high confidence) | Run Cortex provenance/recall first; reachability is not proof that no decision/contract keeps it |
108
108
  | Bridge symbol with many dependents | Extract interface first, then refactor implementation behind it |
109
109
  | Symbol in cross-repo API | Coordinate with consumers; backward-compatible changes only |
110
110
  | Cortex returns a held ban/contract | Preserve it or ask before overriding it |
@@ -9,7 +9,7 @@ allowed-tools:
9
9
  - mcp__memtrace__get_evolution
10
10
  metadata:
11
11
  author: "Syncable <support@syncable.dev>"
12
- version: "1.0.0"
12
+ version: "1.1.0"
13
13
  category: development
14
14
  user-invocable: true
15
15
  ---
@@ -22,7 +22,7 @@ Code quality via graph analysis — dead code, complexity hotspots, repository s
22
22
 
23
23
  | Tool | Purpose | Required | Key optional |
24
24
  |------|---------|----------|--------------|
25
- | `find_dead_code` | Zero-caller symbols | `repo_id` | `include_tests`, `limit`, `kinds[]` |
25
+ | `find_dead_code` | Symbols unreachable from roots | `repo_id` | `include_tests`, `limit`, `min_confidence`, `include_historical` |
26
26
  | `find_most_complex_functions` | Ranked complexity hotspots | `repo_id` | **`top_n`** (def 20) — not `limit` |
27
27
  | `calculate_cyclomatic_complexity` | Score one symbol | `repo_id`, **`target`** | — |
28
28
  | `get_repository_stats` | Repository overview | `repo_id` | `branch` |
@@ -42,10 +42,20 @@ Full parameter spec for every Memtrace tool: `references/mcp-parameters.md` (bun
42
42
  ### 2. Dead code
43
43
 
44
44
  ```json
45
- { "repo_id": "memdb", "include_tests": false, "limit": 50 }
45
+ { "repo_id": "memdb", "include_tests": false, "limit": 50, "min_confidence": "high" }
46
46
  ```
47
47
 
48
- Exported symbols and entry points excluded by default. Results are candidates, not proof — callers via dynamic dispatch or reflection are invisible to the graph; verify before deleting.
48
+ `find_dead_code` seeds **roots** (`main`, exported symbols, HANDLES targets,
49
+ `trait_impl`, Magalz/framework allowlists), BFS-walks CALLS / REFERENCES /
50
+ MAKES_API_CALL forward, and reports Function/Method nodes **unreachable from
51
+ roots**. Each row includes `confidence` (`high` / `medium` / `low`) and
52
+ `confidence_score` (Skylos-style penalties for dynamic languages, ambiguous
53
+ hook names, methods). Use `min_confidence: "high"` for CI-safe cleanup;
54
+ omit or `"low"` to see all bands.
55
+
56
+ Results are still candidates, not proof — unmodeled dynamic dispatch can look
57
+ live or dead incorrectly. Verify before deleting. Prefer false-live over
58
+ false-dead.
49
59
 
50
60
  ### 3. Complexity hotspots
51
61
 
@@ -72,7 +82,7 @@ Ordered by call-graph out-degree.
72
82
 
73
83
  | Result | Carries |
74
84
  |--------|---------|
75
- | Dead-code entry (`find_dead_code`) | Symbol name + kind with zero graph callers e.g. `format_legacy` (Function) |
85
+ | Dead-code entry (`find_dead_code`) | Name, kind, path, `reason` (`unreachable from roots`), `confidence`, `confidence_score` |
76
86
  | Complexity row (`find_most_complex_functions`) | Symbol, complexity score, risk level — e.g. `processOrder` — 27, Critical |
77
87
  | Single score (`calculate_cyclomatic_complexity`) | Cyclomatic complexity for `target` |
78
88
  | Stats (`get_repository_stats`) | Node counts by kind, edge counts, community and process counts for `repo_id`/`branch` |
@@ -81,6 +91,8 @@ Ordered by call-graph out-degree.
81
91
 
82
92
  | Mistake | Reality |
83
93
  |---------|---------|
94
+ | Treating every dead-code row as deletable | Filter with `min_confidence: "high"`; still verify framework/dynamic use |
95
+ | Assuming “no inbound edge” is the model | Dead means unreachable from roots, not merely unreferenced |
84
96
  | `find_most_complex_functions(limit: 10)` | Param is **`top_n`** |
85
97
  | `calculate_cyclomatic_complexity(symbol_id=...)` | Required param is **`target`** |
86
98
  | Only looking at the highest complexity | Medium-complexity functions that are growing (check `get_evolution`) are often more urgent |
@@ -35,7 +35,7 @@ Run these three tools in parallel to build a candidate list:
35
35
  Call `find_most_complex_functions` with `top_n: 20`
36
36
 
37
37
  **b) Dead code:**
38
- Call `find_dead_code` to find unused symbols
38
+ Call `find_dead_code` (prefer `min_confidence: "high"`) for symbols unreachable from roots
39
39
 
40
40
  **c) Architectural bottlenecks:**
41
41
  Call `find_bridge_symbols` to find chokepoints with too much responsibility
@@ -122,7 +122,7 @@ For each item, include:
122
122
  |-----------|--------|
123
123
  | Complex + volatile + high blast radius | Highest priority — but plan carefully; incremental approach |
124
124
  | Complex + stable + low blast radius | Can wait; refactor when you're already touching nearby code |
125
- | Dead code with zero callers | Run Cortex provenance/recall first; zero callers is not proof that no decision/contract keeps it |
125
+ | Dead code (`unreachable from roots`, high confidence) | Run Cortex provenance/recall first; reachability is not proof that no decision/contract keeps it |
126
126
  | Bridge symbol with many dependents | Extract interface first, then refactor implementation behind it |
127
127
  | Symbol in cross-repo API | Coordinate with consumers; backward-compatible changes only |
128
128
  | Cortex returns a held ban/contract | Preserve it or ask before overriding it |