kodelyth-ecc 1.8.0 → 1.8.2
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/CLAUDE.md +1 -1
- package/VERSION +1 -1
- package/bin/kodelyth-ecc.js +54 -5
- package/install.ps1 +30 -13
- package/install.sh +11 -4
- package/package.json +1 -1
- package/rules/common/agent-intent-routing.md +96 -195
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -47
- package/.github/ISSUE_TEMPLATE/config.yml +0 -8
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -41
- package/.github/ISSUE_TEMPLATE/good_first_issue.md +0 -36
- package/.github/ISSUE_TEMPLATE/new_agent.md +0 -52
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -53
- package/.github/workflows/ci.yml +0 -45
- package/.github/workflows/publish.yml +0 -60
- package/brand/concepts.svg +0 -109
- package/brand/convert.js +0 -161
- package/brand/favicon.svg +0 -7
- package/brand/fb-cover.svg +0 -34
- package/brand/fb-profile.svg +0 -21
- package/brand/kodelyth-dark.svg +0 -24
- package/brand/kodelyth-light.svg +0 -24
- package/brand/kodelyth-mark.svg +0 -20
- package/brand/package.json +0 -12
- package/docs/dashboard.md +0 -211
- package/docs/evolve.md +0 -303
- package/docs/mcp-clients.md +0 -167
- package/docs/mcp.md +0 -178
- package/docs/replay.md +0 -244
- package/docs/supply-chain.md +0 -207
- package/docs/swarm.md +0 -243
- package/skills/skill-comply/tests/test_grader.py +0 -137
- package/skills/skill-comply/tests/test_parser.py +0 -90
- package/social/card-agents.svg +0 -104
- package/social/card-install.svg +0 -58
- package/social/card-main.svg +0 -54
- package/social/facebook-v150.svg +0 -110
- package/social/fb-ad-main.svg +0 -128
- package/social/fb-post-features.svg +0 -118
- package/social/fb-post-launch.svg +0 -144
- package/social/fb-post-platforms.svg +0 -135
- package/social/github-social-preview.svg +0 -151
- package/social/hype-compound-learning.svg +0 -129
- package/social/hype-devil-mode.svg +0 -240
- package/social/hype-mcp-server.svg +0 -148
- package/social/hype-parallel-agents.svg +0 -162
- package/social/hype-stats-hero.svg +0 -138
- package/social/og-image.svg +0 -151
- package/social/readme-agents.svg +0 -138
- package/social/readme-hero.svg +0 -102
- package/social/section-agents.svg +0 -69
- package/social/section-author.svg +0 -66
- package/social/section-dashboard.svg +0 -71
- package/social/section-devil.svg +0 -66
- package/social/section-hooks.svg +0 -63
- package/social/section-install.svg +0 -54
- package/social/section-learning.svg +0 -64
- package/social/section-mcp.svg +0 -58
- package/social/section-memory.svg +0 -69
- package/social/section-parallel.svg +0 -84
- package/social/section-routing.svg +0 -63
- package/social/twitter-threads.md +0 -621
- package/social/x-card-agents-grid.svg +0 -120
- package/social/x-card-free.svg +0 -71
- package/social/x-card-hook.svg +0 -94
- package/tests/dashboard/data.test.js +0 -391
- package/tests/dashboard/server.test.js +0 -257
- package/tests/evolve/analyze.test.js +0 -169
- package/tests/evolve/proposals.test.js +0 -173
- package/tests/evolve/stats.test.js +0 -167
- package/tests/hooks/branch-name-check.test.js +0 -184
- package/tests/hooks/smart-suggest.test.js +0 -149
- package/tests/hooks/test-reminder.test.js +0 -181
- package/tests/mcp/catalog.test.js +0 -98
- package/tests/mcp/client.test.js +0 -113
- package/tests/mcp/resources-prompts.test.js +0 -70
- package/tests/mcp/tools.test.js +0 -159
- package/tests/memory/auto-recall.test.js +0 -132
- package/tests/memory/instincts.test.js +0 -258
- package/tests/memory/store.test.js +0 -203
- package/tests/replay/bundle.test.js +0 -181
- package/tests/replay/replay.test.js +0 -131
- package/tests/router/classify.test.js +0 -164
- package/tests/run-all.js +0 -55
- package/tests/safety/patterns.test.js +0 -94
- package/tests/safety/prompt-injection-guard.test.js +0 -111
- package/tests/safety/token-budget.test.js +0 -119
- package/tests/supply-chain/manifest.test.js +0 -147
- package/tests/supply-chain/sbom.test.js +0 -170
- package/tests/supply-chain/verify.test.js +0 -146
- package/tests/swarm/build-plan.test.js +0 -188
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
<svg width="1200" height="675" viewBox="0 0 1200 675" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
-
<defs>
|
|
3
|
-
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
-
<stop offset="0%" style="stop-color:#050811"/>
|
|
5
|
-
<stop offset="100%" style="stop-color:#0d1117"/>
|
|
6
|
-
</linearGradient>
|
|
7
|
-
<linearGradient id="mem" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
8
|
-
<stop offset="0%" style="stop-color:#059669"/>
|
|
9
|
-
<stop offset="100%" style="stop-color:#065f46"/>
|
|
10
|
-
</linearGradient>
|
|
11
|
-
<linearGradient id="card" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
12
|
-
<stop offset="0%" style="stop-color:#161b22"/>
|
|
13
|
-
<stop offset="100%" style="stop-color:#0d1117"/>
|
|
14
|
-
</linearGradient>
|
|
15
|
-
</defs>
|
|
16
|
-
|
|
17
|
-
<rect width="1200" height="675" fill="url(#bg)"/>
|
|
18
|
-
<circle cx="1100" cy="600" r="300" fill="#059669" opacity="0.04"/>
|
|
19
|
-
<circle cx="100" cy="100" r="200" fill="#a78bfa" opacity="0.03"/>
|
|
20
|
-
|
|
21
|
-
<!-- Header -->
|
|
22
|
-
<text x="80" y="72" font-size="48" font-weight="900" letter-spacing="-2" fill="#ffffff">70 agents. One install.</text>
|
|
23
|
-
<text x="80" y="110" font-size="18" fill="#6e7681">Semantic routing picks the right one — you never need to know their names.</text>
|
|
24
|
-
|
|
25
|
-
<!-- Left column — agent cards -->
|
|
26
|
-
<!-- Card 1 -->
|
|
27
|
-
<rect x="80" y="140" width="360" height="120" rx="8" fill="url(#card)" stroke="#21262d" stroke-width="1"/>
|
|
28
|
-
<rect x="80" y="140" width="4" height="120" rx="2" fill="#a78bfa"/>
|
|
29
|
-
<text x="100" y="166" font-size="13" font-weight="700" fill="#ffffff">kodelyth-advisor</text>
|
|
30
|
-
<text x="100" y="185" font-size="12" fill="#8b949e">"I'm stuck, no idea where to start"</text>
|
|
31
|
-
<text x="100" y="201" font-size="12" fill="#8b949e">"I'm overwhelmed, any advice?"</text>
|
|
32
|
-
<text x="100" y="220" font-size="11" fill="#484f58">→ strategic direction + right specialist</text>
|
|
33
|
-
<text x="100" y="237" font-size="11" fill="#484f58">→ priority 1 — fires on confusion/emotion</text>
|
|
34
|
-
|
|
35
|
-
<!-- Card 2 -->
|
|
36
|
-
<rect x="80" y="280" width="360" height="120" rx="8" fill="#161b22" stroke="#21262d" stroke-width="1"/>
|
|
37
|
-
<rect x="80" y="280" width="4" height="120" rx="2" fill="#f59e0b"/>
|
|
38
|
-
<text x="100" y="306" font-size="13" font-weight="700" fill="#ffffff">debug-detective</text>
|
|
39
|
-
<text x="100" y="325" font-size="12" fill="#8b949e">"nothing works, driving me crazy"</text>
|
|
40
|
-
<text x="100" y="341" font-size="12" fill="#8b949e">[paste stack trace with no text]</text>
|
|
41
|
-
<text x="100" y="360" font-size="11" fill="#484f58">→ root cause, never guesses</text>
|
|
42
|
-
<text x="100" y="377" font-size="11" fill="#484f58">→ auto-detects naked paste</text>
|
|
43
|
-
|
|
44
|
-
<!-- Card 3 — memory / ECC exclusive -->
|
|
45
|
-
<rect x="80" y="420" width="360" height="120" rx="8" fill="#0d2b1d" stroke="#059669" stroke-opacity="0.4" stroke-width="1"/>
|
|
46
|
-
<rect x="80" y="420" width="4" height="120" rx="2" fill="url(#mem)"/>
|
|
47
|
-
<rect x="246" y="426" width="46" height="18" rx="9" fill="#059669" fill-opacity="0.3" stroke="#059669" stroke-opacity="0.5" stroke-width="1"/>
|
|
48
|
-
<text x="269" y="439" font-size="9" fill="#10b981" text-anchor="middle" font-weight="700">ECC only</text>
|
|
49
|
-
<text x="100" y="448" font-size="13" font-weight="700" fill="#ffffff">kodelyth-memory</text>
|
|
50
|
-
<text x="100" y="467" font-size="12" fill="#8b949e">BM25 local memory — past solutions</text>
|
|
51
|
-
<text x="100" y="483" font-size="12" fill="#8b949e">injected before you ask</text>
|
|
52
|
-
<text x="100" y="502" font-size="11" fill="#484f58">→ capture-correction · read-lessons</text>
|
|
53
|
-
<text x="100" y="519" font-size="11" fill="#484f58">→ ~/.kodelyth/memory/ — zero cloud</text>
|
|
54
|
-
|
|
55
|
-
<!-- Middle separator -->
|
|
56
|
-
<line x1="460" y1="130" x2="460" y2="560" stroke="#21262d" stroke-width="1"/>
|
|
57
|
-
|
|
58
|
-
<!-- Right column — more agents -->
|
|
59
|
-
<!-- Card 4 -->
|
|
60
|
-
<rect x="480" y="140" width="360" height="120" rx="8" fill="url(#card)" stroke="#21262d" stroke-width="1"/>
|
|
61
|
-
<rect x="480" y="140" width="4" height="120" rx="2" fill="#22d3ee"/>
|
|
62
|
-
<text x="500" y="166" font-size="13" font-weight="700" fill="#ffffff">code-reviewer</text>
|
|
63
|
-
<text x="500" y="185" font-size="12" fill="#8b949e">"take a look at this"</text>
|
|
64
|
-
<text x="500" y="201" font-size="12" fill="#8b949e">[paste code with no text]</text>
|
|
65
|
-
<text x="500" y="220" font-size="11" fill="#484f58">→ auto-detects naked code paste</text>
|
|
66
|
-
<text x="500" y="237" font-size="11" fill="#484f58">→ 12 language-specific variants</text>
|
|
67
|
-
|
|
68
|
-
<!-- Card 5 -->
|
|
69
|
-
<rect x="480" y="280" width="360" height="120" rx="8" fill="#0d2b1d" stroke="#059669" stroke-opacity="0.4" stroke-width="1"/>
|
|
70
|
-
<rect x="480" y="280" width="4" height="120" rx="2" fill="url(#mem)"/>
|
|
71
|
-
<rect x="646" y="286" width="78" height="18" rx="9" fill="#059669" fill-opacity="0.25" stroke="#059669" stroke-opacity="0.5" stroke-width="1"/>
|
|
72
|
-
<text x="685" y="299" font-size="9" fill="#10b981" text-anchor="middle" font-weight="700">v1.8.0</text>
|
|
73
|
-
<text x="500" y="306" font-size="13" font-weight="700" fill="#ffffff">image-architect</text>
|
|
74
|
-
<text x="500" y="325" font-size="12" fill="#8b949e">"my site looks plain / boring"</text>
|
|
75
|
-
<text x="500" y="341" font-size="12" fill="#8b949e">"I need an OG image / social card"</text>
|
|
76
|
-
<text x="500" y="360" font-size="11" fill="#484f58">→ Gemini Imagen 3 / DALL-E 3 / SVG</text>
|
|
77
|
-
<text x="500" y="377" font-size="11" fill="#484f58">→ platform-aware, always free via SVG</text>
|
|
78
|
-
|
|
79
|
-
<!-- Card 6 -->
|
|
80
|
-
<rect x="480" y="420" width="360" height="120" rx="8" fill="url(#card)" stroke="#21262d" stroke-width="1"/>
|
|
81
|
-
<rect x="480" y="420" width="4" height="120" rx="2" fill="#38bdf8"/>
|
|
82
|
-
<text x="500" y="448" font-size="13" font-weight="700" fill="#ffffff">more agents</text>
|
|
83
|
-
<text x="500" y="467" font-size="12" fill="#8b949e">security-reviewer · ux-reviewer</text>
|
|
84
|
-
<text x="500" y="483" font-size="12" fill="#8b949e">incident-commander · load-tester</text>
|
|
85
|
-
<text x="500" y="502" font-size="11" fill="#484f58">performance-optimizer · migration-guide</text>
|
|
86
|
-
<text x="500" y="519" font-size="11" fill="#484f58">tdd-guide · git-rescue · release-captain</text>
|
|
87
|
-
|
|
88
|
-
<!-- Install bar -->
|
|
89
|
-
<rect x="80" y="568" width="760" height="52" rx="8" fill="#0d1117" stroke="#21262d" stroke-width="1"/>
|
|
90
|
-
<text x="460" y="590" font-size="13" fill="#10b981" text-anchor="middle" font-weight="700">$ npx kodelyth-ecc</text>
|
|
91
|
-
<text x="460" y="608" font-size="12" fill="#484f58" text-anchor="middle">Works with Claude Code · Windsurf · Cursor · Codex · Antigravity · OpenCode</text>
|
|
92
|
-
|
|
93
|
-
<!-- Stats -->
|
|
94
|
-
<text x="920" y="200" font-size="72" font-weight="900" fill="#ffffff" text-anchor="middle">70</text>
|
|
95
|
-
<text x="920" y="228" font-size="10" fill="#484f58" text-anchor="middle" letter-spacing="3">AGENTS</text>
|
|
96
|
-
<line x1="860" y1="248" x2="980" y2="248" stroke="#21262d" stroke-width="1"/>
|
|
97
|
-
<text x="920" y="280" font-size="32" font-weight="800" fill="#ffffff" text-anchor="middle">194</text>
|
|
98
|
-
<text x="920" y="302" font-size="10" fill="#484f58" text-anchor="middle" letter-spacing="2">SKILLS</text>
|
|
99
|
-
<line x1="860" y1="320" x2="980" y2="320" stroke="#21262d" stroke-width="1"/>
|
|
100
|
-
<text x="920" y="352" font-size="32" font-weight="800" fill="#ffffff" text-anchor="middle">22+</text>
|
|
101
|
-
<text x="920" y="374" font-size="10" fill="#484f58" text-anchor="middle" letter-spacing="2">HOOKS</text>
|
|
102
|
-
<line x1="860" y1="392" x2="980" y2="392" stroke="#21262d" stroke-width="1"/>
|
|
103
|
-
<text x="920" y="424" font-size="32" font-weight="800" fill="#ffffff" text-anchor="middle">12</text>
|
|
104
|
-
<text x="920" y="446" font-size="10" fill="#484f58" text-anchor="middle" letter-spacing="2">PLATFORMS</text>
|
|
105
|
-
<line x1="860" y1="464" x2="980" y2="464" stroke="#21262d" stroke-width="1"/>
|
|
106
|
-
<text x="920" y="496" font-size="20" font-weight="800" fill="#ffffff" text-anchor="middle">v1.8.0</text>
|
|
107
|
-
<text x="920" y="516" font-size="10" fill="#484f58" text-anchor="middle" letter-spacing="2">LATEST</text>
|
|
108
|
-
|
|
109
|
-
<!-- Ghost Depth Mark — brand stamp (scale 0.55×) -->
|
|
110
|
-
<g transform="translate(1044, 282) scale(0.55)" opacity="0.16">
|
|
111
|
-
<polyline points="-44,4 12,100 -44,196"
|
|
112
|
-
stroke="#ffffff" stroke-width="10"
|
|
113
|
-
stroke-linecap="round" stroke-linejoin="round"
|
|
114
|
-
fill="none"/>
|
|
115
|
-
<polyline points="0,0 88,100 0,200"
|
|
116
|
-
stroke="#ffffff" stroke-width="32"
|
|
117
|
-
stroke-linecap="round" stroke-linejoin="round"
|
|
118
|
-
fill="none"/>
|
|
119
|
-
</g>
|
|
120
|
-
</svg>
|
package/social/x-card-free.svg
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
<svg width="1200" height="675" viewBox="0 0 1200 675" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
-
<defs>
|
|
3
|
-
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
-
<stop offset="0%" style="stop-color:#050811"/>
|
|
5
|
-
<stop offset="100%" style="stop-color:#0d1117"/>
|
|
6
|
-
</linearGradient>
|
|
7
|
-
<linearGradient id="accent" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
8
|
-
<stop offset="0%" style="stop-color:#a78bfa"/>
|
|
9
|
-
<stop offset="100%" style="stop-color:#38bdf8"/>
|
|
10
|
-
</linearGradient>
|
|
11
|
-
</defs>
|
|
12
|
-
|
|
13
|
-
<rect width="1200" height="675" fill="url(#bg)"/>
|
|
14
|
-
<circle cx="1100" cy="580" r="320" fill="#059669" opacity="0.04"/>
|
|
15
|
-
<circle cx="100" cy="120" r="200" fill="#a78bfa" opacity="0.03"/>
|
|
16
|
-
|
|
17
|
-
<!-- Main headline -->
|
|
18
|
-
<text x="80" y="120" font-size="72" font-weight="900" letter-spacing="-3" fill="#ffffff">100% free.</text>
|
|
19
|
-
<text x="80" y="200" font-size="72" font-weight="900" letter-spacing="-3" fill="url(#accent)">100% local.</text>
|
|
20
|
-
<text x="80" y="272" font-size="24" fill="#6e7681" font-weight="400">No dashboard. No telemetry. No cloud. No account.</text>
|
|
21
|
-
<text x="80" y="306" font-size="24" fill="#6e7681">Just files on your disk that make your AI smarter.</text>
|
|
22
|
-
|
|
23
|
-
<line x1="80" y1="340" x2="1120" y2="340" stroke="#21262d" stroke-width="1"/>
|
|
24
|
-
|
|
25
|
-
<!-- Three pillars -->
|
|
26
|
-
<!-- Pillar 1 -->
|
|
27
|
-
<rect x="80" y="364" width="320" height="180" rx="10" fill="#161b22" stroke="#21262d" stroke-width="1"/>
|
|
28
|
-
<rect x="80" y="364" width="4" height="180" rx="2" fill="#a78bfa"/>
|
|
29
|
-
<text x="100" y="396" font-size="32" font-weight="900" fill="#ffffff">Zero cost</text>
|
|
30
|
-
<text x="100" y="426" font-size="14" fill="#8b949e">No API keys. No subscriptions.</text>
|
|
31
|
-
<text x="100" y="446" font-size="14" fill="#8b949e">No usage limits. No vendor lock-in.</text>
|
|
32
|
-
<text x="100" y="476" font-size="12" fill="#484f58">Install once. Works forever.</text>
|
|
33
|
-
<text x="100" y="494" font-size="12" fill="#484f58">Fork it, edit it, own it.</text>
|
|
34
|
-
<text x="100" y="528" font-size="11" fill="#30363d">npx kodelyth-ecc</text>
|
|
35
|
-
|
|
36
|
-
<!-- Pillar 2 -->
|
|
37
|
-
<rect x="430" y="364" width="320" height="180" rx="10" fill="#161b22" stroke="#21262d" stroke-width="1"/>
|
|
38
|
-
<rect x="430" y="364" width="4" height="180" rx="2" fill="#059669"/>
|
|
39
|
-
<text x="450" y="396" font-size="32" font-weight="900" fill="#ffffff">Zero cloud</text>
|
|
40
|
-
<text x="450" y="426" font-size="14" fill="#8b949e">Memory at ~/.kodelyth/memory/</text>
|
|
41
|
-
<text x="450" y="446" font-size="14" fill="#8b949e">Lessons at tasks/lessons.md</text>
|
|
42
|
-
<text x="450" y="476" font-size="12" fill="#484f58">Your data never leaves your machine.</text>
|
|
43
|
-
<text x="450" y="494" font-size="12" fill="#484f58">BM25 search — no embeddings needed.</text>
|
|
44
|
-
<text x="450" y="528" font-size="11" fill="#30363d">ls ~/.kodelyth/memory/</text>
|
|
45
|
-
|
|
46
|
-
<!-- Pillar 3 -->
|
|
47
|
-
<rect x="780" y="364" width="340" height="180" rx="10" fill="#161b22" stroke="#21262d" stroke-width="1"/>
|
|
48
|
-
<rect x="780" y="364" width="4" height="180" rx="2" fill="#38bdf8"/>
|
|
49
|
-
<text x="800" y="396" font-size="32" font-weight="900" fill="#ffffff">Gets smarter</text>
|
|
50
|
-
<text x="800" y="426" font-size="14" fill="#8b949e">Every correction → lessons.md</text>
|
|
51
|
-
<text x="800" y="446" font-size="14" fill="#8b949e">Every session → better context</text>
|
|
52
|
-
<text x="800" y="476" font-size="12" fill="#484f58">Month 1: knows your style.</text>
|
|
53
|
-
<text x="800" y="494" font-size="12" fill="#484f58">Month 3: works like it's been here years.</text>
|
|
54
|
-
<text x="800" y="528" font-size="11" fill="#30363d">Compound learning — v1.8.0</text>
|
|
55
|
-
|
|
56
|
-
<!-- Footer CTA -->
|
|
57
|
-
<text x="80" y="606" font-size="20" fill="#484f58">$ npx kodelyth-ecc</text>
|
|
58
|
-
<text x="1120" y="606" font-size="16" fill="#484f58" text-anchor="end">v1.8.0 · github.com/sifxprime/kodelyth-ecc</text>
|
|
59
|
-
|
|
60
|
-
<!-- Ghost Depth Mark — brand stamp (scale 0.55×) -->
|
|
61
|
-
<g transform="translate(1044, 282) scale(0.55)" opacity="0.16">
|
|
62
|
-
<polyline points="-44,4 12,100 -44,196"
|
|
63
|
-
stroke="#ffffff" stroke-width="10"
|
|
64
|
-
stroke-linecap="round" stroke-linejoin="round"
|
|
65
|
-
fill="none"/>
|
|
66
|
-
<polyline points="0,0 88,100 0,200"
|
|
67
|
-
stroke="#ffffff" stroke-width="32"
|
|
68
|
-
stroke-linecap="round" stroke-linejoin="round"
|
|
69
|
-
fill="none"/>
|
|
70
|
-
</g>
|
|
71
|
-
</svg>
|
package/social/x-card-hook.svg
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
<svg width="1200" height="675" viewBox="0 0 1200 675" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
|
|
2
|
-
<defs>
|
|
3
|
-
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
-
<stop offset="0%" style="stop-color:#050811"/>
|
|
5
|
-
<stop offset="100%" style="stop-color:#020a05"/>
|
|
6
|
-
</linearGradient>
|
|
7
|
-
<linearGradient id="mem" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
8
|
-
<stop offset="0%" style="stop-color:#059669"/>
|
|
9
|
-
<stop offset="100%" style="stop-color:#065f46"/>
|
|
10
|
-
</linearGradient>
|
|
11
|
-
<linearGradient id="termGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
12
|
-
<stop offset="0%" style="stop-color:#0d1a0d"/>
|
|
13
|
-
<stop offset="100%" style="stop-color:#050811"/>
|
|
14
|
-
</linearGradient>
|
|
15
|
-
</defs>
|
|
16
|
-
|
|
17
|
-
<rect width="1200" height="675" fill="url(#bg)"/>
|
|
18
|
-
<circle cx="1100" cy="560" r="300" fill="#059669" opacity="0.05"/>
|
|
19
|
-
<circle cx="100" cy="120" r="180" fill="#059669" opacity="0.04"/>
|
|
20
|
-
|
|
21
|
-
<!-- Header -->
|
|
22
|
-
<text x="80" y="96" font-size="56" font-weight="900" letter-spacing="-2" fill="#ffffff">20+ hooks.</text>
|
|
23
|
-
<text x="80" y="158" font-size="56" font-weight="900" letter-spacing="-2" fill="#10b981">Always running.</text>
|
|
24
|
-
<text x="80" y="204" font-size="20" fill="#6e7681">Quality gates that fire automatically — zero configuration after install.</text>
|
|
25
|
-
|
|
26
|
-
<line x1="80" y1="232" x2="1120" y2="232" stroke="#1a3a1a" stroke-width="1"/>
|
|
27
|
-
|
|
28
|
-
<!-- Hook cards — left column -->
|
|
29
|
-
<rect x="80" y="252" width="490" height="68" rx="8" fill="#0d1a0d" stroke="#059669" stroke-opacity="0.3" stroke-width="1"/>
|
|
30
|
-
<rect x="80" y="252" width="3" height="68" rx="1" fill="url(#mem)"/>
|
|
31
|
-
<text x="96" y="276" font-size="11" font-weight="700" fill="#10b981" letter-spacing="1">SESSION START — read-lessons.js</text>
|
|
32
|
-
<text x="96" y="296" font-size="13" fill="#8b949e">Reads tasks/lessons.md → injects hard rules + project DNA</text>
|
|
33
|
-
<text x="96" y="311" font-size="11" fill="#484f58">before your first message · fires first · v1.8.0</text>
|
|
34
|
-
|
|
35
|
-
<rect x="80" y="336" width="490" height="68" rx="8" fill="#0d1a0d" stroke="#059669" stroke-opacity="0.3" stroke-width="1"/>
|
|
36
|
-
<rect x="80" y="336" width="3" height="68" rx="1" fill="url(#mem)"/>
|
|
37
|
-
<text x="96" y="360" font-size="11" font-weight="700" fill="#10b981" letter-spacing="1">STOP — capture-correction.js</text>
|
|
38
|
-
<text x="96" y="380" font-size="13" fill="#8b949e">Scans session JSONL for corrections → writes to lessons.md</text>
|
|
39
|
-
<text x="96" y="395" font-size="11" fill="#484f58">12 signal patterns · async · zero latency · v1.8.0</text>
|
|
40
|
-
|
|
41
|
-
<rect x="80" y="420" width="490" height="68" rx="8" fill="#161b22" stroke="#21262d" stroke-width="1"/>
|
|
42
|
-
<rect x="80" y="420" width="3" height="68" rx="1" fill="#a78bfa"/>
|
|
43
|
-
<text x="96" y="444" font-size="11" font-weight="700" fill="#a78bfa" letter-spacing="1">SESSION START — memory inject</text>
|
|
44
|
-
<text x="96" y="464" font-size="13" fill="#8b949e">BM25 recall from ~/.kodelyth/memory/ → past solutions</text>
|
|
45
|
-
<text x="96" y="479" font-size="11" fill="#484f58">cache-friendly prefix · auto-fires · v1.8.0</text>
|
|
46
|
-
|
|
47
|
-
<rect x="80" y="504" width="490" height="68" rx="8" fill="#161b22" stroke="#21262d" stroke-width="1"/>
|
|
48
|
-
<rect x="80" y="504" width="3" height="68" rx="1" fill="#a78bfa"/>
|
|
49
|
-
<text x="96" y="528" font-size="11" font-weight="700" fill="#a78bfa" letter-spacing="1">USER PROMPT — auto chat recall</text>
|
|
50
|
-
<text x="96" y="548" font-size="13" fill="#8b949e">Watches every prompt → injects relevant memories before AI responds</text>
|
|
51
|
-
<text x="96" y="563" font-size="11" fill="#484f58">per-session dedup · skips trivial prompts · v1.8.0</text>
|
|
52
|
-
|
|
53
|
-
<!-- Right column — quality hooks -->
|
|
54
|
-
<rect x="606" y="252" width="514" height="68" rx="8" fill="#161b22" stroke="#21262d" stroke-width="1"/>
|
|
55
|
-
<rect x="606" y="252" width="3" height="68" rx="1" fill="#ef4444"/>
|
|
56
|
-
<text x="622" y="276" font-size="11" font-weight="700" fill="#ef4444" letter-spacing="1">PRE-COMMIT — secret scanner</text>
|
|
57
|
-
<text x="622" y="296" font-size="13" fill="#8b949e">Catches API keys, passwords, tokens before they ship</text>
|
|
58
|
-
<text x="622" y="311" font-size="11" fill="#484f58">blocks commit · reports exact line · always-on</text>
|
|
59
|
-
|
|
60
|
-
<rect x="606" y="336" width="514" height="68" rx="8" fill="#161b22" stroke="#21262d" stroke-width="1"/>
|
|
61
|
-
<rect x="606" y="336" width="3" height="68" rx="1" fill="#f59e0b"/>
|
|
62
|
-
<text x="622" y="360" font-size="11" font-weight="700" fill="#f59e0b" letter-spacing="1">POST EDIT — quality gate</text>
|
|
63
|
-
<text x="622" y="380" font-size="13" fill="#8b949e">Runs type check + format after every file write</text>
|
|
64
|
-
<text x="622" y="395" font-size="11" fill="#484f58">async · under 5s · configurable per project</text>
|
|
65
|
-
|
|
66
|
-
<rect x="606" y="420" width="514" height="68" rx="8" fill="#161b22" stroke="#21262d" stroke-width="1"/>
|
|
67
|
-
<rect x="606" y="420" width="3" height="68" rx="1" fill="#22d3ee"/>
|
|
68
|
-
<text x="622" y="444" font-size="11" font-weight="700" fill="#22d3ee" letter-spacing="1">PRE-PUSH — branch + commit guard</text>
|
|
69
|
-
<text x="622" y="464" font-size="13" fill="#8b949e">Validates branch name + commit message format</text>
|
|
70
|
-
<text x="622" y="479" font-size="11" fill="#484f58">conventional commits · prompts review before push</text>
|
|
71
|
-
|
|
72
|
-
<rect x="606" y="504" width="514" height="68" rx="8" fill="#161b22" stroke="#21262d" stroke-width="1"/>
|
|
73
|
-
<rect x="606" y="504" width="3" height="68" rx="1" fill="#38bdf8"/>
|
|
74
|
-
<text x="622" y="528" font-size="11" font-weight="700" fill="#38bdf8" letter-spacing="1">STOP — desktop notify + cost tracker</text>
|
|
75
|
-
<text x="622" y="548" font-size="13" fill="#8b949e">macOS notification when long task finishes · logs token usage</text>
|
|
76
|
-
<text x="622" y="563" font-size="11" fill="#484f58">~/.claude/logs/token-usage.jsonl · session cost tracking</text>
|
|
77
|
-
|
|
78
|
-
<!-- Footer -->
|
|
79
|
-
<text x="80" y="618" font-size="16" fill="#484f58">All hooks fire automatically after</text>
|
|
80
|
-
<text x="340" y="618" font-size="16" fill="#10b981" font-weight="600"> npx kodelyth-ecc</text>
|
|
81
|
-
<text x="1120" y="618" font-size="14" fill="#484f58" text-anchor="end">v1.8.0</text>
|
|
82
|
-
|
|
83
|
-
<!-- Ghost Depth Mark — brand stamp (scale 0.55×) -->
|
|
84
|
-
<g transform="translate(1044, 282) scale(0.55)" opacity="0.16">
|
|
85
|
-
<polyline points="-44,4 12,100 -44,196"
|
|
86
|
-
stroke="#ffffff" stroke-width="10"
|
|
87
|
-
stroke-linecap="round" stroke-linejoin="round"
|
|
88
|
-
fill="none"/>
|
|
89
|
-
<polyline points="0,0 88,100 0,200"
|
|
90
|
-
stroke="#ffffff" stroke-width="32"
|
|
91
|
-
stroke-linecap="round" stroke-linejoin="round"
|
|
92
|
-
fill="none"/>
|
|
93
|
-
</g>
|
|
94
|
-
</svg>
|