kodelyth-ecc 1.7.0 → 1.7.1

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.
Files changed (166) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/CLAUDE.md +1 -1
  3. package/README.md +23 -3
  4. package/package.json +1 -1
  5. package/scripts/supply-chain/manifest.js +5 -4
  6. package/social/facebook-v150.svg +3 -3
  7. package/social/github-social-preview.svg +6 -6
  8. package/social/readme-hero.svg +6 -6
  9. package/social/section-install.svg +1 -1
  10. package/tests/evolve/stats.test.js +10 -2
  11. package/tests/mcp/client.test.js +8 -4
  12. package/wiki/FAQ.md +1 -1
  13. package/wiki/Home.md +19 -20
  14. package/wiki/Installation-Guide.md +1 -1
  15. package/wiki/Platform-Support.md +116 -213
  16. package/wiki/Skill-Reference.md +1 -1
  17. package/.agent/rules/README.md +0 -108
  18. package/.agent/rules/agents.md +0 -94
  19. package/.agent/rules/code-review.md +0 -124
  20. package/.agent/rules/coding-style.md +0 -122
  21. package/.agent/rules/design-quality.md +0 -63
  22. package/.agent/rules/development-workflow.md +0 -44
  23. package/.agent/rules/git-mastery.md +0 -366
  24. package/.agent/rules/git-workflow.md +0 -24
  25. package/.agent/rules/hooks.md +0 -25
  26. package/.agent/rules/kodelyth-always-on.md +0 -63
  27. package/.agent/rules/kodelyth-quickstart.md +0 -207
  28. package/.agent/rules/observability.md +0 -390
  29. package/.agent/rules/patterns.md +0 -50
  30. package/.agent/rules/performance.md +0 -178
  31. package/.agent/rules/security.md +0 -58
  32. package/.agent/rules/smart-debug.md +0 -241
  33. package/.agent/rules/soul.md +0 -32
  34. package/.agent/rules/testing.md +0 -46
  35. package/.agent/skills/api-guardian.md +0 -279
  36. package/.agent/skills/architect.md +0 -211
  37. package/.agent/skills/build-error-resolver.md +0 -114
  38. package/.agent/skills/chief-of-staff.md +0 -151
  39. package/.agent/skills/code-architect.md +0 -71
  40. package/.agent/skills/code-explorer.md +0 -69
  41. package/.agent/skills/code-reviewer.md +0 -237
  42. package/.agent/skills/code-simplifier.md +0 -47
  43. package/.agent/skills/comment-analyzer.md +0 -45
  44. package/.agent/skills/conversation-analyzer.md +0 -52
  45. package/.agent/skills/cpp-build-resolver.md +0 -90
  46. package/.agent/skills/cpp-reviewer.md +0 -72
  47. package/.agent/skills/csharp-reviewer.md +0 -101
  48. package/.agent/skills/dart-build-resolver.md +0 -201
  49. package/.agent/skills/database-reviewer.md +0 -91
  50. package/.agent/skills/debug-detective.md +0 -409
  51. package/.agent/skills/doc-updater.md +0 -107
  52. package/.agent/skills/docs-lookup.md +0 -68
  53. package/.agent/skills/e2e-runner.md +0 -107
  54. package/.agent/skills/flutter-reviewer.md +0 -243
  55. package/.agent/skills/gan-evaluator.md +0 -209
  56. package/.agent/skills/gan-generator.md +0 -131
  57. package/.agent/skills/gan-planner.md +0 -99
  58. package/.agent/skills/go-build-resolver.md +0 -94
  59. package/.agent/skills/go-reviewer.md +0 -76
  60. package/.agent/skills/harness-optimizer.md +0 -35
  61. package/.agent/skills/healthcare-reviewer.md +0 -83
  62. package/.agent/skills/java-build-resolver.md +0 -153
  63. package/.agent/skills/java-reviewer.md +0 -92
  64. package/.agent/skills/kodelyth-advisor.md +0 -172
  65. package/.agent/skills/kotlin-build-resolver.md +0 -118
  66. package/.agent/skills/kotlin-reviewer.md +0 -159
  67. package/.agent/skills/loop-operator.md +0 -36
  68. package/.agent/skills/migration-guide.md +0 -368
  69. package/.agent/skills/opensource-forker.md +0 -198
  70. package/.agent/skills/opensource-packager.md +0 -249
  71. package/.agent/skills/opensource-sanitizer.md +0 -188
  72. package/.agent/skills/pair-programmer.md +0 -260
  73. package/.agent/skills/performance-optimizer.md +0 -446
  74. package/.agent/skills/planner.md +0 -212
  75. package/.agent/skills/pr-test-analyzer.md +0 -45
  76. package/.agent/skills/python-reviewer.md +0 -98
  77. package/.agent/skills/pytorch-build-resolver.md +0 -120
  78. package/.agent/skills/refactor-cleaner.md +0 -85
  79. package/.agent/skills/rust-build-resolver.md +0 -148
  80. package/.agent/skills/rust-reviewer.md +0 -94
  81. package/.agent/skills/security-reviewer.md +0 -108
  82. package/.agent/skills/seo-specialist.md +0 -62
  83. package/.agent/skills/silent-failure-hunter.md +0 -50
  84. package/.agent/skills/tdd-guide.md +0 -91
  85. package/.agent/skills/type-design-analyzer.md +0 -41
  86. package/.agent/skills/typescript-reviewer.md +0 -112
  87. package/.agent/skills/ux-reviewer.md +0 -483
  88. package/.agent/workflows/agent-sort.md +0 -23
  89. package/.agent/workflows/aside.md +0 -164
  90. package/.agent/workflows/build-fix.md +0 -62
  91. package/.agent/workflows/checkpoint.md +0 -74
  92. package/.agent/workflows/claw.md +0 -23
  93. package/.agent/workflows/code-review.md +0 -289
  94. package/.agent/workflows/context-budget.md +0 -23
  95. package/.agent/workflows/cpp-build.md +0 -173
  96. package/.agent/workflows/cpp-review.md +0 -132
  97. package/.agent/workflows/cpp-test.md +0 -251
  98. package/.agent/workflows/devfleet.md +0 -23
  99. package/.agent/workflows/docs.md +0 -23
  100. package/.agent/workflows/e2e.md +0 -268
  101. package/.agent/workflows/eval.md +0 -23
  102. package/.agent/workflows/evolve.md +0 -178
  103. package/.agent/workflows/feature-dev.md +0 -49
  104. package/.agent/workflows/flutter-build.md +0 -164
  105. package/.agent/workflows/flutter-review.md +0 -116
  106. package/.agent/workflows/flutter-test.md +0 -144
  107. package/.agent/workflows/gan-build.md +0 -99
  108. package/.agent/workflows/gan-design.md +0 -35
  109. package/.agent/workflows/go-build.md +0 -183
  110. package/.agent/workflows/go-review.md +0 -148
  111. package/.agent/workflows/go-test.md +0 -268
  112. package/.agent/workflows/gradle-build.md +0 -70
  113. package/.agent/workflows/harness-audit.md +0 -73
  114. package/.agent/workflows/hookify-configure.md +0 -14
  115. package/.agent/workflows/hookify-help.md +0 -46
  116. package/.agent/workflows/hookify-list.md +0 -21
  117. package/.agent/workflows/hookify.md +0 -50
  118. package/.agent/workflows/instinct-export.md +0 -66
  119. package/.agent/workflows/instinct-import.md +0 -114
  120. package/.agent/workflows/instinct-status.md +0 -59
  121. package/.agent/workflows/jira.md +0 -106
  122. package/.agent/workflows/kotlin-build.md +0 -174
  123. package/.agent/workflows/kotlin-review.md +0 -140
  124. package/.agent/workflows/kotlin-test.md +0 -312
  125. package/.agent/workflows/learn-eval.md +0 -116
  126. package/.agent/workflows/learn.md +0 -70
  127. package/.agent/workflows/loop-start.md +0 -32
  128. package/.agent/workflows/loop-status.md +0 -24
  129. package/.agent/workflows/model-route.md +0 -26
  130. package/.agent/workflows/multi-backend.md +0 -158
  131. package/.agent/workflows/multi-execute.md +0 -315
  132. package/.agent/workflows/multi-frontend.md +0 -158
  133. package/.agent/workflows/multi-plan.md +0 -268
  134. package/.agent/workflows/multi-workflow.md +0 -191
  135. package/.agent/workflows/orchestrate.md +0 -135
  136. package/.agent/workflows/plan.md +0 -117
  137. package/.agent/workflows/pm2.md +0 -272
  138. package/.agent/workflows/projects.md +0 -39
  139. package/.agent/workflows/promote.md +0 -41
  140. package/.agent/workflows/prompt-optimize.md +0 -23
  141. package/.agent/workflows/prp-commit.md +0 -112
  142. package/.agent/workflows/prp-implement.md +0 -385
  143. package/.agent/workflows/prp-plan.md +0 -502
  144. package/.agent/workflows/prp-pr.md +0 -184
  145. package/.agent/workflows/prp-prd.md +0 -447
  146. package/.agent/workflows/prune.md +0 -31
  147. package/.agent/workflows/python-review.md +0 -297
  148. package/.agent/workflows/quality-gate.md +0 -29
  149. package/.agent/workflows/refactor-clean.md +0 -80
  150. package/.agent/workflows/resume-session.md +0 -156
  151. package/.agent/workflows/review-pr.md +0 -37
  152. package/.agent/workflows/rules-distill.md +0 -20
  153. package/.agent/workflows/rust-build.md +0 -187
  154. package/.agent/workflows/rust-review.md +0 -142
  155. package/.agent/workflows/rust-test.md +0 -308
  156. package/.agent/workflows/santa-loop.md +0 -175
  157. package/.agent/workflows/save-session.md +0 -275
  158. package/.agent/workflows/sessions.md +0 -333
  159. package/.agent/workflows/setup-pm.md +0 -80
  160. package/.agent/workflows/skill-create.md +0 -174
  161. package/.agent/workflows/skill-health.md +0 -54
  162. package/.agent/workflows/tdd.md +0 -231
  163. package/.agent/workflows/test-coverage.md +0 -69
  164. package/.agent/workflows/update-codemaps.md +0 -72
  165. package/.agent/workflows/update-docs.md +0 -84
  166. package/.agent/workflows/verify.md +0 -23
