@ekkos/cli 0.2.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.
Files changed (135) hide show
  1. package/dist/cache/LocalSessionStore.d.ts +129 -0
  2. package/dist/cache/LocalSessionStore.js +688 -0
  3. package/dist/cache/capture.d.ts +26 -0
  4. package/dist/cache/capture.js +461 -0
  5. package/dist/cache/index.d.ts +7 -0
  6. package/dist/cache/index.js +23 -0
  7. package/dist/cache/types.d.ts +147 -0
  8. package/dist/cache/types.js +40 -0
  9. package/dist/commands/init.d.ts +9 -0
  10. package/dist/commands/init.js +478 -0
  11. package/dist/commands/run.d.ts +12 -0
  12. package/dist/commands/run.js +829 -0
  13. package/dist/commands/setup.d.ts +6 -0
  14. package/dist/commands/setup.js +658 -0
  15. package/dist/commands/status.d.ts +1 -0
  16. package/dist/commands/status.js +109 -0
  17. package/dist/commands/test.d.ts +1 -0
  18. package/dist/commands/test.js +157 -0
  19. package/dist/deploy/agents.d.ts +15 -0
  20. package/dist/deploy/agents.js +72 -0
  21. package/dist/deploy/hooks.d.ts +16 -0
  22. package/dist/deploy/hooks.js +121 -0
  23. package/dist/deploy/index.d.ts +7 -0
  24. package/dist/deploy/index.js +24 -0
  25. package/dist/deploy/instructions.d.ts +12 -0
  26. package/dist/deploy/instructions.js +36 -0
  27. package/dist/deploy/mcp.d.ts +19 -0
  28. package/dist/deploy/mcp.js +109 -0
  29. package/dist/deploy/plugins.d.ts +19 -0
  30. package/dist/deploy/plugins.js +62 -0
  31. package/dist/deploy/settings.d.ts +8 -0
  32. package/dist/deploy/settings.js +84 -0
  33. package/dist/deploy/skills.d.ts +19 -0
  34. package/dist/deploy/skills.js +60 -0
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.js +71 -0
  37. package/dist/restore/RestoreOrchestrator.d.ts +48 -0
  38. package/dist/restore/RestoreOrchestrator.js +481 -0
  39. package/dist/restore/index.d.ts +4 -0
  40. package/dist/restore/index.js +20 -0
  41. package/dist/utils/platform.d.ts +29 -0
  42. package/dist/utils/platform.js +65 -0
  43. package/dist/utils/session-words.json +119 -0
  44. package/dist/utils/state.d.ts +57 -0
  45. package/dist/utils/state.js +186 -0
  46. package/dist/utils/templates.d.ts +24 -0
  47. package/dist/utils/templates.js +118 -0
  48. package/package.json +48 -0
  49. package/templates/CLAUDE.md +287 -0
  50. package/templates/README.md +378 -0
  51. package/templates/agents/README.md +182 -0
  52. package/templates/agents/code-reviewer.md +166 -0
  53. package/templates/agents/debug-detective.md +169 -0
  54. package/templates/agents/ekkOS_Vercel.md +99 -0
  55. package/templates/agents/extension-manager.md +229 -0
  56. package/templates/agents/git-companion.md +185 -0
  57. package/templates/agents/github-test-agent.md +321 -0
  58. package/templates/agents/railway-manager.md +179 -0
  59. package/templates/claude-plugins/PHASE2_COMPLETION.md +346 -0
  60. package/templates/claude-plugins/PLUGIN_PROPOSALS.md +1776 -0
  61. package/templates/claude-plugins/README.md +587 -0
  62. package/templates/claude-plugins/agents/code-reviewer.json +14 -0
  63. package/templates/claude-plugins/agents/debug-detective.json +15 -0
  64. package/templates/claude-plugins/agents/git-companion.json +14 -0
  65. package/templates/claude-plugins/blog-manager/.claude-plugin/plugin.json +8 -0
  66. package/templates/claude-plugins/blog-manager/commands/blog.md +691 -0
  67. package/templates/claude-plugins/golden-loop-monitor/.claude-plugin/plugin.json +8 -0
  68. package/templates/claude-plugins/golden-loop-monitor/commands/loop-status.md +434 -0
  69. package/templates/claude-plugins/learning-tracker/.claude-plugin/plugin.json +8 -0
  70. package/templates/claude-plugins/learning-tracker/commands/my-patterns.md +282 -0
  71. package/templates/claude-plugins/memory-lens/.claude-plugin/plugin.json +8 -0
  72. package/templates/claude-plugins/memory-lens/commands/memory-search.md +181 -0
  73. package/templates/claude-plugins/pattern-coach/.claude-plugin/plugin.json +8 -0
  74. package/templates/claude-plugins/pattern-coach/commands/forge.md +365 -0
  75. package/templates/claude-plugins/project-schema-validator/.claude-plugin/plugin.json +8 -0
  76. package/templates/claude-plugins/project-schema-validator/commands/validate-schema.md +582 -0
  77. package/templates/claude-plugins-admin/AGENT_TEAM_PROPOSALS.md +819 -0
  78. package/templates/claude-plugins-admin/README.md +446 -0
  79. package/templates/claude-plugins-admin/autonomous-admin-agent/.claude-plugin/plugin.json +8 -0
  80. package/templates/claude-plugins-admin/autonomous-admin-agent/commands/agent.md +595 -0
  81. package/templates/claude-plugins-admin/backend-agent/.claude-plugin/plugin.json +8 -0
  82. package/templates/claude-plugins-admin/backend-agent/commands/backend.md +798 -0
  83. package/templates/claude-plugins-admin/deploy-guardian/.claude-plugin/plugin.json +8 -0
  84. package/templates/claude-plugins-admin/deploy-guardian/commands/deploy.md +554 -0
  85. package/templates/claude-plugins-admin/frontend-agent/.claude-plugin/plugin.json +8 -0
  86. package/templates/claude-plugins-admin/frontend-agent/commands/frontend.md +881 -0
  87. package/templates/claude-plugins-admin/mcp-server-manager/.claude-plugin/plugin.json +8 -0
  88. package/templates/claude-plugins-admin/mcp-server-manager/commands/mcp.md +85 -0
  89. package/templates/claude-plugins-admin/memory-system-monitor/.claude-plugin/plugin.json +8 -0
  90. package/templates/claude-plugins-admin/memory-system-monitor/commands/memory-health.md +569 -0
  91. package/templates/claude-plugins-admin/qa-agent/.claude-plugin/plugin.json +8 -0
  92. package/templates/claude-plugins-admin/qa-agent/commands/qa.md +863 -0
  93. package/templates/claude-plugins-admin/tech-lead-agent/.claude-plugin/plugin.json +8 -0
  94. package/templates/claude-plugins-admin/tech-lead-agent/commands/lead.md +732 -0
  95. package/templates/commands/continue.md +47 -0
  96. package/templates/cursor-hooks/after-agent-response.sh +117 -0
  97. package/templates/cursor-hooks/before-submit-prompt.sh +419 -0
  98. package/templates/cursor-hooks/hooks.json +20 -0
  99. package/templates/cursor-hooks/lib/contract.sh +320 -0
  100. package/templates/cursor-hooks/stop.sh +75 -0
  101. package/templates/cursor-rules/ekkos-memory.md +187 -0
  102. package/templates/hooks/assistant-response.sh +96 -0
  103. package/templates/hooks/hooks.json +28 -0
  104. package/templates/hooks/lib/contract.sh +320 -0
  105. package/templates/hooks/lib/state.sh +158 -0
  106. package/templates/hooks/session-start.ps1 +41 -0
  107. package/templates/hooks/session-start.sh +318 -0
  108. package/templates/hooks/stop.ps1 +16 -0
  109. package/templates/hooks/stop.sh +989 -0
  110. package/templates/hooks/user-prompt-submit.ps1 +174 -0
  111. package/templates/hooks/user-prompt-submit.sh +587 -0
  112. package/templates/hooks-node/lib/state.js +187 -0
  113. package/templates/hooks-node/stop.js +416 -0
  114. package/templates/hooks-node/user-prompt-submit.js +337 -0
  115. package/templates/plan-template.md +306 -0
  116. package/templates/rules/00-hooks-contract.mdc +89 -0
  117. package/templates/rules/30-ekkos-core.mdc +188 -0
  118. package/templates/rules/31-ekkos-messages.mdc +78 -0
  119. package/templates/skills/continue/SKILL.md +169 -0
  120. package/templates/skills/ekkOS_Deep_Recall/Skill.md +282 -0
  121. package/templates/skills/ekkOS_Learn/Skill.md +265 -0
  122. package/templates/skills/ekkOS_Memory_First/Skill.md +206 -0
  123. package/templates/skills/ekkOS_Plan_Assist/Skill.md +302 -0
  124. package/templates/skills/ekkOS_Preferences/Skill.md +247 -0
  125. package/templates/skills/ekkOS_Reflect/Skill.md +257 -0
  126. package/templates/skills/ekkOS_Safety/Skill.md +265 -0
  127. package/templates/skills/ekkOS_Schema/Skill.md +251 -0
  128. package/templates/skills/ekkOS_Summary/Skill.md +257 -0
  129. package/templates/skills/ekkOS_Vault/Skill.md +287 -0
  130. package/templates/skills/permissions/Skill.md +322 -0
  131. package/templates/spec-template.md +159 -0
  132. package/templates/windsurf-hooks/before-submit-prompt.sh +238 -0
  133. package/templates/windsurf-hooks/hooks.json +10 -0
  134. package/templates/windsurf-hooks/lib/contract.sh +320 -0
  135. package/templates/windsurf-rules/ekkos-memory.md +129 -0
