@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.
- package/dist/capture/jsonl-rewriter.d.ts +1 -1
- package/dist/capture/jsonl-rewriter.js +3 -3
- package/dist/capture/transcript-repair.d.ts +2 -2
- package/dist/capture/transcript-repair.js +2 -2
- package/dist/commands/claw.d.ts +13 -0
- package/dist/commands/claw.js +253 -0
- package/dist/commands/dashboard.js +742 -118
- package/dist/commands/doctor.d.ts +3 -3
- package/dist/commands/doctor.js +6 -79
- package/dist/commands/gemini.d.ts +19 -0
- package/dist/commands/gemini.js +193 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.js +56 -41
- package/dist/commands/run.d.ts +0 -1
- package/dist/commands/run.js +288 -263
- package/dist/commands/scan.d.ts +21 -0
- package/dist/commands/scan.js +386 -0
- package/dist/commands/status.d.ts +4 -1
- package/dist/commands/status.js +165 -27
- package/dist/commands/swarm-dashboard.js +156 -28
- package/dist/commands/swarm.d.ts +1 -1
- package/dist/commands/swarm.js +1 -1
- package/dist/commands/test-claude.d.ts +2 -2
- package/dist/commands/test-claude.js +3 -3
- package/dist/deploy/index.d.ts +0 -2
- package/dist/deploy/index.js +0 -2
- package/dist/deploy/settings.d.ts +6 -5
- package/dist/deploy/settings.js +64 -16
- package/dist/deploy/skills.js +1 -2
- package/dist/index.js +86 -96
- package/dist/lib/usage-parser.d.ts +1 -1
- package/dist/lib/usage-parser.js +9 -6
- package/dist/local/index.d.ts +14 -0
- package/dist/local/index.js +28 -0
- package/dist/local/local-embeddings.d.ts +49 -0
- package/dist/local/local-embeddings.js +232 -0
- package/dist/local/offline-fallback.d.ts +44 -0
- package/dist/local/offline-fallback.js +159 -0
- package/dist/local/sqlite-store.d.ts +126 -0
- package/dist/local/sqlite-store.js +393 -0
- package/dist/local/sync-engine.d.ts +42 -0
- package/dist/local/sync-engine.js +223 -0
- package/dist/utils/platform.d.ts +5 -1
- package/dist/utils/platform.js +24 -4
- package/dist/utils/proxy-url.d.ts +21 -0
- package/dist/utils/proxy-url.js +34 -0
- package/dist/utils/state.d.ts +1 -1
- package/dist/utils/state.js +11 -3
- package/dist/utils/templates.js +1 -1
- package/package.json +11 -4
- package/templates/CLAUDE.md +49 -107
- package/dist/agent/daemon.d.ts +0 -130
- package/dist/agent/daemon.js +0 -606
- package/dist/agent/health-check.d.ts +0 -35
- package/dist/agent/health-check.js +0 -243
- package/dist/agent/pty-runner.d.ts +0 -53
- package/dist/agent/pty-runner.js +0 -190
- package/dist/commands/agent.d.ts +0 -50
- package/dist/commands/agent.js +0 -544
- package/dist/commands/setup-remote.d.ts +0 -20
- package/dist/commands/setup-remote.js +0 -582
- package/dist/utils/verify-remote-terminal.d.ts +0 -10
- package/dist/utils/verify-remote-terminal.js +0 -415
- package/templates/README.md +0 -378
- package/templates/claude-plugins/PHASE2_COMPLETION.md +0 -346
- package/templates/claude-plugins/PLUGIN_PROPOSALS.md +0 -1776
- package/templates/claude-plugins/README.md +0 -587
- package/templates/claude-plugins/agents/code-reviewer.json +0 -14
- package/templates/claude-plugins/agents/debug-detective.json +0 -15
- package/templates/claude-plugins/agents/git-companion.json +0 -14
- package/templates/claude-plugins/blog-manager/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins/blog-manager/commands/blog.md +0 -691
- package/templates/claude-plugins/golden-loop-monitor/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins/golden-loop-monitor/commands/loop-status.md +0 -434
- package/templates/claude-plugins/learning-tracker/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins/learning-tracker/commands/my-patterns.md +0 -282
- package/templates/claude-plugins/memory-lens/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins/memory-lens/commands/memory-search.md +0 -181
- package/templates/claude-plugins/pattern-coach/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins/pattern-coach/commands/forge.md +0 -365
- package/templates/claude-plugins/project-schema-validator/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins/project-schema-validator/commands/validate-schema.md +0 -582
- package/templates/claude-plugins-admin/AGENT_TEAM_PROPOSALS.md +0 -819
- package/templates/claude-plugins-admin/README.md +0 -446
- package/templates/claude-plugins-admin/autonomous-admin-agent/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins-admin/autonomous-admin-agent/commands/agent.md +0 -595
- package/templates/claude-plugins-admin/backend-agent/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins-admin/backend-agent/commands/backend.md +0 -798
- package/templates/claude-plugins-admin/deploy-guardian/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins-admin/deploy-guardian/commands/deploy.md +0 -554
- package/templates/claude-plugins-admin/frontend-agent/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins-admin/frontend-agent/commands/frontend.md +0 -881
- package/templates/claude-plugins-admin/mcp-server-manager/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins-admin/mcp-server-manager/commands/mcp.md +0 -85
- package/templates/claude-plugins-admin/memory-system-monitor/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins-admin/memory-system-monitor/commands/memory-health.md +0 -569
- package/templates/claude-plugins-admin/qa-agent/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins-admin/qa-agent/commands/qa.md +0 -863
- package/templates/claude-plugins-admin/tech-lead-agent/.claude-plugin/plugin.json +0 -8
- package/templates/claude-plugins-admin/tech-lead-agent/commands/lead.md +0 -732
- package/templates/commands/continue.md +0 -47
- package/templates/cursor-rules/ekkos-memory.md +0 -127
- package/templates/ekkos-manifest.json +0 -223
- package/templates/helpers/json-parse.cjs +0 -101
- package/templates/hooks-node/lib/state.js +0 -187
- package/templates/hooks-node/stop.js +0 -416
- package/templates/hooks-node/user-prompt-submit.js +0 -337
- package/templates/plan-template.md +0 -306
- package/templates/rules/00-hooks-contract.mdc +0 -89
- package/templates/rules/30-ekkos-core.mdc +0 -188
- package/templates/rules/31-ekkos-messages.mdc +0 -78
- package/templates/shared/hooks-enabled.json +0 -22
- package/templates/shared/session-words.json +0 -45
- package/templates/skills/ekkOS_Deep_Recall/Skill.md +0 -282
- package/templates/skills/ekkOS_Learn/Skill.md +0 -265
- package/templates/skills/ekkOS_Memory_First/Skill.md +0 -206
- package/templates/skills/ekkOS_Plan_Assist/Skill.md +0 -302
- package/templates/skills/ekkOS_Preferences/Skill.md +0 -247
- package/templates/skills/ekkOS_Reflect/Skill.md +0 -257
- package/templates/skills/ekkOS_Safety/Skill.md +0 -265
- package/templates/skills/ekkOS_Schema/Skill.md +0 -251
- package/templates/skills/ekkOS_Summary/Skill.md +0 -257
- package/templates/spec-template.md +0 -159
- package/templates/windsurf-rules/ekkos-memory.md +0 -127
- package/templates/windsurf-skills/README.md +0 -58
- package/templates/windsurf-skills/ekkos-continue/SKILL.md +0 -81
- package/templates/windsurf-skills/ekkos-golden-loop/SKILL.md +0 -225
- package/templates/windsurf-skills/ekkos-insights/SKILL.md +0 -138
- package/templates/windsurf-skills/ekkos-recall/SKILL.md +0 -96
- package/templates/windsurf-skills/ekkos-safety/SKILL.md +0 -89
- 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.
|