package/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  All notable changes to Kodelyth ECC are documented here.
4
4
 
5
+ ## v1.7.1 — Platform count correction + SVG glow fix (May 2026)
6
+
7
+ Accuracy patch: all docs, social assets, and the wiki now consistently reflect the correct
8
+ platform count (11 platforms, 13 install targets — Windsurf and Gemini CLI each expose two
9
+ install targets but remain one platform).
10
+
11
+ ### Fixed
12
+
13
+ - **Platform count** — `12 platforms` corrected to `11 platforms` across README, CLAUDE.md,
14
+ wiki (FAQ, Home, Installation-Guide, Skill-Reference, Platform-Support), and all social SVGs.
15
+ - **Platform-Support wiki** — complete rewrite with accurate capability matrix, correct
16
+ install-directory paths (`.clinerules/` not `.cline/`, `.roo/` not `.roocode/`,
17
+ `.aider-ecc/` not `.aider/`, `.agent/` project-local not `~/.antigravity/`),
18
+ and honest notes on Cursor agent incompatibility and OpenCode rules-only support.
19
+ - **SVG glow on Kodelyth text** — removed `filter="url(#glow)"` (feGaussianBlur stdDeviation 8)
20
+ and `filter="url(#softglow)"` from all text elements in `github-social-preview.svg` and
21
+ `readme-hero.svg`. Text is now sharp at all sizes.
22
+ - **GitHub About** — updated from stale v1.5 counts (62 agents/188 skills/80 commands) to
23
+ current accurate counts (70 agents/194 skills/97 commands/22+ hooks).
24
+
25
+ ### Files changed
26
+
27
+ `README.md` · `CLAUDE.md` · `wiki/Platform-Support.md` · `wiki/FAQ.md` · `wiki/Home.md` ·
28
+ `wiki/Installation-Guide.md` · `wiki/Skill-Reference.md` · `social/readme-hero.svg` ·
29
+ `social/github-social-preview.svg` · `social/section-install.svg` · `social/facebook-v150.svg`
30
+
31
+ ---
32
+
5
33
  ## v1.7.0 — MCP SERVER: Universal adapter for any agent framework (May 2026)
