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.
Files changed (51) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +41 -0
  3. package/.github/ISSUE_TEMPLATE/good_first_issue.md +36 -0
  4. package/CHANGELOG.md +39 -0
  5. package/GITHUB_SETUP.md +553 -0
  6. package/README.md +51 -6
  7. package/VERSION +1 -1
  8. package/actions/ecc-review/README.md +7 -7
  9. package/bundles/enterprise.md +1 -1
  10. package/bundles/indie-hacker.md +1 -1
  11. package/bundles/red-team.md +1 -1
  12. package/docs/supply-chain.md +1 -1
  13. package/package.json +4 -1
  14. package/rules/common/memory-protocol.md +35 -4
  15. package/scripts/dashboard/data.js +261 -4
  16. package/scripts/dashboard/server.js +28 -3
  17. package/scripts/dashboard/static/index.html +63 -3
  18. package/social/card-install.svg +1 -1
  19. package/social/card-main.svg +2 -2
  20. package/social/facebook-v150.svg +4 -4
  21. package/social/github-social-preview.svg +3 -3
  22. package/social/hype-compound-learning.svg +117 -0
  23. package/social/hype-devil-mode.svg +228 -0
  24. package/social/hype-mcp-server.svg +136 -0
  25. package/social/hype-parallel-agents.svg +150 -0
  26. package/social/hype-stats-hero.svg +126 -0
  27. package/social/readme-hero.svg +4 -4
  28. package/social/section-mcp.svg +1 -1
  29. package/social/twitter-threads.md +621 -0
  30. package/social/x-card-agents-grid.svg +2 -2
  31. package/social/x-card-free.svg +2 -2
  32. package/social/x-card-hook.svg +5 -5
  33. package/tests/dashboard/data.test.js +156 -0
  34. package/tests/dashboard/server.test.js +17 -0
  35. package/wiki/FAQ.md +1 -1
  36. package/wiki/Home.md +5 -3
  37. package/wiki/Installation-Guide.md +2 -2
  38. package/MARKETING_PLAN.md +0 -893
  39. package/cat +0 -0
  40. package/social/facebook-group/POST.md +0 -121
  41. package/social/facebook-group/fb-1-3am-debug.png +0 -0
  42. package/social/facebook-group/fb-1-3am-debug.svg +0 -97
  43. package/social/facebook-group/fb-2-cpu-upgrade.png +0 -0
  44. package/social/facebook-group/fb-2-cpu-upgrade.svg +0 -132
  45. package/social/facebook-group/fb-3-before-after.png +0 -0
  46. package/social/facebook-group/fb-3-before-after.svg +0 -94
  47. package/videos/README.md +0 -88
  48. package/videos/video-01-install-and-routing.md +0 -258
  49. package/videos/video-02-compound-memory.md +0 -301
  50. package/videos/video-03-devil-mode.md +0 -294
  51. package/videos/video-04-mcp-server.md +0 -391
