@ekkos/cli 1.3.1 → 1.3.5

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 (131) hide show
  1. package/dist/capture/jsonl-rewriter.d.ts +1 -1
  2. package/dist/capture/jsonl-rewriter.js +3 -3
  3. package/dist/capture/transcript-repair.d.ts +2 -2
  4. package/dist/capture/transcript-repair.js +2 -2
  5. package/dist/commands/claw.d.ts +13 -0
  6. package/dist/commands/claw.js +253 -0
  7. package/dist/commands/dashboard.js +742 -118
  8. package/dist/commands/doctor.d.ts +3 -3
  9. package/dist/commands/doctor.js +6 -79
  10. package/dist/commands/gemini.d.ts +19 -0
  11. package/dist/commands/gemini.js +193 -0
  12. package/dist/commands/init.d.ts +1 -0
  13. package/dist/commands/init.js +56 -41
  14. package/dist/commands/run.d.ts +0 -1
  15. package/dist/commands/run.js +288 -263
  16. package/dist/commands/scan.d.ts +21 -0
  17. package/dist/commands/scan.js +386 -0
  18. package/dist/commands/status.d.ts +4 -1
  19. package/dist/commands/status.js +165 -27
  20. package/dist/commands/swarm-dashboard.js +156 -28
  21. package/dist/commands/swarm.d.ts +1 -1
  22. package/dist/commands/swarm.js +1 -1
  23. package/dist/commands/test-claude.d.ts +2 -2
  24. package/dist/commands/test-claude.js +3 -3
  25. package/dist/deploy/index.d.ts +0 -2
  26. package/dist/deploy/index.js +0 -2
  27. package/dist/deploy/settings.d.ts +6 -5
  28. package/dist/deploy/settings.js +64 -16
  29. package/dist/deploy/skills.js +1 -2
  30. package/dist/index.js +86 -96
  31. package/dist/lib/usage-parser.d.ts +1 -1
  32. package/dist/lib/usage-parser.js +9 -6
  33. package/dist/local/index.d.ts +14 -0
  34. package/dist/local/index.js +28 -0
  35. package/dist/local/local-embeddings.d.ts +49 -0
  36. package/dist/local/local-embeddings.js +232 -0
  37. package/dist/local/offline-fallback.d.ts +44 -0
  38. package/dist/local/offline-fallback.js +159 -0
  39. package/dist/local/sqlite-store.d.ts +126 -0
  40. package/dist/local/sqlite-store.js +393 -0
  41. package/dist/local/sync-engine.d.ts +42 -0
  42. package/dist/local/sync-engine.js +223 -0
  43. package/dist/utils/platform.d.ts +5 -1
  44. package/dist/utils/platform.js +24 -4
  45. package/dist/utils/proxy-url.d.ts +21 -0
  46. package/dist/utils/proxy-url.js +34 -0
  47. package/dist/utils/state.d.ts +1 -1
  48. package/dist/utils/state.js +11 -3
  49. package/dist/utils/templates.js +1 -1
  50. package/package.json +11 -4
  51. package/templates/CLAUDE.md +49 -107
  52. package/dist/agent/daemon.d.ts +0 -130
  53. package/dist/agent/daemon.js +0 -606
  54. package/dist/agent/health-check.d.ts +0 -35
  55. package/dist/agent/health-check.js +0 -243
  56. package/dist/agent/pty-runner.d.ts +0 -53
  57. package/dist/agent/pty-runner.js +0 -190
  58. package/dist/commands/agent.d.ts +0 -50
  59. package/dist/commands/agent.js +0 -544
  60. package/dist/commands/setup-remote.d.ts +0 -20
  61. package/dist/commands/setup-remote.js +0 -582
  62. package/dist/utils/verify-remote-terminal.d.ts +0 -10
  63. package/dist/utils/verify-remote-terminal.js +0 -415
  64. package/templates/README.md +0 -378
  65. package/templates/claude-plugins/PHASE2_COMPLETION.md +0 -346
  66. package/templates/claude-plugins/PLUGIN_PROPOSALS.md +0 -1776
  67. package/templates/claude-plugins/README.md +0 -587
  68. package/templates/claude-plugins/agents/code-reviewer.json +0 -14
  69. package/templates/claude-plugins/agents/debug-detective.json +0 -15
  70. package/templates/claude-plugins/agents/git-companion.json +0 -14
  71. package/templates/claude-plugins/blog-manager/.claude-plugin/plugin.json +0 -8
  72. package/templates/claude-plugins/blog-manager/commands/blog.md +0 -691
  73. package/templates/claude-plugins/golden-loop-monitor/.claude-plugin/plugin.json +0 -8
  74. package/templates/claude-plugins/golden-loop-monitor/commands/loop-status.md +0 -434
  75. package/templates/claude-plugins/learning-tracker/.claude-plugin/plugin.json +0 -8
  76. package/templates/claude-plugins/learning-tracker/commands/my-patterns.md +0 -282
  77. package/templates/claude-plugins/memory-lens/.claude-plugin/plugin.json +0 -8
  78. package/templates/claude-plugins/memory-lens/commands/memory-search.md +0 -181
  79. package/templates/claude-plugins/pattern-coach/.claude-plugin/plugin.json +0 -8
  80. package/templates/claude-plugins/pattern-coach/commands/forge.md +0 -365
  81. package/templates/claude-plugins/project-schema-validator/.claude-plugin/plugin.json +0 -8
  82. package/templates/claude-plugins/project-schema-validator/commands/validate-schema.md +0 -582
  83. package/templates/claude-plugins-admin/AGENT_TEAM_PROPOSALS.md +0 -819
  84. package/templates/claude-plugins-admin/README.md +0 -446
  85. package/templates/claude-plugins-admin/autonomous-admin-agent/.claude-plugin/plugin.json +0 -8
  86. package/templates/claude-plugins-admin/autonomous-admin-agent/commands/agent.md +0 -595
  87. package/templates/claude-plugins-admin/backend-agent/.claude-plugin/plugin.json +0 -8
  88. package/templates/claude-plugins-admin/backend-agent/commands/backend.md +0 -798
  89. package/templates/claude-plugins-admin/deploy-guardian/.claude-plugin/plugin.json +0 -8
  90. package/templates/claude-plugins-admin/deploy-guardian/commands/deploy.md +0 -554
  91. package/templates/claude-plugins-admin/frontend-agent/.claude-plugin/plugin.json +0 -8
  92. package/templates/claude-plugins-admin/frontend-agent/commands/frontend.md +0 -881
  93. package/templates/claude-plugins-admin/mcp-server-manager/.claude-plugin/plugin.json +0 -8
  94. package/templates/claude-plugins-admin/mcp-server-manager/commands/mcp.md +0 -85
  95. package/templates/claude-plugins-admin/memory-system-monitor/.claude-plugin/plugin.json +0 -8
  96. package/templates/claude-plugins-admin/memory-system-monitor/commands/memory-health.md +0 -569
  97. package/templates/claude-plugins-admin/qa-agent/.claude-plugin/plugin.json +0 -8
  98. package/templates/claude-plugins-admin/qa-agent/commands/qa.md +0 -863
  99. package/templates/claude-plugins-admin/tech-lead-agent/.claude-plugin/plugin.json +0 -8
  100. package/templates/claude-plugins-admin/tech-lead-agent/commands/lead.md +0 -732
  101. package/templates/commands/continue.md +0 -47
  102. package/templates/cursor-rules/ekkos-memory.md +0 -127
  103. package/templates/ekkos-manifest.json +0 -223
  104. package/templates/helpers/json-parse.cjs +0 -101
  105. package/templates/hooks-node/lib/state.js +0 -187
  106. package/templates/hooks-node/stop.js +0 -416
  107. package/templates/hooks-node/user-prompt-submit.js +0 -337
  108. package/templates/plan-template.md +0 -306
  109. package/templates/rules/00-hooks-contract.mdc +0 -89
  110. package/templates/rules/30-ekkos-core.mdc +0 -188
  111. package/templates/rules/31-ekkos-messages.mdc +0 -78
  112. package/templates/shared/hooks-enabled.json +0 -22
  113. package/templates/shared/session-words.json +0 -45
  114. package/templates/skills/ekkOS_Deep_Recall/Skill.md +0 -282
  115. package/templates/skills/ekkOS_Learn/Skill.md +0 -265
  116. package/templates/skills/ekkOS_Memory_First/Skill.md +0 -206
  117. package/templates/skills/ekkOS_Plan_Assist/Skill.md +0 -302
  118. package/templates/skills/ekkOS_Preferences/Skill.md +0 -247
  119. package/templates/skills/ekkOS_Reflect/Skill.md +0 -257
  120. package/templates/skills/ekkOS_Safety/Skill.md +0 -265
  121. package/templates/skills/ekkOS_Schema/Skill.md +0 -251
  122. package/templates/skills/ekkOS_Summary/Skill.md +0 -257
  123. package/templates/spec-template.md +0 -159
  124. package/templates/windsurf-rules/ekkos-memory.md +0 -127
  125. package/templates/windsurf-skills/README.md +0 -58
  126. package/templates/windsurf-skills/ekkos-continue/SKILL.md +0 -81
  127. package/templates/windsurf-skills/ekkos-golden-loop/SKILL.md +0 -225
  128. package/templates/windsurf-skills/ekkos-insights/SKILL.md +0 -138
  129. package/templates/windsurf-skills/ekkos-recall/SKILL.md +0 -96
  130. package/templates/windsurf-skills/ekkos-safety/SKILL.md +0 -89
  131. package/templates/windsurf-skills/ekkos-vault/SKILL.md +0 -86