6
34
 
7
35
  ECC is now consumable from Claude Desktop, LangGraph, AutoGen, CrewAI, OpenAI Agents SDK, Cursor, Windsurf, and any MCP-compatible client. Every framework that speaks Model Context Protocol can now route to ECC's 70 agents, 194 skills, 97 commands, and the local self-learning memory store.
package/CLAUDE.md CHANGED
@@ -12,7 +12,7 @@ Guidance for Claude Code when working with this repository.
12
12
  - **22+ hooks** — quality gates, memory inject + capture, correction encoding, prompt-injection guard, token-budget enforcer
13
13
  - **14 rules** — always-on coding standards + semantic intent routing + memory protocol + self-improvement
14
14
 
15
- Works with Claude Code, Windsurf, Cursor, Codex CLI, Antigravity, OpenCode, Cline, Roo Code, Aider, Kimi, and Gemini CLI — **12 platforms total**.
15
+ Works with Claude Code, Windsurf, Cursor, Codex CLI, Antigravity, OpenCode, Cline, Roo Code, Aider, Kimi, and Gemini CLI — **11 platforms** (13 install targets).
16
16
 
17
17
  ## Architecture
18
18
 
package/README.md CHANGED
@@ -56,7 +56,7 @@ You never typed `use debug-detective`. You didn't have to. The toolkit read the
56
56
  | **8 parallel commands** | Fire 3-8 agents simultaneously, aggregate results | Rare |
57
57
  | **Compound memory** | BM25 local recall + auto-inject + project lessons | Cloud-only or absent |
58
58
  | **22+ hooks** | Quality gates, secret scan, project-DNA detection | Often missing |
59
- | **12 IDE platforms** | Claude Code, Windsurf, Cursor, Codex, Antigravity, OpenCode, Cline, Roo Code, Aider, Kimi, Gemini CLI (project + home) | 1-2 platforms typical |
59
+ | **11 IDE platforms** | Claude Code, Windsurf, Cursor, Codex, Antigravity, OpenCode, Cline, Roo Code, Aider, Kimi, Gemini CLI (13 install targets) | 1-2 platforms typical |
60
60
  | **Zero telemetry** | Everything stays on your disk; verifiable | Many kits phone home |
61
61
 
62
62
  ### Quick Comparison vs Other Kits
@@ -72,7 +72,7 @@ You never typed `use debug-detective`. You didn't have to. The toolkit read the
72
72
  | **Compound learning from corrections** | ✅ `tasks/lessons.md` | ❌ | ❌ | ❌ |