@@ -0,0 +1,691 @@
1
+ # Blog Manager
2
+
3
+ Editorial enforcement system for ekkOS blog. Create, research, and publish thought leadership content with built-in credibility guardrails.
4
+
5
+ ## Overview
6
+
7
+ **This is not a blog generator. It is an institutional credibility engine.**
8
+
9
+ The ekkOS blog exists to educate, not to sell. Every post must:
10
+ - Teach first, mention ekkOS last
11
+ - Ground claims in evidence or explicit qualifiers
12
+ - Acknowledge trade-offs and limitations
13
+ - Position ekkOS as one option, not the only option
14
+
15
+ ## Editorial Philosophy: "Teach First, Sell Last"
16
+
17
+ **Content Ratio:** 80% problem + solutions landscape, 15% practical how-to, 5% ekkOS mention
18
+
19
+ **The Rule:** ekkOS should only appear in a dedicated section titled "How we think about this at ekkOS_" — 3-6 sentences max, placed near the end.
20
+
21
+ ## Usage
22
+
23
+ ```bash
24
+ # Dashboard - see all posts and their status
25
+ /blog
26
+
27
+ # Create new post with guided workflow
28
+ /blog new [topic]
29
+
30
+ # Edit existing post
31
+ /blog edit [slug]
32
+
33
+ # Preview post with frontmatter validation
34
+ /blog preview [slug]
35
+
36
+ # Generate cover image with FLUX 2 Max
37
+ /blog image [slug]
38
+
39
+ # Schedule post for future publication
40
+ /blog schedule [slug] [date]
41
+
42
+ # Publish immediately
43
+ /blog publish [slug]
44
+
45
+ # SEO optimization (problem-oriented, not product-oriented)
46
+ /blog seo [slug]
47
+
48
+ # Research trending topics with Perplexity Sonar Pro
49
+ /blog research [topic]
50
+
51
+ # Generate topic ideas relevant to ekkOS mission
52
+ /blog ideas
53
+
54
+ # Editorial QA - salesiness score, banned words, truthfulness
55
+ /blog tonecheck [slug]
56
+
57
+ # Extract and audit all claims
58
+ /blog claims [slug]
59
+ ```
60
+
61
+ ---
62
+
63
+ ## Example - Dashboard (`/blog`)
64
+
65
+ ```
66
+ 📰 ekkOS Blog Dashboard
67
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
68
+
69
+ 📊 Status Overview:
70
+ Published: 7 posts
71
+ Scheduled: 0 posts
72
+ Drafts: 0 posts
73
+
74
+ ───────────────────────────────────────────────────────────────────
75
+ ✅ Published Posts (newest first):
76
+
77
+ 1. patterns-that-learn.md
78
+ "Patterns That Learn — How AI Memory Should Actually Work"
79
+ 📅 2026-01-14 · 📖 5 min · 🏷️ patterns, feedback-loops, learning
80
+
81
+ 2. instruction-hierarchy-problem.md
82
+ "The Instruction Hierarchy Problem in AI Safety"
83
+ 📅 2026-01-12 · 📖 6 min · 🏷️ safety, directives, architecture
84
+
85
+ 3. one-memory-five-tools.md
86
+ "One Memory, Five Tools — Why Platform Matters"
87
+ 📅 2026-01-10 · 📖 5 min · 🏷️ integration, tools, platform
88
+
89
+ 4. why-jailbreaks-work-and-how-persistent-memory-fixes-them.md
90
+ "Why Jailbreaks Work (And How Persistent Memory Fixes Them)"
91
+ 📅 2026-01-08 · 📖 4 min · 🏷️ security, jailbreaks, memory
92
+
93
+ 5. your-ai-forgot-again.md
94
+ "Your AI Forgot Again — The Context Window Crisis"
95
+ 📅 2026-01-06 · 📖 4 min · 🏷️ context, memory, limitations
96
+
97
+ 6. why-rag-isnt-memory.md
98
+ "Why RAG Isn't Memory"
99
+ 📅 2026-01-04 · 📖 5 min · 🏷️ RAG, memory, architecture
100
+
101
+ 7. welcome-to-ekkos-blog.md
102
+ "Welcome to the ekkOS Blog"
103
+ 📅 2026-01-02 · 📖 2 min · 🏷️ announcement
104
+
105
+ ───────────────────────────────────────────────────────────────────
106
+ Commands:
107
+ /blog new [topic] Create new post
108
+ /blog edit [slug] Edit existing post
109
+ /blog tonecheck [slug] Run editorial QA
110
+ /blog research [topic] Research with Perplexity
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Example - New Post (`/blog new`)
116
+
117
+ ```
118
+ /blog new "Why Most AI Memory Solutions Miss the Point"
119
+
120
+ 📝 New Post Workflow
121
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
122
+
123
+ Topic: "Why Most AI Memory Solutions Miss the Point"
124
+
125
+ ───────────────────────────────────────────────────────────────────
126
+ 📋 Step 1: Choose Template
127
+
128
+ Which template fits this topic?
129
+
130
+ [A] Pain Point Deep Dive (recommended)
131
+ • Why this problem exists (systems + incentives)
132
+ • Where teams usually get misled
133
+ • Failure modes and measurement
134
+ • 2-3 approaches with trade-offs
135
+ • "Where ekkOS_ fits (and where it doesn't)"
136
+ • Practical next steps checklist
137
+
138
+ [B] Field Guide
139
+ • Definitions
140
+ • Decision tree
141
+ • Implementation pitfalls
142
+ • Minimal reference architecture
143
+ • Validation plan
144
+ • Optional ekkOS_ sidebar
145
+
146
+ [C] Research Commentary
147
+ • What the source says (quoted minimally, cited)
148
+ • What it gets right
149
+ • What it misses in deployment reality
150
+ • Your framework or implementation interpretation
151
+ • ekkOS_ positioning as practical path
152
+
153
+ > A
154
+
155
+ ───────────────────────────────────────────────────────────────────
156
+ 📋 Step 2: Evidence vs Hypothesis
157
+
158
+ What can we claim WITH evidence?
159
+ (Benchmarks, citations, public docs, internal metrics with scope)
160
+
161
+ > Vector DBs don't track outcome success rates (cite LangChain docs)
162
+ > RAG systems retrieve but don't learn (cite industry surveys)
163
+ > Pattern-based retrieval improves over time (internal: 84% success rate)
164
+
165
+ What must be framed as HYPOTHESIS or EXPERIENCE?
166
+
167
+ > "In our deployments, we've seen..." (scope: 50+ users)
168
+ > "Teams often struggle with..." (experience, not universal)
169
+
170
+ ───────────────────────────────────────────────────────────────────
171
+ 📋 Step 3: Trade-offs
172
+
173
+ What are the top 3 trade-offs of ekkOS's approach?
174
+
175
+ > 1. Requires user adoption of pattern forging habits
176
+ > 2. Cold start problem - needs initial patterns to be useful
177
+ > 3. Verification adds latency vs pure retrieval
178
+
179
+ ───────────────────────────────────────────────────────────────────
180
+ 📋 Step 4: Where We Don't Fit
181
+
182
+ Write the "where ekkOS_ doesn't fit" paragraph:
183
+
184
+ > ekkOS_ is not the right choice if you need: (a) pure vector search
185
+ > without learning, (b) one-shot retrieval without feedback loops,
186
+ > or (c) systems where patterns don't repeat across sessions.
187
+
188
+ ───────────────────────────────────────────────────────────────────
189
+ 📋 Step 5: Generate Metadata
190
+
191
+ Title: "Why Most AI Memory Solutions Miss the Point"
192
+ Slug: why-most-ai-memory-solutions-miss-the-point
193
+ Description: "Vector databases store context. RAG retrieves it.
194
+ But neither learns from outcomes. Here's what's missing."
195
+ Tags: ["memory", "RAG", "vector-db", "learning", "architecture"]
196
+ Author: ekkOS Team
197
+
198
+ ───────────────────────────────────────────────────────────────────
199
+ ✅ Creating post...
200
+
201
+ Created: apps/blog/content/why-most-ai-memory-solutions-miss-the-point.md
202
+
203
+ 📝 Post created as DRAFT. Next steps:
204
+ /blog edit why-most-ai-memory-solutions-miss-the-point
205
+ /blog tonecheck why-most-ai-memory-solutions-miss-the-point
206
+ /blog image why-most-ai-memory-solutions-miss-the-point
207
+ /blog publish why-most-ai-memory-solutions-miss-the-point
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Example - Tone Check (`/blog tonecheck`)
213
+
214
+ ```
215
+ /blog tonecheck patterns-that-learn
216
+
217
+ 📝 Tone Check: patterns-that-learn.md
218
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
219
+
220
+ 📊 Salesiness Score: 8% ✅ (threshold: <15%)
221
+
222
+ Metrics:
223
+ • ekkOS mentions: 3 (all in final section) ✅
224
+ • First mention: line 142 (87% into post) ✅
225
+ • Product density: 2.1% ✅
226
+ • Banned words found: 0 ✅
227
+ • "Simply/Just" found: 0 ✅
228
+
229
+ ───────────────────────────────────────────────────────────────────
230
+ ✅ Truthfulness Checklist:
231
+
232
+ [✓] Numeric claims sourced
233
+ • "60-70% drop" → The Hacker News (cited line 38)
234
+
235
+ [✓] Comparisons qualified
236
+ • "in many setups" used appropriately
237
+
238
+ [✓] No unqualified roadmap claims
239
+
240
+ [✓] Has "Trade-offs" section (line 98)
241
+
242
+ ───────────────────────────────────────────────────────────────────
243
+ ⚠️ Warnings (advisory, not blocking):
244
+
245
+ • Line 45: "often fails" → Consider adding scope qualifier
246
+ • Consider adding explicit "Limitations" subsection
247
+
248
+ ───────────────────────────────────────────────────────────────────
249
+ 🚫 Blockers: None
250
+
251
+ Overall: PASS ✅
252
+
253
+ Ready to publish? Run: /blog publish patterns-that-learn
254
+ ```
255
+
256
+ ---
257
+
258
+ ## Example - Claims Audit (`/blog claims`)
259
+
260
+ ```
261
+ /blog claims patterns-that-learn
262
+
263
+ 📋 Claims Audit: patterns-that-learn.md
264
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
265
+
266
+ Found 7 claims (declarative, numeric, or comparative):
267
+
268
+ ───────────────────────────────────────────────────────────────────
269
+ 1. "False positives drop by 60-70% in first feedback cycle"
270
+
271
+ Type: OBSERVED ✅
272
+ Source: The Hacker News (cited line 38) ✅
273
+ Status: Valid
274
+
275
+ ───────────────────────────────────────────────────────────────────
276
+ 2. "Most knowledge bases don't track which solutions work"
277
+
278
+ Type: EXPERIENCE ⚠️
279
+ Qualifier: Missing scope
280
+
281
+ Suggested fix:
282
+ "In our analysis of 20+ knowledge base implementations,
283
+ most don't track which solutions actually work."
284
+
285
+ ───────────────────────────────────────────────────────────────────
286
+ 3. "ekkOS patterns surface more effective solutions over time"
287
+
288
+ Type: COMPARATIVE ⚠️
289
+ Issue: Needs conditions defined
290
+
291
+ Suggested fix:
292
+ "In systems with active feedback loops, ekkOS patterns
293
+ surface more effective solutions over time, as measured
294
+ by success rate improvements in our internal deployments."
295
+
296
+ ───────────────────────────────────────────────────────────────────
297
+ 4. "Pattern success rates improve with feedback"
298
+
299
+ Type: OBSERVED ✅
300
+ Source: Internal metrics (labeled line 112) ✅
301
+ Status: Valid
302
+
303
+ ───────────────────────────────────────────────────────────────────
304
+ 5. "Static knowledge bases don't learn"
305
+
306
+ Type: OBSERVED ✅
307
+ Source: Architectural definition (self-evident) ✅
308
+ Status: Valid
309
+
310
+ ───────────────────────────────────────────────────────────────────
311
+ 6. "The principle applies directly to development knowledge"
312
+
313
+ Type: EXPERIENCE ✅
314
+ Qualifier: "The principle" (referential, scoped) ✅
315
+ Status: Valid
316
+
317
+ ───────────────────────────────────────────────────────────────────
318
+ 7. "Without this, your knowledge base is just a filing cabinet"
319
+
320
+ Type: COMPARATIVE ✅
321
+ Qualifier: Metaphor, clearly rhetorical ✅
322
+ Status: Valid
323
+
324
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
325
+
326
+ Summary:
327
+ ✅ Valid: 5 claims
328
+ ⚠️ Needs qualifier: 2 claims
329
+ 🚫 Invalid: 0 claims
330
+
331
+ Actions Required:
332
+ [ ] Add scope to claim #2
333
+ [ ] Define conditions for claim #3
334
+ ```
335
+
336
+ ---
337
+
338
+ ## Example - Research (`/blog research`)
339
+
340
+ ```
341
+ /blog research "AI agent memory systems January 2026"
342
+
343
+ 📡 Researching with Perplexity Sonar Pro...
344
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
345
+
346
+ 🔍 Query: "AI agent memory systems developments January 2026"
347
+ 📅 Recency: Last 30 days
348
+
349
+ ───────────────────────────────────────────────────────────────────
350
+ 📰 Key Findings:
351
+
352
+ 1. **OpenAI Agents SDK Update** (Jan 5, 2026)
353
+ Native memory persistence announced for multi-turn agents
354
+ Source: [OpenAI Blog](https://openai.com/blog/agents-sdk-memory)
355
+
356
+ Gap: Still retrieval-only, no verified learning loop
357
+
358
+ 2. **LangChain Memory Module v0.3** (Jan 3, 2026)
359
+ New ConversationBufferMemory with persistence
360
+ Source: [LangChain Docs](https://docs.langchain.com/memory)
361
+
362
+ Gap: Storage without outcome tracking
363
+
364
+ 3. **Stanford HAI Paper: "Memory-Augmented Agents"** (Dec 28, 2025)
365
+ Research on episodic memory for LLM agents
366
+ Source: [arXiv](https://arxiv.org/abs/2512.xxxxx)
367
+
368
+ Insight: Validates feedback-driven pattern evolution
369
+
370
+ 4. **Hacker News Discussion: "RAG is Not Memory"** (Jan 2, 2026)
371
+ 200+ comments on memory vs retrieval distinction
372
+ Source: [HN Thread](https://news.ycombinator.com/item?id=xxxxx)
373
+
374
+ Angle: Community already understands the problem
375
+
376
+ ───────────────────────────────────────────────────────────────────
377
+ 💡 ekkOS Blog Angles (aligned with editorial stance):
378
+
379
+ 1. "What OpenAI's Agents SDK Gets Right About Memory (And What's Missing)"
380
+ Template: Research Commentary
381
+ Angle: Acknowledge progress, identify verification gap
382
+ ekkOS fit: Where feedback loops matter
383
+
384
+ 2. "The Stanford HAI Paper Validates What We've Been Building"
385
+ Template: Research Commentary
386
+ Angle: Academic support for pattern evolution
387
+ ekkOS fit: Implementation of their research direction
388
+
389
+ 3. "Why the HN Community is Right: RAG Really Isn't Memory"
390
+ Template: Pain Point Deep Dive
391
+ Angle: Expand on community insight with architecture depth
392
+ ekkOS fit: One approach to the problem they identified
393
+
394
+ ───────────────────────────────────────────────────────────────────
395
+ 📋 Claim Validation Opportunities:
396
+
397
+ Before writing, validate with Perplexity:
398
+ • "What benchmarks exist for agent memory systems?"
399
+ • "Criticisms of RAG-only approaches in production"
400
+ • "Failure modes of LangChain memory in long sessions"
401
+
402
+ Would you like to create a post on any of these topics?
403
+ ```
404
+
405
+ ---
406
+
407
+ ## Example - Topic Ideas (`/blog ideas`)
408
+
409
+ ```
410
+ /blog ideas
411
+
412
+ 💡 Topic Ideas for ekkOS Blog
413
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
414
+
415
+ Based on: ekkOS mission, current trends, content gaps
416
+
417
+ ───────────────────────────────────────────────────────────────────
418
+ 🔥 High Priority (trending + aligned):
419
+
420
+ 1. "The Verification Gap in AI Agent Memory"
421
+ Why: OpenAI/LangChain memory lacks outcome tracking
422
+ Template: Pain Point Deep Dive
423
+ Evidence available: Yes (public docs, benchmarks)
424
+
425
+ 2. "How Feedback Loops Change AI Knowledge Management"
426
+ Why: Academic research supports this direction
427
+ Template: Research Commentary
428
+ Evidence available: Yes (Stanford HAI paper)
429
+
430
+ 3. "What Enterprise Teams Get Wrong About RAG"
431
+ Why: Perplexity shows enterprise RAG struggles
432
+ Template: Field Guide
433
+ Evidence available: Yes (industry surveys)
434
+
435
+ ───────────────────────────────────────────────────────────────────
436
+ 📚 Educational (evergreen):
437
+
438
+ 4. "A Field Guide to AI Memory Architectures"
439
+ Why: Foundational content, drives organic search
440
+ Template: Field Guide
441
+ Evidence available: Yes (architectural definitions)
442
+
443
+ 5. "Measuring AI Agent Improvement Over Time"
444
+ Why: Practical how-to, unique to learning systems
445
+ Template: Field Guide
446
+ Evidence available: Internal metrics + methodology
447
+
448
+ ───────────────────────────────────────────────────────────────────
449
+ ⚠️ Avoid (too promotional or unsubstantiated):
450
+
451
+ • "Why ekkOS is Better Than LangChain" (comparative without conditions)
452
+ • "The Future of AI Memory" (aspirational, no evidence)
453
+ • "ekkOS Success Stories" (case study needs real customers)
454
+
455
+ ───────────────────────────────────────────────────────────────────
456
+ Ready to write? Run: /blog new "[topic]"
457
+ ```
458
+
459
+ ---
460
+
461
+ ## Example - SEO Optimization (`/blog seo`)
462
+
463
+ ```
464
+ /blog seo patterns-that-learn
465
+
466
+ 🔍 SEO Optimization: patterns-that-learn.md
467
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
468
+
469
+ Current metadata:
470
+ Title: "Patterns That Learn — How AI Memory Should Actually Work"
471
+ Description: "Static knowledge bases don't improve. Feedback
472
+ loops do. Here's how patterns can evolve based on whether they
473
+ actually solve problems."
474
+
475
+ ───────────────────────────────────────────────────────────────────
476
+ ✅ SEO Compliance Check:
477
+
478
+ [✓] Title is problem-oriented (not product-oriented)
479
+ [✓] Description promises learning (not product outcomes)
480
+ [✓] Tags are topical: patterns, feedback-loops, learning, architecture
481
+ [✓] No brand-heavy tags
482
+
483
+ ───────────────────────────────────────────────────────────────────
484
+ 💡 Optimization Suggestions:
485
+
486
+ Title alternatives (A/B test candidates):
487
+ • "Why Static Knowledge Bases Don't Learn (And What Does)"
488
+ • "Feedback Loops for AI Knowledge: A Practical Guide"
489
+ • "The Missing Piece in AI Knowledge Management"
490
+
491
+ Description alternatives:
492
+ • "Most knowledge bases just store information. They don't know
493
+ which solutions actually work. Here's how to fix that with
494
+ feedback-driven patterns."
495
+
496
+ Additional tags to consider:
497
+ • knowledge-management
498
+ • developer-tools
499
+ • ai-infrastructure
500
+
501
+ ───────────────────────────────────────────────────────────────────
502
+ 🚫 SEO Anti-patterns (avoided):
503
+
504
+ ✓ Not using: "ekkOS" in title
505
+ ✓ Not using: "best", "ultimate", "revolutionary"
506
+ ✓ Not promising: product outcomes in description
507
+
508
+ Update metadata? (yes/no)
509
+ ```
510
+
511
+ ---
512
+
513
+ ## Frontmatter Reference
514
+
515
+ All posts use this schema:
516
+
517
+ ```yaml
518
+ ---
519
+ title: "Post Title Here"
520
+ description: "SEO description under 160 characters. Promise learning, not product outcomes."
521
+ date: "2026-01-14T09:00:00-05:00" # ISO 8601, controls publication
522
+ author: "ekkOS Team"
523
+ tags: ["tag1", "tag2", "tag3"] # Topical, not brand-heavy
524
+ image: "/images/blog/slug-name.png"
525
+ imageAlt: "Descriptive alt text for accessibility"
526
+ draft: true # Optional - hides from public until removed
527
+ ---
528
+ ```
529
+
530
+ **Publication Logic:**
531
+ - `draft: true` → Hidden from public, visible at /preview
532
+ - `date > now` → Scheduled, hidden until date passes
533
+ - `draft: false && date <= now` → Published
534
+
535
+ ---
536
+
537
+ ## Banned Words and Constructions
538
+
539
+ **Hard ban (will fail tonecheck):**
540
+ - revolutionary
541
+ - game-changing
542
+ - unparalleled
543
+ - best-in-class
544
+ - world-class
545
+ - ultimate
546
+
547
+ **Soft ban (warnings):**
548
+ - "Simply..." (minimizes complexity)
549
+ - "Just..." (minimizes complexity)
550
+ - "Our solution is better than..." (unqualified comparative)
551
+
552
+ **Preferred language:**
553
+ - trade-offs
554
+ - failure modes
555
+ - constraints
556
+ - what to measure
557
+ - how to validate
558
+ - in practice
559
+ - in many setups
560
+ - depends on
561
+
562
+ ---
563
+
564
+ ## Claim Categories
565
+
566
+ Every claim in a post should fall into one of these categories:
567
+
568
+ | Category | Definition | Requirement |
569
+ |----------|------------|-------------|
570
+ | **Observed** | Backed by citation, benchmark, public doc | Must cite source |
571
+ | **Experience** | "We've seen..." or "In our deployments..." | Must include scope |
572
+ | **Aspirational** | Planned features or roadmap | Must label "planned" or "in progress" |
573
+ | **Comparative** | "X is better than Y" | Must define conditions |
574
+
575
+ **Rule:** If a paragraph includes a product claim, it must include either (a) a citation, (b) a concrete constraint, or (c) an explicit "depends on" qualifier.
576
+
577
+ ---
578
+
579
+ ## Competitor Mentions
580
+
581
+ When mentioning other tools (LangChain, LlamaIndex, etc.):
582
+
583
+ **Do:**
584
+ - Critique approaches, not teams
585
+ - Use "in many setups" and "often" rather than absolutes
586
+ - Acknowledge what they do well
587
+ - Identify gaps that appear at scale
588
+
589
+ **Don't:**
590
+ - Assert intent or competence of another team
591
+ - Make unqualified "better than" claims
592
+ - Use dismissive language
593
+
594
+ **Pattern:**
595
+ "Here's what [tool] is strong at; here's the gap that shows up at scale; here's one way to address it."
596
+
597
+ ---
598
+
599
+ ## The "ekkOS_ Promo with Class" Formula
600
+
601
+ Every post gets ONE small section with this structure:
602
+
603
+ **Section title:** "How we think about this at ekkOS_"
604
+
605
+ **Contents (3-6 sentences max):**
606
+ 1. One concrete capability
607
+ 2. One explicit constraint or trade-off
608
+ 3. One "how to evaluate" suggestion
609
+
610
+ **Example:**
611
+ > ### How we think about this at ekkOS_
612
+ >
613
+ > We address this by tracking outcome success rates for every pattern retrieved.
614
+ > When a pattern helps solve a problem, its weight increases; when it doesn't, it
615
+ > decreases. This requires users to close the feedback loop, which adds friction
616
+ > but enables genuine learning. If you're evaluating memory systems, ask: "Does
617
+ > this system know which of its suggestions actually worked?"
618
+
619
+ ---
620
+
621
+ ## Implementation Details
622
+
623
+ When this command runs, Claude will:
624
+
625
+ **For `/blog` (dashboard):**
626
+ 1. Use `Glob` to find all `*.md` files in `apps/blog/content/`
627
+ 2. Use `Read` to parse frontmatter from each file
628
+ 3. Categorize by status (published/scheduled/draft)
629
+ 4. Display sorted by date
630
+
631
+ **For `/blog new`:**
632
+ 1. Guide through template selection
633
+ 2. Ask evidence vs hypothesis questions
634
+ 3. Ask trade-offs questions
635
+ 4. Ask "where we don't fit" question
636
+ 5. Generate slug from title
637
+ 6. Use `Write` to create markdown file with frontmatter + template structure
638
+
639
+ **For `/blog tonecheck`:**
640
+ 1. Use `Read` to get post content
641
+ 2. Count ekkOS mentions and their positions
642
+ 3. Check for banned words (regex match)
643
+ 4. Verify truthfulness checklist items exist
644
+ 5. Calculate salesiness score
645
+ 6. Output advisory warnings + any blockers
646
+
647
+ **For `/blog claims`:**
648
+ 1. Use `Read` to get post content
649
+ 2. Extract declarative sentences, numeric claims, comparative phrases
650
+ 3. Categorize each claim (Observed/Experience/Aspirational/Comparative)
651
+ 4. Check for required citations or qualifiers
652
+ 5. Output checklist with suggested fixes
653
+
654
+ **For `/blog research`:**
655
+ 1. Call `mcp__perplexity__search` or `mcp__perplexity__reason` with topic
656
+ 2. Parse results for trends, citations, gaps
657
+ 3. Map findings to ekkOS blog angles
658
+ 4. Suggest claim validation queries
659
+
660
+ **For `/blog image`:**
661
+ 1. Read post to understand topic
662
+ 2. Generate FLUX 2 Max prompt following blog image style
663
+ 3. Run `apps/blog/scripts/generate-blog-images.mjs` or generate inline
664
+ 4. Save to `apps/blog/public/images/blog/`
665
+
666
+ ---
667
+
668
+ ## Requirements
669
+
670
+ - ekkOS blog infrastructure in `apps/blog/`
671
+ - Perplexity MCP server configured (for research commands)
672
+ - FLUX 2 Max via Vercel AI Gateway (for image generation)
673
+ - File system access via Claude Code tools
674
+
675
+ ---
676
+
677
+ ## Content Location
678
+
679
+ - Posts: `apps/blog/content/*.md`
680
+ - Images: `apps/blog/public/images/blog/`
681
+ - Preview: Visit `/preview` route in running blog
682
+
683
+ ---
684
+
685
+ ## Quality Standards
686
+
687
+ This is an editorial enforcement system. The goal is thought leadership that builds credibility, not marketing copy that generates skepticism.
688
+
689
+ **The test:** Would a senior engineer at a competitor read this and think "that's a fair and useful analysis" rather than "that's just marketing"?
690
+
691
+ If yes, publish. If no, revise.
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "ekkos-golden-loop-monitor",
3
+ "description": "Monitor and troubleshoot the Golden Loop (RETRIEVE → APPLY → MEASURE → LEARN). Ensure ekkOS is working correctly for your codebase.",
4
+ "author": {
5
+ "name": "ekkOS",
6
+ "email": "support@ekkos.dev"
7
+ }
8
+ }