kodelyth-ecc 1.7.3 → 1.7.4
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/.github/ISSUE_TEMPLATE/config.yml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +41 -0
- package/.github/ISSUE_TEMPLATE/good_first_issue.md +36 -0
- package/CHANGELOG.md +39 -0
- package/GITHUB_SETUP.md +553 -0
- package/README.md +51 -6
- package/VERSION +1 -1
- package/actions/ecc-review/README.md +7 -7
- package/bundles/enterprise.md +1 -1
- package/bundles/indie-hacker.md +1 -1
- package/bundles/red-team.md +1 -1
- package/docs/supply-chain.md +1 -1
- package/package.json +4 -1
- package/rules/common/memory-protocol.md +35 -4
- package/scripts/dashboard/data.js +261 -4
- package/scripts/dashboard/server.js +28 -3
- package/scripts/dashboard/static/index.html +63 -3
- package/social/card-install.svg +1 -1
- package/social/card-main.svg +2 -2
- package/social/facebook-v150.svg +4 -4
- package/social/github-social-preview.svg +3 -3
- package/social/hype-compound-learning.svg +117 -0
- package/social/hype-devil-mode.svg +228 -0
- package/social/hype-mcp-server.svg +136 -0
- package/social/hype-parallel-agents.svg +150 -0
- package/social/hype-stats-hero.svg +126 -0
- package/social/readme-hero.svg +4 -4
- package/social/section-mcp.svg +1 -1
- package/social/twitter-threads.md +621 -0
- 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/dashboard/data.test.js +156 -0
- package/tests/dashboard/server.test.js +17 -0
- package/wiki/FAQ.md +1 -1
- package/wiki/Home.md +5 -3
- package/wiki/Installation-Guide.md +2 -2
- package/MARKETING_PLAN.md +0 -893
- package/cat +0 -0
- package/social/facebook-group/POST.md +0 -121
- package/social/facebook-group/fb-1-3am-debug.png +0 -0
- package/social/facebook-group/fb-1-3am-debug.svg +0 -97
- package/social/facebook-group/fb-2-cpu-upgrade.png +0 -0
- package/social/facebook-group/fb-2-cpu-upgrade.svg +0 -132
- package/social/facebook-group/fb-3-before-after.png +0 -0
- package/social/facebook-group/fb-3-before-after.svg +0 -94
- package/videos/README.md +0 -88
- package/videos/video-01-install-and-routing.md +0 -258
- package/videos/video-02-compound-memory.md +0 -301
- package/videos/video-03-devil-mode.md +0 -294
- package/videos/video-04-mcp-server.md +0 -391
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
# VIDEO 3 — "Devil Mode: I audited my own codebase with 8 adversarial agents"
|
|
2
|
-
|
|
3
|
-
**Duration:** 10–12 minutes
|
|
4
|
-
**Platform:** YouTube (security engineers, senior devs, indie hackers pre-launch)
|
|
5
|
-
**Hook:** Real adversarial findings on a real project — not a demo, an actual audit
|
|
6
|
-
**Goal:** Show that ECC's devil mode produces real security value, not theater
|
|
7
|
-
**Screen setup:** Terminal + code editor + Claude Code/Windsurf on right
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## FULL SCRIPT
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
### [0:00–0:25] COLD OPEN — Start with a finding
|
|
16
|
-
|
|
17
|
-
**[SCREEN: Claude Code showing a live devil-mode result]**
|
|
18
|
-
|
|
19
|
-
**NARRATION:**
|
|
20
|
-
> "This is a real finding."
|
|
21
|
-
|
|
22
|
-
**[Show output — e.g., a secret in a config file, or a GPL dep, or a prompt injection vector]**
|
|
23
|
-
|
|
24
|
-
**NARRATION:**
|
|
25
|
-
> "I ran 8 adversarial agents on my own project. In parallel. They found this in under 3 minutes."
|
|
26
|
-
> "And I had already done a 'security review' the week before."
|
|
27
|
-
|
|
28
|
-
**[TITLE CARD: Devil Mode — 8 adversarial agents. Attacker mindset.]**
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
### [0:25–1:30] WHY SECURITY REVIEWS FAIL
|
|
33
|
-
|
|
34
|
-
**[SCREEN: Simple diagram]**
|
|
35
|
-
|
|
36
|
-
**NARRATION:**
|
|
37
|
-
> "Most security reviews fail for a simple reason."
|
|
38
|
-
> "The person doing the review is the same person who wrote the code."
|
|
39
|
-
> "You can't unsee what you built. You have blind spots in exactly the places that matter."
|
|
40
|
-
|
|
41
|
-
**[Draw: developer → reviews own code → misses the thing they built]**
|
|
42
|
-
|
|
43
|
-
**NARRATION:**
|
|
44
|
-
> "An attacker has no such blind spot. They come in cold. They look at your code the way a stranger would."
|
|
45
|
-
> "Devil mode is that stranger."
|
|
46
|
-
|
|
47
|
-
**[SCREEN: List the 8 agents]**
|
|
48
|
-
|
|
49
|
-
**NARRATION:**
|
|
50
|
-
> "8 agents. Each one with a specific attack surface. All running in parallel."
|
|
51
|
-
> "Let me walk you through each one — then we'll run them live."
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
### [1:30–4:30] THE 8 AGENTS — QUICK TOUR
|
|
56
|
-
|
|
57
|
-
**[Show each agent as a card — name + what it hunts + one real grep pattern]**
|
|
58
|
-
|
|
59
|
-
**[AGENT 1: secret-hunter]**
|
|
60
|
-
|
|
61
|
-
**NARRATION:**
|
|
62
|
-
> "Secret hunter. This one looks for leaked credentials."
|
|
63
|
-
> "Not just obvious API keys — it digs into git history. Leaked secrets don't disappear when you delete the file. They live in every commit before you noticed."
|
|
64
|
-
|
|
65
|
-
**[SCREEN: Show bash pattern — `git log -p --all | grep -E 'AKIA|ghp_|sk-|SG\.'`]**
|
|
66
|
-
|
|
67
|
-
**NARRATION:**
|
|
68
|
-
> "AWS keys, GitHub tokens, Stripe secret keys, SendGrid API keys. All have distinctive prefixes. It knows them."
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
**[AGENT 2: supply-chain-auditor]**
|
|
73
|
-
|
|
74
|
-
**NARRATION:**
|
|
75
|
-
> "Supply chain auditor. Your biggest attack surface is probably your node_modules."
|
|
76
|
-
> "It checks for typosquats — packages named almost like popular ones. It checks lockfile drift — packages that changed without a lockfile update. It reads install scripts."
|
|
77
|
-
|
|
78
|
-
**[SCREEN: Show a package with an install script that makes a network call]**
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
**[AGENT 3: license-violation-finder]**
|
|
83
|
-
|
|
84
|
-
**NARRATION:**
|
|
85
|
-
> "License violation finder. If you're going open source, one GPL dependency contaminates your whole project under copyleft law."
|
|
86
|
-
> "This agent maps your dependency tree, identifies AGPL and GPL licenses, and flags anything that creates legal risk before you flip the repo public."
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
**[AGENT 4: prompt-injection-hunter]**
|
|
91
|
-
|
|
92
|
-
**NARRATION:**
|
|
93
|
-
> "Prompt injection hunter. This one is for AI-powered features."
|
|
94
|
-
> "If your app takes user input and feeds it to an LLM — a chatbot, a RAG pipeline, a tool-calling agent — that input path is an attack surface."
|
|
95
|
-
> "Indirect injection. System prompt leak. Tool hijacking. This agent reads every LLM integration looking for those patterns."
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
**[AGENT 5: jailbreak-tester]**
|
|
100
|
-
|
|
101
|
-
**NARRATION:**
|
|
102
|
-
> "Jailbreak tester. This one red-teams your AI features live."
|
|
103
|
-
> "It doesn't just read code — it sends adversarial inputs to your running AI and checks if your guardrails hold."
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
**[AGENT 6: code-stealer-detector]**
|
|
108
|
-
|
|
109
|
-
**NARRATION:**
|
|
110
|
-
> "Code stealer detector. If you're shipping commercial software, you need to know if any block of code was copy-pasted from somewhere with a license that conflicts with yours."
|
|
111
|
-
> "This is especially critical for AI-generated code — Copilot and similar tools sometimes reproduce licensed training data."
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
**[AGENT 7: backdoor-hunter]**
|
|
116
|
-
|
|
117
|
-
**NARRATION:**
|
|
118
|
-
> "Backdoor hunter. This one looks for malicious code patterns."
|
|
119
|
-
> "Obfuscated eval. Suspicious base64. Functions that encode URLs at runtime. Unexplained outbound connections."
|
|
120
|
-
> "If you received code from a contractor or vendored a library — this is the scan you run first."
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
**[AGENT 8: chaos-engineer]**
|
|
125
|
-
|
|
126
|
-
**NARRATION:**
|
|
127
|
-
> "Chaos engineer. Not a security agent in the traditional sense — an adversarial reliability agent."
|
|
128
|
-
> "It asks: what happens when your database goes down? When your message queue fills up? When a downstream API times out at the worst moment?"
|
|
129
|
-
> "It maps your hidden assumptions and turns them into fault injection scenarios before your users find them."
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
### [4:30–7:30] LIVE AUDIT — REAL PROJECT
|
|
134
|
-
|
|
135
|
-
**[SCREEN: Terminal — running on a real sample project]**
|
|
136
|
-
|
|
137
|
-
**NARRATION:**
|
|
138
|
-
> "Let's run it. I'm going to use a real project — a Next.js SaaS starter I've been building."
|
|
139
|
-
|
|
140
|
-
**[TYPE in Claude Code / Windsurf chat:]**
|
|
141
|
-
```
|
|
142
|
-
/devil-mode --pre-public
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**[Show the agents firing — show output appearing in real time]**
|
|
146
|
-
|
|
147
|
-
**NARRATION:**
|
|
148
|
-
> "Watch the agents fan out in parallel. Each one is running its own playbook simultaneously."
|
|
149
|
-
|
|
150
|
-
**[Wait for results — narrate as they come in:]**
|
|
151
|
-
|
|
152
|
-
**[Finding 1: secret-hunter]**
|
|
153
|
-
|
|
154
|
-
**NARRATION:**
|
|
155
|
-
> "Secret hunter flagged something. Let's look."
|
|
156
|
-
|
|
157
|
-
**[Show: a .env.example file that was committed with a real key accidentally]**
|
|
158
|
-
|
|
159
|
-
**NARRATION:**
|
|
160
|
-
> "Committed 3 months ago. I removed it, but it's in git history. Anyone who clones this repo can find it with `git log -p`."
|
|
161
|
-
> "This would have been a problem if I went public. Now it's not."
|
|
162
|
-
|
|
163
|
-
**[REMEDIATION shown: `git filter-branch` or BFG Repo Cleaner command]**
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
**[Finding 2: supply-chain-auditor]**
|
|
168
|
-
|
|
169
|
-
**NARRATION:**
|
|
170
|
-
> "Supply chain flagged a package. Let me check."
|
|
171
|
-
|
|
172
|
-
**[Show: a dep with an install script that makes a network call to a third-party analytics service]**
|
|
173
|
-
|
|
174
|
-
**NARRATION:**
|
|
175
|
-
> "This package phones home on install. I had no idea. It's not malicious but it's not something I want happening silently."
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
**[Finding 3: license-violation-finder]**
|
|
180
|
-
|
|
181
|
-
**NARRATION:**
|
|
182
|
-
> "License finder flagged one. LGPL-2.1 in a transitive dependency."
|
|
183
|
-
> "For my use case — commercial SaaS — this is fine if I keep it as a library. It's flagging for awareness, not as a blocker."
|
|
184
|
-
> "But if I was statically linking it, different story."
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
**[Summary]**
|
|
189
|
-
|
|
190
|
-
**[Show the aggregated report:]**
|
|
191
|
-
|
|
192
|
-
```
|
|
193
|
-
CRITICAL (1): Leaked secret in git history — rotate STRIPE_SECRET_KEY immediately
|
|
194
|
-
HIGH (1): Dependency phones home on install — audit or replace
|
|
195
|
-
MEDIUM (1): LGPL transitive dep — review linking model
|
|
196
|
-
LOW (2): Two advisory items
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
**NARRATION:**
|
|
200
|
-
> "Three real findings I would have missed. The most important one — the leaked key — would have been a serious problem post-launch."
|
|
201
|
-
> "This took 3 minutes. Not 3 hours. Not a contractor invoice."
|
|
202
|
-
|
|
203
|
-
---
|
|
204
|
-
|
|
205
|
-
### [7:30–8:30] THE THREE FLAGS
|
|
206
|
-
|
|
207
|
-
**[SCREEN: Terminal]**
|
|
208
|
-
|
|
209
|
-
**NARRATION:**
|
|
210
|
-
> "Devil mode ships with three flags for different situations."
|
|
211
|
-
|
|
212
|
-
**[TYPE and explain each:]**
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
/devil-mode # Default: 4 agents (secret, supply-chain, backdoor, prompt-injection)
|
|
216
|
-
/devil-mode --pre-public # Before going open source: adds license + code-stealer
|
|
217
|
-
/devil-mode --pre-launch # Before production launch: adds jailbreak-tester + chaos-engineer
|
|
218
|
-
/devil-mode --all # All 8 agents simultaneously
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
**NARRATION:**
|
|
222
|
-
> "I recommend --pre-public every time you plan to open-source something. Non-negotiable."
|
|
223
|
-
> "--all for post-incident sweeps or high-stakes launches."
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
### [8:30–9:30] INDIVIDUAL AGENTS
|
|
228
|
-
|
|
229
|
-
**[SCREEN: Claude Code]**
|
|
230
|
-
|
|
231
|
-
**NARRATION:**
|
|
232
|
-
> "You can also call individual agents if you only need one angle."
|
|
233
|
-
|
|
234
|
-
**[TYPE:]**
|
|
235
|
-
```
|
|
236
|
-
use secret-hunter
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
**[Show it running]**
|
|
240
|
-
|
|
241
|
-
**NARRATION:**
|
|
242
|
-
> "Same agent, just one of them."
|
|
243
|
-
> "Useful when you added a new feature and only need the prompt injection sweep."
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
### [9:30–10:00] HOW IT'S DIFFERENT FROM A LINTER
|
|
248
|
-
|
|
249
|
-
**NARRATION:**
|
|
250
|
-
> "A question I get: how is this different from running a security linter?"
|
|
251
|
-
|
|
252
|
-
**[SCREEN: Split — linter output vs devil-mode output]**
|
|
253
|
-
|
|
254
|
-
**NARRATION:**
|
|
255
|
-
> "Linters catch syntax-level issues. SQL injection patterns. Known unsafe API calls. Static analysis."
|
|
256
|
-
> "Devil mode catches semantic issues. Why is this code making an outbound call? Why does this install script exist? Is this base64 innocent or suspicious? What happens to this system under adversarial conditions?"
|
|
257
|
-
> "Different tool. Different attack surface. You want both."
|
|
258
|
-
|
|
259
|
-
---
|
|
260
|
-
|
|
261
|
-
### [10:00–10:30] CTA
|
|
262
|
-
|
|
263
|
-
**NARRATION:**
|
|
264
|
-
> "If you're shipping software and you haven't run something like this — run it today."
|
|
265
|
-
|
|
266
|
-
**[TYPE:]**
|
|
267
|
-
```bash
|
|
268
|
-
npx kodelyth-ecc
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
**[Then in chat:]**
|
|
272
|
-
```
|
|
273
|
-
/devil-mode --pre-public
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
**NARRATION:**
|
|
277
|
-
> "github.com/sifxprime/kodelyth-ecc — zero telemetry, everything local, MIT license."
|
|
278
|
-
> "Next video: the MCP server — how to give LangGraph, AutoGen, or Claude Desktop access to all 70 agents and local memory. In one command."
|
|
279
|
-
|
|
280
|
-
**[END CARD]**
|
|
281
|
-
|
|
282
|
-
---
|
|
283
|
-
|
|
284
|
-
## B-ROLL / EDITING NOTES
|
|
285
|
-
|
|
286
|
-
- **USE A REAL PROJECT** — the credibility of this video depends on real findings, not demo setups
|
|
287
|
-
- If you don't want to show your own project, create a realistic sample project with planted issues
|
|
288
|
-
- Plant: one expired/rotated key in git history, one dep with install script, one GPL dep
|
|
289
|
-
- Record the `/devil-mode` run uncut — the waiting time builds tension and authenticity
|
|
290
|
-
- Show the `git log -p | grep` command for the secret finding
|
|
291
|
-
- Show BFG Repo Cleaner remediation or `git filter-branch` command
|
|
292
|
-
- Diagram for "attacker mindset vs author mindset" — 30-second simple animation
|
|
293
|
-
- Thumbnail: red background + "I ran 8 attackers on my own code" + devil emoji or adversarial icon
|
|
294
|
-
- This video will get shared in security communities — keep it technically precise
|
|
@@ -1,391 +0,0 @@
|
|
|
1
|
-
# VIDEO 4 — "MCP Server: Give LangGraph access to 70 agents in one command"
|
|
2
|
-
|
|
3
|
-
**Duration:** 10–12 minutes
|
|
4
|
-
**Platform:** YouTube (AI/ML engineers, agent framework builders, Claude Desktop users)
|
|
5
|
-
**Hook:** Live wiring of ECC MCP into Claude Desktop + LangGraph
|
|
6
|
-
**Goal:** Drive adoption from the agentic AI engineering community
|
|
7
|
-
**Screen setup:** Terminal + code editor + browser (Claude Desktop or LangGraph notebook)
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## FULL SCRIPT
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
### [0:00–0:20] COLD OPEN
|
|
16
|
-
|
|
17
|
-
**[SCREEN: Claude Desktop — chat open, typing]**
|
|
18
|
-
|
|
19
|
-
**[TYPE in Claude Desktop:]**
|
|
20
|
-
```
|
|
21
|
-
route this task for me: our checkout flow is broken in production
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
**[Show response from ECC MCP route_intent tool:]**
|
|
25
|
-
```json
|
|
26
|
-
{
|
|
27
|
-
"suggestions": [
|
|
28
|
-
{ "agent": "incident-commander", "score": 0.94, "reason": "production + broken = P0 pattern" },
|
|
29
|
-
{ "agent": "debug-detective", "score": 0.81, "reason": "checkout flow + broken = active bug" },
|
|
30
|
-
{ "agent": "silent-failure-hunter", "score": 0.62, "reason": "checkout failures often have no error" }
|
|
31
|
-
]
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
**NARRATION:**
|
|
36
|
-
> "That's Claude Desktop calling an ECC tool to route a task to the right specialist."
|
|
37
|
-
> "No plugins. No cloud. Just one command on your machine and MCP handles the rest."
|
|
38
|
-
|
|
39
|
-
**[TITLE CARD: Kodelyth ECC MCP Server — Universal Adapter]**
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
### [0:20–1:30] WHAT IS MCP AND WHY IT MATTERS
|
|
44
|
-
|
|
45
|
-
**[SCREEN: Simple diagram — MCP architecture]**
|
|
46
|
-
|
|
47
|
-
**NARRATION:**
|
|
48
|
-
> "Model Context Protocol is Anthropic's open standard for connecting AI applications to external tools and data."
|
|
49
|
-
> "Think of it like USB-C for AI. Any MCP client can plug into any MCP server."
|
|
50
|
-
|
|
51
|
-
**[Draw: Claude Desktop → MCP → ECC server]**
|
|
52
|
-
**[Draw: LangGraph → MCP → ECC server]**
|
|
53
|
-
**[Draw: AutoGen → MCP → ECC server]**
|
|
54
|
-
|
|
55
|
-
**NARRATION:**
|
|
56
|
-
> "ECC v1.7.0 ships a full MCP server. One command starts it."
|
|
57
|
-
> "Any framework that speaks MCP now has access to 70 agents, 194 skills, 97 commands, and your local memory store."
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
### [1:30–2:30] WHAT THE SERVER EXPOSES
|
|
62
|
-
|
|
63
|
-
**[SCREEN: Diagram — three columns: Tools / Prompts / Resources]**
|
|
64
|
-
|
|
65
|
-
**NARRATION:**
|
|
66
|
-
> "The ECC MCP server exposes three categories of content."
|
|
67
|
-
|
|
68
|
-
**[COLUMN 1: TOOLS (16)]**
|
|
69
|
-
|
|
70
|
-
**NARRATION:**
|
|
71
|
-
> "16 tools. These are callable functions your AI can invoke."
|
|
72
|
-
|
|
73
|
-
**[Show each with one line:]**
|
|
74
|
-
```
|
|
75
|
-
route_intent → suggest the right ECC agent for a message
|
|
76
|
-
list_agents → catalog of all 70 agents
|
|
77
|
-
list_skills → catalog of all 194 skills
|
|
78
|
-
get_agent → full markdown body of any agent
|
|
79
|
-
get_skill → full markdown body of any skill
|
|
80
|
-
get_command → full slash command body
|
|
81
|
-
recall_memory → BM25 search of your local memory
|
|
82
|
-
capture_memory → store a new memory entry
|
|
83
|
-
memory_stats → stats on your memory store
|
|
84
|
-
catalog_stats → counts of agents/skills/commands
|
|
85
|
-
audit_skill_match → which skills are relevant to a task
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
**[COLUMN 2: PROMPTS (6)]**
|
|
91
|
-
|
|
92
|
-
**NARRATION:**
|
|
93
|
-
> "6 prompts. Canonical ECC context blocks you can summon by name."
|
|
94
|
-
|
|
95
|
-
```
|
|
96
|
-
routing-rule → the full 10-tier intent routing system
|
|
97
|
-
agents-overview → all 70 agents, one-line each
|
|
98
|
-
skills-overview → all 194 skills compact
|
|
99
|
-
handoff-chains → standard multi-agent chain protocols
|
|
100
|
-
devil-mode → the adversarial parallel sweep command
|
|
101
|
-
commands-overview → all 97 slash commands
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
**[COLUMN 3: RESOURCES (377)]**
|
|
107
|
-
|
|
108
|
-
**NARRATION:**
|
|
109
|
-
> "377 resources. Every agent, skill, command, rule, and bundle is addressable as a kodelyth:// URI."
|
|
110
|
-
|
|
111
|
-
```
|
|
112
|
-
kodelyth://agents/debug-detective
|
|
113
|
-
kodelyth://skills/kodelyth-memory
|
|
114
|
-
kodelyth://commands/devil-mode
|
|
115
|
-
kodelyth://rules/agent-intent-routing
|
|
116
|
-
kodelyth://bundles/indie-hacker
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
**NARRATION:**
|
|
120
|
-
> "Any MCP client can do `resources/list` to discover everything, then `resources/read` to fetch any of it as markdown."
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
### [2:30–4:00] DEMO 1 — CLAUDE DESKTOP IN 30 SECONDS
|
|
125
|
-
|
|
126
|
-
**[SCREEN: macOS → finder → ~/Library/Application Support/Claude/]**
|
|
127
|
-
|
|
128
|
-
**NARRATION:**
|
|
129
|
-
> "Let's wire it into Claude Desktop. 30 seconds."
|
|
130
|
-
|
|
131
|
-
**[SCREEN: Open claude_desktop_config.json]**
|
|
132
|
-
|
|
133
|
-
**[TYPE the config:]**
|
|
134
|
-
```json
|
|
135
|
-
{
|
|
136
|
-
"mcpServers": {
|
|
137
|
-
"kodelyth-ecc": {
|
|
138
|
-
"command": "npx",
|
|
139
|
-
"args": ["-y", "kodelyth-ecc", "mcp"]
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**NARRATION:**
|
|
146
|
-
> "Save. Restart Claude Desktop."
|
|
147
|
-
|
|
148
|
-
**[Restart Claude Desktop — show the server appearing in the tools panel]**
|
|
149
|
-
|
|
150
|
-
**NARRATION:**
|
|
151
|
-
> "ECC is now available. Claude Desktop can call all 16 tools, use all 6 prompts, and read all 377 resources."
|
|
152
|
-
|
|
153
|
-
**[DEMO in Claude Desktop:]**
|
|
154
|
-
|
|
155
|
-
**[TYPE:]**
|
|
156
|
-
```
|
|
157
|
-
Use the routing-rule prompt, then route this:
|
|
158
|
-
"I've been debugging this race condition for 3 days, nothing works"
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
**[Show: ECC routing-rule prompt loaded → route_intent called → response suggests /debug-blitz]**
|
|
162
|
-
|
|
163
|
-
**NARRATION:**
|
|
164
|
-
> "Claude used the ECC routing rule — the full 10-tier system — to decide that 3 days of frustration on a race condition means debug-blitz, not a single debug-detective."
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
**[DEMO 2 in Claude Desktop — get agent body:]**
|
|
169
|
-
|
|
170
|
-
**[TYPE:]**
|
|
171
|
-
```
|
|
172
|
-
Get me the full debug-detective agent instructions
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
**[Show: get_agent tool called → full debug-detective.md loaded → Claude adopts the persona]**
|
|
176
|
-
|
|
177
|
-
**NARRATION:**
|
|
178
|
-
> "Claude fetched the full agent playbook on demand. Now it's running as debug-detective — with the real methodology, not a made-up persona."
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
### [4:00–6:30] DEMO 2 — LANGGRAPH INTEGRATION
|
|
183
|
-
|
|
184
|
-
**[SCREEN: VS Code with a Python file open]**
|
|
185
|
-
|
|
186
|
-
**NARRATION:**
|
|
187
|
-
> "Now let's wire it into LangGraph. This is for developers building multi-agent workflows in Python."
|
|
188
|
-
|
|
189
|
-
**[SCREEN: Show minimal LangGraph code with MCP client]**
|
|
190
|
-
|
|
191
|
-
```python
|
|
192
|
-
from langchain_mcp import MCPToolkit
|
|
193
|
-
from langchain_anthropic import ChatAnthropic
|
|
194
|
-
from langgraph.prebuilt import create_react_agent
|
|
195
|
-
|
|
196
|
-
# Connect to ECC MCP server
|
|
197
|
-
async with MCPToolkit("npx kodelyth-ecc mcp") as toolkit:
|
|
198
|
-
tools = await toolkit.get_tools()
|
|
199
|
-
|
|
200
|
-
llm = ChatAnthropic(model="claude-sonnet-4-5")
|
|
201
|
-
agent = create_react_agent(llm, tools)
|
|
202
|
-
|
|
203
|
-
# Now the agent can call any ECC tool
|
|
204
|
-
result = await agent.ainvoke({
|
|
205
|
-
"messages": [
|
|
206
|
-
{"role": "user", "content": "Route this task and get me the right agent's instructions: our API is throwing 500s"}
|
|
207
|
-
]
|
|
208
|
-
})
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
**NARRATION:**
|
|
212
|
-
> "The ECC server spawns as a subprocess. LangGraph connects via stdio. The agent now has all 16 ECC tools in its tool belt."
|
|
213
|
-
|
|
214
|
-
**[RUN the script — show output:]**
|
|
215
|
-
|
|
216
|
-
```
|
|
217
|
-
> Calling tool: route_intent
|
|
218
|
-
input: "our API is throwing 500s"
|
|
219
|
-
|
|
220
|
-
> Result: incident-commander (score 0.91), debug-detective (0.78)
|
|
221
|
-
|
|
222
|
-
> Calling tool: get_agent
|
|
223
|
-
input: "incident-commander"
|
|
224
|
-
|
|
225
|
-
> Loaded: incident-commander.md (7920 bytes)
|
|
226
|
-
|
|
227
|
-
[Agent now follows incident-commander playbook...]
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
**NARRATION:**
|
|
231
|
-
> "The orchestrator called route_intent, got a recommendation, fetched the full agent body, and is now executing the incident-commander playbook."
|
|
232
|
-
> "Your LangGraph workflow just got 70 specialists."
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
**[MEMORY ROUNDTRIP]**
|
|
237
|
-
|
|
238
|
-
**NARRATION:**
|
|
239
|
-
> "The memory tools are the most valuable part for long-running workflows."
|
|
240
|
-
|
|
241
|
-
```python
|
|
242
|
-
# Store a solution during a session
|
|
243
|
-
await agent.ainvoke({
|
|
244
|
-
"messages": [{
|
|
245
|
-
"role": "user",
|
|
246
|
-
"content": "capture_memory: problem=API rate limiting, approach=exponential backoff with jitter, tags=[api, rate-limiting, retry]"
|
|
247
|
-
}]
|
|
248
|
-
})
|
|
249
|
-
|
|
250
|
-
# Recall it later, in any workflow
|
|
251
|
-
result = await agent.ainvoke({
|
|
252
|
-
"messages": [{
|
|
253
|
-
"role": "user",
|
|
254
|
-
"content": "I'm building retry logic for an API client. recall_memory first."
|
|
255
|
-
}]
|
|
256
|
-
})
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
**NARRATION:**
|
|
260
|
-
> "Your LangGraph workflow can now persist solutions to your local BM25 memory and recall them on future runs."
|
|
261
|
-
> "The memory survives process restarts. It's a JSONL file. Your agent learns across runs."
|
|
262
|
-
|
|
263
|
-
---
|
|
264
|
-
|
|
265
|
-
### [6:30–8:00] DEMO 3 — CLI INSPECTION TOOLS
|
|
266
|
-
|
|
267
|
-
**[SCREEN: Terminal]**
|
|
268
|
-
|
|
269
|
-
**NARRATION:**
|
|
270
|
-
> "You don't have to write code to explore the server. ECC ships CLI commands for everything."
|
|
271
|
-
|
|
272
|
-
```bash
|
|
273
|
-
# Register a server
|
|
274
|
-
npx kodelyth-ecc mcp-add kodelyth -- npx kodelyth-ecc mcp
|
|
275
|
-
|
|
276
|
-
# List registered servers
|
|
277
|
-
npx kodelyth-ecc mcp-list
|
|
278
|
-
|
|
279
|
-
# See all 16 tools
|
|
280
|
-
npx kodelyth-ecc mcp-tools kodelyth
|
|
281
|
-
|
|
282
|
-
# Call a tool directly
|
|
283
|
-
npx kodelyth-ecc mcp-call kodelyth route_intent \
|
|
284
|
-
--json '{"message":"production is down","top_k":3}'
|
|
285
|
-
|
|
286
|
-
# List resources
|
|
287
|
-
npx kodelyth-ecc mcp-resources kodelyth
|
|
288
|
-
|
|
289
|
-
# Read a specific resource
|
|
290
|
-
npx kodelyth-ecc mcp-call kodelyth get_agent \
|
|
291
|
-
--json '{"name":"debug-detective"}'
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
**NARRATION:**
|
|
295
|
-
> "The mcp-call command is especially useful for testing integrations before you wire them into code."
|
|
296
|
-
|
|
297
|
-
**[Show route_intent output formatted with jq:]**
|
|
298
|
-
|
|
299
|
-
```bash
|
|
300
|
-
npx kodelyth-ecc mcp-call kodelyth route_intent \
|
|
301
|
-
--json '{"message":"I need to refactor my auth module"}' \
|
|
302
|
-
| jq '.content[0].text | fromjson | .suggestions[:3]'
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
|
|
307
|
-
### [8:00–9:30] DESIGN PRINCIPLES
|
|
308
|
-
|
|
309
|
-
**[SCREEN: Diagram]**
|
|
310
|
-
|
|
311
|
-
**NARRATION:**
|
|
312
|
-
> "A few things I want to be explicit about in the design."
|
|
313
|
-
|
|
314
|
-
**[PRINCIPLE 1: No LLM calls]**
|
|
315
|
-
|
|
316
|
-
**NARRATION:**
|
|
317
|
-
> "The ECC MCP server adds zero LLM calls of its own. It reads files and passes through memory. Your client's model decides what to do with the content. No hidden API costs."
|
|
318
|
-
|
|
319
|
-
**[PRINCIPLE 2: Local only]**
|
|
320
|
-
|
|
321
|
-
**NARRATION:**
|
|
322
|
-
> "stdio transport. No network port. No HTTP server. The MCP server is a subprocess — it dies when your client disconnects. No background process lingering."
|
|
323
|
-
|
|
324
|
-
**[PRINCIPLE 3: Optional dependency]**
|
|
325
|
-
|
|
326
|
-
**NARRATION:**
|
|
327
|
-
> "The MCP SDK is in optionalDependencies. `npx kodelyth-ecc` installs without it. The MCP subcommand prints a helpful message if you try to use it without the SDK."
|
|
328
|
-
|
|
329
|
-
```bash
|
|
330
|
-
npx kodelyth-ecc mcp
|
|
331
|
-
# → "Kodelyth MCP server requires @modelcontextprotocol/sdk"
|
|
332
|
-
# → "Run: npm install @modelcontextprotocol/sdk"
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
**[PRINCIPLE 4: Cached catalog]**
|
|
336
|
-
|
|
337
|
-
**NARRATION:**
|
|
338
|
-
> "Agent and skill lists are cached in-process after first read. Sub-millisecond for subsequent calls. Heavy workflows that call list_agents repeatedly don't hit the filesystem every time."
|
|
339
|
-
|
|
340
|
-
---
|
|
341
|
-
|
|
342
|
-
### [9:30–10:00] WHAT'S COMING
|
|
343
|
-
|
|
344
|
-
**[SCREEN: Simple roadmap card]**
|
|
345
|
-
|
|
346
|
-
**NARRATION:**
|
|
347
|
-
> "The MCP server opens up a second direction: ECC as an MCP client."
|
|
348
|
-
|
|
349
|
-
**[Show code snippet:]**
|
|
350
|
-
```bash
|
|
351
|
-
npx kodelyth-ecc mcp-add stripe -- npx -y @modelcontextprotocol/server-stripe
|
|
352
|
-
npx kodelyth-ecc mcp-add github -- npx -y @modelcontextprotocol/server-github
|
|
353
|
-
npx kodelyth-ecc mcp-add postgres -- npx -y @modelcontextprotocol/server-postgres
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
**NARRATION:**
|
|
357
|
-
> "ECC agents will be able to consume external MCP servers — Stripe, GitHub, Postgres, Redis — making ECC the hub that routes between your specialists and your data sources."
|
|
358
|
-
> "That's the agentic layer I'm building toward."
|
|
359
|
-
|
|
360
|
-
---
|
|
361
|
-
|
|
362
|
-
### [10:00–10:30] CTA
|
|
363
|
-
|
|
364
|
-
**NARRATION:**
|
|
365
|
-
> "If you're building with LangGraph, AutoGen, CrewAI, or Claude Desktop — ECC's MCP server is a one-command addition to any workflow."
|
|
366
|
-
|
|
367
|
-
**[SCREEN: Terminal]**
|
|
368
|
-
|
|
369
|
-
```bash
|
|
370
|
-
npx kodelyth-ecc mcp
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
**NARRATION:**
|
|
374
|
-
> "github.com/sifxprime/kodelyth-ecc — full MCP docs at docs/mcp.md"
|
|
375
|
-
> "If this was useful, subscribe — I'll be covering the ECC-as-MCP-client direction next."
|
|
376
|
-
|
|
377
|
-
**[END CARD: subscribe, github link, docs link]**
|
|
378
|
-
|
|
379
|
-
---
|
|
380
|
-
|
|
381
|
-
## B-ROLL / EDITING NOTES
|
|
382
|
-
|
|
383
|
-
- Run the REAL MCP server — don't fake responses
|
|
384
|
-
- Claude Desktop wiring must be recorded live — the UX of it connecting is persuasive
|
|
385
|
-
- The LangGraph demo should be in a Jupyter notebook OR a clean Python file, not a cluttered repo
|
|
386
|
-
- Show the actual tool call logs from LangGraph (the `> Calling tool:` lines)
|
|
387
|
-
- For the CLI commands: use --color=always and record with terminal that shows nice colors
|
|
388
|
-
- Diagram for MCP architecture: keep it simple — three boxes (Client → MCP → ECC)
|
|
389
|
-
- This is the most technical video — don't cut corners on accuracy
|
|
390
|
-
- Thumbnail: "npx kodelyth-ecc mcp" in terminal + "LangGraph ← 70 agents" graphic
|
|
391
|
-
- Consider publishing a companion GitHub Gist with the LangGraph code snippet for the description
|