agent-skill-manager 2.14.0 → 2.17.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.
- package/README.md +318 -121
- package/data/skill-index/Affitor_affiliate-skills.json +2375 -323
- package/data/skill-index/AvdLee_Core-Data-Agent-Skill.json +44 -6
- package/data/skill-index/AvdLee_Swift-Concurrency-Agent-Skill.json +49 -11
- package/data/skill-index/AvdLee_Swift-Testing-Agent-Skill.json +44 -6
- package/data/skill-index/AvdLee_SwiftUI-Agent-Skill.json +100 -24
- package/data/skill-index/AvdLee_Xcode-Build-Optimization-Agent-Skill.json +262 -34
- package/data/skill-index/Dimillian_Skills.json +699 -91
- package/data/skill-index/Egonex-AI_Understand-Anything.json +578 -81
- package/data/skill-index/Eronred_aso-skills.json +1729 -209
- package/data/skill-index/GPTomics_bioSkills.json +27195 -5839
- package/data/skill-index/Galaxy-Dawn_claude-scholar.json +1966 -256
- package/data/skill-index/Imbad0202_academic-research-skills.json +256 -98
- package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +13755 -5388
- package/data/skill-index/Leonxlnx_taste-skill.json +570 -76
- package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +44 -6
- package/data/skill-index/MiniMax-AI_skills.json +1007 -133
- package/data/skill-index/Paramchoudhary_ResumeSkills.json +960 -124
- package/data/skill-index/ParthJadhav_app-store-screenshots.json +185 -0
- package/data/skill-index/addyosmani_agent-skills.json +1127 -209
- package/data/skill-index/affaan-m_everything-claude-code.json +17427 -5038
- package/data/skill-index/alirezarezvani_claude-skills.json +20317 -3276
- package/data/skill-index/anthropics_skills.json +1256 -168
- package/data/skill-index/antithesishq_antithesis-skills.json +2567 -0
- package/data/skill-index/antonbabenko_terraform-skill.json +44 -6
- package/data/skill-index/badlogic_pi-skills.json +349 -45
- package/data/skill-index/briiirussell_cybersecurity-skills.json +1261 -159
- package/data/skill-index/bytedance_deer-flow.json +1572 -224
- package/data/skill-index/cloudai-x_threejs-skills.json +2007 -0
- package/data/skill-index/coreyhaines31_marketingskills.json +2846 -638
- package/data/skill-index/davidondrej_skills.json +6213 -783
- package/data/skill-index/emilkowalski_skills.json +2302 -0
- package/data/skill-index/entireio_skills.json +561 -63
- package/data/skill-index/garrytan_gstack.json +3023 -419
- package/data/skill-index/github_awesome-copilot.json +30442 -8371
- package/data/skill-index/google_skills.json +12472 -1527
- package/data/skill-index/heygen-com_hyperframes.json +2420 -454
- package/data/skill-index/himself65_finance-skills.json +1614 -254
- package/data/skill-index/ivan-magda_uikit-expert-skill.json +44 -6
- package/data/skill-index/kemiljk_fluid-design.json +44 -6
- package/data/skill-index/kepano_obsidian-skills.json +217 -27
- package/data/skill-index/luongnv89_asm.json +1887 -34
- package/data/skill-index/luongnv89_idd.json +369 -103
- package/data/skill-index/luongnv89_skills.json +2051 -900
- package/data/skill-index/mattpocock_skills.json +1910 -1027
- package/data/skill-index/mvanhorn_last30days-skill.json +50 -12
- package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +324 -64
- package/data/skill-index/obra_superpowers.json +651 -125
- package/data/skill-index/oliver-zehentleitner_keep-the-why.json +185 -0
- package/data/skill-index/romainsimon_paperasse.json +273 -45
- package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +1539 -243
- package/data/skill-index/santifer_career-ops.json +44 -657
- package/data/skill-index/sickn33_antigravity-awesome-skills.json +123142 -36221
- package/data/skill-index/slavingia_skills.json +436 -56
- package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +44 -6
- package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +44 -6
- package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +44 -6
- package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +44 -6
- package/data/skill-index/warpdotdev_oz-skills.json +651 -81
- package/data/skill-index/zarazhangrui_follow-builders.json +44 -6
- package/data/skill-index-resources.json +47 -2
- package/dist/agent-skill-manager.js +683 -603
- package/dist/chunk-BQ4RW237.js +20 -0
- package/dist/chunk-LH2C3PE7.js +3 -0
- package/dist/chunk-LS24FFOX.js +3 -0
- package/dist/chunk-RSVWCEZR.js +2 -0
- package/dist/config-AZYQEQOQ.js +2 -0
- package/dist/devtools-2L45W5A2.js +11 -0
- package/dist/lock-NN2MADX7.js +2 -0
- package/dist/src-BD3KFE5H.js +119 -0
- package/package.json +48 -22
- package/README.backup.md +0 -1237
- package/dist/chunk-7BMOBFGJ.js +0 -2
- package/dist/chunk-EOTW3XHQ.js +0 -3
- package/dist/chunk-P5N3FU3P.js +0 -3
- package/dist/chunk-UZ62MVXU.js +0 -19
- package/dist/config-KPT63KLE.js +0 -2
- package/dist/devtools-6JCLZ364.js +0 -8
- package/dist/lock-NOXBNSZW.js +0 -2
- package/dist/src-IHHUE6TP.js +0 -108
|
@@ -0,0 +1,2302 @@
|
|
|
1
|
+
{
|
|
2
|
+
"repoUrl": "https://github.com/emilkowalski/skills.git",
|
|
3
|
+
"owner": "emilkowalski",
|
|
4
|
+
"repo": "skills",
|
|
5
|
+
"updatedAt": "2026-08-21T09:21:23.657Z",
|
|
6
|
+
"skillCount": 11,
|
|
7
|
+
"skills": [
|
|
8
|
+
{
|
|
9
|
+
"name": "animate",
|
|
10
|
+
"description": "Build an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Writes the implementation. Use when asked to animate something, add motion, make a component feel alive, or build a transition. For critiquing existing motion use review-animations; for auditing a whole codebase use improve-animations.",
|
|
11
|
+
"version": "0.0.0",
|
|
12
|
+
"license": "",
|
|
13
|
+
"creator": "",
|
|
14
|
+
"compatibility": "",
|
|
15
|
+
"allowedTools": [],
|
|
16
|
+
"modelInvocable": true,
|
|
17
|
+
"userInvocable": true,
|
|
18
|
+
"installUrl": "github:emilkowalski/skills:skills/animate",
|
|
19
|
+
"relPath": "skills/animate",
|
|
20
|
+
"verified": true,
|
|
21
|
+
"tokenCount": 3535,
|
|
22
|
+
"evalSummary": {
|
|
23
|
+
"overallScore": 71,
|
|
24
|
+
"grade": "C",
|
|
25
|
+
"categories": [
|
|
26
|
+
{
|
|
27
|
+
"id": "structure",
|
|
28
|
+
"name": "Structure & completeness",
|
|
29
|
+
"score": 7,
|
|
30
|
+
"max": 10
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "description",
|
|
34
|
+
"name": "Description quality",
|
|
35
|
+
"score": 6,
|
|
36
|
+
"max": 10
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "prompt-engineering",
|
|
40
|
+
"name": "Prompt engineering",
|
|
41
|
+
"score": 7,
|
|
42
|
+
"max": 10
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "context-efficiency",
|
|
46
|
+
"name": "Context efficiency",
|
|
47
|
+
"score": 8,
|
|
48
|
+
"max": 10
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "safety",
|
|
52
|
+
"name": "Safety & guardrails",
|
|
53
|
+
"score": 10,
|
|
54
|
+
"max": 10
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "testability",
|
|
58
|
+
"name": "Testability",
|
|
59
|
+
"score": 3,
|
|
60
|
+
"max": 10
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "license",
|
|
64
|
+
"name": "License verification",
|
|
65
|
+
"score": 0,
|
|
66
|
+
"max": 10
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "naming",
|
|
70
|
+
"name": "Naming & conventions",
|
|
71
|
+
"score": 10,
|
|
72
|
+
"max": 10
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "pii",
|
|
76
|
+
"name": "PII detection",
|
|
77
|
+
"score": 10,
|
|
78
|
+
"max": 10
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "script-lint",
|
|
82
|
+
"name": "Script linting",
|
|
83
|
+
"score": 10,
|
|
84
|
+
"max": 10
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
88
|
+
"evaluatedVersion": "0.0.0"
|
|
89
|
+
},
|
|
90
|
+
"evalSummaries": {
|
|
91
|
+
"quality": {
|
|
92
|
+
"providerId": "quality",
|
|
93
|
+
"providerVersion": "1.0.0",
|
|
94
|
+
"schemaVersion": 1,
|
|
95
|
+
"passed": true,
|
|
96
|
+
"overallScore": 71,
|
|
97
|
+
"grade": "C",
|
|
98
|
+
"categories": [
|
|
99
|
+
{
|
|
100
|
+
"id": "structure",
|
|
101
|
+
"name": "Structure & completeness",
|
|
102
|
+
"score": 7,
|
|
103
|
+
"max": 10
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "description",
|
|
107
|
+
"name": "Description quality",
|
|
108
|
+
"score": 6,
|
|
109
|
+
"max": 10
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "prompt-engineering",
|
|
113
|
+
"name": "Prompt engineering",
|
|
114
|
+
"score": 7,
|
|
115
|
+
"max": 10
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "context-efficiency",
|
|
119
|
+
"name": "Context efficiency",
|
|
120
|
+
"score": 8,
|
|
121
|
+
"max": 10
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "safety",
|
|
125
|
+
"name": "Safety & guardrails",
|
|
126
|
+
"score": 10,
|
|
127
|
+
"max": 10
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "testability",
|
|
131
|
+
"name": "Testability",
|
|
132
|
+
"score": 3,
|
|
133
|
+
"max": 10
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"id": "license",
|
|
137
|
+
"name": "License verification",
|
|
138
|
+
"score": 0,
|
|
139
|
+
"max": 10
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "naming",
|
|
143
|
+
"name": "Naming & conventions",
|
|
144
|
+
"score": 10,
|
|
145
|
+
"max": 10
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "pii",
|
|
149
|
+
"name": "PII detection",
|
|
150
|
+
"score": 10,
|
|
151
|
+
"max": 10
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "script-lint",
|
|
155
|
+
"name": "Script linting",
|
|
156
|
+
"score": 10,
|
|
157
|
+
"max": 10
|
|
158
|
+
}
|
|
159
|
+
],
|
|
160
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
161
|
+
"evaluatedVersion": "0.0.0"
|
|
162
|
+
},
|
|
163
|
+
"skill-best-practice": {
|
|
164
|
+
"providerId": "skill-best-practice",
|
|
165
|
+
"providerVersion": "1.1.0",
|
|
166
|
+
"schemaVersion": 1,
|
|
167
|
+
"passed": false,
|
|
168
|
+
"overallScore": 69,
|
|
169
|
+
"grade": "C",
|
|
170
|
+
"categories": [
|
|
171
|
+
{
|
|
172
|
+
"id": "validation",
|
|
173
|
+
"name": "Deterministic validation",
|
|
174
|
+
"score": 9,
|
|
175
|
+
"max": 13
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
179
|
+
"evaluatedVersion": "0.0.0"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"name": "animate-expo",
|
|
185
|
+
"description": "Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web animation use `animate`.",
|
|
186
|
+
"version": "0.0.0",
|
|
187
|
+
"license": "",
|
|
188
|
+
"creator": "",
|
|
189
|
+
"compatibility": "",
|
|
190
|
+
"allowedTools": [],
|
|
191
|
+
"modelInvocable": true,
|
|
192
|
+
"userInvocable": true,
|
|
193
|
+
"installUrl": "github:emilkowalski/skills:skills/animate-expo",
|
|
194
|
+
"relPath": "skills/animate-expo",
|
|
195
|
+
"verified": true,
|
|
196
|
+
"tokenCount": 5400,
|
|
197
|
+
"evalSummary": {
|
|
198
|
+
"overallScore": 67,
|
|
199
|
+
"grade": "C",
|
|
200
|
+
"categories": [
|
|
201
|
+
{
|
|
202
|
+
"id": "structure",
|
|
203
|
+
"name": "Structure & completeness",
|
|
204
|
+
"score": 7,
|
|
205
|
+
"max": 10
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"id": "description",
|
|
209
|
+
"name": "Description quality",
|
|
210
|
+
"score": 6,
|
|
211
|
+
"max": 10
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"id": "prompt-engineering",
|
|
215
|
+
"name": "Prompt engineering",
|
|
216
|
+
"score": 7,
|
|
217
|
+
"max": 10
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"id": "context-efficiency",
|
|
221
|
+
"name": "Context efficiency",
|
|
222
|
+
"score": 8,
|
|
223
|
+
"max": 10
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"id": "safety",
|
|
227
|
+
"name": "Safety & guardrails",
|
|
228
|
+
"score": 10,
|
|
229
|
+
"max": 10
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"id": "testability",
|
|
233
|
+
"name": "Testability",
|
|
234
|
+
"score": 1,
|
|
235
|
+
"max": 10
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"id": "license",
|
|
239
|
+
"name": "License verification",
|
|
240
|
+
"score": 0,
|
|
241
|
+
"max": 10
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"id": "naming",
|
|
245
|
+
"name": "Naming & conventions",
|
|
246
|
+
"score": 8,
|
|
247
|
+
"max": 10
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"id": "pii",
|
|
251
|
+
"name": "PII detection",
|
|
252
|
+
"score": 10,
|
|
253
|
+
"max": 10
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"id": "script-lint",
|
|
257
|
+
"name": "Script linting",
|
|
258
|
+
"score": 10,
|
|
259
|
+
"max": 10
|
|
260
|
+
}
|
|
261
|
+
],
|
|
262
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
263
|
+
"evaluatedVersion": "0.0.0"
|
|
264
|
+
},
|
|
265
|
+
"evalSummaries": {
|
|
266
|
+
"quality": {
|
|
267
|
+
"providerId": "quality",
|
|
268
|
+
"providerVersion": "1.0.0",
|
|
269
|
+
"schemaVersion": 1,
|
|
270
|
+
"passed": true,
|
|
271
|
+
"overallScore": 67,
|
|
272
|
+
"grade": "C",
|
|
273
|
+
"categories": [
|
|
274
|
+
{
|
|
275
|
+
"id": "structure",
|
|
276
|
+
"name": "Structure & completeness",
|
|
277
|
+
"score": 7,
|
|
278
|
+
"max": 10
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"id": "description",
|
|
282
|
+
"name": "Description quality",
|
|
283
|
+
"score": 6,
|
|
284
|
+
"max": 10
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"id": "prompt-engineering",
|
|
288
|
+
"name": "Prompt engineering",
|
|
289
|
+
"score": 7,
|
|
290
|
+
"max": 10
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "context-efficiency",
|
|
294
|
+
"name": "Context efficiency",
|
|
295
|
+
"score": 8,
|
|
296
|
+
"max": 10
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"id": "safety",
|
|
300
|
+
"name": "Safety & guardrails",
|
|
301
|
+
"score": 10,
|
|
302
|
+
"max": 10
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"id": "testability",
|
|
306
|
+
"name": "Testability",
|
|
307
|
+
"score": 1,
|
|
308
|
+
"max": 10
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"id": "license",
|
|
312
|
+
"name": "License verification",
|
|
313
|
+
"score": 0,
|
|
314
|
+
"max": 10
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"id": "naming",
|
|
318
|
+
"name": "Naming & conventions",
|
|
319
|
+
"score": 8,
|
|
320
|
+
"max": 10
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"id": "pii",
|
|
324
|
+
"name": "PII detection",
|
|
325
|
+
"score": 10,
|
|
326
|
+
"max": 10
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"id": "script-lint",
|
|
330
|
+
"name": "Script linting",
|
|
331
|
+
"score": 10,
|
|
332
|
+
"max": 10
|
|
333
|
+
}
|
|
334
|
+
],
|
|
335
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
336
|
+
"evaluatedVersion": "0.0.0"
|
|
337
|
+
},
|
|
338
|
+
"skill-best-practice": {
|
|
339
|
+
"providerId": "skill-best-practice",
|
|
340
|
+
"providerVersion": "1.1.0",
|
|
341
|
+
"schemaVersion": 1,
|
|
342
|
+
"passed": false,
|
|
343
|
+
"overallScore": 69,
|
|
344
|
+
"grade": "C",
|
|
345
|
+
"categories": [
|
|
346
|
+
{
|
|
347
|
+
"id": "validation",
|
|
348
|
+
"name": "Deterministic validation",
|
|
349
|
+
"score": 9,
|
|
350
|
+
"max": 13
|
|
351
|
+
}
|
|
352
|
+
],
|
|
353
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
354
|
+
"evaluatedVersion": "0.0.0"
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"name": "animation-vocabulary",
|
|
360
|
+
"description": "Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term (\"the bouncy thing when a popover opens\" → Pop in; \"the iOS rubber-band scroll\" → Rubber-banding). Use when the user asks \"what's it called when…\", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.",
|
|
361
|
+
"version": "0.0.0",
|
|
362
|
+
"license": "",
|
|
363
|
+
"creator": "",
|
|
364
|
+
"compatibility": "",
|
|
365
|
+
"allowedTools": [],
|
|
366
|
+
"modelInvocable": true,
|
|
367
|
+
"userInvocable": true,
|
|
368
|
+
"installUrl": "github:emilkowalski/skills:skills/animation-vocabulary",
|
|
369
|
+
"relPath": "skills/animation-vocabulary",
|
|
370
|
+
"verified": true,
|
|
371
|
+
"tokenCount": 4172,
|
|
372
|
+
"evalSummary": {
|
|
373
|
+
"overallScore": 61,
|
|
374
|
+
"grade": "D",
|
|
375
|
+
"categories": [
|
|
376
|
+
{
|
|
377
|
+
"id": "structure",
|
|
378
|
+
"name": "Structure & completeness",
|
|
379
|
+
"score": 7,
|
|
380
|
+
"max": 10
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"id": "description",
|
|
384
|
+
"name": "Description quality",
|
|
385
|
+
"score": 3,
|
|
386
|
+
"max": 10
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"id": "prompt-engineering",
|
|
390
|
+
"name": "Prompt engineering",
|
|
391
|
+
"score": 8,
|
|
392
|
+
"max": 10
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"id": "context-efficiency",
|
|
396
|
+
"name": "Context efficiency",
|
|
397
|
+
"score": 7,
|
|
398
|
+
"max": 10
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"id": "safety",
|
|
402
|
+
"name": "Safety & guardrails",
|
|
403
|
+
"score": 5,
|
|
404
|
+
"max": 10
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"id": "testability",
|
|
408
|
+
"name": "Testability",
|
|
409
|
+
"score": 1,
|
|
410
|
+
"max": 10
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"id": "license",
|
|
414
|
+
"name": "License verification",
|
|
415
|
+
"score": 0,
|
|
416
|
+
"max": 10
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
"id": "naming",
|
|
420
|
+
"name": "Naming & conventions",
|
|
421
|
+
"score": 10,
|
|
422
|
+
"max": 10
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"id": "pii",
|
|
426
|
+
"name": "PII detection",
|
|
427
|
+
"score": 10,
|
|
428
|
+
"max": 10
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"id": "script-lint",
|
|
432
|
+
"name": "Script linting",
|
|
433
|
+
"score": 10,
|
|
434
|
+
"max": 10
|
|
435
|
+
}
|
|
436
|
+
],
|
|
437
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
438
|
+
"evaluatedVersion": "0.0.0"
|
|
439
|
+
},
|
|
440
|
+
"evalSummaries": {
|
|
441
|
+
"quality": {
|
|
442
|
+
"providerId": "quality",
|
|
443
|
+
"providerVersion": "1.0.0",
|
|
444
|
+
"schemaVersion": 1,
|
|
445
|
+
"passed": true,
|
|
446
|
+
"overallScore": 61,
|
|
447
|
+
"grade": "D",
|
|
448
|
+
"categories": [
|
|
449
|
+
{
|
|
450
|
+
"id": "structure",
|
|
451
|
+
"name": "Structure & completeness",
|
|
452
|
+
"score": 7,
|
|
453
|
+
"max": 10
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"id": "description",
|
|
457
|
+
"name": "Description quality",
|
|
458
|
+
"score": 3,
|
|
459
|
+
"max": 10
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"id": "prompt-engineering",
|
|
463
|
+
"name": "Prompt engineering",
|
|
464
|
+
"score": 8,
|
|
465
|
+
"max": 10
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"id": "context-efficiency",
|
|
469
|
+
"name": "Context efficiency",
|
|
470
|
+
"score": 7,
|
|
471
|
+
"max": 10
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"id": "safety",
|
|
475
|
+
"name": "Safety & guardrails",
|
|
476
|
+
"score": 5,
|
|
477
|
+
"max": 10
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"id": "testability",
|
|
481
|
+
"name": "Testability",
|
|
482
|
+
"score": 1,
|
|
483
|
+
"max": 10
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"id": "license",
|
|
487
|
+
"name": "License verification",
|
|
488
|
+
"score": 0,
|
|
489
|
+
"max": 10
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"id": "naming",
|
|
493
|
+
"name": "Naming & conventions",
|
|
494
|
+
"score": 10,
|
|
495
|
+
"max": 10
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"id": "pii",
|
|
499
|
+
"name": "PII detection",
|
|
500
|
+
"score": 10,
|
|
501
|
+
"max": 10
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"id": "script-lint",
|
|
505
|
+
"name": "Script linting",
|
|
506
|
+
"score": 10,
|
|
507
|
+
"max": 10
|
|
508
|
+
}
|
|
509
|
+
],
|
|
510
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
511
|
+
"evaluatedVersion": "0.0.0"
|
|
512
|
+
},
|
|
513
|
+
"skill-best-practice": {
|
|
514
|
+
"providerId": "skill-best-practice",
|
|
515
|
+
"providerVersion": "1.1.0",
|
|
516
|
+
"schemaVersion": 1,
|
|
517
|
+
"passed": false,
|
|
518
|
+
"overallScore": 69,
|
|
519
|
+
"grade": "C",
|
|
520
|
+
"categories": [
|
|
521
|
+
{
|
|
522
|
+
"id": "validation",
|
|
523
|
+
"name": "Deterministic validation",
|
|
524
|
+
"score": 9,
|
|
525
|
+
"max": 13
|
|
526
|
+
}
|
|
527
|
+
],
|
|
528
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
529
|
+
"evaluatedVersion": "0.0.0"
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"name": "apple-design",
|
|
535
|
+
"description": "Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.",
|
|
536
|
+
"version": "0.0.0",
|
|
537
|
+
"license": "",
|
|
538
|
+
"creator": "",
|
|
539
|
+
"compatibility": "",
|
|
540
|
+
"allowedTools": [],
|
|
541
|
+
"modelInvocable": true,
|
|
542
|
+
"userInvocable": true,
|
|
543
|
+
"installUrl": "github:emilkowalski/skills:skills/apple-design",
|
|
544
|
+
"relPath": "skills/apple-design",
|
|
545
|
+
"verified": true,
|
|
546
|
+
"tokenCount": 6695,
|
|
547
|
+
"evalSummary": {
|
|
548
|
+
"overallScore": 68,
|
|
549
|
+
"grade": "C",
|
|
550
|
+
"categories": [
|
|
551
|
+
{
|
|
552
|
+
"id": "structure",
|
|
553
|
+
"name": "Structure & completeness",
|
|
554
|
+
"score": 7,
|
|
555
|
+
"max": 10
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"id": "description",
|
|
559
|
+
"name": "Description quality",
|
|
560
|
+
"score": 5,
|
|
561
|
+
"max": 10
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"id": "prompt-engineering",
|
|
565
|
+
"name": "Prompt engineering",
|
|
566
|
+
"score": 9,
|
|
567
|
+
"max": 10
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"id": "context-efficiency",
|
|
571
|
+
"name": "Context efficiency",
|
|
572
|
+
"score": 6,
|
|
573
|
+
"max": 10
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
"id": "safety",
|
|
577
|
+
"name": "Safety & guardrails",
|
|
578
|
+
"score": 10,
|
|
579
|
+
"max": 10
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"id": "testability",
|
|
583
|
+
"name": "Testability",
|
|
584
|
+
"score": 3,
|
|
585
|
+
"max": 10
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
"id": "license",
|
|
589
|
+
"name": "License verification",
|
|
590
|
+
"score": 0,
|
|
591
|
+
"max": 10
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"id": "naming",
|
|
595
|
+
"name": "Naming & conventions",
|
|
596
|
+
"score": 8,
|
|
597
|
+
"max": 10
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
"id": "pii",
|
|
601
|
+
"name": "PII detection",
|
|
602
|
+
"score": 10,
|
|
603
|
+
"max": 10
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
"id": "script-lint",
|
|
607
|
+
"name": "Script linting",
|
|
608
|
+
"score": 10,
|
|
609
|
+
"max": 10
|
|
610
|
+
}
|
|
611
|
+
],
|
|
612
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
613
|
+
"evaluatedVersion": "0.0.0"
|
|
614
|
+
},
|
|
615
|
+
"evalSummaries": {
|
|
616
|
+
"quality": {
|
|
617
|
+
"providerId": "quality",
|
|
618
|
+
"providerVersion": "1.0.0",
|
|
619
|
+
"schemaVersion": 1,
|
|
620
|
+
"passed": true,
|
|
621
|
+
"overallScore": 68,
|
|
622
|
+
"grade": "C",
|
|
623
|
+
"categories": [
|
|
624
|
+
{
|
|
625
|
+
"id": "structure",
|
|
626
|
+
"name": "Structure & completeness",
|
|
627
|
+
"score": 7,
|
|
628
|
+
"max": 10
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"id": "description",
|
|
632
|
+
"name": "Description quality",
|
|
633
|
+
"score": 5,
|
|
634
|
+
"max": 10
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"id": "prompt-engineering",
|
|
638
|
+
"name": "Prompt engineering",
|
|
639
|
+
"score": 9,
|
|
640
|
+
"max": 10
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"id": "context-efficiency",
|
|
644
|
+
"name": "Context efficiency",
|
|
645
|
+
"score": 6,
|
|
646
|
+
"max": 10
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
"id": "safety",
|
|
650
|
+
"name": "Safety & guardrails",
|
|
651
|
+
"score": 10,
|
|
652
|
+
"max": 10
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"id": "testability",
|
|
656
|
+
"name": "Testability",
|
|
657
|
+
"score": 3,
|
|
658
|
+
"max": 10
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
"id": "license",
|
|
662
|
+
"name": "License verification",
|
|
663
|
+
"score": 0,
|
|
664
|
+
"max": 10
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"id": "naming",
|
|
668
|
+
"name": "Naming & conventions",
|
|
669
|
+
"score": 8,
|
|
670
|
+
"max": 10
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"id": "pii",
|
|
674
|
+
"name": "PII detection",
|
|
675
|
+
"score": 10,
|
|
676
|
+
"max": 10
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
"id": "script-lint",
|
|
680
|
+
"name": "Script linting",
|
|
681
|
+
"score": 10,
|
|
682
|
+
"max": 10
|
|
683
|
+
}
|
|
684
|
+
],
|
|
685
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
686
|
+
"evaluatedVersion": "0.0.0"
|
|
687
|
+
},
|
|
688
|
+
"skill-best-practice": {
|
|
689
|
+
"providerId": "skill-best-practice",
|
|
690
|
+
"providerVersion": "1.1.0",
|
|
691
|
+
"schemaVersion": 1,
|
|
692
|
+
"passed": false,
|
|
693
|
+
"overallScore": 69,
|
|
694
|
+
"grade": "C",
|
|
695
|
+
"categories": [
|
|
696
|
+
{
|
|
697
|
+
"id": "validation",
|
|
698
|
+
"name": "Deterministic validation",
|
|
699
|
+
"score": 9,
|
|
700
|
+
"max": 13
|
|
701
|
+
}
|
|
702
|
+
],
|
|
703
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
704
|
+
"evaluatedVersion": "0.0.0"
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
"name": "ask-sonner",
|
|
710
|
+
"description": "Guide to Sonner, the React toast library — install and wire up the Toaster, pick the right toast() call, promise and loading toasts, updating, dismissing and persisting toasts, styling, theming and icons, positioning and multiple toasters. Use when working with Sonner or troubleshooting it — toasts that don't appear, appear twice, lose their styles, ignore Tailwind classes, sit behind a modal, or don't follow dark mode.",
|
|
711
|
+
"version": "0.0.0",
|
|
712
|
+
"license": "",
|
|
713
|
+
"creator": "",
|
|
714
|
+
"compatibility": "",
|
|
715
|
+
"allowedTools": [],
|
|
716
|
+
"modelInvocable": true,
|
|
717
|
+
"userInvocable": true,
|
|
718
|
+
"installUrl": "github:emilkowalski/skills:skills/ask-sonner",
|
|
719
|
+
"relPath": "skills/ask-sonner",
|
|
720
|
+
"verified": true,
|
|
721
|
+
"tokenCount": 2110,
|
|
722
|
+
"evalSummary": {
|
|
723
|
+
"overallScore": 59,
|
|
724
|
+
"grade": "D",
|
|
725
|
+
"categories": [
|
|
726
|
+
{
|
|
727
|
+
"id": "structure",
|
|
728
|
+
"name": "Structure & completeness",
|
|
729
|
+
"score": 7,
|
|
730
|
+
"max": 10
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
"id": "description",
|
|
734
|
+
"name": "Description quality",
|
|
735
|
+
"score": 3,
|
|
736
|
+
"max": 10
|
|
737
|
+
},
|
|
738
|
+
{
|
|
739
|
+
"id": "prompt-engineering",
|
|
740
|
+
"name": "Prompt engineering",
|
|
741
|
+
"score": 4,
|
|
742
|
+
"max": 10
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
"id": "context-efficiency",
|
|
746
|
+
"name": "Context efficiency",
|
|
747
|
+
"score": 9,
|
|
748
|
+
"max": 10
|
|
749
|
+
},
|
|
750
|
+
{
|
|
751
|
+
"id": "safety",
|
|
752
|
+
"name": "Safety & guardrails",
|
|
753
|
+
"score": 5,
|
|
754
|
+
"max": 10
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
"id": "testability",
|
|
758
|
+
"name": "Testability",
|
|
759
|
+
"score": 1,
|
|
760
|
+
"max": 10
|
|
761
|
+
},
|
|
762
|
+
{
|
|
763
|
+
"id": "license",
|
|
764
|
+
"name": "License verification",
|
|
765
|
+
"score": 0,
|
|
766
|
+
"max": 10
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"id": "naming",
|
|
770
|
+
"name": "Naming & conventions",
|
|
771
|
+
"score": 10,
|
|
772
|
+
"max": 10
|
|
773
|
+
},
|
|
774
|
+
{
|
|
775
|
+
"id": "pii",
|
|
776
|
+
"name": "PII detection",
|
|
777
|
+
"score": 10,
|
|
778
|
+
"max": 10
|
|
779
|
+
},
|
|
780
|
+
{
|
|
781
|
+
"id": "script-lint",
|
|
782
|
+
"name": "Script linting",
|
|
783
|
+
"score": 10,
|
|
784
|
+
"max": 10
|
|
785
|
+
}
|
|
786
|
+
],
|
|
787
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
788
|
+
"evaluatedVersion": "0.0.0"
|
|
789
|
+
},
|
|
790
|
+
"evalSummaries": {
|
|
791
|
+
"quality": {
|
|
792
|
+
"providerId": "quality",
|
|
793
|
+
"providerVersion": "1.0.0",
|
|
794
|
+
"schemaVersion": 1,
|
|
795
|
+
"passed": true,
|
|
796
|
+
"overallScore": 59,
|
|
797
|
+
"grade": "D",
|
|
798
|
+
"categories": [
|
|
799
|
+
{
|
|
800
|
+
"id": "structure",
|
|
801
|
+
"name": "Structure & completeness",
|
|
802
|
+
"score": 7,
|
|
803
|
+
"max": 10
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
"id": "description",
|
|
807
|
+
"name": "Description quality",
|
|
808
|
+
"score": 3,
|
|
809
|
+
"max": 10
|
|
810
|
+
},
|
|
811
|
+
{
|
|
812
|
+
"id": "prompt-engineering",
|
|
813
|
+
"name": "Prompt engineering",
|
|
814
|
+
"score": 4,
|
|
815
|
+
"max": 10
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
"id": "context-efficiency",
|
|
819
|
+
"name": "Context efficiency",
|
|
820
|
+
"score": 9,
|
|
821
|
+
"max": 10
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
"id": "safety",
|
|
825
|
+
"name": "Safety & guardrails",
|
|
826
|
+
"score": 5,
|
|
827
|
+
"max": 10
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
"id": "testability",
|
|
831
|
+
"name": "Testability",
|
|
832
|
+
"score": 1,
|
|
833
|
+
"max": 10
|
|
834
|
+
},
|
|
835
|
+
{
|
|
836
|
+
"id": "license",
|
|
837
|
+
"name": "License verification",
|
|
838
|
+
"score": 0,
|
|
839
|
+
"max": 10
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"id": "naming",
|
|
843
|
+
"name": "Naming & conventions",
|
|
844
|
+
"score": 10,
|
|
845
|
+
"max": 10
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
"id": "pii",
|
|
849
|
+
"name": "PII detection",
|
|
850
|
+
"score": 10,
|
|
851
|
+
"max": 10
|
|
852
|
+
},
|
|
853
|
+
{
|
|
854
|
+
"id": "script-lint",
|
|
855
|
+
"name": "Script linting",
|
|
856
|
+
"score": 10,
|
|
857
|
+
"max": 10
|
|
858
|
+
}
|
|
859
|
+
],
|
|
860
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
861
|
+
"evaluatedVersion": "0.0.0"
|
|
862
|
+
},
|
|
863
|
+
"skill-best-practice": {
|
|
864
|
+
"providerId": "skill-best-practice",
|
|
865
|
+
"providerVersion": "1.1.0",
|
|
866
|
+
"schemaVersion": 1,
|
|
867
|
+
"passed": false,
|
|
868
|
+
"overallScore": 69,
|
|
869
|
+
"grade": "C",
|
|
870
|
+
"categories": [
|
|
871
|
+
{
|
|
872
|
+
"id": "validation",
|
|
873
|
+
"name": "Deterministic validation",
|
|
874
|
+
"score": 9,
|
|
875
|
+
"max": 13
|
|
876
|
+
}
|
|
877
|
+
],
|
|
878
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
879
|
+
"evaluatedVersion": "0.0.0"
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
},
|
|
883
|
+
{
|
|
884
|
+
"name": "emil-design-eng",
|
|
885
|
+
"description": "This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.",
|
|
886
|
+
"version": "0.0.0",
|
|
887
|
+
"license": "",
|
|
888
|
+
"creator": "",
|
|
889
|
+
"compatibility": "",
|
|
890
|
+
"allowedTools": [],
|
|
891
|
+
"modelInvocable": true,
|
|
892
|
+
"userInvocable": true,
|
|
893
|
+
"installUrl": "github:emilkowalski/skills:skills/emil-design-eng",
|
|
894
|
+
"relPath": "skills/emil-design-eng",
|
|
895
|
+
"verified": true,
|
|
896
|
+
"tokenCount": 8135,
|
|
897
|
+
"evalSummary": {
|
|
898
|
+
"overallScore": 66,
|
|
899
|
+
"grade": "C",
|
|
900
|
+
"categories": [
|
|
901
|
+
{
|
|
902
|
+
"id": "structure",
|
|
903
|
+
"name": "Structure & completeness",
|
|
904
|
+
"score": 7,
|
|
905
|
+
"max": 10
|
|
906
|
+
},
|
|
907
|
+
{
|
|
908
|
+
"id": "description",
|
|
909
|
+
"name": "Description quality",
|
|
910
|
+
"score": 4,
|
|
911
|
+
"max": 10
|
|
912
|
+
},
|
|
913
|
+
{
|
|
914
|
+
"id": "prompt-engineering",
|
|
915
|
+
"name": "Prompt engineering",
|
|
916
|
+
"score": 8,
|
|
917
|
+
"max": 10
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"id": "context-efficiency",
|
|
921
|
+
"name": "Context efficiency",
|
|
922
|
+
"score": 5,
|
|
923
|
+
"max": 10
|
|
924
|
+
},
|
|
925
|
+
{
|
|
926
|
+
"id": "safety",
|
|
927
|
+
"name": "Safety & guardrails",
|
|
928
|
+
"score": 5,
|
|
929
|
+
"max": 10
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
"id": "testability",
|
|
933
|
+
"name": "Testability",
|
|
934
|
+
"score": 7,
|
|
935
|
+
"max": 10
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
"id": "license",
|
|
939
|
+
"name": "License verification",
|
|
940
|
+
"score": 0,
|
|
941
|
+
"max": 10
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"id": "naming",
|
|
945
|
+
"name": "Naming & conventions",
|
|
946
|
+
"score": 10,
|
|
947
|
+
"max": 10
|
|
948
|
+
},
|
|
949
|
+
{
|
|
950
|
+
"id": "pii",
|
|
951
|
+
"name": "PII detection",
|
|
952
|
+
"score": 10,
|
|
953
|
+
"max": 10
|
|
954
|
+
},
|
|
955
|
+
{
|
|
956
|
+
"id": "script-lint",
|
|
957
|
+
"name": "Script linting",
|
|
958
|
+
"score": 10,
|
|
959
|
+
"max": 10
|
|
960
|
+
}
|
|
961
|
+
],
|
|
962
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
963
|
+
"evaluatedVersion": "0.0.0"
|
|
964
|
+
},
|
|
965
|
+
"evalSummaries": {
|
|
966
|
+
"quality": {
|
|
967
|
+
"providerId": "quality",
|
|
968
|
+
"providerVersion": "1.0.0",
|
|
969
|
+
"schemaVersion": 1,
|
|
970
|
+
"passed": true,
|
|
971
|
+
"overallScore": 66,
|
|
972
|
+
"grade": "C",
|
|
973
|
+
"categories": [
|
|
974
|
+
{
|
|
975
|
+
"id": "structure",
|
|
976
|
+
"name": "Structure & completeness",
|
|
977
|
+
"score": 7,
|
|
978
|
+
"max": 10
|
|
979
|
+
},
|
|
980
|
+
{
|
|
981
|
+
"id": "description",
|
|
982
|
+
"name": "Description quality",
|
|
983
|
+
"score": 4,
|
|
984
|
+
"max": 10
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
"id": "prompt-engineering",
|
|
988
|
+
"name": "Prompt engineering",
|
|
989
|
+
"score": 8,
|
|
990
|
+
"max": 10
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
"id": "context-efficiency",
|
|
994
|
+
"name": "Context efficiency",
|
|
995
|
+
"score": 5,
|
|
996
|
+
"max": 10
|
|
997
|
+
},
|
|
998
|
+
{
|
|
999
|
+
"id": "safety",
|
|
1000
|
+
"name": "Safety & guardrails",
|
|
1001
|
+
"score": 5,
|
|
1002
|
+
"max": 10
|
|
1003
|
+
},
|
|
1004
|
+
{
|
|
1005
|
+
"id": "testability",
|
|
1006
|
+
"name": "Testability",
|
|
1007
|
+
"score": 7,
|
|
1008
|
+
"max": 10
|
|
1009
|
+
},
|
|
1010
|
+
{
|
|
1011
|
+
"id": "license",
|
|
1012
|
+
"name": "License verification",
|
|
1013
|
+
"score": 0,
|
|
1014
|
+
"max": 10
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
"id": "naming",
|
|
1018
|
+
"name": "Naming & conventions",
|
|
1019
|
+
"score": 10,
|
|
1020
|
+
"max": 10
|
|
1021
|
+
},
|
|
1022
|
+
{
|
|
1023
|
+
"id": "pii",
|
|
1024
|
+
"name": "PII detection",
|
|
1025
|
+
"score": 10,
|
|
1026
|
+
"max": 10
|
|
1027
|
+
},
|
|
1028
|
+
{
|
|
1029
|
+
"id": "script-lint",
|
|
1030
|
+
"name": "Script linting",
|
|
1031
|
+
"score": 10,
|
|
1032
|
+
"max": 10
|
|
1033
|
+
}
|
|
1034
|
+
],
|
|
1035
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
1036
|
+
"evaluatedVersion": "0.0.0"
|
|
1037
|
+
},
|
|
1038
|
+
"skill-best-practice": {
|
|
1039
|
+
"providerId": "skill-best-practice",
|
|
1040
|
+
"providerVersion": "1.1.0",
|
|
1041
|
+
"schemaVersion": 1,
|
|
1042
|
+
"passed": false,
|
|
1043
|
+
"overallScore": 77,
|
|
1044
|
+
"grade": "C",
|
|
1045
|
+
"categories": [
|
|
1046
|
+
{
|
|
1047
|
+
"id": "validation",
|
|
1048
|
+
"name": "Deterministic validation",
|
|
1049
|
+
"score": 10,
|
|
1050
|
+
"max": 13
|
|
1051
|
+
}
|
|
1052
|
+
],
|
|
1053
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
1054
|
+
"evaluatedVersion": "0.0.0"
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
"name": "find-animation-opportunities",
|
|
1060
|
+
"description": "Search a codebase or UI for places that don't animate but should, and reject everything that shouldn't. Read-only; it proposes motion with exact values, it does not implement it. Use when the user asks \"what could be animated here?\" or wants to \"make this feel more alive\". For fixing existing animations, use improve-animations or review-animations instead.",
|
|
1061
|
+
"version": "0.0.0",
|
|
1062
|
+
"license": "",
|
|
1063
|
+
"creator": "",
|
|
1064
|
+
"compatibility": "",
|
|
1065
|
+
"allowedTools": [],
|
|
1066
|
+
"modelInvocable": true,
|
|
1067
|
+
"userInvocable": true,
|
|
1068
|
+
"installUrl": "github:emilkowalski/skills:skills/find-animation-opportunities",
|
|
1069
|
+
"relPath": "skills/find-animation-opportunities",
|
|
1070
|
+
"verified": true,
|
|
1071
|
+
"tokenCount": 2774,
|
|
1072
|
+
"evalSummary": {
|
|
1073
|
+
"overallScore": 69,
|
|
1074
|
+
"grade": "C",
|
|
1075
|
+
"categories": [
|
|
1076
|
+
{
|
|
1077
|
+
"id": "structure",
|
|
1078
|
+
"name": "Structure & completeness",
|
|
1079
|
+
"score": 7,
|
|
1080
|
+
"max": 10
|
|
1081
|
+
},
|
|
1082
|
+
{
|
|
1083
|
+
"id": "description",
|
|
1084
|
+
"name": "Description quality",
|
|
1085
|
+
"score": 8,
|
|
1086
|
+
"max": 10
|
|
1087
|
+
},
|
|
1088
|
+
{
|
|
1089
|
+
"id": "prompt-engineering",
|
|
1090
|
+
"name": "Prompt engineering",
|
|
1091
|
+
"score": 6,
|
|
1092
|
+
"max": 10
|
|
1093
|
+
},
|
|
1094
|
+
{
|
|
1095
|
+
"id": "context-efficiency",
|
|
1096
|
+
"name": "Context efficiency",
|
|
1097
|
+
"score": 10,
|
|
1098
|
+
"max": 10
|
|
1099
|
+
},
|
|
1100
|
+
{
|
|
1101
|
+
"id": "safety",
|
|
1102
|
+
"name": "Safety & guardrails",
|
|
1103
|
+
"score": 8,
|
|
1104
|
+
"max": 10
|
|
1105
|
+
},
|
|
1106
|
+
{
|
|
1107
|
+
"id": "testability",
|
|
1108
|
+
"name": "Testability",
|
|
1109
|
+
"score": 0,
|
|
1110
|
+
"max": 10
|
|
1111
|
+
},
|
|
1112
|
+
{
|
|
1113
|
+
"id": "license",
|
|
1114
|
+
"name": "License verification",
|
|
1115
|
+
"score": 0,
|
|
1116
|
+
"max": 10
|
|
1117
|
+
},
|
|
1118
|
+
{
|
|
1119
|
+
"id": "naming",
|
|
1120
|
+
"name": "Naming & conventions",
|
|
1121
|
+
"score": 10,
|
|
1122
|
+
"max": 10
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
"id": "pii",
|
|
1126
|
+
"name": "PII detection",
|
|
1127
|
+
"score": 10,
|
|
1128
|
+
"max": 10
|
|
1129
|
+
},
|
|
1130
|
+
{
|
|
1131
|
+
"id": "script-lint",
|
|
1132
|
+
"name": "Script linting",
|
|
1133
|
+
"score": 10,
|
|
1134
|
+
"max": 10
|
|
1135
|
+
}
|
|
1136
|
+
],
|
|
1137
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
1138
|
+
"evaluatedVersion": "0.0.0"
|
|
1139
|
+
},
|
|
1140
|
+
"evalSummaries": {
|
|
1141
|
+
"quality": {
|
|
1142
|
+
"providerId": "quality",
|
|
1143
|
+
"providerVersion": "1.0.0",
|
|
1144
|
+
"schemaVersion": 1,
|
|
1145
|
+
"passed": true,
|
|
1146
|
+
"overallScore": 69,
|
|
1147
|
+
"grade": "C",
|
|
1148
|
+
"categories": [
|
|
1149
|
+
{
|
|
1150
|
+
"id": "structure",
|
|
1151
|
+
"name": "Structure & completeness",
|
|
1152
|
+
"score": 7,
|
|
1153
|
+
"max": 10
|
|
1154
|
+
},
|
|
1155
|
+
{
|
|
1156
|
+
"id": "description",
|
|
1157
|
+
"name": "Description quality",
|
|
1158
|
+
"score": 8,
|
|
1159
|
+
"max": 10
|
|
1160
|
+
},
|
|
1161
|
+
{
|
|
1162
|
+
"id": "prompt-engineering",
|
|
1163
|
+
"name": "Prompt engineering",
|
|
1164
|
+
"score": 6,
|
|
1165
|
+
"max": 10
|
|
1166
|
+
},
|
|
1167
|
+
{
|
|
1168
|
+
"id": "context-efficiency",
|
|
1169
|
+
"name": "Context efficiency",
|
|
1170
|
+
"score": 10,
|
|
1171
|
+
"max": 10
|
|
1172
|
+
},
|
|
1173
|
+
{
|
|
1174
|
+
"id": "safety",
|
|
1175
|
+
"name": "Safety & guardrails",
|
|
1176
|
+
"score": 8,
|
|
1177
|
+
"max": 10
|
|
1178
|
+
},
|
|
1179
|
+
{
|
|
1180
|
+
"id": "testability",
|
|
1181
|
+
"name": "Testability",
|
|
1182
|
+
"score": 0,
|
|
1183
|
+
"max": 10
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
"id": "license",
|
|
1187
|
+
"name": "License verification",
|
|
1188
|
+
"score": 0,
|
|
1189
|
+
"max": 10
|
|
1190
|
+
},
|
|
1191
|
+
{
|
|
1192
|
+
"id": "naming",
|
|
1193
|
+
"name": "Naming & conventions",
|
|
1194
|
+
"score": 10,
|
|
1195
|
+
"max": 10
|
|
1196
|
+
},
|
|
1197
|
+
{
|
|
1198
|
+
"id": "pii",
|
|
1199
|
+
"name": "PII detection",
|
|
1200
|
+
"score": 10,
|
|
1201
|
+
"max": 10
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"id": "script-lint",
|
|
1205
|
+
"name": "Script linting",
|
|
1206
|
+
"score": 10,
|
|
1207
|
+
"max": 10
|
|
1208
|
+
}
|
|
1209
|
+
],
|
|
1210
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
1211
|
+
"evaluatedVersion": "0.0.0"
|
|
1212
|
+
},
|
|
1213
|
+
"skill-best-practice": {
|
|
1214
|
+
"providerId": "skill-best-practice",
|
|
1215
|
+
"providerVersion": "1.1.0",
|
|
1216
|
+
"schemaVersion": 1,
|
|
1217
|
+
"passed": false,
|
|
1218
|
+
"overallScore": 69,
|
|
1219
|
+
"grade": "C",
|
|
1220
|
+
"categories": [
|
|
1221
|
+
{
|
|
1222
|
+
"id": "validation",
|
|
1223
|
+
"name": "Deterministic validation",
|
|
1224
|
+
"score": 9,
|
|
1225
|
+
"max": 13
|
|
1226
|
+
}
|
|
1227
|
+
],
|
|
1228
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
1229
|
+
"evaluatedVersion": "0.0.0"
|
|
1230
|
+
}
|
|
1231
|
+
}
|
|
1232
|
+
},
|
|
1233
|
+
{
|
|
1234
|
+
"name": "improve-animations",
|
|
1235
|
+
"description": "Survey a codebase's animation and motion code as a senior motion advisor, then produce a prioritized audit and self-contained implementation plans for other agents (or cheaper models) to execute. Read-only on source code — it plans improvements, it does not apply them. Use when the user asks to \"improve the animations\", \"audit the motion\", \"make this app feel better\", or wants a roadmap of animation fixes rather than a review of a single diff.",
|
|
1236
|
+
"version": "0.0.0",
|
|
1237
|
+
"license": "",
|
|
1238
|
+
"creator": "",
|
|
1239
|
+
"compatibility": "",
|
|
1240
|
+
"allowedTools": [],
|
|
1241
|
+
"modelInvocable": true,
|
|
1242
|
+
"userInvocable": true,
|
|
1243
|
+
"installUrl": "github:emilkowalski/skills:skills/improve-animations",
|
|
1244
|
+
"relPath": "skills/improve-animations",
|
|
1245
|
+
"verified": true,
|
|
1246
|
+
"tokenCount": 2346,
|
|
1247
|
+
"evalSummary": {
|
|
1248
|
+
"overallScore": 67,
|
|
1249
|
+
"grade": "C",
|
|
1250
|
+
"categories": [
|
|
1251
|
+
{
|
|
1252
|
+
"id": "structure",
|
|
1253
|
+
"name": "Structure & completeness",
|
|
1254
|
+
"score": 7,
|
|
1255
|
+
"max": 10
|
|
1256
|
+
},
|
|
1257
|
+
{
|
|
1258
|
+
"id": "description",
|
|
1259
|
+
"name": "Description quality",
|
|
1260
|
+
"score": 3,
|
|
1261
|
+
"max": 10
|
|
1262
|
+
},
|
|
1263
|
+
{
|
|
1264
|
+
"id": "prompt-engineering",
|
|
1265
|
+
"name": "Prompt engineering",
|
|
1266
|
+
"score": 7,
|
|
1267
|
+
"max": 10
|
|
1268
|
+
},
|
|
1269
|
+
{
|
|
1270
|
+
"id": "context-efficiency",
|
|
1271
|
+
"name": "Context efficiency",
|
|
1272
|
+
"score": 10,
|
|
1273
|
+
"max": 10
|
|
1274
|
+
},
|
|
1275
|
+
{
|
|
1276
|
+
"id": "safety",
|
|
1277
|
+
"name": "Safety & guardrails",
|
|
1278
|
+
"score": 7,
|
|
1279
|
+
"max": 10
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
"id": "testability",
|
|
1283
|
+
"name": "Testability",
|
|
1284
|
+
"score": 3,
|
|
1285
|
+
"max": 10
|
|
1286
|
+
},
|
|
1287
|
+
{
|
|
1288
|
+
"id": "license",
|
|
1289
|
+
"name": "License verification",
|
|
1290
|
+
"score": 0,
|
|
1291
|
+
"max": 10
|
|
1292
|
+
},
|
|
1293
|
+
{
|
|
1294
|
+
"id": "naming",
|
|
1295
|
+
"name": "Naming & conventions",
|
|
1296
|
+
"score": 10,
|
|
1297
|
+
"max": 10
|
|
1298
|
+
},
|
|
1299
|
+
{
|
|
1300
|
+
"id": "pii",
|
|
1301
|
+
"name": "PII detection",
|
|
1302
|
+
"score": 10,
|
|
1303
|
+
"max": 10
|
|
1304
|
+
},
|
|
1305
|
+
{
|
|
1306
|
+
"id": "script-lint",
|
|
1307
|
+
"name": "Script linting",
|
|
1308
|
+
"score": 10,
|
|
1309
|
+
"max": 10
|
|
1310
|
+
}
|
|
1311
|
+
],
|
|
1312
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
1313
|
+
"evaluatedVersion": "0.0.0"
|
|
1314
|
+
},
|
|
1315
|
+
"evalSummaries": {
|
|
1316
|
+
"quality": {
|
|
1317
|
+
"providerId": "quality",
|
|
1318
|
+
"providerVersion": "1.0.0",
|
|
1319
|
+
"schemaVersion": 1,
|
|
1320
|
+
"passed": true,
|
|
1321
|
+
"overallScore": 67,
|
|
1322
|
+
"grade": "C",
|
|
1323
|
+
"categories": [
|
|
1324
|
+
{
|
|
1325
|
+
"id": "structure",
|
|
1326
|
+
"name": "Structure & completeness",
|
|
1327
|
+
"score": 7,
|
|
1328
|
+
"max": 10
|
|
1329
|
+
},
|
|
1330
|
+
{
|
|
1331
|
+
"id": "description",
|
|
1332
|
+
"name": "Description quality",
|
|
1333
|
+
"score": 3,
|
|
1334
|
+
"max": 10
|
|
1335
|
+
},
|
|
1336
|
+
{
|
|
1337
|
+
"id": "prompt-engineering",
|
|
1338
|
+
"name": "Prompt engineering",
|
|
1339
|
+
"score": 7,
|
|
1340
|
+
"max": 10
|
|
1341
|
+
},
|
|
1342
|
+
{
|
|
1343
|
+
"id": "context-efficiency",
|
|
1344
|
+
"name": "Context efficiency",
|
|
1345
|
+
"score": 10,
|
|
1346
|
+
"max": 10
|
|
1347
|
+
},
|
|
1348
|
+
{
|
|
1349
|
+
"id": "safety",
|
|
1350
|
+
"name": "Safety & guardrails",
|
|
1351
|
+
"score": 7,
|
|
1352
|
+
"max": 10
|
|
1353
|
+
},
|
|
1354
|
+
{
|
|
1355
|
+
"id": "testability",
|
|
1356
|
+
"name": "Testability",
|
|
1357
|
+
"score": 3,
|
|
1358
|
+
"max": 10
|
|
1359
|
+
},
|
|
1360
|
+
{
|
|
1361
|
+
"id": "license",
|
|
1362
|
+
"name": "License verification",
|
|
1363
|
+
"score": 0,
|
|
1364
|
+
"max": 10
|
|
1365
|
+
},
|
|
1366
|
+
{
|
|
1367
|
+
"id": "naming",
|
|
1368
|
+
"name": "Naming & conventions",
|
|
1369
|
+
"score": 10,
|
|
1370
|
+
"max": 10
|
|
1371
|
+
},
|
|
1372
|
+
{
|
|
1373
|
+
"id": "pii",
|
|
1374
|
+
"name": "PII detection",
|
|
1375
|
+
"score": 10,
|
|
1376
|
+
"max": 10
|
|
1377
|
+
},
|
|
1378
|
+
{
|
|
1379
|
+
"id": "script-lint",
|
|
1380
|
+
"name": "Script linting",
|
|
1381
|
+
"score": 10,
|
|
1382
|
+
"max": 10
|
|
1383
|
+
}
|
|
1384
|
+
],
|
|
1385
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
1386
|
+
"evaluatedVersion": "0.0.0"
|
|
1387
|
+
},
|
|
1388
|
+
"skill-best-practice": {
|
|
1389
|
+
"providerId": "skill-best-practice",
|
|
1390
|
+
"providerVersion": "1.1.0",
|
|
1391
|
+
"schemaVersion": 1,
|
|
1392
|
+
"passed": false,
|
|
1393
|
+
"overallScore": 69,
|
|
1394
|
+
"grade": "C",
|
|
1395
|
+
"categories": [
|
|
1396
|
+
{
|
|
1397
|
+
"id": "validation",
|
|
1398
|
+
"name": "Deterministic validation",
|
|
1399
|
+
"score": 9,
|
|
1400
|
+
"max": 13
|
|
1401
|
+
}
|
|
1402
|
+
],
|
|
1403
|
+
"evaluatedAt": "2026-08-21T09:21:23.643Z",
|
|
1404
|
+
"evaluatedVersion": "0.0.0"
|
|
1405
|
+
}
|
|
1406
|
+
}
|
|
1407
|
+
},
|
|
1408
|
+
{
|
|
1409
|
+
"name": "pick-ui-library",
|
|
1410
|
+
"description": "Pick the right library for a given frontend task from a curated, opinionated list — numbers, OTP inputs, charts, command menus, virtualization, drag and drop, toasts, state, styling, and more. Only runs when explicitly invoked; it does not trigger on its own.",
|
|
1411
|
+
"version": "0.0.0",
|
|
1412
|
+
"license": "",
|
|
1413
|
+
"creator": "",
|
|
1414
|
+
"compatibility": "",
|
|
1415
|
+
"allowedTools": [],
|
|
1416
|
+
"modelInvocable": false,
|
|
1417
|
+
"userInvocable": true,
|
|
1418
|
+
"installUrl": "github:emilkowalski/skills:skills/pick-ui-library",
|
|
1419
|
+
"relPath": "skills/pick-ui-library",
|
|
1420
|
+
"verified": true,
|
|
1421
|
+
"tokenCount": 1259,
|
|
1422
|
+
"evalSummary": {
|
|
1423
|
+
"overallScore": 57,
|
|
1424
|
+
"grade": "D",
|
|
1425
|
+
"categories": [
|
|
1426
|
+
{
|
|
1427
|
+
"id": "structure",
|
|
1428
|
+
"name": "Structure & completeness",
|
|
1429
|
+
"score": 7,
|
|
1430
|
+
"max": 10
|
|
1431
|
+
},
|
|
1432
|
+
{
|
|
1433
|
+
"id": "description",
|
|
1434
|
+
"name": "Description quality",
|
|
1435
|
+
"score": 5,
|
|
1436
|
+
"max": 10
|
|
1437
|
+
},
|
|
1438
|
+
{
|
|
1439
|
+
"id": "prompt-engineering",
|
|
1440
|
+
"name": "Prompt engineering",
|
|
1441
|
+
"score": 3,
|
|
1442
|
+
"max": 10
|
|
1443
|
+
},
|
|
1444
|
+
{
|
|
1445
|
+
"id": "context-efficiency",
|
|
1446
|
+
"name": "Context efficiency",
|
|
1447
|
+
"score": 7,
|
|
1448
|
+
"max": 10
|
|
1449
|
+
},
|
|
1450
|
+
{
|
|
1451
|
+
"id": "safety",
|
|
1452
|
+
"name": "Safety & guardrails",
|
|
1453
|
+
"score": 4,
|
|
1454
|
+
"max": 10
|
|
1455
|
+
},
|
|
1456
|
+
{
|
|
1457
|
+
"id": "testability",
|
|
1458
|
+
"name": "Testability",
|
|
1459
|
+
"score": 1,
|
|
1460
|
+
"max": 10
|
|
1461
|
+
},
|
|
1462
|
+
{
|
|
1463
|
+
"id": "license",
|
|
1464
|
+
"name": "License verification",
|
|
1465
|
+
"score": 0,
|
|
1466
|
+
"max": 10
|
|
1467
|
+
},
|
|
1468
|
+
{
|
|
1469
|
+
"id": "naming",
|
|
1470
|
+
"name": "Naming & conventions",
|
|
1471
|
+
"score": 10,
|
|
1472
|
+
"max": 10
|
|
1473
|
+
},
|
|
1474
|
+
{
|
|
1475
|
+
"id": "pii",
|
|
1476
|
+
"name": "PII detection",
|
|
1477
|
+
"score": 10,
|
|
1478
|
+
"max": 10
|
|
1479
|
+
},
|
|
1480
|
+
{
|
|
1481
|
+
"id": "script-lint",
|
|
1482
|
+
"name": "Script linting",
|
|
1483
|
+
"score": 10,
|
|
1484
|
+
"max": 10
|
|
1485
|
+
}
|
|
1486
|
+
],
|
|
1487
|
+
"evaluatedAt": "2026-08-21T09:21:23.654Z",
|
|
1488
|
+
"evaluatedVersion": "0.0.0"
|
|
1489
|
+
},
|
|
1490
|
+
"evalSummaries": {
|
|
1491
|
+
"quality": {
|
|
1492
|
+
"providerId": "quality",
|
|
1493
|
+
"providerVersion": "1.0.0",
|
|
1494
|
+
"schemaVersion": 1,
|
|
1495
|
+
"passed": true,
|
|
1496
|
+
"overallScore": 57,
|
|
1497
|
+
"grade": "D",
|
|
1498
|
+
"categories": [
|
|
1499
|
+
{
|
|
1500
|
+
"id": "structure",
|
|
1501
|
+
"name": "Structure & completeness",
|
|
1502
|
+
"score": 7,
|
|
1503
|
+
"max": 10
|
|
1504
|
+
},
|
|
1505
|
+
{
|
|
1506
|
+
"id": "description",
|
|
1507
|
+
"name": "Description quality",
|
|
1508
|
+
"score": 5,
|
|
1509
|
+
"max": 10
|
|
1510
|
+
},
|
|
1511
|
+
{
|
|
1512
|
+
"id": "prompt-engineering",
|
|
1513
|
+
"name": "Prompt engineering",
|
|
1514
|
+
"score": 3,
|
|
1515
|
+
"max": 10
|
|
1516
|
+
},
|
|
1517
|
+
{
|
|
1518
|
+
"id": "context-efficiency",
|
|
1519
|
+
"name": "Context efficiency",
|
|
1520
|
+
"score": 7,
|
|
1521
|
+
"max": 10
|
|
1522
|
+
},
|
|
1523
|
+
{
|
|
1524
|
+
"id": "safety",
|
|
1525
|
+
"name": "Safety & guardrails",
|
|
1526
|
+
"score": 4,
|
|
1527
|
+
"max": 10
|
|
1528
|
+
},
|
|
1529
|
+
{
|
|
1530
|
+
"id": "testability",
|
|
1531
|
+
"name": "Testability",
|
|
1532
|
+
"score": 1,
|
|
1533
|
+
"max": 10
|
|
1534
|
+
},
|
|
1535
|
+
{
|
|
1536
|
+
"id": "license",
|
|
1537
|
+
"name": "License verification",
|
|
1538
|
+
"score": 0,
|
|
1539
|
+
"max": 10
|
|
1540
|
+
},
|
|
1541
|
+
{
|
|
1542
|
+
"id": "naming",
|
|
1543
|
+
"name": "Naming & conventions",
|
|
1544
|
+
"score": 10,
|
|
1545
|
+
"max": 10
|
|
1546
|
+
},
|
|
1547
|
+
{
|
|
1548
|
+
"id": "pii",
|
|
1549
|
+
"name": "PII detection",
|
|
1550
|
+
"score": 10,
|
|
1551
|
+
"max": 10
|
|
1552
|
+
},
|
|
1553
|
+
{
|
|
1554
|
+
"id": "script-lint",
|
|
1555
|
+
"name": "Script linting",
|
|
1556
|
+
"score": 10,
|
|
1557
|
+
"max": 10
|
|
1558
|
+
}
|
|
1559
|
+
],
|
|
1560
|
+
"evaluatedAt": "2026-08-21T09:21:23.655Z",
|
|
1561
|
+
"evaluatedVersion": "0.0.0"
|
|
1562
|
+
},
|
|
1563
|
+
"skill-best-practice": {
|
|
1564
|
+
"providerId": "skill-best-practice",
|
|
1565
|
+
"providerVersion": "1.1.0",
|
|
1566
|
+
"schemaVersion": 1,
|
|
1567
|
+
"passed": false,
|
|
1568
|
+
"overallScore": 62,
|
|
1569
|
+
"grade": "D",
|
|
1570
|
+
"categories": [
|
|
1571
|
+
{
|
|
1572
|
+
"id": "validation",
|
|
1573
|
+
"name": "Deterministic validation",
|
|
1574
|
+
"score": 8,
|
|
1575
|
+
"max": 13
|
|
1576
|
+
}
|
|
1577
|
+
],
|
|
1578
|
+
"evaluatedAt": "2026-08-21T09:21:23.655Z",
|
|
1579
|
+
"evaluatedVersion": "0.0.0"
|
|
1580
|
+
}
|
|
1581
|
+
}
|
|
1582
|
+
},
|
|
1583
|
+
{
|
|
1584
|
+
"name": "prototype",
|
|
1585
|
+
"description": "Build multiple genuinely different versions of a UI piece you describe, rendered behind a visual picker so you can flip through them live and promote the one that feels right. Only runs when explicitly invoked; it does not trigger on its own.",
|
|
1586
|
+
"version": "0.0.0",
|
|
1587
|
+
"license": "",
|
|
1588
|
+
"creator": "",
|
|
1589
|
+
"compatibility": "",
|
|
1590
|
+
"allowedTools": [],
|
|
1591
|
+
"modelInvocable": false,
|
|
1592
|
+
"userInvocable": true,
|
|
1593
|
+
"installUrl": "github:emilkowalski/skills:skills/prototype",
|
|
1594
|
+
"relPath": "skills/prototype",
|
|
1595
|
+
"verified": true,
|
|
1596
|
+
"tokenCount": 2384,
|
|
1597
|
+
"evalSummary": {
|
|
1598
|
+
"overallScore": 71,
|
|
1599
|
+
"grade": "C",
|
|
1600
|
+
"categories": [
|
|
1601
|
+
{
|
|
1602
|
+
"id": "structure",
|
|
1603
|
+
"name": "Structure & completeness",
|
|
1604
|
+
"score": 7,
|
|
1605
|
+
"max": 10
|
|
1606
|
+
},
|
|
1607
|
+
{
|
|
1608
|
+
"id": "description",
|
|
1609
|
+
"name": "Description quality",
|
|
1610
|
+
"score": 8,
|
|
1611
|
+
"max": 10
|
|
1612
|
+
},
|
|
1613
|
+
{
|
|
1614
|
+
"id": "prompt-engineering",
|
|
1615
|
+
"name": "Prompt engineering",
|
|
1616
|
+
"score": 5,
|
|
1617
|
+
"max": 10
|
|
1618
|
+
},
|
|
1619
|
+
{
|
|
1620
|
+
"id": "context-efficiency",
|
|
1621
|
+
"name": "Context efficiency",
|
|
1622
|
+
"score": 10,
|
|
1623
|
+
"max": 10
|
|
1624
|
+
},
|
|
1625
|
+
{
|
|
1626
|
+
"id": "safety",
|
|
1627
|
+
"name": "Safety & guardrails",
|
|
1628
|
+
"score": 8,
|
|
1629
|
+
"max": 10
|
|
1630
|
+
},
|
|
1631
|
+
{
|
|
1632
|
+
"id": "testability",
|
|
1633
|
+
"name": "Testability",
|
|
1634
|
+
"score": 3,
|
|
1635
|
+
"max": 10
|
|
1636
|
+
},
|
|
1637
|
+
{
|
|
1638
|
+
"id": "license",
|
|
1639
|
+
"name": "License verification",
|
|
1640
|
+
"score": 0,
|
|
1641
|
+
"max": 10
|
|
1642
|
+
},
|
|
1643
|
+
{
|
|
1644
|
+
"id": "naming",
|
|
1645
|
+
"name": "Naming & conventions",
|
|
1646
|
+
"score": 10,
|
|
1647
|
+
"max": 10
|
|
1648
|
+
},
|
|
1649
|
+
{
|
|
1650
|
+
"id": "pii",
|
|
1651
|
+
"name": "PII detection",
|
|
1652
|
+
"score": 10,
|
|
1653
|
+
"max": 10
|
|
1654
|
+
},
|
|
1655
|
+
{
|
|
1656
|
+
"id": "script-lint",
|
|
1657
|
+
"name": "Script linting",
|
|
1658
|
+
"score": 10,
|
|
1659
|
+
"max": 10
|
|
1660
|
+
}
|
|
1661
|
+
],
|
|
1662
|
+
"evaluatedAt": "2026-08-21T09:21:23.655Z",
|
|
1663
|
+
"evaluatedVersion": "0.0.0"
|
|
1664
|
+
},
|
|
1665
|
+
"evalSummaries": {
|
|
1666
|
+
"quality": {
|
|
1667
|
+
"providerId": "quality",
|
|
1668
|
+
"providerVersion": "1.0.0",
|
|
1669
|
+
"schemaVersion": 1,
|
|
1670
|
+
"passed": true,
|
|
1671
|
+
"overallScore": 71,
|
|
1672
|
+
"grade": "C",
|
|
1673
|
+
"categories": [
|
|
1674
|
+
{
|
|
1675
|
+
"id": "structure",
|
|
1676
|
+
"name": "Structure & completeness",
|
|
1677
|
+
"score": 7,
|
|
1678
|
+
"max": 10
|
|
1679
|
+
},
|
|
1680
|
+
{
|
|
1681
|
+
"id": "description",
|
|
1682
|
+
"name": "Description quality",
|
|
1683
|
+
"score": 8,
|
|
1684
|
+
"max": 10
|
|
1685
|
+
},
|
|
1686
|
+
{
|
|
1687
|
+
"id": "prompt-engineering",
|
|
1688
|
+
"name": "Prompt engineering",
|
|
1689
|
+
"score": 5,
|
|
1690
|
+
"max": 10
|
|
1691
|
+
},
|
|
1692
|
+
{
|
|
1693
|
+
"id": "context-efficiency",
|
|
1694
|
+
"name": "Context efficiency",
|
|
1695
|
+
"score": 10,
|
|
1696
|
+
"max": 10
|
|
1697
|
+
},
|
|
1698
|
+
{
|
|
1699
|
+
"id": "safety",
|
|
1700
|
+
"name": "Safety & guardrails",
|
|
1701
|
+
"score": 8,
|
|
1702
|
+
"max": 10
|
|
1703
|
+
},
|
|
1704
|
+
{
|
|
1705
|
+
"id": "testability",
|
|
1706
|
+
"name": "Testability",
|
|
1707
|
+
"score": 3,
|
|
1708
|
+
"max": 10
|
|
1709
|
+
},
|
|
1710
|
+
{
|
|
1711
|
+
"id": "license",
|
|
1712
|
+
"name": "License verification",
|
|
1713
|
+
"score": 0,
|
|
1714
|
+
"max": 10
|
|
1715
|
+
},
|
|
1716
|
+
{
|
|
1717
|
+
"id": "naming",
|
|
1718
|
+
"name": "Naming & conventions",
|
|
1719
|
+
"score": 10,
|
|
1720
|
+
"max": 10
|
|
1721
|
+
},
|
|
1722
|
+
{
|
|
1723
|
+
"id": "pii",
|
|
1724
|
+
"name": "PII detection",
|
|
1725
|
+
"score": 10,
|
|
1726
|
+
"max": 10
|
|
1727
|
+
},
|
|
1728
|
+
{
|
|
1729
|
+
"id": "script-lint",
|
|
1730
|
+
"name": "Script linting",
|
|
1731
|
+
"score": 10,
|
|
1732
|
+
"max": 10
|
|
1733
|
+
}
|
|
1734
|
+
],
|
|
1735
|
+
"evaluatedAt": "2026-08-21T09:21:23.655Z",
|
|
1736
|
+
"evaluatedVersion": "0.0.0"
|
|
1737
|
+
},
|
|
1738
|
+
"skill-best-practice": {
|
|
1739
|
+
"providerId": "skill-best-practice",
|
|
1740
|
+
"providerVersion": "1.1.0",
|
|
1741
|
+
"schemaVersion": 1,
|
|
1742
|
+
"passed": false,
|
|
1743
|
+
"overallScore": 69,
|
|
1744
|
+
"grade": "C",
|
|
1745
|
+
"categories": [
|
|
1746
|
+
{
|
|
1747
|
+
"id": "validation",
|
|
1748
|
+
"name": "Deterministic validation",
|
|
1749
|
+
"score": 9,
|
|
1750
|
+
"max": 13
|
|
1751
|
+
}
|
|
1752
|
+
],
|
|
1753
|
+
"evaluatedAt": "2026-08-21T09:21:23.655Z",
|
|
1754
|
+
"evaluatedVersion": "0.0.0"
|
|
1755
|
+
}
|
|
1756
|
+
}
|
|
1757
|
+
},
|
|
1758
|
+
{
|
|
1759
|
+
"name": "review-animations",
|
|
1760
|
+
"description": "Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.",
|
|
1761
|
+
"version": "0.0.0",
|
|
1762
|
+
"license": "",
|
|
1763
|
+
"creator": "",
|
|
1764
|
+
"compatibility": "",
|
|
1765
|
+
"allowedTools": [],
|
|
1766
|
+
"modelInvocable": false,
|
|
1767
|
+
"userInvocable": true,
|
|
1768
|
+
"installUrl": "github:emilkowalski/skills:skills/review-animations",
|
|
1769
|
+
"relPath": "skills/review-animations",
|
|
1770
|
+
"verified": true,
|
|
1771
|
+
"tokenCount": 2165,
|
|
1772
|
+
"evalSummary": {
|
|
1773
|
+
"overallScore": 63,
|
|
1774
|
+
"grade": "D",
|
|
1775
|
+
"categories": [
|
|
1776
|
+
{
|
|
1777
|
+
"id": "structure",
|
|
1778
|
+
"name": "Structure & completeness",
|
|
1779
|
+
"score": 7,
|
|
1780
|
+
"max": 10
|
|
1781
|
+
},
|
|
1782
|
+
{
|
|
1783
|
+
"id": "description",
|
|
1784
|
+
"name": "Description quality",
|
|
1785
|
+
"score": 7,
|
|
1786
|
+
"max": 10
|
|
1787
|
+
},
|
|
1788
|
+
{
|
|
1789
|
+
"id": "prompt-engineering",
|
|
1790
|
+
"name": "Prompt engineering",
|
|
1791
|
+
"score": 3,
|
|
1792
|
+
"max": 10
|
|
1793
|
+
},
|
|
1794
|
+
{
|
|
1795
|
+
"id": "context-efficiency",
|
|
1796
|
+
"name": "Context efficiency",
|
|
1797
|
+
"score": 9,
|
|
1798
|
+
"max": 10
|
|
1799
|
+
},
|
|
1800
|
+
{
|
|
1801
|
+
"id": "safety",
|
|
1802
|
+
"name": "Safety & guardrails",
|
|
1803
|
+
"score": 7,
|
|
1804
|
+
"max": 10
|
|
1805
|
+
},
|
|
1806
|
+
{
|
|
1807
|
+
"id": "testability",
|
|
1808
|
+
"name": "Testability",
|
|
1809
|
+
"score": 0,
|
|
1810
|
+
"max": 10
|
|
1811
|
+
},
|
|
1812
|
+
{
|
|
1813
|
+
"id": "license",
|
|
1814
|
+
"name": "License verification",
|
|
1815
|
+
"score": 0,
|
|
1816
|
+
"max": 10
|
|
1817
|
+
},
|
|
1818
|
+
{
|
|
1819
|
+
"id": "naming",
|
|
1820
|
+
"name": "Naming & conventions",
|
|
1821
|
+
"score": 10,
|
|
1822
|
+
"max": 10
|
|
1823
|
+
},
|
|
1824
|
+
{
|
|
1825
|
+
"id": "pii",
|
|
1826
|
+
"name": "PII detection",
|
|
1827
|
+
"score": 10,
|
|
1828
|
+
"max": 10
|
|
1829
|
+
},
|
|
1830
|
+
{
|
|
1831
|
+
"id": "script-lint",
|
|
1832
|
+
"name": "Script linting",
|
|
1833
|
+
"score": 10,
|
|
1834
|
+
"max": 10
|
|
1835
|
+
}
|
|
1836
|
+
],
|
|
1837
|
+
"evaluatedAt": "2026-08-21T09:21:23.655Z",
|
|
1838
|
+
"evaluatedVersion": "0.0.0"
|
|
1839
|
+
},
|
|
1840
|
+
"evalSummaries": {
|
|
1841
|
+
"quality": {
|
|
1842
|
+
"providerId": "quality",
|
|
1843
|
+
"providerVersion": "1.0.0",
|
|
1844
|
+
"schemaVersion": 1,
|
|
1845
|
+
"passed": true,
|
|
1846
|
+
"overallScore": 63,
|
|
1847
|
+
"grade": "D",
|
|
1848
|
+
"categories": [
|
|
1849
|
+
{
|
|
1850
|
+
"id": "structure",
|
|
1851
|
+
"name": "Structure & completeness",
|
|
1852
|
+
"score": 7,
|
|
1853
|
+
"max": 10
|
|
1854
|
+
},
|
|
1855
|
+
{
|
|
1856
|
+
"id": "description",
|
|
1857
|
+
"name": "Description quality",
|
|
1858
|
+
"score": 7,
|
|
1859
|
+
"max": 10
|
|
1860
|
+
},
|
|
1861
|
+
{
|
|
1862
|
+
"id": "prompt-engineering",
|
|
1863
|
+
"name": "Prompt engineering",
|
|
1864
|
+
"score": 3,
|
|
1865
|
+
"max": 10
|
|
1866
|
+
},
|
|
1867
|
+
{
|
|
1868
|
+
"id": "context-efficiency",
|
|
1869
|
+
"name": "Context efficiency",
|
|
1870
|
+
"score": 9,
|
|
1871
|
+
"max": 10
|
|
1872
|
+
},
|
|
1873
|
+
{
|
|
1874
|
+
"id": "safety",
|
|
1875
|
+
"name": "Safety & guardrails",
|
|
1876
|
+
"score": 7,
|
|
1877
|
+
"max": 10
|
|
1878
|
+
},
|
|
1879
|
+
{
|
|
1880
|
+
"id": "testability",
|
|
1881
|
+
"name": "Testability",
|
|
1882
|
+
"score": 0,
|
|
1883
|
+
"max": 10
|
|
1884
|
+
},
|
|
1885
|
+
{
|
|
1886
|
+
"id": "license",
|
|
1887
|
+
"name": "License verification",
|
|
1888
|
+
"score": 0,
|
|
1889
|
+
"max": 10
|
|
1890
|
+
},
|
|
1891
|
+
{
|
|
1892
|
+
"id": "naming",
|
|
1893
|
+
"name": "Naming & conventions",
|
|
1894
|
+
"score": 10,
|
|
1895
|
+
"max": 10
|
|
1896
|
+
},
|
|
1897
|
+
{
|
|
1898
|
+
"id": "pii",
|
|
1899
|
+
"name": "PII detection",
|
|
1900
|
+
"score": 10,
|
|
1901
|
+
"max": 10
|
|
1902
|
+
},
|
|
1903
|
+
{
|
|
1904
|
+
"id": "script-lint",
|
|
1905
|
+
"name": "Script linting",
|
|
1906
|
+
"score": 10,
|
|
1907
|
+
"max": 10
|
|
1908
|
+
}
|
|
1909
|
+
],
|
|
1910
|
+
"evaluatedAt": "2026-08-21T09:21:23.655Z",
|
|
1911
|
+
"evaluatedVersion": "0.0.0"
|
|
1912
|
+
},
|
|
1913
|
+
"skill-best-practice": {
|
|
1914
|
+
"providerId": "skill-best-practice",
|
|
1915
|
+
"providerVersion": "1.1.0",
|
|
1916
|
+
"schemaVersion": 1,
|
|
1917
|
+
"passed": false,
|
|
1918
|
+
"overallScore": 69,
|
|
1919
|
+
"grade": "C",
|
|
1920
|
+
"categories": [
|
|
1921
|
+
{
|
|
1922
|
+
"id": "validation",
|
|
1923
|
+
"name": "Deterministic validation",
|
|
1924
|
+
"score": 9,
|
|
1925
|
+
"max": 13
|
|
1926
|
+
}
|
|
1927
|
+
],
|
|
1928
|
+
"evaluatedAt": "2026-08-21T09:21:23.655Z",
|
|
1929
|
+
"evaluatedVersion": "0.0.0"
|
|
1930
|
+
}
|
|
1931
|
+
}
|
|
1932
|
+
}
|
|
1933
|
+
],
|
|
1934
|
+
"bundles": [
|
|
1935
|
+
{
|
|
1936
|
+
"version": 1,
|
|
1937
|
+
"name": "emilkowalski-skills-data-ai",
|
|
1938
|
+
"description": "Data, analytics, AI, model, prompt, agent, and automation skills. Derived from emilkowalski/skills.",
|
|
1939
|
+
"author": "ASM (emilkowalski/skills)",
|
|
1940
|
+
"createdAt": "2026-08-21T09:21:23.657Z",
|
|
1941
|
+
"tags": [
|
|
1942
|
+
"repo-derived",
|
|
1943
|
+
"inferred",
|
|
1944
|
+
"data",
|
|
1945
|
+
"ai",
|
|
1946
|
+
"agents",
|
|
1947
|
+
"emilkowalski",
|
|
1948
|
+
"skills"
|
|
1949
|
+
],
|
|
1950
|
+
"skills": [
|
|
1951
|
+
{
|
|
1952
|
+
"name": "animation-vocabulary",
|
|
1953
|
+
"installUrl": "github:emilkowalski/skills:skills/animation-vocabulary",
|
|
1954
|
+
"description": "Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term (\"the bouncy thing when a popover opens\" → Pop in; \"the iOS rubber-band scroll\" → Rubber-banding). Use when the user asks \"what's it called when…\", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.",
|
|
1955
|
+
"version": "0.0.0"
|
|
1956
|
+
},
|
|
1957
|
+
{
|
|
1958
|
+
"name": "apple-design",
|
|
1959
|
+
"installUrl": "github:emilkowalski/skills:skills/apple-design",
|
|
1960
|
+
"description": "Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.",
|
|
1961
|
+
"version": "0.0.0"
|
|
1962
|
+
},
|
|
1963
|
+
{
|
|
1964
|
+
"name": "ask-sonner",
|
|
1965
|
+
"installUrl": "github:emilkowalski/skills:skills/ask-sonner",
|
|
1966
|
+
"description": "Guide to Sonner, the React toast library — install and wire up the Toaster, pick the right toast() call, promise and loading toasts, updating, dismissing and persisting toasts, styling, theming and icons, positioning and multiple toasters. Use when working with Sonner or troubleshooting it — toasts that don't appear, appear twice, lose their styles, ignore Tailwind classes, sit behind a modal, or don't follow dark mode.",
|
|
1967
|
+
"version": "0.0.0"
|
|
1968
|
+
},
|
|
1969
|
+
{
|
|
1970
|
+
"name": "emil-design-eng",
|
|
1971
|
+
"installUrl": "github:emilkowalski/skills:skills/emil-design-eng",
|
|
1972
|
+
"description": "This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.",
|
|
1973
|
+
"version": "0.0.0"
|
|
1974
|
+
},
|
|
1975
|
+
{
|
|
1976
|
+
"name": "improve-animations",
|
|
1977
|
+
"installUrl": "github:emilkowalski/skills:skills/improve-animations",
|
|
1978
|
+
"description": "Survey a codebase's animation and motion code as a senior motion advisor, then produce a prioritized audit and self-contained implementation plans for other agents (or cheaper models) to execute. Read-only on source code — it plans improvements, it does not apply them. Use when the user asks to \"improve the animations\", \"audit the motion\", \"make this app feel better\", or wants a roadmap of animation fixes rather than a review of a single diff.",
|
|
1979
|
+
"version": "0.0.0"
|
|
1980
|
+
},
|
|
1981
|
+
{
|
|
1982
|
+
"name": "review-animations",
|
|
1983
|
+
"installUrl": "github:emilkowalski/skills:skills/review-animations",
|
|
1984
|
+
"description": "Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.",
|
|
1985
|
+
"version": "0.0.0"
|
|
1986
|
+
}
|
|
1987
|
+
],
|
|
1988
|
+
"sourceRepo": {
|
|
1989
|
+
"owner": "emilkowalski",
|
|
1990
|
+
"repo": "skills",
|
|
1991
|
+
"repoUrl": "https://github.com/emilkowalski/skills.git"
|
|
1992
|
+
},
|
|
1993
|
+
"inferred": true
|
|
1994
|
+
},
|
|
1995
|
+
{
|
|
1996
|
+
"version": 1,
|
|
1997
|
+
"name": "emilkowalski-skills-devops",
|
|
1998
|
+
"description": "Deployment, CI/CD, infrastructure, cloud, Docker, Kubernetes, and automation skills. Derived from emilkowalski/skills.",
|
|
1999
|
+
"author": "ASM (emilkowalski/skills)",
|
|
2000
|
+
"createdAt": "2026-08-21T09:21:23.657Z",
|
|
2001
|
+
"tags": [
|
|
2002
|
+
"repo-derived",
|
|
2003
|
+
"inferred",
|
|
2004
|
+
"devops",
|
|
2005
|
+
"infra",
|
|
2006
|
+
"automation",
|
|
2007
|
+
"emilkowalski",
|
|
2008
|
+
"skills"
|
|
2009
|
+
],
|
|
2010
|
+
"skills": [
|
|
2011
|
+
{
|
|
2012
|
+
"name": "animate",
|
|
2013
|
+
"installUrl": "github:emilkowalski/skills:skills/animate",
|
|
2014
|
+
"description": "Build an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Writes the implementation. Use when asked to animate something, add motion, make a component feel alive, or build a transition. For critiquing existing motion use review-animations; for auditing a whole codebase use improve-animations.",
|
|
2015
|
+
"version": "0.0.0"
|
|
2016
|
+
},
|
|
2017
|
+
{
|
|
2018
|
+
"name": "animate-expo",
|
|
2019
|
+
"installUrl": "github:emilkowalski/skills:skills/animate-expo",
|
|
2020
|
+
"description": "Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web animation use `animate`.",
|
|
2021
|
+
"version": "0.0.0"
|
|
2022
|
+
},
|
|
2023
|
+
{
|
|
2024
|
+
"name": "emil-design-eng",
|
|
2025
|
+
"installUrl": "github:emilkowalski/skills:skills/emil-design-eng",
|
|
2026
|
+
"description": "This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.",
|
|
2027
|
+
"version": "0.0.0"
|
|
2028
|
+
},
|
|
2029
|
+
{
|
|
2030
|
+
"name": "pick-ui-library",
|
|
2031
|
+
"installUrl": "github:emilkowalski/skills:skills/pick-ui-library",
|
|
2032
|
+
"description": "Pick the right library for a given frontend task from a curated, opinionated list — numbers, OTP inputs, charts, command menus, virtualization, drag and drop, toasts, state, styling, and more. Only runs when explicitly invoked; it does not trigger on its own.",
|
|
2033
|
+
"version": "0.0.0"
|
|
2034
|
+
},
|
|
2035
|
+
{
|
|
2036
|
+
"name": "prototype",
|
|
2037
|
+
"installUrl": "github:emilkowalski/skills:skills/prototype",
|
|
2038
|
+
"description": "Build multiple genuinely different versions of a UI piece you describe, rendered behind a visual picker so you can flip through them live and promote the one that feels right. Only runs when explicitly invoked; it does not trigger on its own.",
|
|
2039
|
+
"version": "0.0.0"
|
|
2040
|
+
}
|
|
2041
|
+
],
|
|
2042
|
+
"sourceRepo": {
|
|
2043
|
+
"owner": "emilkowalski",
|
|
2044
|
+
"repo": "skills",
|
|
2045
|
+
"repoUrl": "https://github.com/emilkowalski/skills.git"
|
|
2046
|
+
},
|
|
2047
|
+
"inferred": true
|
|
2048
|
+
},
|
|
2049
|
+
{
|
|
2050
|
+
"version": 1,
|
|
2051
|
+
"name": "emilkowalski-skills-engineering",
|
|
2052
|
+
"description": "Coding, debugging, testing, architecture, review, and software engineering skills. Derived from emilkowalski/skills.",
|
|
2053
|
+
"author": "ASM (emilkowalski/skills)",
|
|
2054
|
+
"createdAt": "2026-08-21T09:21:23.657Z",
|
|
2055
|
+
"tags": [
|
|
2056
|
+
"repo-derived",
|
|
2057
|
+
"inferred",
|
|
2058
|
+
"engineering",
|
|
2059
|
+
"coding",
|
|
2060
|
+
"testing",
|
|
2061
|
+
"emilkowalski",
|
|
2062
|
+
"skills"
|
|
2063
|
+
],
|
|
2064
|
+
"skills": [
|
|
2065
|
+
{
|
|
2066
|
+
"name": "animate",
|
|
2067
|
+
"installUrl": "github:emilkowalski/skills:skills/animate",
|
|
2068
|
+
"description": "Build an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Writes the implementation. Use when asked to animate something, add motion, make a component feel alive, or build a transition. For critiquing existing motion use review-animations; for auditing a whole codebase use improve-animations.",
|
|
2069
|
+
"version": "0.0.0"
|
|
2070
|
+
},
|
|
2071
|
+
{
|
|
2072
|
+
"name": "animate-expo",
|
|
2073
|
+
"installUrl": "github:emilkowalski/skills:skills/animate-expo",
|
|
2074
|
+
"description": "Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web animation use `animate`.",
|
|
2075
|
+
"version": "0.0.0"
|
|
2076
|
+
},
|
|
2077
|
+
{
|
|
2078
|
+
"name": "animation-vocabulary",
|
|
2079
|
+
"installUrl": "github:emilkowalski/skills:skills/animation-vocabulary",
|
|
2080
|
+
"description": "Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term (\"the bouncy thing when a popover opens\" → Pop in; \"the iOS rubber-band scroll\" → Rubber-banding). Use when the user asks \"what's it called when…\", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.",
|
|
2081
|
+
"version": "0.0.0"
|
|
2082
|
+
},
|
|
2083
|
+
{
|
|
2084
|
+
"name": "apple-design",
|
|
2085
|
+
"installUrl": "github:emilkowalski/skills:skills/apple-design",
|
|
2086
|
+
"description": "Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.",
|
|
2087
|
+
"version": "0.0.0"
|
|
2088
|
+
},
|
|
2089
|
+
{
|
|
2090
|
+
"name": "emil-design-eng",
|
|
2091
|
+
"installUrl": "github:emilkowalski/skills:skills/emil-design-eng",
|
|
2092
|
+
"description": "This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.",
|
|
2093
|
+
"version": "0.0.0"
|
|
2094
|
+
},
|
|
2095
|
+
{
|
|
2096
|
+
"name": "find-animation-opportunities",
|
|
2097
|
+
"installUrl": "github:emilkowalski/skills:skills/find-animation-opportunities",
|
|
2098
|
+
"description": "Search a codebase or UI for places that don't animate but should, and reject everything that shouldn't. Read-only; it proposes motion with exact values, it does not implement it. Use when the user asks \"what could be animated here?\" or wants to \"make this feel more alive\". For fixing existing animations, use improve-animations or review-animations instead.",
|
|
2099
|
+
"version": "0.0.0"
|
|
2100
|
+
},
|
|
2101
|
+
{
|
|
2102
|
+
"name": "improve-animations",
|
|
2103
|
+
"installUrl": "github:emilkowalski/skills:skills/improve-animations",
|
|
2104
|
+
"description": "Survey a codebase's animation and motion code as a senior motion advisor, then produce a prioritized audit and self-contained implementation plans for other agents (or cheaper models) to execute. Read-only on source code — it plans improvements, it does not apply them. Use when the user asks to \"improve the animations\", \"audit the motion\", \"make this app feel better\", or wants a roadmap of animation fixes rather than a review of a single diff.",
|
|
2105
|
+
"version": "0.0.0"
|
|
2106
|
+
},
|
|
2107
|
+
{
|
|
2108
|
+
"name": "prototype",
|
|
2109
|
+
"installUrl": "github:emilkowalski/skills:skills/prototype",
|
|
2110
|
+
"description": "Build multiple genuinely different versions of a UI piece you describe, rendered behind a visual picker so you can flip through them live and promote the one that feels right. Only runs when explicitly invoked; it does not trigger on its own.",
|
|
2111
|
+
"version": "0.0.0"
|
|
2112
|
+
},
|
|
2113
|
+
{
|
|
2114
|
+
"name": "review-animations",
|
|
2115
|
+
"installUrl": "github:emilkowalski/skills:skills/review-animations",
|
|
2116
|
+
"description": "Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.",
|
|
2117
|
+
"version": "0.0.0"
|
|
2118
|
+
}
|
|
2119
|
+
],
|
|
2120
|
+
"sourceRepo": {
|
|
2121
|
+
"owner": "emilkowalski",
|
|
2122
|
+
"repo": "skills",
|
|
2123
|
+
"repoUrl": "https://github.com/emilkowalski/skills.git"
|
|
2124
|
+
},
|
|
2125
|
+
"inferred": true
|
|
2126
|
+
},
|
|
2127
|
+
{
|
|
2128
|
+
"version": 1,
|
|
2129
|
+
"name": "emilkowalski-skills-frontend-design",
|
|
2130
|
+
"description": "Frontend, UI, UX, visual design, component, theme, and landing-page skills. Derived from emilkowalski/skills.",
|
|
2131
|
+
"author": "ASM (emilkowalski/skills)",
|
|
2132
|
+
"createdAt": "2026-08-21T09:21:23.657Z",
|
|
2133
|
+
"tags": [
|
|
2134
|
+
"repo-derived",
|
|
2135
|
+
"inferred",
|
|
2136
|
+
"frontend",
|
|
2137
|
+
"design",
|
|
2138
|
+
"ui",
|
|
2139
|
+
"emilkowalski",
|
|
2140
|
+
"skills"
|
|
2141
|
+
],
|
|
2142
|
+
"skills": [
|
|
2143
|
+
{
|
|
2144
|
+
"name": "animate",
|
|
2145
|
+
"installUrl": "github:emilkowalski/skills:skills/animate",
|
|
2146
|
+
"description": "Build an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Writes the implementation. Use when asked to animate something, add motion, make a component feel alive, or build a transition. For critiquing existing motion use review-animations; for auditing a whole codebase use improve-animations.",
|
|
2147
|
+
"version": "0.0.0"
|
|
2148
|
+
},
|
|
2149
|
+
{
|
|
2150
|
+
"name": "animate-expo",
|
|
2151
|
+
"installUrl": "github:emilkowalski/skills:skills/animate-expo",
|
|
2152
|
+
"description": "Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web animation use `animate`.",
|
|
2153
|
+
"version": "0.0.0"
|
|
2154
|
+
},
|
|
2155
|
+
{
|
|
2156
|
+
"name": "animation-vocabulary",
|
|
2157
|
+
"installUrl": "github:emilkowalski/skills:skills/animation-vocabulary",
|
|
2158
|
+
"description": "Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term (\"the bouncy thing when a popover opens\" → Pop in; \"the iOS rubber-band scroll\" → Rubber-banding). Use when the user asks \"what's it called when…\", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.",
|
|
2159
|
+
"version": "0.0.0"
|
|
2160
|
+
},
|
|
2161
|
+
{
|
|
2162
|
+
"name": "apple-design",
|
|
2163
|
+
"installUrl": "github:emilkowalski/skills:skills/apple-design",
|
|
2164
|
+
"description": "Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.",
|
|
2165
|
+
"version": "0.0.0"
|
|
2166
|
+
},
|
|
2167
|
+
{
|
|
2168
|
+
"name": "ask-sonner",
|
|
2169
|
+
"installUrl": "github:emilkowalski/skills:skills/ask-sonner",
|
|
2170
|
+
"description": "Guide to Sonner, the React toast library — install and wire up the Toaster, pick the right toast() call, promise and loading toasts, updating, dismissing and persisting toasts, styling, theming and icons, positioning and multiple toasters. Use when working with Sonner or troubleshooting it — toasts that don't appear, appear twice, lose their styles, ignore Tailwind classes, sit behind a modal, or don't follow dark mode.",
|
|
2171
|
+
"version": "0.0.0"
|
|
2172
|
+
},
|
|
2173
|
+
{
|
|
2174
|
+
"name": "emil-design-eng",
|
|
2175
|
+
"installUrl": "github:emilkowalski/skills:skills/emil-design-eng",
|
|
2176
|
+
"description": "This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.",
|
|
2177
|
+
"version": "0.0.0"
|
|
2178
|
+
},
|
|
2179
|
+
{
|
|
2180
|
+
"name": "find-animation-opportunities",
|
|
2181
|
+
"installUrl": "github:emilkowalski/skills:skills/find-animation-opportunities",
|
|
2182
|
+
"description": "Search a codebase or UI for places that don't animate but should, and reject everything that shouldn't. Read-only; it proposes motion with exact values, it does not implement it. Use when the user asks \"what could be animated here?\" or wants to \"make this feel more alive\". For fixing existing animations, use improve-animations or review-animations instead.",
|
|
2183
|
+
"version": "0.0.0"
|
|
2184
|
+
},
|
|
2185
|
+
{
|
|
2186
|
+
"name": "pick-ui-library",
|
|
2187
|
+
"installUrl": "github:emilkowalski/skills:skills/pick-ui-library",
|
|
2188
|
+
"description": "Pick the right library for a given frontend task from a curated, opinionated list — numbers, OTP inputs, charts, command menus, virtualization, drag and drop, toasts, state, styling, and more. Only runs when explicitly invoked; it does not trigger on its own.",
|
|
2189
|
+
"version": "0.0.0"
|
|
2190
|
+
},
|
|
2191
|
+
{
|
|
2192
|
+
"name": "prototype",
|
|
2193
|
+
"installUrl": "github:emilkowalski/skills:skills/prototype",
|
|
2194
|
+
"description": "Build multiple genuinely different versions of a UI piece you describe, rendered behind a visual picker so you can flip through them live and promote the one that feels right. Only runs when explicitly invoked; it does not trigger on its own.",
|
|
2195
|
+
"version": "0.0.0"
|
|
2196
|
+
},
|
|
2197
|
+
{
|
|
2198
|
+
"name": "review-animations",
|
|
2199
|
+
"installUrl": "github:emilkowalski/skills:skills/review-animations",
|
|
2200
|
+
"description": "Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.",
|
|
2201
|
+
"version": "0.0.0"
|
|
2202
|
+
}
|
|
2203
|
+
],
|
|
2204
|
+
"sourceRepo": {
|
|
2205
|
+
"owner": "emilkowalski",
|
|
2206
|
+
"repo": "skills",
|
|
2207
|
+
"repoUrl": "https://github.com/emilkowalski/skills.git"
|
|
2208
|
+
},
|
|
2209
|
+
"inferred": true
|
|
2210
|
+
},
|
|
2211
|
+
{
|
|
2212
|
+
"version": 1,
|
|
2213
|
+
"name": "emilkowalski-skills-research",
|
|
2214
|
+
"description": "Research, academic, literature-review, citation, paper, and analysis skills. Derived from emilkowalski/skills.",
|
|
2215
|
+
"author": "ASM (emilkowalski/skills)",
|
|
2216
|
+
"createdAt": "2026-08-21T09:21:23.657Z",
|
|
2217
|
+
"tags": [
|
|
2218
|
+
"repo-derived",
|
|
2219
|
+
"inferred",
|
|
2220
|
+
"research",
|
|
2221
|
+
"academic",
|
|
2222
|
+
"analysis",
|
|
2223
|
+
"emilkowalski",
|
|
2224
|
+
"skills"
|
|
2225
|
+
],
|
|
2226
|
+
"skills": [
|
|
2227
|
+
{
|
|
2228
|
+
"name": "animate",
|
|
2229
|
+
"installUrl": "github:emilkowalski/skills:skills/animate",
|
|
2230
|
+
"description": "Build an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Writes the implementation. Use when asked to animate something, add motion, make a component feel alive, or build a transition. For critiquing existing motion use review-animations; for auditing a whole codebase use improve-animations.",
|
|
2231
|
+
"version": "0.0.0"
|
|
2232
|
+
},
|
|
2233
|
+
{
|
|
2234
|
+
"name": "apple-design",
|
|
2235
|
+
"installUrl": "github:emilkowalski/skills:skills/apple-design",
|
|
2236
|
+
"description": "Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.",
|
|
2237
|
+
"version": "0.0.0"
|
|
2238
|
+
},
|
|
2239
|
+
{
|
|
2240
|
+
"name": "find-animation-opportunities",
|
|
2241
|
+
"installUrl": "github:emilkowalski/skills:skills/find-animation-opportunities",
|
|
2242
|
+
"description": "Search a codebase or UI for places that don't animate but should, and reject everything that shouldn't. Read-only; it proposes motion with exact values, it does not implement it. Use when the user asks \"what could be animated here?\" or wants to \"make this feel more alive\". For fixing existing animations, use improve-animations or review-animations instead.",
|
|
2243
|
+
"version": "0.0.0"
|
|
2244
|
+
},
|
|
2245
|
+
{
|
|
2246
|
+
"name": "improve-animations",
|
|
2247
|
+
"installUrl": "github:emilkowalski/skills:skills/improve-animations",
|
|
2248
|
+
"description": "Survey a codebase's animation and motion code as a senior motion advisor, then produce a prioritized audit and self-contained implementation plans for other agents (or cheaper models) to execute. Read-only on source code — it plans improvements, it does not apply them. Use when the user asks to \"improve the animations\", \"audit the motion\", \"make this app feel better\", or wants a roadmap of animation fixes rather than a review of a single diff.",
|
|
2249
|
+
"version": "0.0.0"
|
|
2250
|
+
},
|
|
2251
|
+
{
|
|
2252
|
+
"name": "review-animations",
|
|
2253
|
+
"installUrl": "github:emilkowalski/skills:skills/review-animations",
|
|
2254
|
+
"description": "Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.",
|
|
2255
|
+
"version": "0.0.0"
|
|
2256
|
+
}
|
|
2257
|
+
],
|
|
2258
|
+
"sourceRepo": {
|
|
2259
|
+
"owner": "emilkowalski",
|
|
2260
|
+
"repo": "skills",
|
|
2261
|
+
"repoUrl": "https://github.com/emilkowalski/skills.git"
|
|
2262
|
+
},
|
|
2263
|
+
"inferred": true
|
|
2264
|
+
},
|
|
2265
|
+
{
|
|
2266
|
+
"version": 1,
|
|
2267
|
+
"name": "emilkowalski-skills-writing",
|
|
2268
|
+
"description": "Writing, editing, documentation, publishing, and content-production skills. Derived from emilkowalski/skills.",
|
|
2269
|
+
"author": "ASM (emilkowalski/skills)",
|
|
2270
|
+
"createdAt": "2026-08-21T09:21:23.657Z",
|
|
2271
|
+
"tags": [
|
|
2272
|
+
"repo-derived",
|
|
2273
|
+
"inferred",
|
|
2274
|
+
"writing",
|
|
2275
|
+
"content",
|
|
2276
|
+
"docs",
|
|
2277
|
+
"emilkowalski",
|
|
2278
|
+
"skills"
|
|
2279
|
+
],
|
|
2280
|
+
"skills": [
|
|
2281
|
+
{
|
|
2282
|
+
"name": "animate",
|
|
2283
|
+
"installUrl": "github:emilkowalski/skills:skills/animate",
|
|
2284
|
+
"description": "Build an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Writes the implementation. Use when asked to animate something, add motion, make a component feel alive, or build a transition. For critiquing existing motion use review-animations; for auditing a whole codebase use improve-animations.",
|
|
2285
|
+
"version": "0.0.0"
|
|
2286
|
+
},
|
|
2287
|
+
{
|
|
2288
|
+
"name": "animate-expo",
|
|
2289
|
+
"installUrl": "github:emilkowalski/skills:skills/animate-expo",
|
|
2290
|
+
"description": "Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web animation use `animate`.",
|
|
2291
|
+
"version": "0.0.0"
|
|
2292
|
+
}
|
|
2293
|
+
],
|
|
2294
|
+
"sourceRepo": {
|
|
2295
|
+
"owner": "emilkowalski",
|
|
2296
|
+
"repo": "skills",
|
|
2297
|
+
"repoUrl": "https://github.com/emilkowalski/skills.git"
|
|
2298
|
+
},
|
|
2299
|
+
"inferred": true
|
|
2300
|
+
}
|
|
2301
|
+
]
|
|
2302
|
+
}
|