73
73
  | **Adversarial / red-team agents** | ✅ 8 (devil-mode) | ❌ | ❌ | ❌ |
74
74
  | Quality hooks | ✅ 22+ | Some | ❌ | ❌ |
75
- | IDE platforms | **12** (Claude Code, Windsurf, Cursor, Codex, Antigravity, OpenCode, Cline, Roo Code, Aider, Kimi, Gemini CLI) | 1-2 | 1 | Varies |
75
+ | IDE platforms | **11** (Claude Code, Windsurf, Cursor, Codex, Antigravity, OpenCode, Cline, Roo Code, Aider, Kimi, Gemini CLI) | 1-2 | 1 | Varies |
76
76
  | Telemetry | ❌ none | Varies | ❌ | Varies |
77
77
  | Test coverage | ✅ 336 tests | ❌ | ❌ | ❌ |
78
78
  | Distributed via | `npx`, curl, clone | Manual | Manual | Manual |
@@ -82,7 +82,7 @@ You never typed `use debug-detective`. You didn't have to. The toolkit read the
82
82
  ## Install
83
83
 
84
84
  <div align="center">
85
- <img src="social/section-install.svg" alt="Install — One command, 12 platforms, any OS" width="900"/>
85
+ <img src="social/section-install.svg" alt="Install — One command, 11 platforms, any OS" width="900"/>
86
86
  </div>
87
87
 
88
88
  ### Option 1 — npx from npm (recommended, any platform)
@@ -105,6 +105,26 @@ npx kodelyth-ecc --target gemini-home # Gemini CLI (global)
105
105
 
