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 +1 -1
- package/plugins/memtrace-skills/.claude-plugin/plugin.json +1 -1
- package/plugins/memtrace-skills/references/mcp-parameters.md +9 -2
- package/plugins/memtrace-skills/skills/memtrace-quality/SKILL.md +16 -4
- package/plugins/memtrace-skills/skills/memtrace-refactoring-guide/SKILL.md +2 -2
- package/skills/commands/memtrace-quality.md +17 -5
- package/skills/workflows/memtrace-refactoring-guide.md +2 -2
package/package.json
CHANGED
|
@@ -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.
|
|
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 | `
|
|
257
|
-
| `
|
|
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` |
|
|
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
|
-
|
|
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`) |
|
|
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`
|
|
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
|
|
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.
|
|
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` |
|
|
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
|
-
|
|
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`) |
|
|
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`
|
|
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
|
|
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 |
|