@@ -1,258 +0,0 @@
1
- # VIDEO 1 — "Install in 60 seconds. Watch it route itself."
2
-
3
- **Duration:** 5–7 minutes
4
- **Platform:** YouTube (also cut to 60s Reel/Short)
5
- **Hook:** Semantic routing demo — no commands typed, AI picks the expert
6
- **Goal:** Drive `npx kodelyth-ecc` installs
7
- **Screen setup:** Terminal on left, Claude Code / Windsurf on right, dark theme
8
-
9
- ---
10
-
11
- ## FULL SCRIPT
12
-
13
- ---
14
-
15
- ### [0:00–0:15] COLD OPEN — No intro, start with the demo
16
-
17
- **[SCREEN: Terminal, clean. No intro card yet.]**
18
-
19
- **NARRATION (confident, no fluff):**
20
- > "Watch this."
21
-
22
- **[TYPE in terminal:]**
23
- ```
24
- npx kodelyth-ecc
25
- ```
26
-
27
- **[Show the install running — agents copying, skills, commands, hooks]**
28
-
29
- **NARRATION:**
30
- > "That's it. That one command just gave your AI 70 specialist agents, 194 skills, 97 commands, and a self-learning memory system."
31
- > "Now watch what happens when I use it."
32
-
33
- **[Cut to Claude Code / Windsurf chat panel]**
34
-
35
- **[TYPE in chat — deliberately vague, emotional:]**
36
- ```
37
- I've been staring at this NullPointerException for two hours. I'm losing my mind.
38
- ```
39
-
40
- **[Show AI response routing automatically:]**
41
- ```
42
- → Routing to debug-detective (frustration + error keyword matched)
43
- ```
44
-
45
- **NARRATION:**
46
- > "I never typed a command. I never said 'use debug-detective'. It read what I wrote, picked the right expert, and announced who's taking over."
47
- > "That's Kodelyth ECC."
48
-
49
- **[TITLE CARD: Kodelyth ECC — 70 AI coding agents. One install.]**
50
-
51
- ---
52
-
53
- ### [0:15–1:00] THE PROBLEM IT SOLVES
54
-
55
- **[SCREEN: Split — left side showing a generic "agent kit" readme with 50 agent names]**
56
-
57
- **NARRATION:**
58
- > "Every AI coding toolkit I've used has the same problem."
59
- > "They hand you a folder of agents and say — good luck."
60
- > "You have to memorize names. You have to remember which one handles what."
61
- > "You're doing the routing work yourself."
62
-
63
- **[SCREEN: Show a long list of agent names]**
64
-
65
- **NARRATION:**
66
- > "There are 70 agents in ECC. Nobody is going to memorize 70 names."
67
- > "So I built a routing system that reads your intent — not your commands."
68
-
69
- ---
70
-
71
- ### [1:00–2:30] THE ROUTING DEMO (core of the video)
72
-
73
- **[SCREEN: Claude Code / Windsurf — fresh chat]**
74
-
75
- **NARRATION:**
76
- > "Let me show you the routing in action across five different situations."
77
-
78
- **[DEMO 1 — emotional frustration]**
79
-
80
- **[TYPE:]**
81
- ```
82
- I've been fighting this bug for hours, I give up
83
- ```
84
-
85
- **[Show response: → Routing to /debug-blitz (frustration + time signal = stubborn bug mode)]**
86
-
87
- **NARRATION:**
88
- > "Frustration signal — routes to debug-blitz. Three debug agents fire in parallel."
89
-
90
- ---
91
-
92
- **[DEMO 2 — paste a stack trace with zero text]**
93
-
94
- **[TYPE: just paste a raw stack trace, no explanation]**
95
-
96
- ```
97
- TypeError: Cannot read properties of undefined (reading 'map')
98
- at ProductList (/app/components/ProductList.tsx:24:32)
99
- at renderWithHooks (react-dom.development.js:14985:18)
100
- ```
101
-
102
- **[Show response: → Routing to debug-detective (naked stack trace = implicit debug request)]**
103
-
104
- **NARRATION:**
105
- > "No text. Just a stack trace. It routes itself."
106
-
107
- ---
108
-
109
- **[DEMO 3 — new project intent]**
110
-
111
- **[TYPE:]**
112
- ```
113
- I want to build a SaaS dashboard that tracks user activity
114
- ```
115
-
116
- **[Show response: → Routing to /project-launch — 5 agents firing in parallel]**
117
-
118
- **NARRATION:**
119
- > "New build signal. Fires five founding-team agents in parallel — architect, pair-programmer, security-reviewer, tdd-guide, and ux-reviewer."
120
- > "45 minutes of planning compressed to 10."
121
-
122
- ---
123
-
124
- **[DEMO 4 — paste raw code, no context]**
125
-
126
- **[TYPE: paste a function with no explanation]**
127
-
128
- **[Show response: → Routing to code-reviewer (naked code paste = implicit review)]**
129
-
130
- **NARRATION:**
131
- > "Paste code. No words. Gets reviewed."
132
-
133
- ---
134
-
135
- **[DEMO 5 — pre-launch security]**
136
-
137
- **[TYPE:]**
138
- ```
139
- I'm about to go open source, is there anything I should check first?
140
- ```
141
-
142
- **[Show response: → Routing to /devil-mode --pre-public (pre-public signal)]**
143
-
144
- **NARRATION:**
145
- > "Pre-public signal. Routes to devil mode — 8 adversarial agents scan your code like an attacker would."
146
- > "We'll cover that in detail in video 3."
147
-
148
- ---
149
-
150
- ### [2:30–3:30] THE INSTALL — ALL PLATFORMS
151
-
152
- **[SCREEN: Terminal]**
153
-
154
- **NARRATION:**
155
- > "The install is one command. Here's every platform."
156
-
157
- **[TYPE and show each:]**
158
- ```bash
159
- npx kodelyth-ecc # Claude Code
160
- npx kodelyth-ecc --target windsurf-project # Windsurf
161
- npx kodelyth-ecc --target cursor-project # Cursor
162
- npx kodelyth-ecc --target codex-home # Codex CLI
163
- npx kodelyth-ecc --target antigravity # Google Antigravity
164
- npx kodelyth-ecc --target cline # Cline (VS Code)
165
- npx kodelyth-ecc --target roocode # Roo Code
166
- npx kodelyth-ecc --target aider # Aider
167
- ```
168
-
169
- **NARRATION:**
170
- > "11 platforms. 13 install targets. Same command, different flag."
171
- > "Windows? PowerShell install script ships in the package."
172
- > "No account. No API key. No cloud. Just files on your disk."
173
-
174
- ---
175
-
176
- ### [3:30–4:30] THE MEMORY TEASER
177
-
178
- **[SCREEN: New terminal window]**
179
-
180
- **NARRATION:**
181
- > "Here's the part that surprises people."
182
-
183
- **[TYPE:]**
184
- ```
185
- npx kodelyth-ecc dashboard
186
- ```
187
-
188
- **[Browser opens at http://127.0.0.1:5747]**
189
-
190
- **[Show the Memory tab]**
191
-
192
- **NARRATION:**
193
- > "This is your local memory store. Every time you solve a hard problem, ECC can remember the approach."
194
- > "Next session — new project, five months later — when you describe something similar, it recalls the exact pattern before you ask."
195
-
196
- **[Show the search box, type "stripe webhook", show results]**
197
-
198
- **NARRATION:**
199
- > "BM25 search. Local. No embeddings. No cloud. Sub-millisecond."
200
- > "This compounds over time. The longer you use it, the smarter your AI gets."
201
-
202
- ---
203
-
204
- ### [4:30–5:15] WHAT ELSE IS IN THE BOX
205
-
206
- **[SCREEN: Quick scrollthrough of agents/ directory, then commands/]**
207
-
208
- **NARRATION:**
209
- > "70 agents. Here's a taste of what's in there."
210
-
211
- **[QUICK CUTS — each 3–4 seconds with agent name on screen:]**
212
-
213
- - `debug-detective` — root cause, never guesses
214
- - `security-reviewer` — auth, input validation, secrets
215
- - `incident-commander` — production is down, P0 response
216
- - `load-tester` — k6, Locust, capacity planning
217
- - `migration-guide` — framework upgrades, phase by phase
218
- - `release-captain` — semver, tagging, rollback plan
219
- - `image-architect` — AI image gen, Gemini / DALL-E / SVG
220
- - `api-guardian` — breaking API contract detection
221
- - `ux-reviewer` — WCAG 2.1, accessibility, interaction patterns
222
-
223
- **NARRATION:**
224
- > "And 8 adversarial devil-mode agents for when you need to think like an attacker."
225
- > "Everything has a playbook. Everything has severity calibration. These aren't personas — they have real bash patterns and remediation steps."
226
-
227
- ---
228
-
229
- ### [5:15–5:45] CTA
230
-
231
- **[SCREEN: Terminal]**
232
-
233
- **NARRATION:**
234
- > "One command."
235
-
236
- **[TYPE:]**
237
- ```
238
- npx kodelyth-ecc
239
- ```
240
-
241
- **NARRATION:**
242
- > "Link in the description — github.com/sifxprime/kodelyth-ecc"
243
- > "Next video: the compound memory system — how your AI remembers across projects and why that's different from anything else."
244
- > "Subscribe if you want to see that."
245
-
246
- **[END CARD: github link, npm link, subscribe button]**
247
-
248
- ---
249
-
250
- ## B-ROLL / EDITING NOTES
251
-
252
- - All terminal footage: dark theme (Dracula or Catppuccin Mocha)
253
- - Font: JetBrains Mono or Fira Code, 16–18px
254
- - Show actual routing responses — don't fake them
255
- - Routing transitions: small flash/pulse animation on the `→ Routing to` line
256
- - Dashboard footage: real localhost session, not mockup
257
- - Cut music: low synth, no distraction, something like "lo-fi coding" on YT audio library
258
- - Thumbnail: terminal + "70 agents. 1 command." in bold + routing arrow graphic
@@ -1,301 +0,0 @@
1
- # VIDEO 2 — "How the compound memory works"
2
-
3
- **Duration:** 8–10 minutes
4
- **Platform:** YouTube (technical audience — engineers who care about architecture)
5
- **Hook:** "Your AI has no memory. But yours does."
6
- **Goal:** Drive installs + explain the unique differentiator
7
- **Screen setup:** Terminal + code editor + browser (dashboard)
8
-
9
- ---
10
-
11
- ## FULL SCRIPT
12
-
13
- ---
14
-
15
- ### [0:00–0:20] COLD OPEN
16
-
17
- **[SCREEN: Two Claude Code sessions side by side — one with blank context, one with a memory recall injection]**
18
-
19
- **NARRATION:**
20
- > "This is your AI without memory."
21
- > "And this is your AI with Kodelyth ECC's compound memory."
22
-
23
- **[Left: clean AI asks basic questions about your stack]**
24
- **[Right: AI opens with — "I checked your memory — you've solved a similar Stripe webhook issue before. Raw body parser before signature validation. Want me to apply that?"]**
25
-
26
- **NARRATION:**
27
- > "Same model. Different context. Completely different output."
28
- > "Let me show you how this works — and why it compounds over time."
29
-
30
- **[TITLE CARD: Kodelyth ECC — Compound Memory Architecture]**
31
-
32
- ---
33
-
34
- ### [0:20–1:30] THE PROBLEM: AI HAS NO MEMORY
35
-
36
- **[SCREEN: Simple diagram — each AI session as an isolated bubble]**
37
-
38
- **NARRATION:**
39
- > "Here's the fundamental problem with AI coding tools."
40
- > "Every session is a blank slate."
41
-
42
- **[Draw/animate: session 1 bubble, session 2 bubble, session 3 — completely disconnected]**
43
-
44
- **NARRATION:**
45
- > "You solve a hard problem Monday. You close the chat. Tuesday — it's gone."
46
- > "You join a new project three months later. You hit the same bug pattern you fixed before. You debug it from scratch. Again."
47
-
48
- **[SCREEN: Typing the same question again]**
49
-
50
- **NARRATION:**
51
- > "This isn't a model problem. The models are brilliant. It's a context problem."
52
- > "The model never knew about that fix. You never told it."
53
- > "ECC closes that loop automatically."
54
-
55
- ---
56
-
57
- ### [1:30–3:00] THE THREE LAYERS
58
-
59
- **[SCREEN: Diagram — three stacked layers]**
60
-
61
- **NARRATION:**
62
- > "ECC's compound memory has three layers. Each one is independent. Together they stack."
63
-
64
- **[LAYER 1 — Project Lessons]**
65
-
66
- **[Show: tasks/lessons.md in code editor]**
67
-
68
- **NARRATION:**
69
- > "Layer one: tasks/lessons.md — your project's permanent rulebook."
70
- > "Every time you correct the AI — 'use pnpm not npm', 'never add try/catch without logging', 'we use Zod not Yup' — a hook at the end of the session extracts that correction and writes it here."
71
-
72
- **[SCREEN: Show correction being typed in chat → session ends → lessons.md showing new rule]**
73
-
74
- **NARRATION:**
75
- > "Next session starts — this file is injected before the first message. The AI already knows your rules. You never repeat yourself."
76
-
77
- **[SCREEN: Show lessons.md growing over time — week 1, month 1, month 3]**
78
-
79
- **NARRATION:**
80
- > "It compounds. Month one: 5 rules. Month three: 30 rules. The AI knows your tech stack, naming style, patterns you hate, tools you prefer. Zero ramp-up on every new task."
81
-
82
- ---
83
-
84
- **[LAYER 2 — Global BM25 Memory]**
85
-
86
- **[SCREEN: ~/.kodelyth/memory/ in terminal]**
87
-
88
- **NARRATION:**
89
- > "Layer two: global memory. Stored at ~/.kodelyth/memory/. BM25 full-text search."
90
-
91
- **[SCREEN: Show memories.jsonl file, then show dashboard Memory tab]**
92
-
93
- **NARRATION:**
94
- > "BM25 is the algorithm that powers early Google. Keyword weighting, term frequency, document frequency. Pure math — no embeddings, no neural network, no API calls."
95
- > "Sub-millisecond recall. Zero dependencies. Works offline."
96
-
97
- **[SCREEN: Show capture flow — problem/approach/tags format]**
98
-
99
- **NARRATION:**
100
- > "When you capture a memory, it stores: problem statement, approach that worked, gotchas, tags, language, project."
101
-
102
- **[SCREEN: Show recall in action — type in dashboard search, results appear]**
103
-
104
- **NARRATION:**
105
- > "When you start a new session or type a prompt, ECC searches this store and injects relevant matches before your AI responds."
106
- > "It's like your AI checked your notes first."
107
-
108
- ---
109
-
110
- **[LAYER 3 — Auto Chat Recall]**
111
-
112
- **[SCREEN: Diagram showing UserPromptSubmit hook intercepting messages]**
113
-
114
- **NARRATION:**
115
- > "Layer three: auto chat recall. This one is invisible — which is why it's powerful."
116
- > "Every message you type goes through a BM25 search before the AI sees it. If there's a relevant past memory, it's injected into the context automatically."
117
- > "You just type normally. The recall happens in the background."
118
-
119
- **[SCREEN: Terminal showing hook fires, memory injected, then AI response includes "based on your previous work..."]**
120
-
121
- **NARRATION:**
122
- > "Per-session repeat suppression — the same memory won't be injected twice in one session. Clean, no noise."
123
-
124
- ---
125
-
126
- ### [3:00–4:30] LIVE DEMO — THE FULL LOOP
127
-
128
- **[SCREEN: Terminal + Claude Code]**
129
-
130
- **NARRATION:**
131
- > "Let me show you the full loop. We're going to capture a solution, then recall it five minutes later in a fresh session."
132
-
133
- **[STEP 1: Session 1 — solve a problem]**
134
-
135
- **[TYPE in chat:]**
136
- ```
137
- My Stripe webhook keeps returning 400 - invalid signature
138
- ```
139
-
140
- **[Show AI helping solve it — raw body parser issue]**
141
-
142
- **[STEP 2: Capture the memory]**
143
-
144
- **[TYPE in chat:]**
145
- ```
146
- /memory remember "Stripe webhook signature validation"
147
- ```
148
-
149
- **[Show capture confirmation — problem/approach/tags saved]**
150
-
151
- **NARRATION:**
152
- > "Captured. Stored at ~/.kodelyth/memory/memories.jsonl. Let me show you exactly what got saved."
153
-
154
- **[Open terminal:]**
155
- ```bash
156
- tail -1 ~/.kodelyth/memory/memories.jsonl | jq .
157
- ```
158
-
159
- **[Show JSON output with problem, approach, tags, language]**
160
-
161
- ---
162
-
163
- **[STEP 3: New session — fresh context]**
164
-
165
- **[Close Claude Code, reopen, fresh chat]**
166
-
167
- **[TYPE:]**
168
- ```
169
- I need to add Stripe webhooks to my checkout flow
170
- ```
171
-
172
- **[Show response — memory injected at the top:]**
173
- ```
174
- I checked your memory — you solved a similar problem before:
175
-
176
- "Stripe webhook signature validation" (captured 2 min ago)
177
- → Raw body parser must come before express.json() middleware
178
- → Use stripe.webhooks.constructEvent() not manual sig parsing
179
- → Test with stripe-cli forward, not curl
180
-
181
- Want me to apply this exact pattern?
182
- ```
183
-
184
- **NARRATION:**
185
- > "Same session, different project. It recalled the fix before you even described the bug."
186
- > "In real usage, this gap is months. And the value compounds every session."
187
-
188
- ---
189
-
190
- ### [4:30–6:00] THE COST WIN — PROMPT CACHE
191
-
192
- **[SCREEN: Diagram — token costs, cache zone]**
193
-
194
- **NARRATION:**
195
- > "There's a financial angle to this that most people miss."
196
-
197
- **[Show Anthropic pricing: 3$/M input, 0.30$/M cached]**
198
-
199
- **NARRATION:**
200
- > "Anthropic charges 10% for cached tokens. OpenAI auto-caches prefixes over 1024 tokens."
201
- > "ECC's memory injection is designed as a stable prefix. The same content, in the same order, session after session."
202
- > "That prefix hits the cache. Every long session, the repeated context is 90% cheaper."
203
-
204
- **[SCREEN: Show example — 50,000 token session, 15,000 cached prefix]**
205
-
206
- **NARRATION:**
207
- > "If you do heavy AI coding sessions — hours per day — this adds up to real money over a month."
208
-
209
- ---
210
-
211
- ### [6:00–7:30] THE SELF-EVOLVING MEMORY (EVOLVE TAB)
212
-
213
- **[SCREEN: Dashboard → Evolve tab]**
214
-
215
- **NARRATION:**
216
- > "The memory system also closes its own learning loop."
217
-
218
- **[Show evolve tab with pending proposals]**
219
-
220
- **NARRATION:**
221
- > "ECC tracks which memories get recalled most often. When a pattern repeats enough times, it proposes a new skill — a permanent knowledge file that the AI uses on every relevant session."
222
-
223
- **[Show a proposal in the dashboard — pending status]**
224
-
225
- **NARRATION:**
226
- > "Nothing is ever auto-applied. You review, accept, edit, then commit."
227
- > "That's the design principle: the system proposes. You decide."
228
-
229
- **[Show CLI:]**
230
- ```bash
231
- npx kodelyth-ecc evolve analyze
232
- npx kodelyth-ecc evolve list
233
- npx kodelyth-ecc evolve show <id>
234
- npx kodelyth-ecc evolve accept <id>
235
- ```
236
-
237
- **NARRATION:**
238
- > "The evolve CLI is your interface to the proposal pipeline."
239
-
240
- ---
241
-
242
- ### [7:30–8:30] PRIVACY — EVERYTHING LOCAL
243
-
244
- **[SCREEN: Terminal]**
245
-
246
- **NARRATION:**
247
- > "One thing I want to be explicit about."
248
-
249
- **[TYPE:]**
250
- ```bash
251
- ls -la ~/.kodelyth/memory/
252
- ```
253
-
254
- **[Show the files — memories.jsonl, indexes]**
255
-
256
- **NARRATION:**
257
- > "That's everything. A JSONL file on your disk."
258
- > "No API call leaves your machine for memory operations. No server. No account. No sync unless you set it up yourself."
259
-
260
- **[TYPE:]**
261
- ```bash
262
- npx kodelyth-ecc verify
263
- ```
264
-
265
- **[Show sha256 manifest verification running]**
266
-
267
- **NARRATION:**
268
- > "You can verify the entire installed toolkit against a sha256 manifest any time. Every file, every agent, every hook — verifiable."
269
-
270
- ---
271
-
272
- ### [8:30–9:00] CTA
273
-
274
- **NARRATION:**
275
- > "The memory layer is what makes ECC different from every other toolkit."
276
- > "It's not a feature you toggle on. It's infrastructure that builds over time and saves you real hours."
277
-
278
- **[SCREEN: npm install command]**
279
-
280
- **[TYPE:]**
281
- ```
282
- npx kodelyth-ecc
283
- ```
284
-
285
- **NARRATION:**
286
- > "github.com/sifxprime/kodelyth-ecc — link in description."
287
- > "Next video: Devil Mode. 8 adversarial agents that read your code like an attacker. I'll show you what they find on a real project."
288
-
289
- **[END CARD: subscribe, next video preview, github link]**
290
-
291
- ---
292
-
293
- ## B-ROLL / EDITING NOTES
294
-
295
- - Animate the three-layer diagram with Figma or simple CSS animation
296
- - Show REAL `memories.jsonl` content (blur personal project names if needed)
297
- - The BM25 recall response must be real — test it, record it
298
- - Dashboard footage: real session on localhost:5747
299
- - Show the `jq` pipe — this builds technical credibility
300
- - Music: same lo-fi track as Video 1 for consistency
301
- - Thumbnail: "Your AI remembered. 5 months later. Different project." + memory icon