106
106
  Node.js 18+ required. [Download Node](https://nodejs.org) if you don't have it.
107
107
 
108
+ ### Platform support at a glance
109
+
110
+ Feature depth varies by platform — hooks are a Claude Code native format, and some platforms have no agent/command concept:
111
+
112
+ | Platform | Agents | Skills | Commands | Hooks | Rules |
113
+ |---|---|---|---|---|---|
114
+ | **Claude Code** | ✓ 70 | ✓ 194 | ✓ 97 | ✓ 22+ | ✓ |
115
+ | **Roo Code** | ✓ | ✓ | ✓ | — | ✓ |
116
+ | **Codex CLI** | ✓ | ✓ | ✓ | — | ✓ |
117
+ | **Aider** | ✓ | ✓ | ✓ | — | ✓ |
118
+ | **Kimi** | ✓ | ✓ | ✓ | — | ✓ |
119
+ | **Windsurf** | ✓ | ✓ | — | — | ✓ |
120
+ | **Antigravity** | ✓ | partial | ✓ | — | ✓ |
121
+ | **Gemini CLI** | ✓ | ✓ | — | — | ✓ |
122
+ | **Cursor** | — | ✓ | — | — | ✓ |
123
+ | **Cline** | ✓ | — | ✓ | — | ✓ |
124
+ | **OpenCode** | — | — | — | — | ✓ |
125
+
126
+ Hooks use Claude Code's JSON settings format — no equivalent exists on other platforms. Cursor reads rules and skills from `.cursor/`; its agent system uses a different format not yet compatible with ECC agents.
127
+
108
128
  ### Option 2 — npx from GitHub (always latest commit)
109
129
 
110
130
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kodelyth-ecc",
3
- "version": "1.7.0",
3
+ "version": "1.7.1",
4
4
  "description": "Production-grade AI coding toolkit — 70 agents (incl. devil-mode adversarial crew), 194 skills, 97 commands, parallel multi-agent commands, semantic intent routing, self-learning memory, and a built-in MCP server (16 tools / 6 prompts / 377 resources) that bridges to Claude Desktop, LangGraph, AutoGen, CrewAI, and OpenAI Agents SDK. Works with Claude Code, Windsurf, Cursor, Codex, Antigravity, OpenCode, Cline, RooCode, Aider, Kimi, and Gemini CLI.",
5
5
  "author": "Kodelyth <github.com/sifxprime>",
6
6
  "license": "MIT",
@@ -51,11 +51,12 @@ const SHIPPED_ROOT_FILES = [
51
51
  ];
52
52
 
53
53
  // Patterns to skip even within shipped dirs.
54
+ // Use [/\\] so patterns match on both POSIX (/) and Windows (\) paths.
54
55
  const SKIP_PATTERNS = [
55
- /\/\.DS_Store$/,
56
- /\/node_modules\//,
57
- /\/\.git\//,
58
- /\/__pycache__\//,
56
+ /[/\\]\.DS_Store$/,
57
+ /[/\\]node_modules[/\\]/,
58
+ /[/\\]\.git[/\\]/,
59
+ /[/\\]__pycache__[/\\]/,
59
60
  /\.pyc$/,
60
61
  ];
61
62
 
@@ -25,12 +25,12 @@
25
25
 
26
26
  <!-- Version + NEW badges -->
27
27
  <rect x="80" y="28" width="76" height="24" rx="12" fill="#a78bfa" fill-opacity="0.15" stroke="#a78bfa" stroke-opacity="0.5" stroke-width="1"/>
28
- <text x="118" y="44" font-size="11" fill="#a78bfa" text-anchor="middle" font-weight="700" letter-spacing="0.5">v1.5.8</text>
28
+ <text x="118" y="44" font-size="11" fill="#a78bfa" text-anchor="middle" font-weight="700" letter-spacing="0.5">v1.7.1</text>
29
29
 
30
30
  <!-- Title -->
31
31
  <text x="80" y="120" font-size="52" font-weight="900" letter-spacing="-2" fill="#ffffff">Kodelyth ECC</text>
32
32
  <text x="80" y="175" font-size="22" font-weight="400" fill="url(#accent)">The AI coding toolkit that learns how you work.</text>
33
- <text x="80" y="212" font-size="15" fill="#6e7681">70 agents. 12 platforms. Semantic routing. Compound learning. Zero cloud.</text>
33
+ <text x="80" y="212" font-size="15" fill="#6e7681">70 agents. 11 platforms. Semantic routing. Compound learning. Zero cloud.</text>
34
34
 
35
35
  <line x1="80" y1="236" x2="1120" y2="236" stroke="#21262d" stroke-width="1"/>
36
36
 
@@ -41,7 +41,7 @@
41
41
  <text x="100" y="296" font-size="13" fill="#e6edf3">Corrections → tasks/lessons.md</text>
42
42
  <text x="100" y="313" font-size="13" fill="#e6edf3">Next session: never repeats the mistake</text>
43
43
  <text x="100" y="334" font-size="11" fill="#484f58">capture-correction.js · read-lessons.js</text>
44
- <text x="100" y="352" font-size="11" fill="#484f58">Works on all 12 platforms via /lessons</text>
44
+ <text x="100" y="352" font-size="11" fill="#484f58">Works on all 11 platforms via /lessons</text>
45
45
 
46
46
  <!-- Card 2: Parallel Agents -->
47
47
  <rect x="410" y="250" width="315" height="120" rx="10" fill="#161b22" stroke="#f59e0b" stroke-opacity="0.35" stroke-width="1"/>
@@ -44,22 +44,22 @@
44
44
 
45
45
  <!-- Version badge -->
46
46
  <rect x="60" y="60" width="88" height="26" rx="13" fill="#a78bfa" fill-opacity="0.15" stroke="#a78bfa" stroke-opacity="0.5" stroke-width="1"/>
47
- <text x="104" y="77" font-size="11" fill="#a78bfa" text-anchor="middle" font-weight="700" letter-spacing="0.5">v1.7.0 NEW</text>
47
+ <text x="104" y="77" font-size="11" fill="#a78bfa" text-anchor="middle" font-weight="700" letter-spacing="0.5">v1.7.1 NEW</text>
48
48
 
49
49
  <!-- Title -->
50
- <text x="60" y="160" font-size="72" font-weight="900" letter-spacing="-3" fill="#ffffff" filter="url(#glow)">Kodelyth</text>
51
- <text x="60" y="240" font-size="72" font-weight="900" letter-spacing="-3" fill="url(#accent)" filter="url(#softglow)">ECC</text>
50
+ <text x="60" y="160" font-size="72" font-weight="900" letter-spacing="-3" fill="#ffffff">Kodelyth</text>
51
+ <text x="60" y="240" font-size="72" font-weight="900" letter-spacing="-3" fill="url(#accent)">ECC</text>
52
52
 
53
53
  <!-- Tagline -->
54
54
  <text x="60" y="285" font-size="18" fill="#8b949e" font-weight="400">Production-grade AI coding toolkit.</text>
55
- <text x="60" y="308" font-size="18" fill="#8b949e" font-weight="400">12 platforms. Zero cloud. Zero telemetry.</text>
55
+ <text x="60" y="308" font-size="18" fill="#8b949e" font-weight="400">11 platforms. Zero cloud. Zero telemetry.</text>
56
56
 
57
57
  <!-- Divider -->
58
58
  <line x1="60" y1="330" x2="540" y2="330" stroke="#21262d" stroke-width="1"/>
59
59
 
60
60
  <!-- Stats grid -->
61
61
  <rect x="60" y="350" width="100" height="80" rx="10" fill="#ffffff" fill-opacity="0.03" stroke="#a78bfa" stroke-opacity="0.2" stroke-width="1"/>
62
- <text x="110" y="394" font-size="36" font-weight="900" fill="#ffffff" text-anchor="middle" filter="url(#softglow)">70</text>
62
+ <text x="110" y="394" font-size="36" font-weight="900" fill="#ffffff" text-anchor="middle">70</text>
63
63
  <text x="110" y="416" font-size="10" fill="#6e7681" text-anchor="middle" letter-spacing="2">AGENTS</text>
64
64
 
65
65
  <rect x="170" y="350" width="100" height="80" rx="10" fill="#ffffff" fill-opacity="0.03" stroke="#38bdf8" stroke-opacity="0.2" stroke-width="1"/>
@@ -112,7 +112,7 @@
112
112
  <text x="668" y="118" font-size="12" fill="#484f58" font-family="'Courier New', monospace">$</text>
113
113
  <text x="682" y="118" font-size="12" fill="#34d399" font-family="'Courier New', monospace">npx kodelyth-ecc</text>
114
114
 
115
- <text x="668" y="148" font-size="11" fill="#a78bfa" font-family="'Courier New', monospace">✓ Kodelyth ECC v1.7.0</text>
115
+ <text x="668" y="148" font-size="11" fill="#a78bfa" font-family="'Courier New', monospace">✓ Kodelyth ECC v1.7.1</text>
116
116
  <text x="668" y="166" font-size="11" fill="#6e7681" font-family="'Courier New', monospace"> Installing 70 agents, 194 skills, 97 commands...</text>
117
117
  <text x="668" y="184" font-size="11" fill="#6e7681" font-family="'Courier New', monospace"> Wiring 22+ hooks · 14 rules · local memory</text>
118
118
  <text x="668" y="202" font-size="11" fill="#34d399" font-family="'Courier New', monospace"> Done in 2.1s</text>
@@ -25,14 +25,14 @@
25
25
  <!-- LEFT — Brand block -->
26
26
  <!-- Version badge -->
27
27
  <rect x="32" y="22" width="72" height="20" rx="10" fill="#a78bfa" fill-opacity="0.15" stroke="#a78bfa" stroke-opacity="0.4" stroke-width="1"/>
28
- <text x="68" y="36" font-size="9" fill="#a78bfa" text-anchor="middle" font-weight="700" letter-spacing="0.5">v1.7.0</text>
28
+ <text x="68" y="36" font-size="9" fill="#a78bfa" text-anchor="middle" font-weight="700" letter-spacing="0.5">v1.7.1</text>
29
29
 
30
30
  <!-- Title -->
31
- <text x="32" y="78" font-size="36" font-weight="900" letter-spacing="-1.5" fill="#ffffff" filter="url(#glow)">Kodelyth</text>
31
+ <text x="32" y="78" font-size="36" font-weight="900" letter-spacing="-1.5" fill="#ffffff">Kodelyth</text>
32
32
  <text x="32" y="118" font-size="36" font-weight="900" letter-spacing="-1.5" fill="url(#accent)">ECC</text>
33
33
 
34
34
  <!-- Tagline -->
35
- <text x="32" y="148" font-size="12" fill="#6e7681" font-weight="400">AI coding toolkit. 12 platforms. Zero cloud.</text>
35
+ <text x="32" y="148" font-size="12" fill="#6e7681" font-weight="400">AI coding toolkit. 11 platforms. Zero cloud.</text>
36
36
 
37
37
  <!-- Separator -->
38
38
  <line x1="32" y1="165" x2="290" y2="165" stroke="#21262d" stroke-width="1"/>
@@ -61,12 +61,12 @@
61
61
  <circle cx="344" cy="31" r="5" fill="#ff5f57"/>
62
62
  <circle cx="360" cy="31" r="5" fill="#febc2e"/>
63
63
  <circle cx="376" cy="31" r="5" fill="#28c840"/>
64
- <text x="612" y="35" font-size="11" fill="#484f58" text-anchor="middle">kodelyth-ecc v1.7.0</text>
64
+ <text x="612" y="35" font-size="11" fill="#484f58" text-anchor="middle">kodelyth-ecc v1.7.1</text>
65
65
 
66
66
  <text x="348" y="66" font-family="'Courier New', Courier, monospace" font-size="11" fill="#10b981">$</text>
67
67
  <text x="360" y="66" font-family="'Courier New', Courier, monospace" font-size="11" fill="#e6edf3"> npx kodelyth-ecc</text>
68
68
 
69
- <text x="348" y="84" font-family="'Courier New', Courier, monospace" font-size="11" fill="#484f58">Installing Kodelyth ECC v1.7.0...</text>
69
+ <text x="348" y="84" font-family="'Courier New', Courier, monospace" font-size="11" fill="#484f58">Installing Kodelyth ECC v1.7.1...</text>
70
70
 
71
71
  <text x="348" y="108" font-family="'Courier New', Courier, monospace" font-size="11" fill="#e6edf3"> Agents (70) </text>
72
72
  <text x="494" y="108" font-family="'Courier New', Courier, monospace" font-size="11" fill="#484f58">→ ~/.claude/agents/</text>
@@ -84,6 +84,6 @@
84
84
  <text x="494" y="180" font-family="'Courier New', Courier, monospace" font-size="11" fill="#484f58">→ ~/.kodelyth/memory/</text>
85
85
 
86
86
  <rect x="348" y="196" width="500" height="36" rx="6" fill="#0d2b1d" stroke="#059669" stroke-opacity="0.3" stroke-width="1"/>
87
- <text x="368" y="212" font-size="9" font-weight="700" fill="#10b981" letter-spacing="1">v1.7.0 — SEMANTIC INTENT ROUTING</text>
87
+ <text x="368" y="212" font-size="9" font-weight="700" fill="#10b981" letter-spacing="1">v1.7.1 — SEMANTIC INTENT ROUTING</text>
88
88
  <text x="368" y="226" font-size="10" fill="#6b7280">Paste code or a stack trace — AI routes you automatically, no command needed</text>
89
89
  </svg>
@@ -16,7 +16,7 @@
16
16
  <rect x="32" y="20" width="88" height="22" rx="11" fill="#059669" fill-opacity="0.15" stroke="#059669" stroke-opacity="0.4" stroke-width="1"/>
17
17
  <text x="76" y="35" font-size="10" fill="#34d399" text-anchor="middle" font-weight="700" letter-spacing="1">INSTALL</text>
18
18
 
19
- <text x="32" y="70" font-size="22" font-weight="800" fill="#ffffff">One command. 12 platforms. Any OS.</text>
19
+ <text x="32" y="70" font-size="22" font-weight="800" fill="#ffffff">One command. 11 platforms. Any OS.</text>
20
20
  <text x="32" y="92" font-size="12" fill="#6e7681">Node.js 18+ · macOS · Linux · Windows · no account · no telemetry</text>
21
21
 
22
22
  <!-- 4 install cards -->
@@ -61,8 +61,16 @@ test('recordSurface: tracks distinct projects without duplicating', () => {
61
61
  });
62
62
 
63
63
  test('recordSurface: never throws on bad dir; returns false', () => {
64
- // /dev/null/foo is unwritable on Unix ensureDir fails
65
- assert.equal(stats.recordSurface({ memoryId: 'm1', sessionId: 's1' }, '/dev/null/never'), false);
64
+ // Create a file then pass a subpath of it as the dir — fails on all platforms
65
+ // because mkdirSync can't create a directory where a file already exists.
66
+ const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'kodelyth-stats-bad-'));
67
+ const fileAsDir = path.join(tmp, 'not-a-dir');
68
+ fs.writeFileSync(fileAsDir, 'x');
69
+ try {
70
+ assert.equal(stats.recordSurface({ memoryId: 'm1', sessionId: 's1' }, path.join(fileAsDir, 'sub')), false);
71
+ } finally {
72
+ fs.rmSync(tmp, { recursive: true, force: true });
73
+ }
66
74
  });
