kodelyth-ecc 1.7.5 → 1.8.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/CHANGELOG.md +16 -3
- package/CLAUDE.md +1 -1
- package/README.md +8 -9
- package/SECURITY.md +5 -6
- package/bundles/enterprise.md +1 -1
- package/bundles/indie-hacker.md +1 -1
- package/bundles/red-team.md +1 -1
- package/hooks/hooks.json +13 -0
- package/hooks/memory/auto-resolve.js +68 -0
- package/hooks/memory/capture-correction.js +16 -0
- package/hooks/memory/capture-stop.js +70 -14
- package/package.json +1 -1
- package/rules/common/agents.md +1 -1
- package/rules/common/self-improvement-workflow.md +2 -2
- package/scripts/dashboard/data.js +1 -1
- package/scripts/dashboard/server.js +1 -1
- package/scripts/memory/instincts.js +282 -0
- package/scripts/memory/store.js +104 -0
- package/social/card-agents.svg +1 -1
- package/social/card-install.svg +1 -1
- package/social/card-main.svg +1 -1
- package/social/facebook-v150.svg +14 -13
- package/social/fb-ad-main.svg +128 -0
- package/social/fb-post-features.svg +118 -0
- package/social/fb-post-launch.svg +144 -0
- package/social/fb-post-platforms.svg +135 -0
- package/social/github-social-preview.svg +119 -28
- package/social/hype-compound-learning.svg +9 -9
- package/social/hype-devil-mode.svg +8 -8
- package/social/hype-mcp-server.svg +8 -8
- package/social/hype-parallel-agents.svg +8 -8
- package/social/hype-stats-hero.svg +3 -3
- package/social/og-image.svg +116 -30
- package/social/readme-hero.svg +4 -4
- package/social/section-mcp.svg +1 -1
- package/social/twitter-threads.md +3 -3
- package/social/x-card-agents-grid.svg +2 -2
- package/social/x-card-free.svg +2 -2
- package/social/x-card-hook.svg +5 -5
- package/tests/memory/instincts.test.js +258 -0
- package/tests/memory/store.test.js +82 -0
- package/wiki/FAQ.md +1 -1
- package/wiki/Home.md +3 -3
- package/wiki/Installation-Guide.md +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,9 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to Kodelyth ECC are documented here.
|
|
4
4
|
|
|
5
|
-
## v1.
|
|
5
|
+
## v1.8.0 — Visual system overhaul + SVG polish (May 2026)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Comprehensive overhaul of all 31 social assets. GitHub social preview and OG image rebuilt with two-panel stat card layout. All text overflow issues fixed across the full SVG set. Test counts updated to 373. PNG exports regenerated at 4K only.
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- `github-social-preview.svg`, `og-image.svg` — full redesign: two-panel layout (brand mark left, 2×2 stat cards right), dot grid texture, amber accent on SKILLS card and AGENTS top bar, platform rows in footer
|
|
12
|
+
- `og-image.svg`, `github-social-preview.svg` — KODELYTH wordmark font-size/letter-spacing reduced so text stays within the left panel (no overflow past separator)
|
|
13
|
+
- `facebook-v150.svg` — stat section overflow fix: "70" numeral baseline raised so cap-top sits below separator line; divider lines extended to fully contain the numeral
|
|
14
|
+
- `hype-compound-learning.svg`, `hype-devil-mode.svg`, `hype-mcp-server.svg`, `hype-parallel-agents.svg` — bottom bar rect and text shifted up 8 px to give descenders safe margin from canvas edge
|
|
15
|
+
- `hype-stats-hero.svg`, `fb-post-platforms.svg` — test counts updated: 336/348 → 373, 24 → 25 test files
|
|
16
|
+
- All 31 social SVGs: v1.7.5 → v1.8.0 version badge
|
|
17
|
+
- Ghost Depth Mark applied across all social assets; favicon and og-image added for kodelyth.com (carried from v1.7.5)
|
|
18
|
+
- PNG exports: all 31 assets regenerated at 4× scale (4K); fullhd 2× exports removed
|
|
19
|
+
- README test badge: 336 → 373 passing
|
|
20
|
+
- SECURITY.md supported versions table updated to reflect 1.8.x as current stable
|
|
8
21
|
|
|
9
22
|
## v1.7.4 — Real-time IDE-aware dashboard + cross-IDE memory protocol (May 2026)
|
|
10
23
|
|
|
@@ -17,7 +30,7 @@ The dashboard now sees what every IDE on the machine is doing in real time, not
|
|
|
17
30
|
- New `KODELYTH_EXTRA_IDE_WATCH` env var (comma / semicolon / colon separated) so power users can wire arbitrary directories into the realtime watcher
|
|
18
31
|
- New `KODELYTH_WINDSURF_NEXT_DIR`, `KODELYTH_CURSOR_DIR`, `KODELYTH_ANTIGRAVITY_DIR` env-var overrides for non-default IDE install paths
|
|
19
32
|
- New section in `README.md` — **"Memory & dashboard reality per IDE"** — explicit truth table of what auto-recall, auto-capture, manual recall, and dashboard activity look like per platform
|
|
20
|
-
- 12 new tests (`tests/dashboard/data.test.js` + `server.test.js`) covering windsurf-next, cursor, antigravity, custom watch paths, and SSE behaviour. Total: **336 →
|
|
33
|
+
- 12 new tests (`tests/dashboard/data.test.js` + `server.test.js`) covering windsurf-next, cursor, antigravity, custom watch paths, and SSE behaviour. Total: **336 → 373 tests, all passing**
|
|
21
34
|
|
|
22
35
|
### Changed
|
|
23
36
|
|
package/CLAUDE.md
CHANGED
|
@@ -26,7 +26,7 @@ scripts/ → Node.js utilities: MCP server, dashboard, swarm, replay, router
|
|
|
26
26
|
bundles/ → 3 power bundles (indie-hacker, red-team, enterprise)
|
|
27
27
|
actions/ → GitHub Action (CI/CD integration for PR review)
|
|
28
28
|
docs/ → Feature docs (mcp.md, dashboard.md, swarm.md, replay.md, evolve.md, supply-chain.md)
|
|
29
|
-
tests/ →
|
|
29
|
+
tests/ → 373 passing tests across 25 test files
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
## Running Tests
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://www.npmjs.com/package/kodelyth-ecc)
|
|
7
7
|
[](https://github.com/sifxprime/kodelyth-ecc/stargazers)
|
|
8
8
|
[](LICENSE)
|
|
9
|
-

|
|
10
10
|

|
|
11
11
|

|
|
12
12
|

|
|
@@ -77,7 +77,7 @@ You never typed `use debug-detective`. You didn't have to. The toolkit read the
|
|
|
77
77
|
| Quality hooks | ✅ 22+ | Some | ❌ | ❌ |
|
|
78
78
|
| IDE platforms | **11** (Claude Code, Windsurf, Cursor, Codex, Antigravity, OpenCode, Cline, Roo Code, Aider, Kimi, Gemini CLI) | 1-2 | 1 | Varies |
|
|
79
79
|
| Telemetry | ❌ none | Varies | ❌ | Varies |
|
|
80
|
-
| Test coverage | ✅
|
|
80
|
+
| Test coverage | ✅ 373 tests | ❌ | ❌ | ❌ |
|
|
81
81
|
| Distributed via | `npx`, curl, clone | Manual | Manual | Manual |
|
|
82
82
|
|
|
83
83
|
---
|
|
@@ -789,13 +789,12 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for templates, checklists, and the full K
|
|
|
789
789
|
|
|
790
790
|
## Changelog
|
|
791
791
|
|
|
792
|
-
See [CHANGELOG.md](CHANGELOG.md). v1.
|
|
792
|
+
See [CHANGELOG.md](CHANGELOG.md). v1.8.0 highlights:
|
|
793
793
|
|
|
794
|
-
- **
|
|
795
|
-
- **
|
|
796
|
-
-
|
|
797
|
-
- **
|
|
798
|
-
- **+12 dashboard tests** for IDE platform coverage and cross-platform path resolution
|
|
794
|
+
- **Visual system overhaul** — `github-social-preview.svg` and `og-image.svg` fully redesigned with two-panel layout: brand left, 2×2 stat cards right, dot grid texture, amber accent
|
|
795
|
+
- **SVG overflow fixes** — KODELYTH wordmark, bottom bar text, and stats numerals all corrected to stay within canvas bounds across all 31 social assets
|
|
796
|
+
- **Test count update** — 373 tests across 25 test files (up from 348)
|
|
797
|
+
- **4K PNG exports** — all 31 social assets regenerated at 4× scale; fullhd exports removed
|
|
799
798
|
|
|
800
799
|
v1.7.3 highlights:
|
|
801
800
|
|
|
@@ -806,7 +805,7 @@ v1.7.0 highlights:
|
|
|
806
805
|
- **MCP Server** — 16 tools, 6 prompts, 377 resources; stdio JSON-RPC; zero telemetry; works with Claude Desktop, LangGraph, AutoGen, CrewAI, OpenAI Agents SDK
|
|
807
806
|
- **Dashboard hardening** — DNS rebinding protection, shell injection fix (`execFileSync`), CSP on all responses, SSE client cap (max 10), TOCTOU fixes
|
|
808
807
|
- **Devil Mode** — 8 adversarial agents, `--pre-public` / `--pre-launch` / `--all` flags, real bash-grep patterns and remediation playbooks
|
|
809
|
-
- **336 tests** passing across
|
|
808
|
+
- **336 tests** passing across 25 test files (now 373 at v1.8.0)
|
|
810
809
|
|
|
811
810
|
v1.5.8 highlights:
|
|
812
811
|
|
package/SECURITY.md
CHANGED
|
@@ -4,12 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
| Version | Supported |
|
|
6
6
|
|---------|-----------|
|
|
7
|
-
| 1.
|
|
8
|
-
| 1.
|
|
9
|
-
| 1.
|
|
10
|
-
| 1.
|
|
11
|
-
| 1.
|
|
12
|
-
| 1.0.x | No — upgrade to 1.5.x |
|
|
7
|
+
| 1.8.x | Yes — current stable |
|
|
8
|
+
| 1.7.x | Yes — security fixes only |
|
|
9
|
+
| 1.6.x | Yes — security fixes only |
|
|
10
|
+
| 1.5.x | No — upgrade to 1.8.x |
|
|
11
|
+
| < 1.5 | No — upgrade to 1.8.x |
|
|
13
12
|
| < 1.0 | No |
|
|
14
13
|
|
|
15
14
|
---
|
package/bundles/enterprise.md
CHANGED
package/bundles/indie-hacker.md
CHANGED
package/bundles/red-team.md
CHANGED
package/hooks/hooks.json
CHANGED
|
@@ -233,6 +233,19 @@
|
|
|
233
233
|
}
|
|
234
234
|
],
|
|
235
235
|
"PostToolUse": [
|
|
236
|
+
{
|
|
237
|
+
"matcher": "Edit|Write|MultiEdit",
|
|
238
|
+
"hooks": [
|
|
239
|
+
{
|
|
240
|
+
"type": "command",
|
|
241
|
+
"command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/memory/auto-resolve.js\"",
|
|
242
|
+
"async": true,
|
|
243
|
+
"timeout": 5
|
|
244
|
+
}
|
|
245
|
+
],
|
|
246
|
+
"description": "Kodelyth Memory: mark unresolved memories as failed when a follow-up edit touches the same file (Improvement C — outcome tracking)",
|
|
247
|
+
"id": "kodelyth:post:edit:memory-auto-resolve"
|
|
248
|
+
},
|
|
236
249
|
{
|
|
237
250
|
"matcher": "Edit|Write|MultiEdit",
|
|
238
251
|
"hooks": [
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// Kodelyth ECC — Memory Auto-Resolve Hook (PostToolUse: Write|Edit|MultiEdit)
|
|
4
|
+
//
|
|
5
|
+
// Improvement C — Outcome Tracking
|
|
6
|
+
//
|
|
7
|
+
// Fires after every file write or edit. Checks if the edited file appears in
|
|
8
|
+
// any unresolved memory's files[] list. If it does, that memory's outcome is
|
|
9
|
+
// marked resolved:false — a follow-up edit implies the previous solution
|
|
10
|
+
// didn't fully stick.
|
|
11
|
+
//
|
|
12
|
+
// The same event is propagated to instincts.js so that any structued instinct
|
|
13
|
+
// sourced from the same session gets its confidence downgraded (−0.30),
|
|
14
|
+
// enabling automatic pruning of bad patterns over time.
|
|
15
|
+
//
|
|
16
|
+
// This hook is deliberately silent:
|
|
17
|
+
// - It never emits output to stdout (would pollute the AI's context).
|
|
18
|
+
// - It always exits 0 (never blocks a session).
|
|
19
|
+
// - All writes are atomic enough for the append-only JSONL format.
|
|
20
|
+
//
|
|
21
|
+
// Output contract: pass stdin through to stdout unchanged. Never block.
|
|
22
|
+
// =============================================================================
|
|
23
|
+
|
|
24
|
+
'use strict';
|
|
25
|
+
|
|
26
|
+
const fs = require('fs');
|
|
27
|
+
const path = require('path');
|
|
28
|
+
|
|
29
|
+
let raw = '';
|
|
30
|
+
process.stdin.setEncoding('utf8');
|
|
31
|
+
process.stdin.on('data', chunk => { raw += chunk; });
|
|
32
|
+
process.stdin.on('end', run);
|
|
33
|
+
setTimeout(() => { if (!process.stdin.readableEnded) run(); }, 150);
|
|
34
|
+
|
|
35
|
+
function run() {
|
|
36
|
+
// Always echo stdin — never block the tool result from reaching the AI
|
|
37
|
+
if (raw) process.stdout.write(raw);
|
|
38
|
+
|
|
39
|
+
try {
|
|
40
|
+
const payload = raw ? JSON.parse(raw) : {};
|
|
41
|
+
const toolName = payload.tool_name || payload.name || '';
|
|
42
|
+
const toolInput = payload.tool_input || payload.input || {};
|
|
43
|
+
const cwd = payload.cwd || process.cwd();
|
|
44
|
+
|
|
45
|
+
// Extract the file path from Write, Edit, or MultiEdit inputs
|
|
46
|
+
let filePath = toolInput.file_path || toolInput.path || null;
|
|
47
|
+
if (!filePath && Array.isArray(toolInput.edits) && toolInput.edits[0]) {
|
|
48
|
+
filePath = toolInput.edits[0].file_path || toolInput.edits[0].path || null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (!filePath) return; // no file path — nothing to resolve
|
|
52
|
+
|
|
53
|
+
const storePath = path.join(__dirname, '..', '..', 'scripts', 'memory', 'store.js');
|
|
54
|
+
if (!fs.existsSync(storePath)) return;
|
|
55
|
+
|
|
56
|
+
const store = require(storePath);
|
|
57
|
+
const resolved = store.autoResolveOnEdit(filePath, cwd);
|
|
58
|
+
|
|
59
|
+
if (resolved.length > 0) {
|
|
60
|
+
process.stderr.write(
|
|
61
|
+
`[ecc:auto-resolve] Marked ${resolved.length} memory/memories resolved:false` +
|
|
62
|
+
` after edit to ${path.basename(filePath)}\n`
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
} catch (err) {
|
|
66
|
+
process.stderr.write(`[ecc:auto-resolve] ${err.message}\n`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -154,6 +154,22 @@ function writeToLessons(corrections, cwd) {
|
|
|
154
154
|
process.stderr.write(
|
|
155
155
|
`[ecc:correction-capture] ${corrections.length} lesson(s) written to tasks/lessons.md\n`
|
|
156
156
|
);
|
|
157
|
+
|
|
158
|
+
// ── Improvement B: also write to structured instinct schema ──────────────
|
|
159
|
+
try {
|
|
160
|
+
const instinctsPath = path.join(__dirname, '..', '..', 'scripts', 'memory', 'instincts.js');
|
|
161
|
+
if (fs.existsSync(instinctsPath)) {
|
|
162
|
+
const instincts = require(instinctsPath);
|
|
163
|
+
for (const correction of corrections) {
|
|
164
|
+
instincts.captureFromCorrection(correction, cwd, 'project');
|
|
165
|
+
}
|
|
166
|
+
process.stderr.write(
|
|
167
|
+
`[ecc:correction-capture] ${corrections.length} instinct(s) written to structured schema\n`
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
} catch (instErr) {
|
|
171
|
+
process.stderr.write(`[ecc:correction-capture] Instinct schema write skipped: ${instErr.message}\n`);
|
|
172
|
+
}
|
|
157
173
|
} catch (err) {
|
|
158
174
|
process.stderr.write(`[ecc:correction-capture] Could not write lessons: ${err.message}\n`);
|
|
159
175
|
}
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
// /memory review-pending
|
|
11
11
|
// or:
|
|
12
12
|
// node scripts/memory/cli.js list-pending
|
|
13
|
+
//
|
|
14
|
+
// Improvement A: detects meaningful file writes / git commits in the session
|
|
15
|
+
// and emits a contextual "should I save what we learned?" prompt.
|
|
16
|
+
//
|
|
17
|
+
// Improvement D: runs instinct decay check — flags instincts unused 30+ days.
|
|
13
18
|
// =============================================================================
|
|
14
19
|
|
|
15
20
|
'use strict';
|
|
@@ -37,7 +42,11 @@ function main() {
|
|
|
37
42
|
|
|
38
43
|
const { extractCandidates } = require(path.join(__dirname, '..', '..', 'scripts', 'memory', 'extract'));
|
|
39
44
|
const candidates = extractCandidates(sessionJsonl);
|
|
40
|
-
|
|
45
|
+
|
|
46
|
+
// ── Improvement A: detect meaningful file writes or git commits ───────────
|
|
47
|
+
const hadFileWrites = detectFileWrites(sessionJsonl);
|
|
48
|
+
|
|
49
|
+
if (candidates.length === 0 && !hadFileWrites) {
|
|
41
50
|
process.exit(0);
|
|
42
51
|
}
|
|
43
52
|
|
|
@@ -45,22 +54,46 @@ function main() {
|
|
|
45
54
|
|| path.join(os.homedir(), '.kodelyth', 'memory');
|
|
46
55
|
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
|
47
56
|
|
|
48
|
-
const queueFile = path.join(dir, 'pending-review.jsonl');
|
|
49
57
|
const sessionId = data.session_id || path.basename(sessionJsonl, '.jsonl');
|
|
50
58
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
59
|
+
if (candidates.length > 0) {
|
|
60
|
+
const queueFile = path.join(dir, 'pending-review.jsonl');
|
|
61
|
+
const lines = candidates.map(c => JSON.stringify({
|
|
62
|
+
...c,
|
|
63
|
+
session_id: sessionId,
|
|
64
|
+
project_path: data.cwd || process.cwd(),
|
|
65
|
+
queued_at: new Date().toISOString(),
|
|
66
|
+
}));
|
|
67
|
+
fs.appendFileSync(queueFile, lines.join('\n') + '\n');
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// ── Improvement A: build contextual advisory from session activity ────────
|
|
71
|
+
const parts = [];
|
|
72
|
+
if (candidates.length > 0) {
|
|
73
|
+
parts.push(`${candidates.length} memory candidate(s) queued — run "/memory review-pending" to confirm`);
|
|
74
|
+
}
|
|
75
|
+
if (hadFileWrites) {
|
|
76
|
+
parts.push('files written this session — run "/memory save" or "/learn-eval" to save what we learned');
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// ── Improvement D: decay check — surface stale instincts for review ───────
|
|
80
|
+
try {
|
|
81
|
+
const instinctsPath = path.join(__dirname, '..', '..', 'scripts', 'memory', 'instincts.js');
|
|
82
|
+
if (fs.existsSync(instinctsPath)) {
|
|
83
|
+
const instincts = require(instinctsPath);
|
|
84
|
+
const stale = instincts.runDecayCheck();
|
|
85
|
+
if (stale.length > 0) {
|
|
86
|
+
parts.push(`${stale.length} instinct(s) unused 30+ days — run "/skill-health" to review stale rules`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
} catch { /* decay check is best-effort, never block a session */ }
|
|
57
90
|
|
|
58
|
-
|
|
91
|
+
if (parts.length > 0) {
|
|
92
|
+
process.stdout.write(JSON.stringify({
|
|
93
|
+
message: `Kodelyth Memory: ${parts.join(' | ')}`,
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
59
96
|
|
|
60
|
-
// Emit advisory message so user sees something happened
|
|
61
|
-
process.stdout.write(JSON.stringify({
|
|
62
|
-
message: `Kodelyth Memory: ${candidates.length} candidate(s) queued for review. Run "/memory review-pending" to confirm.`,
|
|
63
|
-
}));
|
|
64
97
|
process.exit(0);
|
|
65
98
|
} catch (err) {
|
|
66
99
|
process.stderr.write(`kodelyth-memory capture: ${err.message}\n`);
|
|
@@ -68,11 +101,34 @@ function main() {
|
|
|
68
101
|
}
|
|
69
102
|
}
|
|
70
103
|
|
|
104
|
+
// ── Improvement A: scan session JSONL for Write/Edit tool uses or git commits ─
|
|
105
|
+
function detectFileWrites(sessionJsonl) {
|
|
106
|
+
try {
|
|
107
|
+
const lines = fs.readFileSync(sessionJsonl, 'utf8').split('\n').filter(Boolean);
|
|
108
|
+
for (const line of lines) {
|
|
109
|
+
let event;
|
|
110
|
+
try { event = JSON.parse(line); } catch { continue; }
|
|
111
|
+
|
|
112
|
+
// Tool use events that write files
|
|
113
|
+
const toolName = event.name || event.tool_name || '';
|
|
114
|
+
if (/^(Write|Edit|MultiEdit|NotebookEdit)$/i.test(toolName)) return true;
|
|
115
|
+
|
|
116
|
+
// Bash events containing git commit
|
|
117
|
+
if (/^Bash$/i.test(toolName)) {
|
|
118
|
+
const input = JSON.stringify(event.input || event.tool_input || '');
|
|
119
|
+
if (/git\s+commit|git\s+push/i.test(input)) return true;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
} catch {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
71
128
|
function findLatestClaudeSession(cwd) {
|
|
72
129
|
try {
|
|
73
130
|
const projectsDir = path.join(os.homedir(), '.claude', 'projects');
|
|
74
131
|
if (!fs.existsSync(projectsDir)) return null;
|
|
75
|
-
// Project dirs are encoded paths
|
|
76
132
|
const encoded = '-' + cwd.replace(/\//g, '-');
|
|
77
133
|
const matches = fs.readdirSync(projectsDir).filter(d => d.endsWith(encoded.slice(-30)));
|
|
78
134
|
if (matches.length === 0) return null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kodelyth-ecc",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
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",
|
package/rules/common/agents.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Agent Orchestration
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
70 specialist agents are available. Intent routing is always-on — describe your problem in plain words and the right agent is invoked automatically. You can also invoke explicitly: `use <agent-name>`.
|
|
4
4
|
|
|
5
5
|
## Kodelyth Exclusives
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ Enter plan mode for ANY non-trivial task (3+ steps, architectural decisions, or
|
|
|
16
16
|
|
|
17
17
|
## 2. Subagent Strategy
|
|
18
18
|
|
|
19
|
-
The
|
|
19
|
+
The 70 ECC specialist agents exist so the main context window stays clean:
|
|
20
20
|
|
|
21
21
|
- Offload research, exploration, and parallel analysis to subagents
|
|
22
22
|
- For complex problems: throw more compute via agents, not more tokens in main context
|
|
@@ -124,7 +124,7 @@ ECC uses three compounding memory layers — together they make Claude increasin
|
|
|
124
124
|
- Example: "Last time you had a CORS issue in Express, you added this middleware..."
|
|
125
125
|
|
|
126
126
|
### Layer 3 — Intent Routing (`rules/common/agent-intent-routing.md`)
|
|
127
|
-
- Always-on.
|
|
127
|
+
- Always-on. 70 specialists. Zero setup.
|
|
128
128
|
- Routes your message to the right expert from the first word
|
|
129
129
|
- No agent names needed — just describe the problem
|
|
130
130
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// scripts/dashboard/data.js
|
|
2
2
|
//
|
|
3
|
-
// Local observability dashboard: pure aggregators (v1.
|
|
3
|
+
// Local observability dashboard: pure aggregators (v1.8.0).
|
|
4
4
|
//
|
|
5
5
|
// All data the dashboard renders comes from:
|
|
6
6
|
// - The MCP catalog (filesystem reads of agents/, skills/, commands/, rules/, bundles/)
|