@@ -1,302 +0,0 @@
1
- ---
2
- name: ekkOS_Plan_Assist
3
- description: Create structured plans for complex tasks. Activate when the user asks to implement a feature, build something with multiple steps, needs a project roadmap, or when a task has 3 or more distinct steps. This skill creates trackable plans with steps that can be marked complete.
4
- allowed-tools:
5
- - mcp__ekkos-memory__ekkOS_Plan
6
- - mcp__ekkos-memory__ekkOS_Plans
7
- - mcp__ekkos-memory__ekkOS_PlanStatus
8
- - mcp__ekkos-memory__ekkOS_PlanStep
9
- - mcp__ekkos-memory__ekkOS_Generate
10
- - mcp__ekkos-memory__ekkOS_Templates
11
- - mcp__ekkos-memory__ekkOS_FromTemplate
12
- - mcp__ekkos-memory__ekkOS_SaveTemplate
13
- - mcp__ekkos-memory__ekkOS_Playbook
14
- - mcp__ekkos-memory__ekkOS_Search
15
- ---
16
-
17
- # ekkOS_Plan_Assist
18
-
19
- You are augmented with **ekkOS_ memory** - and you can create, track, and manage structured implementation plans.
20
-
21
- ## Why This Skill Exists
22
-
23
- Complex tasks need structure:
24
- - Multi-step implementations get lost without tracking
25
- - Progress should persist across sessions
26
- - Similar tasks can reuse templates
27
-
28
- This skill creates persistent, trackable plans.
29
-
30
- ## When To Activate
31
-
32
- This skill should trigger when:
33
-
34
- | Trigger | Example |
35
- |---------|---------|
36
- | "Implement X" | "Implement user authentication" |
37
- | "Build X" | "Build a payment integration" |
38
- | "Help me with X" (complex) | "Help me refactor this service" |
39
- | "Create a plan for X" | Explicit request |
40
- | 3+ step task | Any task with multiple phases |
41
- | "What's the roadmap?" | Needs structured approach |
42
-
43
- ## Instructions
44
-
45
- ### Step 1: Check for Existing Plans
46
-
47
- ```
48
- ekkOS_Plans({
49
- status: "in_progress"
50
- })
51
- ```
52
-
53
- If relevant plan exists, offer to continue it.
54
-
55
- ### Step 2: Check for Templates
56
-
57
- ```
58
- ekkOS_Templates({
59
- category: "auth" // or relevant category
60
- })
61
- ```
62
-
63
- If template exists, use it as starting point.
64
-
65
- ### Step 3: Create the Plan
66
-
67
- ```
68
- ekkOS_Plan({
69
- title: "Implement JWT Authentication",
70
- steps: [
71
- { label: "Set up auth dependencies", description: "Install jwt, bcrypt packages" },
72
- { label: "Create user model", description: "Database schema for users" },
73
- { label: "Implement registration", description: "POST /auth/register endpoint" },
74
- { label: "Implement login", description: "POST /auth/login with JWT generation" },
75
- { label: "Add middleware", description: "JWT verification middleware" },
76
- { label: "Protect routes", description: "Apply middleware to protected endpoints" },
77
- { label: "Add refresh tokens", description: "Token refresh logic" },
78
- { label: "Write tests", description: "Auth flow integration tests" }
79
- ],
80
- context: "Building auth for the API project"
81
- })
82
- ```
83
-
84
- ### Step 4: Display the Plan
85
-
86
- ```
87
- 📋 Plan: Implement JWT Authentication
88
-
89
- □ Step 1: Set up auth dependencies
90
- Install jwt, bcrypt packages
91
-
92
- □ Step 2: Create user model
93
- Database schema for users
94
-
95
- □ Step 3: Implement registration
96
- POST /auth/register endpoint
97
-
98
- ... (remaining steps)
99
-
100
- Ready to start with Step 1?
101
- ```
102
-
103
- ### Step 5: Track Progress
104
-
105
- As you complete steps:
106
-
107
- ```
108
- ekkOS_PlanStep({
109
- plan_id: "plan-uuid",
110
- step_index: 0,
111
- completed: true
112
- })
113
- ```
114
-
115
- Updated display:
116
- ```
117
- 📋 Plan: Implement JWT Authentication [2/8 complete]
118
-
119
- ✓ Step 1: Set up auth dependencies
120
- ✓ Step 2: Create user model
121
- → Step 3: Implement registration (current)
122
- □ Step 4: Implement login
123
- ...
124
- ```
125
-
126
- ## Example Scenarios
127
-
128
- ### Scenario 1: New Feature
129
- ```
130
- User: "Help me implement a payment system"
131
-
132
- You: *Check templates*
133
- ekkOS_Templates({ category: "payments" })
134
- → Template found: "Stripe Integration"
135
-
136
- "I found a template for Stripe integration. Should I:
137
- 1. Use this template as starting point
138
- 2. Create a custom plan
139
- 3. See the template details first"
140
-
141
- User: "Use the template"
142
-
143
- You: ekkOS_FromTemplate({
144
- template_id: "stripe-template-id",
145
- context: "E-commerce payment integration"
146
- })
147
-
148
- "📋 Plan created from template:
149
-
150
- □ Configure Stripe SDK
151
- □ Create payment intent endpoint
152
- □ Build checkout UI component
153
- □ Handle webhooks
154
- □ Implement refund logic
155
- □ Add payment history
156
- □ Write tests
157
-
158
- Starting with Stripe SDK configuration..."
159
- ```
160
-
161
- ### Scenario 2: Continue Existing Plan
162
- ```
163
- User: "What were we working on?"
164
-
165
- You: ekkOS_Plans({ status: "in_progress" })
166
-
167
- "📋 You have an active plan:
168
-
169
- **API Refactoring** [4/7 complete]
170
- ✓ Extract user service
171
- ✓ Extract auth service
172
- ✓ Extract profile service
173
- ✓ Update imports
174
- → Create service interfaces (current)
175
- □ Add dependency injection
176
- □ Write integration tests
177
-
178
- Continue with service interfaces?"
179
- ```
180
-
181
- ### Scenario 3: Plan from Scratch
182
- ```
183
- User: "Build a notification system"
184
-
185
- You: ekkOS_Generate({
186
- context: "Build real-time notification system with push, email, and in-app"
187
- })
188
-
189
- "I'll create a plan:
190
-
191
- 📋 Plan: Notification System
192
-
193
- □ Step 1: Design notification schema
194
- Database model for notifications
195
-
196
- □ Step 2: Create notification service
197
- Core logic for sending notifications
198
-
199
- □ Step 3: Implement in-app notifications
200
- WebSocket-based real-time delivery
201
-
202
- □ Step 4: Add email notifications
203
- Email template and delivery
204
-
205
- □ Step 5: Add push notifications
206
- FCM/APNs integration
207
-
208
- □ Step 6: Build notification preferences
209
- User settings for channels
210
-
211
- □ Step 7: Create notification center UI
212
- List and manage notifications
213
-
214
- □ Step 8: Write tests
215
- Unit and integration tests
216
-
217
- Should I start with Step 1?"
218
- ```
219
-
220
- ### Scenario 4: Save as Template
221
- ```
222
- *After completing a plan successfully*
223
-
224
- You: "This plan worked well. Save it as a template for future use?
225
-
226
- ekkOS_SaveTemplate({
227
- plan_id: "completed-plan-id",
228
- category: "notifications"
229
- })
230
-
231
- ✅ Template saved: 'Notification System'
232
- Category: notifications
233
-
234
- Next time you build notifications, I can use this as a starting point."
235
- ```
236
-
237
- ## Plan Status Flow
238
-
239
- ```
240
- draft → in_progress → completed
241
- ↘ archived (if abandoned)
242
- ```
243
-
244
- Update status:
245
- ```
246
- ekkOS_PlanStatus({
247
- plan_id: "...",
248
- status: "completed" // or "archived"
249
- })
250
- ```
251
-
252
- ## Playbooks (Ordered Pattern Sequences)
253
-
254
- For workflows that use specific patterns in order:
255
-
256
- ```
257
- ekkOS_Playbook({
258
- action: "create",
259
- name: "API Endpoint Creation",
260
- pattern_ids: [
261
- "route-pattern-id",
262
- "validation-pattern-id",
263
- "error-handling-pattern-id",
264
- "test-pattern-id"
265
- ],
266
- description: "Standard flow for adding new API endpoints"
267
- })
268
- ```
269
-
270
- Then use:
271
- ```
272
- ekkOS_Playbook({
273
- action: "get",
274
- name: "API Endpoint Creation"
275
- })
276
- ```
277
-
278
- ## Integration with Patterns
279
-
280
- Search for patterns relevant to plan steps:
281
-
282
- ```
283
- ekkOS_Search({
284
- query: "JWT authentication implementation",
285
- sources: ["patterns", "procedural"]
286
- })
287
- ```
288
-
289
- Link patterns to plan steps for richer context.
290
-
291
- ## Success Metrics
292
-
293
- You're using this skill correctly when:
294
- - Complex tasks are broken into steps
295
- - Progress persists across sessions
296
- - Templates speed up common tasks
297
- - Users can see their progress visually
298
- - Plans actually get completed (not abandoned)
299
-
300
- ---
301
-
302
- **Mantra**: More than 3 steps? Make a plan. Track it. Complete it.
@@ -1,247 +0,0 @@
1
- ---
2
- name: ekkOS_Preferences
3
- description: Capture user preferences as permanent directives. Activate when the user says "always", "never", "I prefer", "I like", "don't", "avoid", expresses a coding style preference, states a workflow requirement, or corrects you about how they want things done. These become rules that apply to all future sessions.
4
- allowed-tools:
5
- - mcp__ekkos-memory__ekkOS_Directive
6
- - mcp__ekkos-memory__ekkOS_Search
7
- ---
8
-
9
- # ekkOS_Preferences
10
-
11
- You are augmented with **ekkOS_ memory** - and your job is to remember what this user PREFERS across all sessions.
12
-
13
- ## Why This Skill Exists
14
-
15
- The SessionStart hook loads existing directives. This skill **CREATES** new directives when the user expresses preferences mid-conversation.
16
-
17
- **Directives are higher priority than patterns.** When a directive conflicts with a pattern, the directive wins.
18
-
19
- ## Directive Types
20
-
21
- | Type | Meaning | Trigger Words |
22
- |------|---------|---------------|
23
- | **MUST** | Always do this | "always", "make sure to", "you must", "required" |
24
- | **NEVER** | Never do this | "never", "don't ever", "stop doing", "forbidden" |
25
- | **PREFER** | Do this when possible | "I prefer", "I like", "better if", "ideally" |
26
- | **AVOID** | Try not to do this | "avoid", "try not to", "don't usually", "minimize" |
27
-
28
- ## When To Activate
29
-
30
- This skill should trigger when you detect:
31
-
32
- | Trigger | Example | Directive Type |
33
- |---------|---------|----------------|
34
- | "Always..." | "Always use TypeScript strict mode" | MUST |
35
- | "Never..." | "Never use var, only let/const" | NEVER |
36
- | "I prefer..." | "I prefer functional components" | PREFER |
37
- | "I like..." | "I like tabs over spaces" | PREFER |
38
- | "Don't..." | "Don't add comments to obvious code" | AVOID |
39
- | "Avoid..." | "Avoid inline styles" | AVOID |
40
- | Style correction | "No, use snake_case for this project" | MUST |
41
- | Workflow requirement | "Run tests before every commit" | MUST |
42
-
43
- ## Instructions
44
-
45
- ### Step 1: Detect Preference Statement
46
-
47
- Listen for language that indicates a preference:
48
- - Explicit: "I always want...", "Never do...", "I prefer..."
49
- - Implicit: "That's not how I like it", "Actually, use X instead"
50
- - Corrections: "No, do it this way", "Wrong style"
51
-
52
- ### Step 2: Classify the Directive Type
53
-
54
- ```
55
- "Always X" → MUST
56
- "Never X" → NEVER
57
- "I prefer X" → PREFER
58
- "Try to avoid X" → AVOID
59
- "Don't X unless..." → AVOID (with condition)
60
- "You must always X" → MUST (priority: high)
61
- ```
62
-
63
- ### Step 3: Create the Directive
64
-
65
- ```
66
- ekkOS_Directive({
67
- type: "MUST", // MUST | NEVER | PREFER | AVOID
68
- rule: "Use TypeScript strict mode", // The actual rule
69
- scope: "global", // "global" | "project" | specific scope
70
- reason: "User preference for type safety", // Optional context
71
- priority: 50 // 1-100, higher = more important
72
- })
73
- ```
74
-
75
- ### Step 4: Confirm to User
76
-
77
- ```
78
- 🧠 Preference saved: [MUST] Use TypeScript strict mode
79
- This will apply to all future sessions.
80
- ```
81
-
82
- ## Priority Guidelines
83
-
84
- | Priority | When to Use |
85
- |----------|-------------|
86
- | 80-100 | Critical rules, security-related, strong user insistence |
87
- | 50-79 | Standard preferences, coding style |
88
- | 20-49 | Nice-to-haves, soft preferences |
89
- | 1-19 | Weak suggestions, easily overridable |
90
-
91
- ## Scope Guidelines
92
-
93
- | Scope | When to Use |
94
- |-------|-------------|
95
- | `"global"` | Applies everywhere (general preferences) |
96
- | `"project"` | Only this repository (project conventions) |
97
- | `"typescript"` | Only TypeScript files |
98
- | `"python"` | Only Python files |
99
- | `"frontend"` | Frontend code only |
100
- | `"backend"` | Backend code only |
101
-
102
- ## Example Scenarios
103
-
104
- ### Scenario 1: Explicit Preference
105
- ```
106
- User: "I always want you to use arrow functions instead of function declarations"
107
-
108
- You: "Understood! I'll save this preference.
109
-
110
- ekkOS_Directive({
111
- type: "PREFER",
112
- rule: "Use arrow functions instead of function declarations",
113
- scope: "global",
114
- reason: "User prefers arrow function syntax"
115
- })
116
-
117
- 🧠 Preference saved: [PREFER] Use arrow functions instead of function declarations
118
- ```
119
-
120
- ### Scenario 2: Strong Prohibition
121
- ```
122
- User: "NEVER commit directly to main. Always use feature branches."
123
-
124
- You: "Absolutely, that's a critical workflow rule.
125
-
126
- ekkOS_Directive({
127
- type: "NEVER",
128
- rule: "Commit directly to main branch",
129
- scope: "global",
130
- priority: 90,
131
- reason: "Protected branch workflow - user requirement"
132
- })
133
-
134
- ekkOS_Directive({
135
- type: "MUST",
136
- rule: "Use feature branches for all changes",
137
- scope: "global",
138
- priority: 90,
139
- reason: "Protected branch workflow - user requirement"
140
- })
141
-
142
- 🧠 Saved two directives:
143
- [NEVER] Commit directly to main branch (priority: 90)
144
- [MUST] Use feature branches for all changes (priority: 90)
145
- ```
146
-
147
- ### Scenario 3: Style Correction
148
- ```
149
- User: "No, in this project we use PascalCase for component files, not kebab-case"
150
-
151
- You: "Got it, I'll remember that for this project.
152
-
153
- ekkOS_Directive({
154
- type: "MUST",
155
- rule: "Use PascalCase for React component filenames",
156
- scope: "project",
157
- reason: "Project naming convention"
158
- })
159
-
160
- 🧠 Project preference saved: [MUST] Use PascalCase for React component filenames
161
- ```
162
-
163
- ### Scenario 4: Soft Preference
164
- ```
165
- User: "I kind of prefer shorter variable names when the context is clear"
166
-
167
- You: "Noted as a soft preference.
168
-
169
- ekkOS_Directive({
170
- type: "PREFER",
171
- rule: "Use concise variable names when context is clear",
172
- scope: "global",
173
- priority: 30,
174
- reason: "User prefers brevity over verbosity in obvious contexts"
175
- })
176
-
177
- 🧠 Preference saved: [PREFER] Use concise variable names when context is clear
178
- ```
179
-
180
- ### Scenario 5: Avoiding Something
181
- ```
182
- User: "Try to avoid using any type in TypeScript"
183
-
184
- You: "I'll make a note to avoid 'any'.
185
-
186
- ekkOS_Directive({
187
- type: "AVOID",
188
- rule: "Using 'any' type in TypeScript",
189
- scope: "typescript",
190
- reason: "User wants strict typing"
191
- })
192
-
193
- 🧠 Preference saved: [AVOID] Using 'any' type in TypeScript
194
- ```
195
-
196
- ## What NOT to Capture
197
-
198
- Don't create directives for:
199
- - One-time requests ("make this function shorter")
200
- - Context-specific instructions ("for this file, use X")
201
- - Questions ("should I use tabs or spaces?")
202
- - Unclear preferences ("maybe we should...")
203
-
204
- Only capture clear, generalizable preferences that should apply across sessions.
205
-
206
- ## Checking Before Creating
207
-
208
- Before creating a new directive, optionally check if one already exists:
209
-
210
- ```
211
- ekkOS_Search({
212
- query: "variable naming convention",
213
- sources: ["directives"]
214
- })
215
- ```
216
-
217
- If a conflicting directive exists, ask the user:
218
- ```
219
- "You previously said [PREFER] camelCase. Do you want to change this to PascalCase?"
220
- ```
221
-
222
- ## Integration with Patterns
223
-
224
- Directives override patterns when there's a conflict:
225
-
226
- ```
227
- Pattern: "Use semicolons in JavaScript"
228
- Directive: [NEVER] Use semicolons in JavaScript
229
-
230
- → Directive wins. No semicolons.
231
- ```
232
-
233
- This is why capturing directives is important - they ensure patterns follow user preferences.
234
-
235
- ## Success Metrics
236
-
237
- You're using this skill correctly when:
238
- - You capture preferences WITHOUT being asked to
239
- - You use the right directive type (MUST/NEVER/PREFER/AVOID)
240
- - You set appropriate scope (global vs project)
241
- - You confirm saves with the 🧠 indicator
242
- - User corrections become permanent rules
243
- - Future sessions automatically apply these preferences
244
-
245
- ---
246
-
247
- **Mantra**: User said "always"? Save it. User said "never"? Save it. User corrected you? Save the correction.