67
75
 
68
76
  // ── recordRoutingMiss ────────────────────────────────────────────────────────
@@ -68,8 +68,12 @@ test('registry: getServer / listServers reflect adds + removes', () => {
68
68
  });
69
69
 
70
70
  // ── End-to-end: connect to local kodelyth MCP server and call tools ──────────
71
+ // These tests require @modelcontextprotocol/sdk (optionalDependency).
72
+ // Skip gracefully when it isn't installed (e.g. CI without optional deps).
73
+ let hasSdk = false;
74
+ try { require('@modelcontextprotocol/sdk/client/index.js'); hasSdk = true; } catch (_) {}
71
75
 
72
- test('client: connects to local kodelyth MCP server and lists tools', async () => {
76
+ test('client: connects to local kodelyth MCP server and lists tools', { skip: !hasSdk }, async () => {
73
77
  // self is already registered from the earlier test (running in same file).
74
78
  const out = await C.listTools('self');
75
79
  assert.ok(out.tools.length > 0, 'expected at least one tool from local kodelyth server');
@@ -78,7 +82,7 @@ test('client: connects to local kodelyth MCP server and lists tools', async () =
78
82
  assert.ok(names.has('list_agents'), 'list_agents tool must be exposed');
79
83
  });
80
84
 
81
- test('client: callTool on local server returns a real result', async () => {
85
+ test('client: callTool on local server returns a real result', { skip: !hasSdk }, async () => {
82
86
  const out = await C.callTool('self', 'catalog_stats', {});
83
87
  assert.ok(Array.isArray(out.content));
84
88
  assert.equal(out.content[0].type, 'text');
@@ -88,14 +92,14 @@ test('client: callTool on local server returns a real result', async () => {
88
92
  assert.ok(data.commands > 0);
89
93
  });
90
94
 
91
- test('client: listResources surfaces kodelyth:// URIs', async () => {
95
+ test('client: listResources surfaces kodelyth:// URIs', { skip: !hasSdk }, async () => {
92
96
  const out = await C.listResources('self');
93
97
  assert.ok(out.resources.length > 0);
94
98
  assert.ok(out.resources.every(r => r.uri.startsWith('kodelyth://')),
95
99
  'every resource uri should start with kodelyth://');
96
100
  });
97
101
 
98
- test('client: listPrompts surfaces routing-rule', async () => {
102
+ test('client: listPrompts surfaces routing-rule', { skip: !hasSdk }, async () => {
99
103
  const out = await C.listPrompts('self');
100
104
  const names = new Set(out.prompts.map(p => p.name));
101
105
  assert.ok(names.has('routing-rule'));
package/wiki/FAQ.md CHANGED
@@ -28,7 +28,7 @@ Node.js 18 or higher.
28
28
 
29
29
  **What platforms does ECC support?**
30
30
 
31
- 12 platforms: Claude Code, Windsurf (project/home), Cursor (project), Google Antigravity, Codex CLI (home), OpenCode, Cline, Roocode, Aider, Kimi, Gemini (project/home).
31
+ 11 platforms (13 install targets): Claude Code, Windsurf (project/home), Cursor, Google Antigravity, Codex CLI, OpenCode, Cline, Roo Code, Aider, Kimi, Gemini CLI (project/home). Feature depth varies — see the platform support table in the README for what each platform gets.
32
32
 
33
33
  ---
34
34
 
package/wiki/Home.md CHANGED
@@ -162,24 +162,23 @@ Month 3: You try another tool. It uses pnpm. You praise the consistency.
162
162
 
163
163
  ---
164
164
 
165
- ## Platform Support (12 platforms)
166
-
167
- Kodelyth ECC works across 12 AI coding platforms:
168
-
169
- | Platform | Status | Notes |
170
- |---|---|---|
171
- | Claude Code | Full | All features, hooks auto-wired |
172
- | Windsurf (project) | Full | Agents, skills, commands, manual lessons |
173
- | Windsurf (home) | Full | Global installation |
174
- | Cursor (project) | Full | Agents, skills, commands, manual lessons |
175
- | Google Antigravity | Full | Native Gemini image gen, deep reasoning models |
176
- | Codex CLI (home) | Full | DALL-E 3 image gen native |
177
- | OpenCode | Full | Agents, skills, commands |
178
- | Cline | Full | VS Code extension integration |
179
- | Roocode | Full | Web IDE support |
180
- | Aider | Full | Git-native coding assistant |
181
- | Kimi | Full | Chinese AI platform |
182
- | Gemini (project/home) | Full | Dual-entry platform support |
165
+ ## Platform Support (11 platforms, 13 install targets)
166
+
167
+ Kodelyth ECC installs on 11 AI coding platforms. Feature depth varies — hooks are a Claude Code native format with no equivalent on other platforms, and Cursor's agent system uses a different format:
168
+
169
+ | Platform | Agents | Skills | Commands | Hooks | Rules |
170
+ |---|---|---|---|---|---|
171
+ | Claude Code | 70 | 194 | 97 | ✓ 22+ | ✓ |
172
+ | Roo Code | | | | | ✓ |
173
+ | Codex CLI | | | | — | ✓ |
174
+ | Aider | | | | | |
175
+ | Kimi | | | | | |
176
+ | Windsurf | | | | | |
177
+ | Antigravity | | partial | | — | ✓ |
178
+ | Gemini CLI | | | | | ✓ |
179
+ | Cursor | | | | — | ✓ |
180
+ | Cline | | | | — | ✓ |
181
+ | OpenCode | | | | — | ✓ |
183
182
 
184
183
  ---
185
184
 
@@ -189,7 +188,7 @@ Kodelyth ECC works across 12 AI coding platforms:
189
188
  - [Agent Reference](Agent-Reference) — all 70 agents including 8 adversarial devil-mode agents
190
189
  - [Skill Reference](Skill-Reference) — all 194 skills including MCP, swarm, dashboard, and safety hooks
191
190
  - [Hook Reference](Hook-Reference) — all 22+ hooks and how they work
192
- - [Platform Support](Platform-Support) — per-platform capabilities for 12 platforms
191
+ - [Platform Support](Platform-Support) — per-platform capabilities for 11 platforms
193
192
  - [FAQ](FAQ) — memory, MCP server, dashboard, devil-mode, swarm, SLSA/SBOM, privacy, troubleshooting
194
193
 
195
194
  ---
@@ -198,7 +197,7 @@ Kodelyth ECC works across 12 AI coding platforms:
198
197
 
199
198
  | Version | Headline |
200
199
  |---|---|
201
- | **v1.7.0** | Adversarial devil-mode (8 agents), MCP server, local dashboard, swarm orchestrator, cost-aware routing, self-evolving memory, SLSA L3 + SBOM, 12 platforms, 194 skills |
200
+ | **v1.7.0** | Adversarial devil-mode (8 agents), MCP server, local dashboard, swarm orchestrator, cost-aware routing, self-evolving memory, SLSA L3 + SBOM, 11 platforms, 194 skills |
202
201
  | **v1.6.0** | 8 adversarial devil-mode agents, power bundles, 6 new IDE platform targets, 97 commands |
203
202
  | **v1.5.3** | Semantic intent routing — intent not keywords, code/trace paste detection, 62 agents, 188 skills |
204
203
  | **v1.5.2** | Parallel agents, `image-architect`, `/project-launch`, `/team-review`, `/lessons` |
@@ -19,7 +19,7 @@ This detects your project type, installs the right component set, and wires ever
19
19
 
20
20
  ---
21
21
 
22
- ## Targets (12 platforms)
22
+ ## Targets (11 platforms, 13 install targets)
23
23
 
24
24
  Install into a specific AI tool:
25
25