agent-skill-manager 2.17.0 → 2.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +108 -33
  2. package/data/bundles/content-writing.json +9 -9
  3. package/data/bundles/frontend-dev.json +6 -6
  4. package/data/bundles/game-dev.json +60 -0
  5. package/data/bundles/ios-release.json +1 -1
  6. package/data/bundles/marketing.json +40 -0
  7. package/data/bundles/software-dev.json +40 -0
  8. package/data/repo-stars.json +80 -0
  9. package/data/skill-index/Affitor_affiliate-skills.json +692 -226
  10. package/data/skill-index/AvdLee_Core-Data-Agent-Skill.json +7 -5
  11. package/data/skill-index/AvdLee_Swift-Concurrency-Agent-Skill.json +7 -5
  12. package/data/skill-index/AvdLee_Swift-Testing-Agent-Skill.json +7 -5
  13. package/data/skill-index/AvdLee_SwiftUI-Agent-Skill.json +53 -13
  14. package/data/skill-index/AvdLee_Xcode-Build-Optimization-Agent-Skill.json +102 -30
  15. package/data/skill-index/ComposioHQ_awesome-claude-skills.json +155207 -0
  16. package/data/skill-index/DietrichGebert_ponytail.json +1307 -0
  17. package/data/skill-index/Dimillian_Skills.json +182 -72
  18. package/data/skill-index/Egonex-AI_Understand-Anything.json +64 -46
  19. package/data/skill-index/Eronred_aso-skills.json +443 -177
  20. package/data/skill-index/GPTomics_bioSkills.json +3618 -2494
  21. package/data/skill-index/Galaxy-Dawn_claude-scholar.json +313 -203
  22. package/data/skill-index/Imbad0202_academic-research-skills.json +42 -34
  23. package/data/skill-index/JuliusBrussee_caveman.json +3887 -0
  24. package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +2473 -2643
  25. package/data/skill-index/Leonxlnx_taste-skill.json +86 -60
  26. package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +7 -5
  27. package/data/skill-index/MiniMax-AI_skills.json +186 -104
  28. package/data/skill-index/Nutlope_hallmark.json +187 -0
  29. package/data/skill-index/Paramchoudhary_ResumeSkills.json +140 -96
  30. package/data/skill-index/ParthJadhav_app-store-screenshots.json +7 -5
  31. package/data/skill-index/addyosmani_agent-skills.json +572 -257
  32. package/data/skill-index/affaan-m_ECC.json +54685 -0
  33. package/data/skill-index/affaan-m_everything-claude-code.json +1903 -1248
  34. package/data/skill-index/alirezarezvani_claude-skills.json +14453 -8549
  35. package/data/skill-index/anthropics_skills.json +138 -98
  36. package/data/skill-index/antithesishq_antithesis-skills.json +173 -149
  37. package/data/skill-index/antonbabenko_terraform-skill.json +7 -5
  38. package/data/skill-index/ayghri_i-have-adhd.json +187 -0
  39. package/data/skill-index/badlogic_pi-skills.json +55 -39
  40. package/data/skill-index/blader_humanizer.json +187 -0
  41. package/data/skill-index/briiirussell_cybersecurity-skills.json +212 -343
  42. package/data/skill-index/bytedance_deer-flow.json +180 -126
  43. package/data/skill-index/cathrynlavery_diagram-design.json +187 -0
  44. package/data/skill-index/charlie947_answer-first.json +187 -0
  45. package/data/skill-index/charlie947_voiceprint.json +187 -0
  46. package/data/skill-index/cloudai-x_threejs-skills.json +149 -45
  47. package/data/skill-index/coreyhaines31_marketingskills.json +802 -467
  48. package/data/skill-index/davidondrej_skills.json +4580 -1075
  49. package/data/skill-index/emilkowalski_skills.json +353 -52
  50. package/data/skill-index/entireio_skills.json +185 -101
  51. package/data/skill-index/garrytan_gstack.json +968 -600
  52. package/data/skill-index/github_awesome-copilot.json +9624 -7636
  53. package/data/skill-index/google-labs-code_design.md.json +899 -0
  54. package/data/skill-index/google_skills.json +7013 -2434
  55. package/data/skill-index/hardikpandya_stop-slop.json +187 -0
  56. package/data/skill-index/heygen-com_hyperframes.json +191 -139
  57. package/data/skill-index/himself65_finance-skills.json +175 -340
  58. package/data/skill-index/ivan-magda_uikit-expert-skill.json +7 -5
  59. package/data/skill-index/kemiljk_fluid-design.json +7 -5
  60. package/data/skill-index/kepano_obsidian-skills.json +34 -24
  61. package/data/skill-index/luongnv89_asm.json +307 -219
  62. package/data/skill-index/luongnv89_idd.json +121 -107
  63. package/data/skill-index/luongnv89_skills.json +1503 -599
  64. package/data/skill-index/majidmanzarpour_threejs-game-skills.json +2024 -0
  65. package/data/skill-index/mattpocock_skills.json +596 -154
  66. package/data/skill-index/multica-ai_andrej-karpathy-skills.json +187 -0
  67. package/data/skill-index/mvanhorn_last30days-skill.json +16 -20
  68. package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +84 -70
  69. package/data/skill-index/obra_superpowers.json +95 -67
  70. package/data/skill-index/oliver-zehentleitner_keep-the-why.json +28 -26
  71. package/data/skill-index/openai_skills.json +8816 -0
  72. package/data/skill-index/pbakaus_impeccable.json +187 -0
  73. package/data/skill-index/romainsimon_paperasse.json +44 -32
  74. package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +319 -119
  75. package/data/skill-index/santifer_career-ops.json +1009 -14
  76. package/data/skill-index/sickn33_antigravity-awesome-skills.json +63856 -42252
  77. package/data/skill-index/slavingia_skills.json +68 -48
  78. package/data/skill-index/tt-a1i_archify.json +187 -0
  79. package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +7 -5
  80. package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +7 -5
  81. package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +7 -5
  82. package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +7 -5
  83. package/data/skill-index/warpdotdev_oz-skills.json +101 -71
  84. package/data/skill-index/zarazhangrui_follow-builders.json +7 -5
  85. package/data/skill-index/zarazhangrui_frontend-slides.json +187 -0
  86. package/data/skill-index-resources.json +172 -10
  87. package/dist/agent-skill-manager.js +486 -538
  88. package/dist/{chunk-LH2C3PE7.js → chunk-3KGAHUVB.js} +1 -1
  89. package/dist/chunk-CBDNF2SR.js +166 -0
  90. package/dist/chunk-ESKBKSXS.js +2 -0
  91. package/dist/chunk-KWWFXT5F.js +3 -0
  92. package/dist/config-JPFUVYBM.js +2 -0
  93. package/dist/{lock-NN2MADX7.js → lock-UEL3CMOV.js} +1 -1
  94. package/dist/spawn-JDSII5L3.js +2 -0
  95. package/dist/src-ORQ3FXUL.js +119 -0
  96. package/package.json +1 -1
  97. package/dist/chunk-BQ4RW237.js +0 -20
  98. package/dist/chunk-LS24FFOX.js +0 -3
  99. package/dist/config-AZYQEQOQ.js +0 -2
  100. package/dist/src-BD3KFE5H.js +0 -119
@@ -0,0 +1,3887 @@
1
+ {
2
+ "repoUrl": "https://github.com/JuliusBrussee/caveman.git",
3
+ "owner": "JuliusBrussee",
4
+ "repo": "caveman",
5
+ "updatedAt": "2026-09-09T12:11:32.937Z",
6
+ "skillCount": 20,
7
+ "skills": [
8
+ {
9
+ "name": "cavecrew",
10
+ "description": "When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff review) instead of working inline or using `Explore`. Their output is compressed, so main context lasts longer.",
11
+ "version": "0.0.0",
12
+ "license": "",
13
+ "creator": "",
14
+ "compatibility": "",
15
+ "allowedTools": [],
16
+ "tags": [],
17
+ "dependencies": [],
18
+ "modelInvocable": true,
19
+ "userInvocable": true,
20
+ "installUrl": "github:JuliusBrussee/caveman:skills/cavecrew",
21
+ "relPath": "skills/cavecrew",
22
+ "verified": true,
23
+ "tokenCount": 992,
24
+ "evalSummary": {
25
+ "overallScore": 64,
26
+ "grade": "D",
27
+ "categories": [
28
+ {
29
+ "id": "structure",
30
+ "name": "Structure & completeness",
31
+ "score": 7,
32
+ "max": 10
33
+ },
34
+ {
35
+ "id": "description",
36
+ "name": "Description quality",
37
+ "score": 7,
38
+ "max": 10
39
+ },
40
+ {
41
+ "id": "prompt-engineering",
42
+ "name": "Prompt engineering",
43
+ "score": 5,
44
+ "max": 10
45
+ },
46
+ {
47
+ "id": "context-efficiency",
48
+ "name": "Context efficiency",
49
+ "score": 7,
50
+ "max": 10
51
+ },
52
+ {
53
+ "id": "safety",
54
+ "name": "Safety & guardrails",
55
+ "score": 5,
56
+ "max": 10
57
+ },
58
+ {
59
+ "id": "testability",
60
+ "name": "Testability",
61
+ "score": 3,
62
+ "max": 10
63
+ },
64
+ {
65
+ "id": "license",
66
+ "name": "License verification",
67
+ "score": 0,
68
+ "max": 10
69
+ },
70
+ {
71
+ "id": "naming",
72
+ "name": "Naming & conventions",
73
+ "score": 10,
74
+ "max": 10
75
+ },
76
+ {
77
+ "id": "pii",
78
+ "name": "PII detection",
79
+ "score": 10,
80
+ "max": 10
81
+ },
82
+ {
83
+ "id": "script-lint",
84
+ "name": "Script linting",
85
+ "score": 10,
86
+ "max": 10
87
+ }
88
+ ],
89
+ "evaluatedAt": "2026-09-09T12:11:32.626Z",
90
+ "evaluatedVersion": "0.0.0"
91
+ },
92
+ "evalSummaries": {
93
+ "quality": {
94
+ "providerId": "quality",
95
+ "providerVersion": "1.0.0",
96
+ "schemaVersion": 1,
97
+ "passed": true,
98
+ "overallScore": 64,
99
+ "grade": "D",
100
+ "categories": [
101
+ {
102
+ "id": "structure",
103
+ "name": "Structure & completeness",
104
+ "score": 7,
105
+ "max": 10
106
+ },
107
+ {
108
+ "id": "description",
109
+ "name": "Description quality",
110
+ "score": 7,
111
+ "max": 10
112
+ },
113
+ {
114
+ "id": "prompt-engineering",
115
+ "name": "Prompt engineering",
116
+ "score": 5,
117
+ "max": 10
118
+ },
119
+ {
120
+ "id": "context-efficiency",
121
+ "name": "Context efficiency",
122
+ "score": 7,
123
+ "max": 10
124
+ },
125
+ {
126
+ "id": "safety",
127
+ "name": "Safety & guardrails",
128
+ "score": 5,
129
+ "max": 10
130
+ },
131
+ {
132
+ "id": "testability",
133
+ "name": "Testability",
134
+ "score": 3,
135
+ "max": 10
136
+ },
137
+ {
138
+ "id": "license",
139
+ "name": "License verification",
140
+ "score": 0,
141
+ "max": 10
142
+ },
143
+ {
144
+ "id": "naming",
145
+ "name": "Naming & conventions",
146
+ "score": 10,
147
+ "max": 10
148
+ },
149
+ {
150
+ "id": "pii",
151
+ "name": "PII detection",
152
+ "score": 10,
153
+ "max": 10
154
+ },
155
+ {
156
+ "id": "script-lint",
157
+ "name": "Script linting",
158
+ "score": 10,
159
+ "max": 10
160
+ }
161
+ ],
162
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
163
+ "evaluatedVersion": "0.0.0"
164
+ },
165
+ "skill-best-practice": {
166
+ "providerId": "skill-best-practice",
167
+ "providerVersion": "1.2.0",
168
+ "schemaVersion": 1,
169
+ "passed": false,
170
+ "overallScore": 77,
171
+ "grade": "C",
172
+ "categories": [
173
+ {
174
+ "id": "validation",
175
+ "name": "Deterministic validation",
176
+ "score": 10,
177
+ "max": 13
178
+ }
179
+ ],
180
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
181
+ "evaluatedVersion": "0.0.0"
182
+ }
183
+ }
184
+ },
185
+ {
186
+ "name": "caveman",
187
+ "description": "Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, \"caveman mode\", \"talk like caveman\", \"be brief\" or \"less tokens\".",
188
+ "version": "0.0.0",
189
+ "license": "",
190
+ "creator": "",
191
+ "compatibility": "",
192
+ "allowedTools": [],
193
+ "tags": [],
194
+ "dependencies": [],
195
+ "modelInvocable": true,
196
+ "userInvocable": true,
197
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman",
198
+ "relPath": "skills/caveman",
199
+ "verified": true,
200
+ "tokenCount": 1903,
201
+ "evalSummary": {
202
+ "overallScore": 70,
203
+ "grade": "C",
204
+ "categories": [
205
+ {
206
+ "id": "structure",
207
+ "name": "Structure & completeness",
208
+ "score": 7,
209
+ "max": 10
210
+ },
211
+ {
212
+ "id": "description",
213
+ "name": "Description quality",
214
+ "score": 7,
215
+ "max": 10
216
+ },
217
+ {
218
+ "id": "prompt-engineering",
219
+ "name": "Prompt engineering",
220
+ "score": 6,
221
+ "max": 10
222
+ },
223
+ {
224
+ "id": "context-efficiency",
225
+ "name": "Context efficiency",
226
+ "score": 10,
227
+ "max": 10
228
+ },
229
+ {
230
+ "id": "safety",
231
+ "name": "Safety & guardrails",
232
+ "score": 7,
233
+ "max": 10
234
+ },
235
+ {
236
+ "id": "testability",
237
+ "name": "Testability",
238
+ "score": 3,
239
+ "max": 10
240
+ },
241
+ {
242
+ "id": "license",
243
+ "name": "License verification",
244
+ "score": 0,
245
+ "max": 10
246
+ },
247
+ {
248
+ "id": "naming",
249
+ "name": "Naming & conventions",
250
+ "score": 10,
251
+ "max": 10
252
+ },
253
+ {
254
+ "id": "pii",
255
+ "name": "PII detection",
256
+ "score": 10,
257
+ "max": 10
258
+ },
259
+ {
260
+ "id": "script-lint",
261
+ "name": "Script linting",
262
+ "score": 10,
263
+ "max": 10
264
+ }
265
+ ],
266
+ "evaluatedAt": "2026-09-09T12:11:32.626Z",
267
+ "evaluatedVersion": "0.0.0"
268
+ },
269
+ "evalSummaries": {
270
+ "quality": {
271
+ "providerId": "quality",
272
+ "providerVersion": "1.0.0",
273
+ "schemaVersion": 1,
274
+ "passed": true,
275
+ "overallScore": 70,
276
+ "grade": "C",
277
+ "categories": [
278
+ {
279
+ "id": "structure",
280
+ "name": "Structure & completeness",
281
+ "score": 7,
282
+ "max": 10
283
+ },
284
+ {
285
+ "id": "description",
286
+ "name": "Description quality",
287
+ "score": 7,
288
+ "max": 10
289
+ },
290
+ {
291
+ "id": "prompt-engineering",
292
+ "name": "Prompt engineering",
293
+ "score": 6,
294
+ "max": 10
295
+ },
296
+ {
297
+ "id": "context-efficiency",
298
+ "name": "Context efficiency",
299
+ "score": 10,
300
+ "max": 10
301
+ },
302
+ {
303
+ "id": "safety",
304
+ "name": "Safety & guardrails",
305
+ "score": 7,
306
+ "max": 10
307
+ },
308
+ {
309
+ "id": "testability",
310
+ "name": "Testability",
311
+ "score": 3,
312
+ "max": 10
313
+ },
314
+ {
315
+ "id": "license",
316
+ "name": "License verification",
317
+ "score": 0,
318
+ "max": 10
319
+ },
320
+ {
321
+ "id": "naming",
322
+ "name": "Naming & conventions",
323
+ "score": 10,
324
+ "max": 10
325
+ },
326
+ {
327
+ "id": "pii",
328
+ "name": "PII detection",
329
+ "score": 10,
330
+ "max": 10
331
+ },
332
+ {
333
+ "id": "script-lint",
334
+ "name": "Script linting",
335
+ "score": 10,
336
+ "max": 10
337
+ }
338
+ ],
339
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
340
+ "evaluatedVersion": "0.0.0"
341
+ },
342
+ "skill-best-practice": {
343
+ "providerId": "skill-best-practice",
344
+ "providerVersion": "1.2.0",
345
+ "schemaVersion": 1,
346
+ "passed": false,
347
+ "overallScore": 77,
348
+ "grade": "C",
349
+ "categories": [
350
+ {
351
+ "id": "validation",
352
+ "name": "Deterministic validation",
353
+ "score": 10,
354
+ "max": 13
355
+ }
356
+ ],
357
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
358
+ "evaluatedVersion": "0.0.0"
359
+ }
360
+ }
361
+ },
362
+ {
363
+ "name": "caveman-commit",
364
+ "description": "Write a Conventional Commits message compressed to intent only. Use for \"write a commit\", \"commit message\", /commit or /caveman-commit.",
365
+ "version": "0.0.0",
366
+ "license": "",
367
+ "creator": "",
368
+ "compatibility": "",
369
+ "allowedTools": [],
370
+ "tags": [],
371
+ "dependencies": [],
372
+ "modelInvocable": true,
373
+ "userInvocable": true,
374
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-commit",
375
+ "relPath": "skills/caveman-commit",
376
+ "verified": true,
377
+ "tokenCount": 694,
378
+ "evalSummary": {
379
+ "overallScore": 69,
380
+ "grade": "C",
381
+ "categories": [
382
+ {
383
+ "id": "structure",
384
+ "name": "Structure & completeness",
385
+ "score": 7,
386
+ "max": 10
387
+ },
388
+ {
389
+ "id": "description",
390
+ "name": "Description quality",
391
+ "score": 10,
392
+ "max": 10
393
+ },
394
+ {
395
+ "id": "prompt-engineering",
396
+ "name": "Prompt engineering",
397
+ "score": 5,
398
+ "max": 10
399
+ },
400
+ {
401
+ "id": "context-efficiency",
402
+ "name": "Context efficiency",
403
+ "score": 9,
404
+ "max": 10
405
+ },
406
+ {
407
+ "id": "safety",
408
+ "name": "Safety & guardrails",
409
+ "score": 5,
410
+ "max": 10
411
+ },
412
+ {
413
+ "id": "testability",
414
+ "name": "Testability",
415
+ "score": 3,
416
+ "max": 10
417
+ },
418
+ {
419
+ "id": "license",
420
+ "name": "License verification",
421
+ "score": 0,
422
+ "max": 10
423
+ },
424
+ {
425
+ "id": "naming",
426
+ "name": "Naming & conventions",
427
+ "score": 10,
428
+ "max": 10
429
+ },
430
+ {
431
+ "id": "pii",
432
+ "name": "PII detection",
433
+ "score": 10,
434
+ "max": 10
435
+ },
436
+ {
437
+ "id": "script-lint",
438
+ "name": "Script linting",
439
+ "score": 10,
440
+ "max": 10
441
+ }
442
+ ],
443
+ "evaluatedAt": "2026-09-09T12:11:32.626Z",
444
+ "evaluatedVersion": "0.0.0"
445
+ },
446
+ "evalSummaries": {
447
+ "quality": {
448
+ "providerId": "quality",
449
+ "providerVersion": "1.0.0",
450
+ "schemaVersion": 1,
451
+ "passed": true,
452
+ "overallScore": 69,
453
+ "grade": "C",
454
+ "categories": [
455
+ {
456
+ "id": "structure",
457
+ "name": "Structure & completeness",
458
+ "score": 7,
459
+ "max": 10
460
+ },
461
+ {
462
+ "id": "description",
463
+ "name": "Description quality",
464
+ "score": 10,
465
+ "max": 10
466
+ },
467
+ {
468
+ "id": "prompt-engineering",
469
+ "name": "Prompt engineering",
470
+ "score": 5,
471
+ "max": 10
472
+ },
473
+ {
474
+ "id": "context-efficiency",
475
+ "name": "Context efficiency",
476
+ "score": 9,
477
+ "max": 10
478
+ },
479
+ {
480
+ "id": "safety",
481
+ "name": "Safety & guardrails",
482
+ "score": 5,
483
+ "max": 10
484
+ },
485
+ {
486
+ "id": "testability",
487
+ "name": "Testability",
488
+ "score": 3,
489
+ "max": 10
490
+ },
491
+ {
492
+ "id": "license",
493
+ "name": "License verification",
494
+ "score": 0,
495
+ "max": 10
496
+ },
497
+ {
498
+ "id": "naming",
499
+ "name": "Naming & conventions",
500
+ "score": 10,
501
+ "max": 10
502
+ },
503
+ {
504
+ "id": "pii",
505
+ "name": "PII detection",
506
+ "score": 10,
507
+ "max": 10
508
+ },
509
+ {
510
+ "id": "script-lint",
511
+ "name": "Script linting",
512
+ "score": 10,
513
+ "max": 10
514
+ }
515
+ ],
516
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
517
+ "evaluatedVersion": "0.0.0"
518
+ },
519
+ "skill-best-practice": {
520
+ "providerId": "skill-best-practice",
521
+ "providerVersion": "1.2.0",
522
+ "schemaVersion": 1,
523
+ "passed": false,
524
+ "overallScore": 77,
525
+ "grade": "C",
526
+ "categories": [
527
+ {
528
+ "id": "validation",
529
+ "name": "Deterministic validation",
530
+ "score": 10,
531
+ "max": 13
532
+ }
533
+ ],
534
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
535
+ "evaluatedVersion": "0.0.0"
536
+ }
537
+ }
538
+ },
539
+ {
540
+ "name": "caveman-compress",
541
+ "description": "Compress a memory file such as CLAUDE.md or a todo list into caveman format to save input tokens, keeping a readable backup. Trigger: /caveman-compress.",
542
+ "version": "0.0.0",
543
+ "license": "",
544
+ "creator": "",
545
+ "compatibility": "",
546
+ "allowedTools": [],
547
+ "tags": [],
548
+ "dependencies": [],
549
+ "modelInvocable": true,
550
+ "userInvocable": true,
551
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-compress",
552
+ "relPath": "skills/caveman-compress",
553
+ "verified": true,
554
+ "tokenCount": 1327,
555
+ "evalSummary": {
556
+ "overallScore": 70,
557
+ "grade": "C",
558
+ "categories": [
559
+ {
560
+ "id": "structure",
561
+ "name": "Structure & completeness",
562
+ "score": 7,
563
+ "max": 10
564
+ },
565
+ {
566
+ "id": "description",
567
+ "name": "Description quality",
568
+ "score": 7,
569
+ "max": 10
570
+ },
571
+ {
572
+ "id": "prompt-engineering",
573
+ "name": "Prompt engineering",
574
+ "score": 7,
575
+ "max": 10
576
+ },
577
+ {
578
+ "id": "context-efficiency",
579
+ "name": "Context efficiency",
580
+ "score": 9,
581
+ "max": 10
582
+ },
583
+ {
584
+ "id": "safety",
585
+ "name": "Safety & guardrails",
586
+ "score": 7,
587
+ "max": 10
588
+ },
589
+ {
590
+ "id": "testability",
591
+ "name": "Testability",
592
+ "score": 3,
593
+ "max": 10
594
+ },
595
+ {
596
+ "id": "license",
597
+ "name": "License verification",
598
+ "score": 0,
599
+ "max": 10
600
+ },
601
+ {
602
+ "id": "naming",
603
+ "name": "Naming & conventions",
604
+ "score": 10,
605
+ "max": 10
606
+ },
607
+ {
608
+ "id": "pii",
609
+ "name": "PII detection",
610
+ "score": 10,
611
+ "max": 10
612
+ },
613
+ {
614
+ "id": "script-lint",
615
+ "name": "Script linting",
616
+ "score": 10,
617
+ "max": 10
618
+ }
619
+ ],
620
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
621
+ "evaluatedVersion": "0.0.0"
622
+ },
623
+ "evalSummaries": {
624
+ "quality": {
625
+ "providerId": "quality",
626
+ "providerVersion": "1.0.0",
627
+ "schemaVersion": 1,
628
+ "passed": true,
629
+ "overallScore": 70,
630
+ "grade": "C",
631
+ "categories": [
632
+ {
633
+ "id": "structure",
634
+ "name": "Structure & completeness",
635
+ "score": 7,
636
+ "max": 10
637
+ },
638
+ {
639
+ "id": "description",
640
+ "name": "Description quality",
641
+ "score": 7,
642
+ "max": 10
643
+ },
644
+ {
645
+ "id": "prompt-engineering",
646
+ "name": "Prompt engineering",
647
+ "score": 7,
648
+ "max": 10
649
+ },
650
+ {
651
+ "id": "context-efficiency",
652
+ "name": "Context efficiency",
653
+ "score": 9,
654
+ "max": 10
655
+ },
656
+ {
657
+ "id": "safety",
658
+ "name": "Safety & guardrails",
659
+ "score": 7,
660
+ "max": 10
661
+ },
662
+ {
663
+ "id": "testability",
664
+ "name": "Testability",
665
+ "score": 3,
666
+ "max": 10
667
+ },
668
+ {
669
+ "id": "license",
670
+ "name": "License verification",
671
+ "score": 0,
672
+ "max": 10
673
+ },
674
+ {
675
+ "id": "naming",
676
+ "name": "Naming & conventions",
677
+ "score": 10,
678
+ "max": 10
679
+ },
680
+ {
681
+ "id": "pii",
682
+ "name": "PII detection",
683
+ "score": 10,
684
+ "max": 10
685
+ },
686
+ {
687
+ "id": "script-lint",
688
+ "name": "Script linting",
689
+ "score": 10,
690
+ "max": 10
691
+ }
692
+ ],
693
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
694
+ "evaluatedVersion": "0.0.0"
695
+ },
696
+ "skill-best-practice": {
697
+ "providerId": "skill-best-practice",
698
+ "providerVersion": "1.2.0",
699
+ "schemaVersion": 1,
700
+ "passed": false,
701
+ "overallScore": 77,
702
+ "grade": "C",
703
+ "categories": [
704
+ {
705
+ "id": "validation",
706
+ "name": "Deterministic validation",
707
+ "score": 10,
708
+ "max": 13
709
+ }
710
+ ],
711
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
712
+ "evaluatedVersion": "0.0.0"
713
+ }
714
+ }
715
+ },
716
+ {
717
+ "name": "caveman-discover",
718
+ "description": "Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket. Use for \"discover workflows\" or breaking LLM spend down by workflow.",
719
+ "version": "0.0.0",
720
+ "license": "",
721
+ "creator": "",
722
+ "compatibility": "",
723
+ "allowedTools": [],
724
+ "tags": [],
725
+ "dependencies": [],
726
+ "modelInvocable": true,
727
+ "userInvocable": true,
728
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-discover",
729
+ "relPath": "skills/caveman-discover",
730
+ "verified": true,
731
+ "tokenCount": 1545,
732
+ "evalSummary": {
733
+ "overallScore": 68,
734
+ "grade": "C",
735
+ "categories": [
736
+ {
737
+ "id": "structure",
738
+ "name": "Structure & completeness",
739
+ "score": 7,
740
+ "max": 10
741
+ },
742
+ {
743
+ "id": "description",
744
+ "name": "Description quality",
745
+ "score": 10,
746
+ "max": 10
747
+ },
748
+ {
749
+ "id": "prompt-engineering",
750
+ "name": "Prompt engineering",
751
+ "score": 6,
752
+ "max": 10
753
+ },
754
+ {
755
+ "id": "context-efficiency",
756
+ "name": "Context efficiency",
757
+ "score": 9,
758
+ "max": 10
759
+ },
760
+ {
761
+ "id": "safety",
762
+ "name": "Safety & guardrails",
763
+ "score": 3,
764
+ "max": 10
765
+ },
766
+ {
767
+ "id": "testability",
768
+ "name": "Testability",
769
+ "score": 3,
770
+ "max": 10
771
+ },
772
+ {
773
+ "id": "license",
774
+ "name": "License verification",
775
+ "score": 0,
776
+ "max": 10
777
+ },
778
+ {
779
+ "id": "naming",
780
+ "name": "Naming & conventions",
781
+ "score": 10,
782
+ "max": 10
783
+ },
784
+ {
785
+ "id": "pii",
786
+ "name": "PII detection",
787
+ "score": 10,
788
+ "max": 10
789
+ },
790
+ {
791
+ "id": "script-lint",
792
+ "name": "Script linting",
793
+ "score": 10,
794
+ "max": 10
795
+ }
796
+ ],
797
+ "evaluatedAt": "2026-09-09T12:11:32.626Z",
798
+ "evaluatedVersion": "0.0.0"
799
+ },
800
+ "evalSummaries": {
801
+ "quality": {
802
+ "providerId": "quality",
803
+ "providerVersion": "1.0.0",
804
+ "schemaVersion": 1,
805
+ "passed": true,
806
+ "overallScore": 68,
807
+ "grade": "C",
808
+ "categories": [
809
+ {
810
+ "id": "structure",
811
+ "name": "Structure & completeness",
812
+ "score": 7,
813
+ "max": 10
814
+ },
815
+ {
816
+ "id": "description",
817
+ "name": "Description quality",
818
+ "score": 10,
819
+ "max": 10
820
+ },
821
+ {
822
+ "id": "prompt-engineering",
823
+ "name": "Prompt engineering",
824
+ "score": 6,
825
+ "max": 10
826
+ },
827
+ {
828
+ "id": "context-efficiency",
829
+ "name": "Context efficiency",
830
+ "score": 9,
831
+ "max": 10
832
+ },
833
+ {
834
+ "id": "safety",
835
+ "name": "Safety & guardrails",
836
+ "score": 3,
837
+ "max": 10
838
+ },
839
+ {
840
+ "id": "testability",
841
+ "name": "Testability",
842
+ "score": 3,
843
+ "max": 10
844
+ },
845
+ {
846
+ "id": "license",
847
+ "name": "License verification",
848
+ "score": 0,
849
+ "max": 10
850
+ },
851
+ {
852
+ "id": "naming",
853
+ "name": "Naming & conventions",
854
+ "score": 10,
855
+ "max": 10
856
+ },
857
+ {
858
+ "id": "pii",
859
+ "name": "PII detection",
860
+ "score": 10,
861
+ "max": 10
862
+ },
863
+ {
864
+ "id": "script-lint",
865
+ "name": "Script linting",
866
+ "score": 10,
867
+ "max": 10
868
+ }
869
+ ],
870
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
871
+ "evaluatedVersion": "0.0.0"
872
+ },
873
+ "skill-best-practice": {
874
+ "providerId": "skill-best-practice",
875
+ "providerVersion": "1.2.0",
876
+ "schemaVersion": 1,
877
+ "passed": false,
878
+ "overallScore": 77,
879
+ "grade": "C",
880
+ "categories": [
881
+ {
882
+ "id": "validation",
883
+ "name": "Deterministic validation",
884
+ "score": 10,
885
+ "max": 13
886
+ }
887
+ ],
888
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
889
+ "evaluatedVersion": "0.0.0"
890
+ }
891
+ }
892
+ },
893
+ {
894
+ "name": "caveman-evidence-review",
895
+ "description": "Read-only review of Caveman Cloud evidence: cost, Cave Score, workflows, traces, latency, errors, routing, savings. Use when asked what Caveman found or where LLM spend goes.",
896
+ "version": "0.0.0",
897
+ "license": "",
898
+ "creator": "",
899
+ "compatibility": "",
900
+ "allowedTools": [],
901
+ "tags": [],
902
+ "dependencies": [],
903
+ "modelInvocable": true,
904
+ "userInvocable": true,
905
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-evidence-review",
906
+ "relPath": "skills/caveman-evidence-review",
907
+ "verified": true,
908
+ "tokenCount": 1054,
909
+ "evalSummary": {
910
+ "overallScore": 69,
911
+ "grade": "C",
912
+ "categories": [
913
+ {
914
+ "id": "structure",
915
+ "name": "Structure & completeness",
916
+ "score": 7,
917
+ "max": 10
918
+ },
919
+ {
920
+ "id": "description",
921
+ "name": "Description quality",
922
+ "score": 7,
923
+ "max": 10
924
+ },
925
+ {
926
+ "id": "prompt-engineering",
927
+ "name": "Prompt engineering",
928
+ "score": 9,
929
+ "max": 10
930
+ },
931
+ {
932
+ "id": "context-efficiency",
933
+ "name": "Context efficiency",
934
+ "score": 7,
935
+ "max": 10
936
+ },
937
+ {
938
+ "id": "safety",
939
+ "name": "Safety & guardrails",
940
+ "score": 6,
941
+ "max": 10
942
+ },
943
+ {
944
+ "id": "testability",
945
+ "name": "Testability",
946
+ "score": 3,
947
+ "max": 10
948
+ },
949
+ {
950
+ "id": "license",
951
+ "name": "License verification",
952
+ "score": 0,
953
+ "max": 10
954
+ },
955
+ {
956
+ "id": "naming",
957
+ "name": "Naming & conventions",
958
+ "score": 10,
959
+ "max": 10
960
+ },
961
+ {
962
+ "id": "pii",
963
+ "name": "PII detection",
964
+ "score": 10,
965
+ "max": 10
966
+ },
967
+ {
968
+ "id": "script-lint",
969
+ "name": "Script linting",
970
+ "score": 10,
971
+ "max": 10
972
+ }
973
+ ],
974
+ "evaluatedAt": "2026-09-09T12:11:32.626Z",
975
+ "evaluatedVersion": "0.0.0"
976
+ },
977
+ "evalSummaries": {
978
+ "quality": {
979
+ "providerId": "quality",
980
+ "providerVersion": "1.0.0",
981
+ "schemaVersion": 1,
982
+ "passed": true,
983
+ "overallScore": 69,
984
+ "grade": "C",
985
+ "categories": [
986
+ {
987
+ "id": "structure",
988
+ "name": "Structure & completeness",
989
+ "score": 7,
990
+ "max": 10
991
+ },
992
+ {
993
+ "id": "description",
994
+ "name": "Description quality",
995
+ "score": 7,
996
+ "max": 10
997
+ },
998
+ {
999
+ "id": "prompt-engineering",
1000
+ "name": "Prompt engineering",
1001
+ "score": 9,
1002
+ "max": 10
1003
+ },
1004
+ {
1005
+ "id": "context-efficiency",
1006
+ "name": "Context efficiency",
1007
+ "score": 7,
1008
+ "max": 10
1009
+ },
1010
+ {
1011
+ "id": "safety",
1012
+ "name": "Safety & guardrails",
1013
+ "score": 6,
1014
+ "max": 10
1015
+ },
1016
+ {
1017
+ "id": "testability",
1018
+ "name": "Testability",
1019
+ "score": 3,
1020
+ "max": 10
1021
+ },
1022
+ {
1023
+ "id": "license",
1024
+ "name": "License verification",
1025
+ "score": 0,
1026
+ "max": 10
1027
+ },
1028
+ {
1029
+ "id": "naming",
1030
+ "name": "Naming & conventions",
1031
+ "score": 10,
1032
+ "max": 10
1033
+ },
1034
+ {
1035
+ "id": "pii",
1036
+ "name": "PII detection",
1037
+ "score": 10,
1038
+ "max": 10
1039
+ },
1040
+ {
1041
+ "id": "script-lint",
1042
+ "name": "Script linting",
1043
+ "score": 10,
1044
+ "max": 10
1045
+ }
1046
+ ],
1047
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
1048
+ "evaluatedVersion": "0.0.0"
1049
+ },
1050
+ "skill-best-practice": {
1051
+ "providerId": "skill-best-practice",
1052
+ "providerVersion": "1.2.0",
1053
+ "schemaVersion": 1,
1054
+ "passed": false,
1055
+ "overallScore": 77,
1056
+ "grade": "C",
1057
+ "categories": [
1058
+ {
1059
+ "id": "validation",
1060
+ "name": "Deterministic validation",
1061
+ "score": 10,
1062
+ "max": 13
1063
+ }
1064
+ ],
1065
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
1066
+ "evaluatedVersion": "0.0.0"
1067
+ }
1068
+ }
1069
+ },
1070
+ {
1071
+ "name": "caveman-explore",
1072
+ "description": "Read-only repository explorer for cold-start orientation, broad cross-file localization, or when a direct search failed. Skip it when the exact file or symbol is already named. Returns path:line citations only; its reads stay out of main context.",
1073
+ "version": "0.0.0",
1074
+ "license": "",
1075
+ "creator": "",
1076
+ "compatibility": "",
1077
+ "allowedTools": [],
1078
+ "tags": [],
1079
+ "dependencies": [],
1080
+ "modelInvocable": true,
1081
+ "userInvocable": true,
1082
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-explore",
1083
+ "relPath": "skills/caveman-explore",
1084
+ "verified": true,
1085
+ "tokenCount": 634,
1086
+ "evalSummary": {
1087
+ "overallScore": 55,
1088
+ "grade": "D",
1089
+ "categories": [
1090
+ {
1091
+ "id": "structure",
1092
+ "name": "Structure & completeness",
1093
+ "score": 6,
1094
+ "max": 10
1095
+ },
1096
+ {
1097
+ "id": "description",
1098
+ "name": "Description quality",
1099
+ "score": 7,
1100
+ "max": 10
1101
+ },
1102
+ {
1103
+ "id": "prompt-engineering",
1104
+ "name": "Prompt engineering",
1105
+ "score": 5,
1106
+ "max": 10
1107
+ },
1108
+ {
1109
+ "id": "context-efficiency",
1110
+ "name": "Context efficiency",
1111
+ "score": 7,
1112
+ "max": 10
1113
+ },
1114
+ {
1115
+ "id": "safety",
1116
+ "name": "Safety & guardrails",
1117
+ "score": 2,
1118
+ "max": 10
1119
+ },
1120
+ {
1121
+ "id": "testability",
1122
+ "name": "Testability",
1123
+ "score": 1,
1124
+ "max": 10
1125
+ },
1126
+ {
1127
+ "id": "license",
1128
+ "name": "License verification",
1129
+ "score": 0,
1130
+ "max": 10
1131
+ },
1132
+ {
1133
+ "id": "naming",
1134
+ "name": "Naming & conventions",
1135
+ "score": 7,
1136
+ "max": 10
1137
+ },
1138
+ {
1139
+ "id": "pii",
1140
+ "name": "PII detection",
1141
+ "score": 10,
1142
+ "max": 10
1143
+ },
1144
+ {
1145
+ "id": "script-lint",
1146
+ "name": "Script linting",
1147
+ "score": 10,
1148
+ "max": 10
1149
+ }
1150
+ ],
1151
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
1152
+ "evaluatedVersion": "0.0.0"
1153
+ },
1154
+ "evalSummaries": {
1155
+ "quality": {
1156
+ "providerId": "quality",
1157
+ "providerVersion": "1.0.0",
1158
+ "schemaVersion": 1,
1159
+ "passed": true,
1160
+ "overallScore": 55,
1161
+ "grade": "D",
1162
+ "categories": [
1163
+ {
1164
+ "id": "structure",
1165
+ "name": "Structure & completeness",
1166
+ "score": 6,
1167
+ "max": 10
1168
+ },
1169
+ {
1170
+ "id": "description",
1171
+ "name": "Description quality",
1172
+ "score": 7,
1173
+ "max": 10
1174
+ },
1175
+ {
1176
+ "id": "prompt-engineering",
1177
+ "name": "Prompt engineering",
1178
+ "score": 5,
1179
+ "max": 10
1180
+ },
1181
+ {
1182
+ "id": "context-efficiency",
1183
+ "name": "Context efficiency",
1184
+ "score": 7,
1185
+ "max": 10
1186
+ },
1187
+ {
1188
+ "id": "safety",
1189
+ "name": "Safety & guardrails",
1190
+ "score": 2,
1191
+ "max": 10
1192
+ },
1193
+ {
1194
+ "id": "testability",
1195
+ "name": "Testability",
1196
+ "score": 1,
1197
+ "max": 10
1198
+ },
1199
+ {
1200
+ "id": "license",
1201
+ "name": "License verification",
1202
+ "score": 0,
1203
+ "max": 10
1204
+ },
1205
+ {
1206
+ "id": "naming",
1207
+ "name": "Naming & conventions",
1208
+ "score": 7,
1209
+ "max": 10
1210
+ },
1211
+ {
1212
+ "id": "pii",
1213
+ "name": "PII detection",
1214
+ "score": 10,
1215
+ "max": 10
1216
+ },
1217
+ {
1218
+ "id": "script-lint",
1219
+ "name": "Script linting",
1220
+ "score": 10,
1221
+ "max": 10
1222
+ }
1223
+ ],
1224
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
1225
+ "evaluatedVersion": "0.0.0"
1226
+ },
1227
+ "skill-best-practice": {
1228
+ "providerId": "skill-best-practice",
1229
+ "providerVersion": "1.2.0",
1230
+ "schemaVersion": 1,
1231
+ "passed": false,
1232
+ "overallScore": 69,
1233
+ "grade": "C",
1234
+ "categories": [
1235
+ {
1236
+ "id": "validation",
1237
+ "name": "Deterministic validation",
1238
+ "score": 9,
1239
+ "max": 13
1240
+ }
1241
+ ],
1242
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
1243
+ "evaluatedVersion": "0.0.0"
1244
+ }
1245
+ }
1246
+ },
1247
+ {
1248
+ "name": "caveman-help",
1249
+ "description": "Quick-reference card for caveman modes, skills and commands. Trigger: /caveman-help or \"caveman help\".",
1250
+ "version": "0.0.0",
1251
+ "license": "",
1252
+ "creator": "",
1253
+ "compatibility": "",
1254
+ "allowedTools": [],
1255
+ "tags": [],
1256
+ "dependencies": [],
1257
+ "modelInvocable": true,
1258
+ "userInvocable": true,
1259
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-help",
1260
+ "relPath": "skills/caveman-help",
1261
+ "verified": true,
1262
+ "tokenCount": 579,
1263
+ "evalSummary": {
1264
+ "overallScore": 57,
1265
+ "grade": "D",
1266
+ "categories": [
1267
+ {
1268
+ "id": "structure",
1269
+ "name": "Structure & completeness",
1270
+ "score": 7,
1271
+ "max": 10
1272
+ },
1273
+ {
1274
+ "id": "description",
1275
+ "name": "Description quality",
1276
+ "score": 7,
1277
+ "max": 10
1278
+ },
1279
+ {
1280
+ "id": "prompt-engineering",
1281
+ "name": "Prompt engineering",
1282
+ "score": 2,
1283
+ "max": 10
1284
+ },
1285
+ {
1286
+ "id": "context-efficiency",
1287
+ "name": "Context efficiency",
1288
+ "score": 10,
1289
+ "max": 10
1290
+ },
1291
+ {
1292
+ "id": "safety",
1293
+ "name": "Safety & guardrails",
1294
+ "score": 1,
1295
+ "max": 10
1296
+ },
1297
+ {
1298
+ "id": "testability",
1299
+ "name": "Testability",
1300
+ "score": 0,
1301
+ "max": 10
1302
+ },
1303
+ {
1304
+ "id": "license",
1305
+ "name": "License verification",
1306
+ "score": 0,
1307
+ "max": 10
1308
+ },
1309
+ {
1310
+ "id": "naming",
1311
+ "name": "Naming & conventions",
1312
+ "score": 10,
1313
+ "max": 10
1314
+ },
1315
+ {
1316
+ "id": "pii",
1317
+ "name": "PII detection",
1318
+ "score": 10,
1319
+ "max": 10
1320
+ },
1321
+ {
1322
+ "id": "script-lint",
1323
+ "name": "Script linting",
1324
+ "score": 10,
1325
+ "max": 10
1326
+ }
1327
+ ],
1328
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
1329
+ "evaluatedVersion": "0.0.0"
1330
+ },
1331
+ "evalSummaries": {
1332
+ "quality": {
1333
+ "providerId": "quality",
1334
+ "providerVersion": "1.0.0",
1335
+ "schemaVersion": 1,
1336
+ "passed": true,
1337
+ "overallScore": 57,
1338
+ "grade": "D",
1339
+ "categories": [
1340
+ {
1341
+ "id": "structure",
1342
+ "name": "Structure & completeness",
1343
+ "score": 7,
1344
+ "max": 10
1345
+ },
1346
+ {
1347
+ "id": "description",
1348
+ "name": "Description quality",
1349
+ "score": 7,
1350
+ "max": 10
1351
+ },
1352
+ {
1353
+ "id": "prompt-engineering",
1354
+ "name": "Prompt engineering",
1355
+ "score": 2,
1356
+ "max": 10
1357
+ },
1358
+ {
1359
+ "id": "context-efficiency",
1360
+ "name": "Context efficiency",
1361
+ "score": 10,
1362
+ "max": 10
1363
+ },
1364
+ {
1365
+ "id": "safety",
1366
+ "name": "Safety & guardrails",
1367
+ "score": 1,
1368
+ "max": 10
1369
+ },
1370
+ {
1371
+ "id": "testability",
1372
+ "name": "Testability",
1373
+ "score": 0,
1374
+ "max": 10
1375
+ },
1376
+ {
1377
+ "id": "license",
1378
+ "name": "License verification",
1379
+ "score": 0,
1380
+ "max": 10
1381
+ },
1382
+ {
1383
+ "id": "naming",
1384
+ "name": "Naming & conventions",
1385
+ "score": 10,
1386
+ "max": 10
1387
+ },
1388
+ {
1389
+ "id": "pii",
1390
+ "name": "PII detection",
1391
+ "score": 10,
1392
+ "max": 10
1393
+ },
1394
+ {
1395
+ "id": "script-lint",
1396
+ "name": "Script linting",
1397
+ "score": 10,
1398
+ "max": 10
1399
+ }
1400
+ ],
1401
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
1402
+ "evaluatedVersion": "0.0.0"
1403
+ },
1404
+ "skill-best-practice": {
1405
+ "providerId": "skill-best-practice",
1406
+ "providerVersion": "1.2.0",
1407
+ "schemaVersion": 1,
1408
+ "passed": false,
1409
+ "overallScore": 77,
1410
+ "grade": "C",
1411
+ "categories": [
1412
+ {
1413
+ "id": "validation",
1414
+ "name": "Deterministic validation",
1415
+ "score": 10,
1416
+ "max": 13
1417
+ }
1418
+ ],
1419
+ "evaluatedAt": "2026-09-09T12:11:32.627Z",
1420
+ "evaluatedVersion": "0.0.0"
1421
+ }
1422
+ }
1423
+ },
1424
+ {
1425
+ "name": "caveman-learn",
1426
+ "description": "Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.",
1427
+ "version": "0.0.0",
1428
+ "license": "",
1429
+ "creator": "",
1430
+ "compatibility": "",
1431
+ "allowedTools": [],
1432
+ "tags": [],
1433
+ "dependencies": [],
1434
+ "modelInvocable": true,
1435
+ "userInvocable": true,
1436
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-learn",
1437
+ "relPath": "skills/caveman-learn",
1438
+ "verified": true,
1439
+ "tokenCount": 3048,
1440
+ "evalSummary": {
1441
+ "overallScore": 64,
1442
+ "grade": "D",
1443
+ "categories": [
1444
+ {
1445
+ "id": "structure",
1446
+ "name": "Structure & completeness",
1447
+ "score": 6,
1448
+ "max": 10
1449
+ },
1450
+ {
1451
+ "id": "description",
1452
+ "name": "Description quality",
1453
+ "score": 5,
1454
+ "max": 10
1455
+ },
1456
+ {
1457
+ "id": "prompt-engineering",
1458
+ "name": "Prompt engineering",
1459
+ "score": 6,
1460
+ "max": 10
1461
+ },
1462
+ {
1463
+ "id": "context-efficiency",
1464
+ "name": "Context efficiency",
1465
+ "score": 10,
1466
+ "max": 10
1467
+ },
1468
+ {
1469
+ "id": "safety",
1470
+ "name": "Safety & guardrails",
1471
+ "score": 7,
1472
+ "max": 10
1473
+ },
1474
+ {
1475
+ "id": "testability",
1476
+ "name": "Testability",
1477
+ "score": 3,
1478
+ "max": 10
1479
+ },
1480
+ {
1481
+ "id": "license",
1482
+ "name": "License verification",
1483
+ "score": 0,
1484
+ "max": 10
1485
+ },
1486
+ {
1487
+ "id": "naming",
1488
+ "name": "Naming & conventions",
1489
+ "score": 7,
1490
+ "max": 10
1491
+ },
1492
+ {
1493
+ "id": "pii",
1494
+ "name": "PII detection",
1495
+ "score": 10,
1496
+ "max": 10
1497
+ },
1498
+ {
1499
+ "id": "script-lint",
1500
+ "name": "Script linting",
1501
+ "score": 10,
1502
+ "max": 10
1503
+ }
1504
+ ],
1505
+ "evaluatedAt": "2026-09-09T12:11:32.634Z",
1506
+ "evaluatedVersion": "0.0.0"
1507
+ },
1508
+ "evalSummaries": {
1509
+ "quality": {
1510
+ "providerId": "quality",
1511
+ "providerVersion": "1.0.0",
1512
+ "schemaVersion": 1,
1513
+ "passed": true,
1514
+ "overallScore": 64,
1515
+ "grade": "D",
1516
+ "categories": [
1517
+ {
1518
+ "id": "structure",
1519
+ "name": "Structure & completeness",
1520
+ "score": 6,
1521
+ "max": 10
1522
+ },
1523
+ {
1524
+ "id": "description",
1525
+ "name": "Description quality",
1526
+ "score": 5,
1527
+ "max": 10
1528
+ },
1529
+ {
1530
+ "id": "prompt-engineering",
1531
+ "name": "Prompt engineering",
1532
+ "score": 6,
1533
+ "max": 10
1534
+ },
1535
+ {
1536
+ "id": "context-efficiency",
1537
+ "name": "Context efficiency",
1538
+ "score": 10,
1539
+ "max": 10
1540
+ },
1541
+ {
1542
+ "id": "safety",
1543
+ "name": "Safety & guardrails",
1544
+ "score": 7,
1545
+ "max": 10
1546
+ },
1547
+ {
1548
+ "id": "testability",
1549
+ "name": "Testability",
1550
+ "score": 3,
1551
+ "max": 10
1552
+ },
1553
+ {
1554
+ "id": "license",
1555
+ "name": "License verification",
1556
+ "score": 0,
1557
+ "max": 10
1558
+ },
1559
+ {
1560
+ "id": "naming",
1561
+ "name": "Naming & conventions",
1562
+ "score": 7,
1563
+ "max": 10
1564
+ },
1565
+ {
1566
+ "id": "pii",
1567
+ "name": "PII detection",
1568
+ "score": 10,
1569
+ "max": 10
1570
+ },
1571
+ {
1572
+ "id": "script-lint",
1573
+ "name": "Script linting",
1574
+ "score": 10,
1575
+ "max": 10
1576
+ }
1577
+ ],
1578
+ "evaluatedAt": "2026-09-09T12:11:32.634Z",
1579
+ "evaluatedVersion": "0.0.0"
1580
+ },
1581
+ "skill-best-practice": {
1582
+ "providerId": "skill-best-practice",
1583
+ "providerVersion": "1.2.0",
1584
+ "schemaVersion": 1,
1585
+ "passed": false,
1586
+ "overallScore": 69,
1587
+ "grade": "C",
1588
+ "categories": [
1589
+ {
1590
+ "id": "validation",
1591
+ "name": "Deterministic validation",
1592
+ "score": 9,
1593
+ "max": 13
1594
+ }
1595
+ ],
1596
+ "evaluatedAt": "2026-09-09T12:11:32.634Z",
1597
+ "evaluatedVersion": "0.0.0"
1598
+ }
1599
+ }
1600
+ },
1601
+ {
1602
+ "name": "caveman-manage",
1603
+ "description": "Inspect Caveman Cloud's experiment lifecycle and block unsafe execution. Use when asked to start, approve, cancel, promote or roll back a Caveman experiment.",
1604
+ "version": "0.0.0",
1605
+ "license": "",
1606
+ "creator": "",
1607
+ "compatibility": "",
1608
+ "allowedTools": [],
1609
+ "tags": [],
1610
+ "dependencies": [],
1611
+ "modelInvocable": true,
1612
+ "userInvocable": true,
1613
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-manage",
1614
+ "relPath": "skills/caveman-manage",
1615
+ "verified": true,
1616
+ "tokenCount": 1043,
1617
+ "evalSummary": {
1618
+ "overallScore": 68,
1619
+ "grade": "C",
1620
+ "categories": [
1621
+ {
1622
+ "id": "structure",
1623
+ "name": "Structure & completeness",
1624
+ "score": 7,
1625
+ "max": 10
1626
+ },
1627
+ {
1628
+ "id": "description",
1629
+ "name": "Description quality",
1630
+ "score": 10,
1631
+ "max": 10
1632
+ },
1633
+ {
1634
+ "id": "prompt-engineering",
1635
+ "name": "Prompt engineering",
1636
+ "score": 6,
1637
+ "max": 10
1638
+ },
1639
+ {
1640
+ "id": "context-efficiency",
1641
+ "name": "Context efficiency",
1642
+ "score": 7,
1643
+ "max": 10
1644
+ },
1645
+ {
1646
+ "id": "safety",
1647
+ "name": "Safety & guardrails",
1648
+ "score": 7,
1649
+ "max": 10
1650
+ },
1651
+ {
1652
+ "id": "testability",
1653
+ "name": "Testability",
1654
+ "score": 1,
1655
+ "max": 10
1656
+ },
1657
+ {
1658
+ "id": "license",
1659
+ "name": "License verification",
1660
+ "score": 0,
1661
+ "max": 10
1662
+ },
1663
+ {
1664
+ "id": "naming",
1665
+ "name": "Naming & conventions",
1666
+ "score": 10,
1667
+ "max": 10
1668
+ },
1669
+ {
1670
+ "id": "pii",
1671
+ "name": "PII detection",
1672
+ "score": 10,
1673
+ "max": 10
1674
+ },
1675
+ {
1676
+ "id": "script-lint",
1677
+ "name": "Script linting",
1678
+ "score": 10,
1679
+ "max": 10
1680
+ }
1681
+ ],
1682
+ "evaluatedAt": "2026-09-09T12:11:32.634Z",
1683
+ "evaluatedVersion": "0.0.0"
1684
+ },
1685
+ "evalSummaries": {
1686
+ "quality": {
1687
+ "providerId": "quality",
1688
+ "providerVersion": "1.0.0",
1689
+ "schemaVersion": 1,
1690
+ "passed": true,
1691
+ "overallScore": 68,
1692
+ "grade": "C",
1693
+ "categories": [
1694
+ {
1695
+ "id": "structure",
1696
+ "name": "Structure & completeness",
1697
+ "score": 7,
1698
+ "max": 10
1699
+ },
1700
+ {
1701
+ "id": "description",
1702
+ "name": "Description quality",
1703
+ "score": 10,
1704
+ "max": 10
1705
+ },
1706
+ {
1707
+ "id": "prompt-engineering",
1708
+ "name": "Prompt engineering",
1709
+ "score": 6,
1710
+ "max": 10
1711
+ },
1712
+ {
1713
+ "id": "context-efficiency",
1714
+ "name": "Context efficiency",
1715
+ "score": 7,
1716
+ "max": 10
1717
+ },
1718
+ {
1719
+ "id": "safety",
1720
+ "name": "Safety & guardrails",
1721
+ "score": 7,
1722
+ "max": 10
1723
+ },
1724
+ {
1725
+ "id": "testability",
1726
+ "name": "Testability",
1727
+ "score": 1,
1728
+ "max": 10
1729
+ },
1730
+ {
1731
+ "id": "license",
1732
+ "name": "License verification",
1733
+ "score": 0,
1734
+ "max": 10
1735
+ },
1736
+ {
1737
+ "id": "naming",
1738
+ "name": "Naming & conventions",
1739
+ "score": 10,
1740
+ "max": 10
1741
+ },
1742
+ {
1743
+ "id": "pii",
1744
+ "name": "PII detection",
1745
+ "score": 10,
1746
+ "max": 10
1747
+ },
1748
+ {
1749
+ "id": "script-lint",
1750
+ "name": "Script linting",
1751
+ "score": 10,
1752
+ "max": 10
1753
+ }
1754
+ ],
1755
+ "evaluatedAt": "2026-09-09T12:11:32.634Z",
1756
+ "evaluatedVersion": "0.0.0"
1757
+ },
1758
+ "skill-best-practice": {
1759
+ "providerId": "skill-best-practice",
1760
+ "providerVersion": "1.2.0",
1761
+ "schemaVersion": 1,
1762
+ "passed": false,
1763
+ "overallScore": 77,
1764
+ "grade": "C",
1765
+ "categories": [
1766
+ {
1767
+ "id": "validation",
1768
+ "name": "Deterministic validation",
1769
+ "score": 10,
1770
+ "max": 13
1771
+ }
1772
+ ],
1773
+ "evaluatedAt": "2026-09-09T12:11:32.634Z",
1774
+ "evaluatedVersion": "0.0.0"
1775
+ }
1776
+ }
1777
+ },
1778
+ {
1779
+ "name": "caveman-optimize",
1780
+ "description": "Turn a Caveman optimization observation into an operator-chosen candidate with a paired baseline evaluation. Use when asked to inspect or evaluate a Caveman optimization report. Needs explicit approval.",
1781
+ "version": "0.0.0",
1782
+ "license": "",
1783
+ "creator": "",
1784
+ "compatibility": "",
1785
+ "allowedTools": [],
1786
+ "tags": [],
1787
+ "dependencies": [],
1788
+ "modelInvocable": true,
1789
+ "userInvocable": true,
1790
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-optimize",
1791
+ "relPath": "skills/caveman-optimize",
1792
+ "verified": true,
1793
+ "tokenCount": 1265,
1794
+ "evalSummary": {
1795
+ "overallScore": 67,
1796
+ "grade": "C",
1797
+ "categories": [
1798
+ {
1799
+ "id": "structure",
1800
+ "name": "Structure & completeness",
1801
+ "score": 7,
1802
+ "max": 10
1803
+ },
1804
+ {
1805
+ "id": "description",
1806
+ "name": "Description quality",
1807
+ "score": 7,
1808
+ "max": 10
1809
+ },
1810
+ {
1811
+ "id": "prompt-engineering",
1812
+ "name": "Prompt engineering",
1813
+ "score": 7,
1814
+ "max": 10
1815
+ },
1816
+ {
1817
+ "id": "context-efficiency",
1818
+ "name": "Context efficiency",
1819
+ "score": 8,
1820
+ "max": 10
1821
+ },
1822
+ {
1823
+ "id": "safety",
1824
+ "name": "Safety & guardrails",
1825
+ "score": 7,
1826
+ "max": 10
1827
+ },
1828
+ {
1829
+ "id": "testability",
1830
+ "name": "Testability",
1831
+ "score": 3,
1832
+ "max": 10
1833
+ },
1834
+ {
1835
+ "id": "license",
1836
+ "name": "License verification",
1837
+ "score": 0,
1838
+ "max": 10
1839
+ },
1840
+ {
1841
+ "id": "naming",
1842
+ "name": "Naming & conventions",
1843
+ "score": 8,
1844
+ "max": 10
1845
+ },
1846
+ {
1847
+ "id": "pii",
1848
+ "name": "PII detection",
1849
+ "score": 10,
1850
+ "max": 10
1851
+ },
1852
+ {
1853
+ "id": "script-lint",
1854
+ "name": "Script linting",
1855
+ "score": 10,
1856
+ "max": 10
1857
+ }
1858
+ ],
1859
+ "evaluatedAt": "2026-09-09T12:11:32.636Z",
1860
+ "evaluatedVersion": "0.0.0"
1861
+ },
1862
+ "evalSummaries": {
1863
+ "quality": {
1864
+ "providerId": "quality",
1865
+ "providerVersion": "1.0.0",
1866
+ "schemaVersion": 1,
1867
+ "passed": true,
1868
+ "overallScore": 67,
1869
+ "grade": "C",
1870
+ "categories": [
1871
+ {
1872
+ "id": "structure",
1873
+ "name": "Structure & completeness",
1874
+ "score": 7,
1875
+ "max": 10
1876
+ },
1877
+ {
1878
+ "id": "description",
1879
+ "name": "Description quality",
1880
+ "score": 7,
1881
+ "max": 10
1882
+ },
1883
+ {
1884
+ "id": "prompt-engineering",
1885
+ "name": "Prompt engineering",
1886
+ "score": 7,
1887
+ "max": 10
1888
+ },
1889
+ {
1890
+ "id": "context-efficiency",
1891
+ "name": "Context efficiency",
1892
+ "score": 8,
1893
+ "max": 10
1894
+ },
1895
+ {
1896
+ "id": "safety",
1897
+ "name": "Safety & guardrails",
1898
+ "score": 7,
1899
+ "max": 10
1900
+ },
1901
+ {
1902
+ "id": "testability",
1903
+ "name": "Testability",
1904
+ "score": 3,
1905
+ "max": 10
1906
+ },
1907
+ {
1908
+ "id": "license",
1909
+ "name": "License verification",
1910
+ "score": 0,
1911
+ "max": 10
1912
+ },
1913
+ {
1914
+ "id": "naming",
1915
+ "name": "Naming & conventions",
1916
+ "score": 8,
1917
+ "max": 10
1918
+ },
1919
+ {
1920
+ "id": "pii",
1921
+ "name": "PII detection",
1922
+ "score": 10,
1923
+ "max": 10
1924
+ },
1925
+ {
1926
+ "id": "script-lint",
1927
+ "name": "Script linting",
1928
+ "score": 10,
1929
+ "max": 10
1930
+ }
1931
+ ],
1932
+ "evaluatedAt": "2026-09-09T12:11:32.636Z",
1933
+ "evaluatedVersion": "0.0.0"
1934
+ },
1935
+ "skill-best-practice": {
1936
+ "providerId": "skill-best-practice",
1937
+ "providerVersion": "1.2.0",
1938
+ "schemaVersion": 1,
1939
+ "passed": false,
1940
+ "overallScore": 77,
1941
+ "grade": "C",
1942
+ "categories": [
1943
+ {
1944
+ "id": "validation",
1945
+ "name": "Deterministic validation",
1946
+ "score": 10,
1947
+ "max": 13
1948
+ }
1949
+ ],
1950
+ "evaluatedAt": "2026-09-09T12:11:32.636Z",
1951
+ "evaluatedVersion": "0.0.0"
1952
+ }
1953
+ }
1954
+ },
1955
+ {
1956
+ "name": "caveman-review",
1957
+ "description": "Compressed code review - one line per finding with location, problem and fix. Use for /caveman-review, \"review this PR\", or \"review the diff\".",
1958
+ "version": "0.0.0",
1959
+ "license": "",
1960
+ "creator": "",
1961
+ "compatibility": "",
1962
+ "allowedTools": [],
1963
+ "tags": [],
1964
+ "dependencies": [],
1965
+ "modelInvocable": true,
1966
+ "userInvocable": true,
1967
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-review",
1968
+ "relPath": "skills/caveman-review",
1969
+ "verified": true,
1970
+ "tokenCount": 792,
1971
+ "evalSummary": {
1972
+ "overallScore": 60,
1973
+ "grade": "D",
1974
+ "categories": [
1975
+ {
1976
+ "id": "structure",
1977
+ "name": "Structure & completeness",
1978
+ "score": 7,
1979
+ "max": 10
1980
+ },
1981
+ {
1982
+ "id": "description",
1983
+ "name": "Description quality",
1984
+ "score": 7,
1985
+ "max": 10
1986
+ },
1987
+ {
1988
+ "id": "prompt-engineering",
1989
+ "name": "Prompt engineering",
1990
+ "score": 4,
1991
+ "max": 10
1992
+ },
1993
+ {
1994
+ "id": "context-efficiency",
1995
+ "name": "Context efficiency",
1996
+ "score": 9,
1997
+ "max": 10
1998
+ },
1999
+ {
2000
+ "id": "safety",
2001
+ "name": "Safety & guardrails",
2002
+ "score": 2,
2003
+ "max": 10
2004
+ },
2005
+ {
2006
+ "id": "testability",
2007
+ "name": "Testability",
2008
+ "score": 1,
2009
+ "max": 10
2010
+ },
2011
+ {
2012
+ "id": "license",
2013
+ "name": "License verification",
2014
+ "score": 0,
2015
+ "max": 10
2016
+ },
2017
+ {
2018
+ "id": "naming",
2019
+ "name": "Naming & conventions",
2020
+ "score": 10,
2021
+ "max": 10
2022
+ },
2023
+ {
2024
+ "id": "pii",
2025
+ "name": "PII detection",
2026
+ "score": 10,
2027
+ "max": 10
2028
+ },
2029
+ {
2030
+ "id": "script-lint",
2031
+ "name": "Script linting",
2032
+ "score": 10,
2033
+ "max": 10
2034
+ }
2035
+ ],
2036
+ "evaluatedAt": "2026-09-09T12:11:32.636Z",
2037
+ "evaluatedVersion": "0.0.0"
2038
+ },
2039
+ "evalSummaries": {
2040
+ "quality": {
2041
+ "providerId": "quality",
2042
+ "providerVersion": "1.0.0",
2043
+ "schemaVersion": 1,
2044
+ "passed": true,
2045
+ "overallScore": 60,
2046
+ "grade": "D",
2047
+ "categories": [
2048
+ {
2049
+ "id": "structure",
2050
+ "name": "Structure & completeness",
2051
+ "score": 7,
2052
+ "max": 10
2053
+ },
2054
+ {
2055
+ "id": "description",
2056
+ "name": "Description quality",
2057
+ "score": 7,
2058
+ "max": 10
2059
+ },
2060
+ {
2061
+ "id": "prompt-engineering",
2062
+ "name": "Prompt engineering",
2063
+ "score": 4,
2064
+ "max": 10
2065
+ },
2066
+ {
2067
+ "id": "context-efficiency",
2068
+ "name": "Context efficiency",
2069
+ "score": 9,
2070
+ "max": 10
2071
+ },
2072
+ {
2073
+ "id": "safety",
2074
+ "name": "Safety & guardrails",
2075
+ "score": 2,
2076
+ "max": 10
2077
+ },
2078
+ {
2079
+ "id": "testability",
2080
+ "name": "Testability",
2081
+ "score": 1,
2082
+ "max": 10
2083
+ },
2084
+ {
2085
+ "id": "license",
2086
+ "name": "License verification",
2087
+ "score": 0,
2088
+ "max": 10
2089
+ },
2090
+ {
2091
+ "id": "naming",
2092
+ "name": "Naming & conventions",
2093
+ "score": 10,
2094
+ "max": 10
2095
+ },
2096
+ {
2097
+ "id": "pii",
2098
+ "name": "PII detection",
2099
+ "score": 10,
2100
+ "max": 10
2101
+ },
2102
+ {
2103
+ "id": "script-lint",
2104
+ "name": "Script linting",
2105
+ "score": 10,
2106
+ "max": 10
2107
+ }
2108
+ ],
2109
+ "evaluatedAt": "2026-09-09T12:11:32.636Z",
2110
+ "evaluatedVersion": "0.0.0"
2111
+ },
2112
+ "skill-best-practice": {
2113
+ "providerId": "skill-best-practice",
2114
+ "providerVersion": "1.2.0",
2115
+ "schemaVersion": 1,
2116
+ "passed": false,
2117
+ "overallScore": 77,
2118
+ "grade": "C",
2119
+ "categories": [
2120
+ {
2121
+ "id": "validation",
2122
+ "name": "Deterministic validation",
2123
+ "score": 10,
2124
+ "max": 13
2125
+ }
2126
+ ],
2127
+ "evaluatedAt": "2026-09-09T12:11:32.636Z",
2128
+ "evaluatedVersion": "0.0.0"
2129
+ }
2130
+ }
2131
+ },
2132
+ {
2133
+ "name": "caveman-setup",
2134
+ "description": "Wire a repository through the Caveman Cloud gateway so every LLM request is measured, with no behavior change. Use for \"set up caveman\" or adding LLM spend observability.",
2135
+ "version": "0.0.0",
2136
+ "license": "",
2137
+ "creator": "",
2138
+ "compatibility": "",
2139
+ "allowedTools": [],
2140
+ "tags": [],
2141
+ "dependencies": [],
2142
+ "modelInvocable": true,
2143
+ "userInvocable": true,
2144
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-setup",
2145
+ "relPath": "skills/caveman-setup",
2146
+ "verified": true,
2147
+ "tokenCount": 2835,
2148
+ "evalSummary": {
2149
+ "overallScore": 70,
2150
+ "grade": "C",
2151
+ "categories": [
2152
+ {
2153
+ "id": "structure",
2154
+ "name": "Structure & completeness",
2155
+ "score": 7,
2156
+ "max": 10
2157
+ },
2158
+ {
2159
+ "id": "description",
2160
+ "name": "Description quality",
2161
+ "score": 7,
2162
+ "max": 10
2163
+ },
2164
+ {
2165
+ "id": "prompt-engineering",
2166
+ "name": "Prompt engineering",
2167
+ "score": 7,
2168
+ "max": 10
2169
+ },
2170
+ {
2171
+ "id": "context-efficiency",
2172
+ "name": "Context efficiency",
2173
+ "score": 9,
2174
+ "max": 10
2175
+ },
2176
+ {
2177
+ "id": "safety",
2178
+ "name": "Safety & guardrails",
2179
+ "score": 7,
2180
+ "max": 10
2181
+ },
2182
+ {
2183
+ "id": "testability",
2184
+ "name": "Testability",
2185
+ "score": 3,
2186
+ "max": 10
2187
+ },
2188
+ {
2189
+ "id": "license",
2190
+ "name": "License verification",
2191
+ "score": 0,
2192
+ "max": 10
2193
+ },
2194
+ {
2195
+ "id": "naming",
2196
+ "name": "Naming & conventions",
2197
+ "score": 10,
2198
+ "max": 10
2199
+ },
2200
+ {
2201
+ "id": "pii",
2202
+ "name": "PII detection",
2203
+ "score": 10,
2204
+ "max": 10
2205
+ },
2206
+ {
2207
+ "id": "script-lint",
2208
+ "name": "Script linting",
2209
+ "score": 10,
2210
+ "max": 10
2211
+ }
2212
+ ],
2213
+ "evaluatedAt": "2026-09-09T12:11:32.636Z",
2214
+ "evaluatedVersion": "0.0.0"
2215
+ },
2216
+ "evalSummaries": {
2217
+ "quality": {
2218
+ "providerId": "quality",
2219
+ "providerVersion": "1.0.0",
2220
+ "schemaVersion": 1,
2221
+ "passed": true,
2222
+ "overallScore": 70,
2223
+ "grade": "C",
2224
+ "categories": [
2225
+ {
2226
+ "id": "structure",
2227
+ "name": "Structure & completeness",
2228
+ "score": 7,
2229
+ "max": 10
2230
+ },
2231
+ {
2232
+ "id": "description",
2233
+ "name": "Description quality",
2234
+ "score": 7,
2235
+ "max": 10
2236
+ },
2237
+ {
2238
+ "id": "prompt-engineering",
2239
+ "name": "Prompt engineering",
2240
+ "score": 7,
2241
+ "max": 10
2242
+ },
2243
+ {
2244
+ "id": "context-efficiency",
2245
+ "name": "Context efficiency",
2246
+ "score": 9,
2247
+ "max": 10
2248
+ },
2249
+ {
2250
+ "id": "safety",
2251
+ "name": "Safety & guardrails",
2252
+ "score": 7,
2253
+ "max": 10
2254
+ },
2255
+ {
2256
+ "id": "testability",
2257
+ "name": "Testability",
2258
+ "score": 3,
2259
+ "max": 10
2260
+ },
2261
+ {
2262
+ "id": "license",
2263
+ "name": "License verification",
2264
+ "score": 0,
2265
+ "max": 10
2266
+ },
2267
+ {
2268
+ "id": "naming",
2269
+ "name": "Naming & conventions",
2270
+ "score": 10,
2271
+ "max": 10
2272
+ },
2273
+ {
2274
+ "id": "pii",
2275
+ "name": "PII detection",
2276
+ "score": 10,
2277
+ "max": 10
2278
+ },
2279
+ {
2280
+ "id": "script-lint",
2281
+ "name": "Script linting",
2282
+ "score": 10,
2283
+ "max": 10
2284
+ }
2285
+ ],
2286
+ "evaluatedAt": "2026-09-09T12:11:32.636Z",
2287
+ "evaluatedVersion": "0.0.0"
2288
+ },
2289
+ "skill-best-practice": {
2290
+ "providerId": "skill-best-practice",
2291
+ "providerVersion": "1.2.0",
2292
+ "schemaVersion": 1,
2293
+ "passed": false,
2294
+ "overallScore": 77,
2295
+ "grade": "C",
2296
+ "categories": [
2297
+ {
2298
+ "id": "validation",
2299
+ "name": "Deterministic validation",
2300
+ "score": 10,
2301
+ "max": 13
2302
+ }
2303
+ ],
2304
+ "evaluatedAt": "2026-09-09T12:11:32.636Z",
2305
+ "evaluatedVersion": "0.0.0"
2306
+ }
2307
+ }
2308
+ },
2309
+ {
2310
+ "name": "caveman-stats",
2311
+ "description": "Show real token usage and estimated savings for the current session, read from the session log. Trigger: /caveman-stats.",
2312
+ "version": "0.0.0",
2313
+ "license": "",
2314
+ "creator": "",
2315
+ "compatibility": "",
2316
+ "allowedTools": [],
2317
+ "tags": [],
2318
+ "dependencies": [],
2319
+ "modelInvocable": true,
2320
+ "userInvocable": true,
2321
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-stats",
2322
+ "relPath": "skills/caveman-stats",
2323
+ "verified": true,
2324
+ "tokenCount": 282,
2325
+ "evalSummary": {
2326
+ "overallScore": 52,
2327
+ "grade": "D",
2328
+ "categories": [
2329
+ {
2330
+ "id": "structure",
2331
+ "name": "Structure & completeness",
2332
+ "score": 6,
2333
+ "max": 10
2334
+ },
2335
+ {
2336
+ "id": "description",
2337
+ "name": "Description quality",
2338
+ "score": 10,
2339
+ "max": 10
2340
+ },
2341
+ {
2342
+ "id": "prompt-engineering",
2343
+ "name": "Prompt engineering",
2344
+ "score": 1,
2345
+ "max": 10
2346
+ },
2347
+ {
2348
+ "id": "context-efficiency",
2349
+ "name": "Context efficiency",
2350
+ "score": 6,
2351
+ "max": 10
2352
+ },
2353
+ {
2354
+ "id": "safety",
2355
+ "name": "Safety & guardrails",
2356
+ "score": 2,
2357
+ "max": 10
2358
+ },
2359
+ {
2360
+ "id": "testability",
2361
+ "name": "Testability",
2362
+ "score": 0,
2363
+ "max": 10
2364
+ },
2365
+ {
2366
+ "id": "license",
2367
+ "name": "License verification",
2368
+ "score": 0,
2369
+ "max": 10
2370
+ },
2371
+ {
2372
+ "id": "naming",
2373
+ "name": "Naming & conventions",
2374
+ "score": 7,
2375
+ "max": 10
2376
+ },
2377
+ {
2378
+ "id": "pii",
2379
+ "name": "PII detection",
2380
+ "score": 10,
2381
+ "max": 10
2382
+ },
2383
+ {
2384
+ "id": "script-lint",
2385
+ "name": "Script linting",
2386
+ "score": 10,
2387
+ "max": 10
2388
+ }
2389
+ ],
2390
+ "evaluatedAt": "2026-09-09T12:11:32.636Z",
2391
+ "evaluatedVersion": "0.0.0"
2392
+ },
2393
+ "evalSummaries": {
2394
+ "quality": {
2395
+ "providerId": "quality",
2396
+ "providerVersion": "1.0.0",
2397
+ "schemaVersion": 1,
2398
+ "passed": true,
2399
+ "overallScore": 52,
2400
+ "grade": "D",
2401
+ "categories": [
2402
+ {
2403
+ "id": "structure",
2404
+ "name": "Structure & completeness",
2405
+ "score": 6,
2406
+ "max": 10
2407
+ },
2408
+ {
2409
+ "id": "description",
2410
+ "name": "Description quality",
2411
+ "score": 10,
2412
+ "max": 10
2413
+ },
2414
+ {
2415
+ "id": "prompt-engineering",
2416
+ "name": "Prompt engineering",
2417
+ "score": 1,
2418
+ "max": 10
2419
+ },
2420
+ {
2421
+ "id": "context-efficiency",
2422
+ "name": "Context efficiency",
2423
+ "score": 6,
2424
+ "max": 10
2425
+ },
2426
+ {
2427
+ "id": "safety",
2428
+ "name": "Safety & guardrails",
2429
+ "score": 2,
2430
+ "max": 10
2431
+ },
2432
+ {
2433
+ "id": "testability",
2434
+ "name": "Testability",
2435
+ "score": 0,
2436
+ "max": 10
2437
+ },
2438
+ {
2439
+ "id": "license",
2440
+ "name": "License verification",
2441
+ "score": 0,
2442
+ "max": 10
2443
+ },
2444
+ {
2445
+ "id": "naming",
2446
+ "name": "Naming & conventions",
2447
+ "score": 7,
2448
+ "max": 10
2449
+ },
2450
+ {
2451
+ "id": "pii",
2452
+ "name": "PII detection",
2453
+ "score": 10,
2454
+ "max": 10
2455
+ },
2456
+ {
2457
+ "id": "script-lint",
2458
+ "name": "Script linting",
2459
+ "score": 10,
2460
+ "max": 10
2461
+ }
2462
+ ],
2463
+ "evaluatedAt": "2026-09-09T12:11:32.637Z",
2464
+ "evaluatedVersion": "0.0.0"
2465
+ },
2466
+ "skill-best-practice": {
2467
+ "providerId": "skill-best-practice",
2468
+ "providerVersion": "1.2.0",
2469
+ "schemaVersion": 1,
2470
+ "passed": false,
2471
+ "overallScore": 77,
2472
+ "grade": "C",
2473
+ "categories": [
2474
+ {
2475
+ "id": "validation",
2476
+ "name": "Deterministic validation",
2477
+ "score": 10,
2478
+ "max": 13
2479
+ }
2480
+ ],
2481
+ "evaluatedAt": "2026-09-09T12:11:32.637Z",
2482
+ "evaluatedVersion": "0.0.0"
2483
+ }
2484
+ }
2485
+ },
2486
+ {
2487
+ "name": "investigate-first",
2488
+ "description": "Diagnose ambiguous failures before editing. Use for unknown causes, intermittent behavior, performance regressions, or investigations needing evidence-ranked hypotheses.",
2489
+ "version": "0.0.0",
2490
+ "license": "",
2491
+ "creator": "",
2492
+ "compatibility": "",
2493
+ "allowedTools": [],
2494
+ "tags": [],
2495
+ "dependencies": [],
2496
+ "modelInvocable": true,
2497
+ "userInvocable": true,
2498
+ "installUrl": "github:JuliusBrussee/caveman:skills/investigate-first",
2499
+ "relPath": "skills/investigate-first",
2500
+ "verified": true,
2501
+ "tokenCount": 172,
2502
+ "evalSummary": {
2503
+ "overallScore": 55,
2504
+ "grade": "D",
2505
+ "categories": [
2506
+ {
2507
+ "id": "structure",
2508
+ "name": "Structure & completeness",
2509
+ "score": 7,
2510
+ "max": 10
2511
+ },
2512
+ {
2513
+ "id": "description",
2514
+ "name": "Description quality",
2515
+ "score": 7,
2516
+ "max": 10
2517
+ },
2518
+ {
2519
+ "id": "prompt-engineering",
2520
+ "name": "Prompt engineering",
2521
+ "score": 3,
2522
+ "max": 10
2523
+ },
2524
+ {
2525
+ "id": "context-efficiency",
2526
+ "name": "Context efficiency",
2527
+ "score": 4,
2528
+ "max": 10
2529
+ },
2530
+ {
2531
+ "id": "safety",
2532
+ "name": "Safety & guardrails",
2533
+ "score": 4,
2534
+ "max": 10
2535
+ },
2536
+ {
2537
+ "id": "testability",
2538
+ "name": "Testability",
2539
+ "score": 0,
2540
+ "max": 10
2541
+ },
2542
+ {
2543
+ "id": "license",
2544
+ "name": "License verification",
2545
+ "score": 0,
2546
+ "max": 10
2547
+ },
2548
+ {
2549
+ "id": "naming",
2550
+ "name": "Naming & conventions",
2551
+ "score": 10,
2552
+ "max": 10
2553
+ },
2554
+ {
2555
+ "id": "pii",
2556
+ "name": "PII detection",
2557
+ "score": 10,
2558
+ "max": 10
2559
+ },
2560
+ {
2561
+ "id": "script-lint",
2562
+ "name": "Script linting",
2563
+ "score": 10,
2564
+ "max": 10
2565
+ }
2566
+ ],
2567
+ "evaluatedAt": "2026-09-09T12:11:32.638Z",
2568
+ "evaluatedVersion": "0.0.0"
2569
+ },
2570
+ "evalSummaries": {
2571
+ "quality": {
2572
+ "providerId": "quality",
2573
+ "providerVersion": "1.0.0",
2574
+ "schemaVersion": 1,
2575
+ "passed": true,
2576
+ "overallScore": 55,
2577
+ "grade": "D",
2578
+ "categories": [
2579
+ {
2580
+ "id": "structure",
2581
+ "name": "Structure & completeness",
2582
+ "score": 7,
2583
+ "max": 10
2584
+ },
2585
+ {
2586
+ "id": "description",
2587
+ "name": "Description quality",
2588
+ "score": 7,
2589
+ "max": 10
2590
+ },
2591
+ {
2592
+ "id": "prompt-engineering",
2593
+ "name": "Prompt engineering",
2594
+ "score": 3,
2595
+ "max": 10
2596
+ },
2597
+ {
2598
+ "id": "context-efficiency",
2599
+ "name": "Context efficiency",
2600
+ "score": 4,
2601
+ "max": 10
2602
+ },
2603
+ {
2604
+ "id": "safety",
2605
+ "name": "Safety & guardrails",
2606
+ "score": 4,
2607
+ "max": 10
2608
+ },
2609
+ {
2610
+ "id": "testability",
2611
+ "name": "Testability",
2612
+ "score": 0,
2613
+ "max": 10
2614
+ },
2615
+ {
2616
+ "id": "license",
2617
+ "name": "License verification",
2618
+ "score": 0,
2619
+ "max": 10
2620
+ },
2621
+ {
2622
+ "id": "naming",
2623
+ "name": "Naming & conventions",
2624
+ "score": 10,
2625
+ "max": 10
2626
+ },
2627
+ {
2628
+ "id": "pii",
2629
+ "name": "PII detection",
2630
+ "score": 10,
2631
+ "max": 10
2632
+ },
2633
+ {
2634
+ "id": "script-lint",
2635
+ "name": "Script linting",
2636
+ "score": 10,
2637
+ "max": 10
2638
+ }
2639
+ ],
2640
+ "evaluatedAt": "2026-09-09T12:11:32.638Z",
2641
+ "evaluatedVersion": "0.0.0"
2642
+ },
2643
+ "skill-best-practice": {
2644
+ "providerId": "skill-best-practice",
2645
+ "providerVersion": "1.2.0",
2646
+ "schemaVersion": 1,
2647
+ "passed": false,
2648
+ "overallScore": 77,
2649
+ "grade": "C",
2650
+ "categories": [
2651
+ {
2652
+ "id": "validation",
2653
+ "name": "Deterministic validation",
2654
+ "score": 10,
2655
+ "max": 13
2656
+ }
2657
+ ],
2658
+ "evaluatedAt": "2026-09-09T12:11:32.638Z",
2659
+ "evaluatedVersion": "0.0.0"
2660
+ }
2661
+ }
2662
+ },
2663
+ {
2664
+ "name": "lean-build",
2665
+ "description": "Build feature work with high overbuilding risk. Use for new behavior, product slices, or integrations where repository reuse, strict scope, and an explicit stop condition matter.",
2666
+ "version": "0.0.0",
2667
+ "license": "",
2668
+ "creator": "",
2669
+ "compatibility": "",
2670
+ "allowedTools": [],
2671
+ "tags": [],
2672
+ "dependencies": [],
2673
+ "modelInvocable": true,
2674
+ "userInvocable": true,
2675
+ "installUrl": "github:JuliusBrussee/caveman:skills/lean-build",
2676
+ "relPath": "skills/lean-build",
2677
+ "verified": true,
2678
+ "tokenCount": 290,
2679
+ "evalSummary": {
2680
+ "overallScore": 60,
2681
+ "grade": "D",
2682
+ "categories": [
2683
+ {
2684
+ "id": "structure",
2685
+ "name": "Structure & completeness",
2686
+ "score": 7,
2687
+ "max": 10
2688
+ },
2689
+ {
2690
+ "id": "description",
2691
+ "name": "Description quality",
2692
+ "score": 10,
2693
+ "max": 10
2694
+ },
2695
+ {
2696
+ "id": "prompt-engineering",
2697
+ "name": "Prompt engineering",
2698
+ "score": 3,
2699
+ "max": 10
2700
+ },
2701
+ {
2702
+ "id": "context-efficiency",
2703
+ "name": "Context efficiency",
2704
+ "score": 6,
2705
+ "max": 10
2706
+ },
2707
+ {
2708
+ "id": "safety",
2709
+ "name": "Safety & guardrails",
2710
+ "score": 4,
2711
+ "max": 10
2712
+ },
2713
+ {
2714
+ "id": "testability",
2715
+ "name": "Testability",
2716
+ "score": 0,
2717
+ "max": 10
2718
+ },
2719
+ {
2720
+ "id": "license",
2721
+ "name": "License verification",
2722
+ "score": 0,
2723
+ "max": 10
2724
+ },
2725
+ {
2726
+ "id": "naming",
2727
+ "name": "Naming & conventions",
2728
+ "score": 10,
2729
+ "max": 10
2730
+ },
2731
+ {
2732
+ "id": "pii",
2733
+ "name": "PII detection",
2734
+ "score": 10,
2735
+ "max": 10
2736
+ },
2737
+ {
2738
+ "id": "script-lint",
2739
+ "name": "Script linting",
2740
+ "score": 10,
2741
+ "max": 10
2742
+ }
2743
+ ],
2744
+ "evaluatedAt": "2026-09-09T12:11:32.640Z",
2745
+ "evaluatedVersion": "0.0.0"
2746
+ },
2747
+ "evalSummaries": {
2748
+ "quality": {
2749
+ "providerId": "quality",
2750
+ "providerVersion": "1.0.0",
2751
+ "schemaVersion": 1,
2752
+ "passed": true,
2753
+ "overallScore": 60,
2754
+ "grade": "D",
2755
+ "categories": [
2756
+ {
2757
+ "id": "structure",
2758
+ "name": "Structure & completeness",
2759
+ "score": 7,
2760
+ "max": 10
2761
+ },
2762
+ {
2763
+ "id": "description",
2764
+ "name": "Description quality",
2765
+ "score": 10,
2766
+ "max": 10
2767
+ },
2768
+ {
2769
+ "id": "prompt-engineering",
2770
+ "name": "Prompt engineering",
2771
+ "score": 3,
2772
+ "max": 10
2773
+ },
2774
+ {
2775
+ "id": "context-efficiency",
2776
+ "name": "Context efficiency",
2777
+ "score": 6,
2778
+ "max": 10
2779
+ },
2780
+ {
2781
+ "id": "safety",
2782
+ "name": "Safety & guardrails",
2783
+ "score": 4,
2784
+ "max": 10
2785
+ },
2786
+ {
2787
+ "id": "testability",
2788
+ "name": "Testability",
2789
+ "score": 0,
2790
+ "max": 10
2791
+ },
2792
+ {
2793
+ "id": "license",
2794
+ "name": "License verification",
2795
+ "score": 0,
2796
+ "max": 10
2797
+ },
2798
+ {
2799
+ "id": "naming",
2800
+ "name": "Naming & conventions",
2801
+ "score": 10,
2802
+ "max": 10
2803
+ },
2804
+ {
2805
+ "id": "pii",
2806
+ "name": "PII detection",
2807
+ "score": 10,
2808
+ "max": 10
2809
+ },
2810
+ {
2811
+ "id": "script-lint",
2812
+ "name": "Script linting",
2813
+ "score": 10,
2814
+ "max": 10
2815
+ }
2816
+ ],
2817
+ "evaluatedAt": "2026-09-09T12:11:32.640Z",
2818
+ "evaluatedVersion": "0.0.0"
2819
+ },
2820
+ "skill-best-practice": {
2821
+ "providerId": "skill-best-practice",
2822
+ "providerVersion": "1.2.0",
2823
+ "schemaVersion": 1,
2824
+ "passed": false,
2825
+ "overallScore": 77,
2826
+ "grade": "C",
2827
+ "categories": [
2828
+ {
2829
+ "id": "validation",
2830
+ "name": "Deterministic validation",
2831
+ "score": 10,
2832
+ "max": 13
2833
+ }
2834
+ ],
2835
+ "evaluatedAt": "2026-09-09T12:11:32.640Z",
2836
+ "evaluatedVersion": "0.0.0"
2837
+ }
2838
+ }
2839
+ },
2840
+ {
2841
+ "name": "migration",
2842
+ "description": "Implement reversible compatibility-safe transitions. Use for schema, data, API, protocol, configuration, or dependency migrations requiring rollback and preservation proof.",
2843
+ "version": "0.0.0",
2844
+ "license": "",
2845
+ "creator": "",
2846
+ "compatibility": "",
2847
+ "allowedTools": [],
2848
+ "tags": [],
2849
+ "dependencies": [],
2850
+ "modelInvocable": true,
2851
+ "userInvocable": true,
2852
+ "installUrl": "github:JuliusBrussee/caveman:skills/migration",
2853
+ "relPath": "skills/migration",
2854
+ "verified": true,
2855
+ "tokenCount": 195,
2856
+ "evalSummary": {
2857
+ "overallScore": 60,
2858
+ "grade": "D",
2859
+ "categories": [
2860
+ {
2861
+ "id": "structure",
2862
+ "name": "Structure & completeness",
2863
+ "score": 7,
2864
+ "max": 10
2865
+ },
2866
+ {
2867
+ "id": "description",
2868
+ "name": "Description quality",
2869
+ "score": 7,
2870
+ "max": 10
2871
+ },
2872
+ {
2873
+ "id": "prompt-engineering",
2874
+ "name": "Prompt engineering",
2875
+ "score": 4,
2876
+ "max": 10
2877
+ },
2878
+ {
2879
+ "id": "context-efficiency",
2880
+ "name": "Context efficiency",
2881
+ "score": 4,
2882
+ "max": 10
2883
+ },
2884
+ {
2885
+ "id": "safety",
2886
+ "name": "Safety & guardrails",
2887
+ "score": 5,
2888
+ "max": 10
2889
+ },
2890
+ {
2891
+ "id": "testability",
2892
+ "name": "Testability",
2893
+ "score": 3,
2894
+ "max": 10
2895
+ },
2896
+ {
2897
+ "id": "license",
2898
+ "name": "License verification",
2899
+ "score": 0,
2900
+ "max": 10
2901
+ },
2902
+ {
2903
+ "id": "naming",
2904
+ "name": "Naming & conventions",
2905
+ "score": 10,
2906
+ "max": 10
2907
+ },
2908
+ {
2909
+ "id": "pii",
2910
+ "name": "PII detection",
2911
+ "score": 10,
2912
+ "max": 10
2913
+ },
2914
+ {
2915
+ "id": "script-lint",
2916
+ "name": "Script linting",
2917
+ "score": 10,
2918
+ "max": 10
2919
+ }
2920
+ ],
2921
+ "evaluatedAt": "2026-09-09T12:11:32.641Z",
2922
+ "evaluatedVersion": "0.0.0"
2923
+ },
2924
+ "evalSummaries": {
2925
+ "quality": {
2926
+ "providerId": "quality",
2927
+ "providerVersion": "1.0.0",
2928
+ "schemaVersion": 1,
2929
+ "passed": true,
2930
+ "overallScore": 60,
2931
+ "grade": "D",
2932
+ "categories": [
2933
+ {
2934
+ "id": "structure",
2935
+ "name": "Structure & completeness",
2936
+ "score": 7,
2937
+ "max": 10
2938
+ },
2939
+ {
2940
+ "id": "description",
2941
+ "name": "Description quality",
2942
+ "score": 7,
2943
+ "max": 10
2944
+ },
2945
+ {
2946
+ "id": "prompt-engineering",
2947
+ "name": "Prompt engineering",
2948
+ "score": 4,
2949
+ "max": 10
2950
+ },
2951
+ {
2952
+ "id": "context-efficiency",
2953
+ "name": "Context efficiency",
2954
+ "score": 4,
2955
+ "max": 10
2956
+ },
2957
+ {
2958
+ "id": "safety",
2959
+ "name": "Safety & guardrails",
2960
+ "score": 5,
2961
+ "max": 10
2962
+ },
2963
+ {
2964
+ "id": "testability",
2965
+ "name": "Testability",
2966
+ "score": 3,
2967
+ "max": 10
2968
+ },
2969
+ {
2970
+ "id": "license",
2971
+ "name": "License verification",
2972
+ "score": 0,
2973
+ "max": 10
2974
+ },
2975
+ {
2976
+ "id": "naming",
2977
+ "name": "Naming & conventions",
2978
+ "score": 10,
2979
+ "max": 10
2980
+ },
2981
+ {
2982
+ "id": "pii",
2983
+ "name": "PII detection",
2984
+ "score": 10,
2985
+ "max": 10
2986
+ },
2987
+ {
2988
+ "id": "script-lint",
2989
+ "name": "Script linting",
2990
+ "score": 10,
2991
+ "max": 10
2992
+ }
2993
+ ],
2994
+ "evaluatedAt": "2026-09-09T12:11:32.641Z",
2995
+ "evaluatedVersion": "0.0.0"
2996
+ },
2997
+ "skill-best-practice": {
2998
+ "providerId": "skill-best-practice",
2999
+ "providerVersion": "1.2.0",
3000
+ "schemaVersion": 1,
3001
+ "passed": false,
3002
+ "overallScore": 77,
3003
+ "grade": "C",
3004
+ "categories": [
3005
+ {
3006
+ "id": "validation",
3007
+ "name": "Deterministic validation",
3008
+ "score": 10,
3009
+ "max": 13
3010
+ }
3011
+ ],
3012
+ "evaluatedAt": "2026-09-09T12:11:32.641Z",
3013
+ "evaluatedVersion": "0.0.0"
3014
+ }
3015
+ }
3016
+ },
3017
+ {
3018
+ "name": "safe-refactor",
3019
+ "description": "Restructure code while preserving behavior. Use for extraction, consolidation, ownership moves, or cleanup where verification must bracket structural edits.",
3020
+ "version": "0.0.0",
3021
+ "license": "",
3022
+ "creator": "",
3023
+ "compatibility": "",
3024
+ "allowedTools": [],
3025
+ "tags": [],
3026
+ "dependencies": [],
3027
+ "modelInvocable": true,
3028
+ "userInvocable": true,
3029
+ "installUrl": "github:JuliusBrussee/caveman:skills/safe-refactor",
3030
+ "relPath": "skills/safe-refactor",
3031
+ "verified": true,
3032
+ "tokenCount": 172,
3033
+ "evalSummary": {
3034
+ "overallScore": 61,
3035
+ "grade": "D",
3036
+ "categories": [
3037
+ {
3038
+ "id": "structure",
3039
+ "name": "Structure & completeness",
3040
+ "score": 7,
3041
+ "max": 10
3042
+ },
3043
+ {
3044
+ "id": "description",
3045
+ "name": "Description quality",
3046
+ "score": 7,
3047
+ "max": 10
3048
+ },
3049
+ {
3050
+ "id": "prompt-engineering",
3051
+ "name": "Prompt engineering",
3052
+ "score": 3,
3053
+ "max": 10
3054
+ },
3055
+ {
3056
+ "id": "context-efficiency",
3057
+ "name": "Context efficiency",
3058
+ "score": 4,
3059
+ "max": 10
3060
+ },
3061
+ {
3062
+ "id": "safety",
3063
+ "name": "Safety & guardrails",
3064
+ "score": 7,
3065
+ "max": 10
3066
+ },
3067
+ {
3068
+ "id": "testability",
3069
+ "name": "Testability",
3070
+ "score": 3,
3071
+ "max": 10
3072
+ },
3073
+ {
3074
+ "id": "license",
3075
+ "name": "License verification",
3076
+ "score": 0,
3077
+ "max": 10
3078
+ },
3079
+ {
3080
+ "id": "naming",
3081
+ "name": "Naming & conventions",
3082
+ "score": 10,
3083
+ "max": 10
3084
+ },
3085
+ {
3086
+ "id": "pii",
3087
+ "name": "PII detection",
3088
+ "score": 10,
3089
+ "max": 10
3090
+ },
3091
+ {
3092
+ "id": "script-lint",
3093
+ "name": "Script linting",
3094
+ "score": 10,
3095
+ "max": 10
3096
+ }
3097
+ ],
3098
+ "evaluatedAt": "2026-09-09T12:11:32.641Z",
3099
+ "evaluatedVersion": "0.0.0"
3100
+ },
3101
+ "evalSummaries": {
3102
+ "quality": {
3103
+ "providerId": "quality",
3104
+ "providerVersion": "1.0.0",
3105
+ "schemaVersion": 1,
3106
+ "passed": true,
3107
+ "overallScore": 61,
3108
+ "grade": "D",
3109
+ "categories": [
3110
+ {
3111
+ "id": "structure",
3112
+ "name": "Structure & completeness",
3113
+ "score": 7,
3114
+ "max": 10
3115
+ },
3116
+ {
3117
+ "id": "description",
3118
+ "name": "Description quality",
3119
+ "score": 7,
3120
+ "max": 10
3121
+ },
3122
+ {
3123
+ "id": "prompt-engineering",
3124
+ "name": "Prompt engineering",
3125
+ "score": 3,
3126
+ "max": 10
3127
+ },
3128
+ {
3129
+ "id": "context-efficiency",
3130
+ "name": "Context efficiency",
3131
+ "score": 4,
3132
+ "max": 10
3133
+ },
3134
+ {
3135
+ "id": "safety",
3136
+ "name": "Safety & guardrails",
3137
+ "score": 7,
3138
+ "max": 10
3139
+ },
3140
+ {
3141
+ "id": "testability",
3142
+ "name": "Testability",
3143
+ "score": 3,
3144
+ "max": 10
3145
+ },
3146
+ {
3147
+ "id": "license",
3148
+ "name": "License verification",
3149
+ "score": 0,
3150
+ "max": 10
3151
+ },
3152
+ {
3153
+ "id": "naming",
3154
+ "name": "Naming & conventions",
3155
+ "score": 10,
3156
+ "max": 10
3157
+ },
3158
+ {
3159
+ "id": "pii",
3160
+ "name": "PII detection",
3161
+ "score": 10,
3162
+ "max": 10
3163
+ },
3164
+ {
3165
+ "id": "script-lint",
3166
+ "name": "Script linting",
3167
+ "score": 10,
3168
+ "max": 10
3169
+ }
3170
+ ],
3171
+ "evaluatedAt": "2026-09-09T12:11:32.641Z",
3172
+ "evaluatedVersion": "0.0.0"
3173
+ },
3174
+ "skill-best-practice": {
3175
+ "providerId": "skill-best-practice",
3176
+ "providerVersion": "1.2.0",
3177
+ "schemaVersion": 1,
3178
+ "passed": false,
3179
+ "overallScore": 77,
3180
+ "grade": "C",
3181
+ "categories": [
3182
+ {
3183
+ "id": "validation",
3184
+ "name": "Deterministic validation",
3185
+ "score": 10,
3186
+ "max": 13
3187
+ }
3188
+ ],
3189
+ "evaluatedAt": "2026-09-09T12:11:32.641Z",
3190
+ "evaluatedVersion": "0.0.0"
3191
+ }
3192
+ }
3193
+ },
3194
+ {
3195
+ "name": "surgical-patch",
3196
+ "description": "Fix bugs and small behavior changes at the narrowest responsible layer. Use when regression proof, preserved surrounding behavior, and task-relevant tests matter.",
3197
+ "version": "0.0.0",
3198
+ "license": "",
3199
+ "creator": "",
3200
+ "compatibility": "",
3201
+ "allowedTools": [],
3202
+ "tags": [],
3203
+ "dependencies": [],
3204
+ "modelInvocable": true,
3205
+ "userInvocable": true,
3206
+ "installUrl": "github:JuliusBrussee/caveman:skills/surgical-patch",
3207
+ "relPath": "skills/surgical-patch",
3208
+ "verified": true,
3209
+ "tokenCount": 174,
3210
+ "evalSummary": {
3211
+ "overallScore": 58,
3212
+ "grade": "D",
3213
+ "categories": [
3214
+ {
3215
+ "id": "structure",
3216
+ "name": "Structure & completeness",
3217
+ "score": 7,
3218
+ "max": 10
3219
+ },
3220
+ {
3221
+ "id": "description",
3222
+ "name": "Description quality",
3223
+ "score": 10,
3224
+ "max": 10
3225
+ },
3226
+ {
3227
+ "id": "prompt-engineering",
3228
+ "name": "Prompt engineering",
3229
+ "score": 3,
3230
+ "max": 10
3231
+ },
3232
+ {
3233
+ "id": "context-efficiency",
3234
+ "name": "Context efficiency",
3235
+ "score": 4,
3236
+ "max": 10
3237
+ },
3238
+ {
3239
+ "id": "safety",
3240
+ "name": "Safety & guardrails",
3241
+ "score": 4,
3242
+ "max": 10
3243
+ },
3244
+ {
3245
+ "id": "testability",
3246
+ "name": "Testability",
3247
+ "score": 0,
3248
+ "max": 10
3249
+ },
3250
+ {
3251
+ "id": "license",
3252
+ "name": "License verification",
3253
+ "score": 0,
3254
+ "max": 10
3255
+ },
3256
+ {
3257
+ "id": "naming",
3258
+ "name": "Naming & conventions",
3259
+ "score": 10,
3260
+ "max": 10
3261
+ },
3262
+ {
3263
+ "id": "pii",
3264
+ "name": "PII detection",
3265
+ "score": 10,
3266
+ "max": 10
3267
+ },
3268
+ {
3269
+ "id": "script-lint",
3270
+ "name": "Script linting",
3271
+ "score": 10,
3272
+ "max": 10
3273
+ }
3274
+ ],
3275
+ "evaluatedAt": "2026-09-09T12:11:32.642Z",
3276
+ "evaluatedVersion": "0.0.0"
3277
+ },
3278
+ "evalSummaries": {
3279
+ "quality": {
3280
+ "providerId": "quality",
3281
+ "providerVersion": "1.0.0",
3282
+ "schemaVersion": 1,
3283
+ "passed": true,
3284
+ "overallScore": 58,
3285
+ "grade": "D",
3286
+ "categories": [
3287
+ {
3288
+ "id": "structure",
3289
+ "name": "Structure & completeness",
3290
+ "score": 7,
3291
+ "max": 10
3292
+ },
3293
+ {
3294
+ "id": "description",
3295
+ "name": "Description quality",
3296
+ "score": 10,
3297
+ "max": 10
3298
+ },
3299
+ {
3300
+ "id": "prompt-engineering",
3301
+ "name": "Prompt engineering",
3302
+ "score": 3,
3303
+ "max": 10
3304
+ },
3305
+ {
3306
+ "id": "context-efficiency",
3307
+ "name": "Context efficiency",
3308
+ "score": 4,
3309
+ "max": 10
3310
+ },
3311
+ {
3312
+ "id": "safety",
3313
+ "name": "Safety & guardrails",
3314
+ "score": 4,
3315
+ "max": 10
3316
+ },
3317
+ {
3318
+ "id": "testability",
3319
+ "name": "Testability",
3320
+ "score": 0,
3321
+ "max": 10
3322
+ },
3323
+ {
3324
+ "id": "license",
3325
+ "name": "License verification",
3326
+ "score": 0,
3327
+ "max": 10
3328
+ },
3329
+ {
3330
+ "id": "naming",
3331
+ "name": "Naming & conventions",
3332
+ "score": 10,
3333
+ "max": 10
3334
+ },
3335
+ {
3336
+ "id": "pii",
3337
+ "name": "PII detection",
3338
+ "score": 10,
3339
+ "max": 10
3340
+ },
3341
+ {
3342
+ "id": "script-lint",
3343
+ "name": "Script linting",
3344
+ "score": 10,
3345
+ "max": 10
3346
+ }
3347
+ ],
3348
+ "evaluatedAt": "2026-09-09T12:11:32.642Z",
3349
+ "evaluatedVersion": "0.0.0"
3350
+ },
3351
+ "skill-best-practice": {
3352
+ "providerId": "skill-best-practice",
3353
+ "providerVersion": "1.2.0",
3354
+ "schemaVersion": 1,
3355
+ "passed": false,
3356
+ "overallScore": 77,
3357
+ "grade": "C",
3358
+ "categories": [
3359
+ {
3360
+ "id": "validation",
3361
+ "name": "Deterministic validation",
3362
+ "score": 10,
3363
+ "max": 13
3364
+ }
3365
+ ],
3366
+ "evaluatedAt": "2026-09-09T12:11:32.642Z",
3367
+ "evaluatedVersion": "0.0.0"
3368
+ }
3369
+ }
3370
+ },
3371
+ {
3372
+ "name": "verify-and-stop",
3373
+ "description": "Prove existing work meets acceptance conditions without expanding scope. Use for validation-only tasks, completion checks, focused gate runs, and last-mile proof.",
3374
+ "version": "0.0.0",
3375
+ "license": "",
3376
+ "creator": "",
3377
+ "compatibility": "",
3378
+ "allowedTools": [],
3379
+ "tags": [],
3380
+ "dependencies": [],
3381
+ "modelInvocable": true,
3382
+ "userInvocable": true,
3383
+ "installUrl": "github:JuliusBrussee/caveman:skills/verify-and-stop",
3384
+ "relPath": "skills/verify-and-stop",
3385
+ "verified": true,
3386
+ "tokenCount": 184,
3387
+ "evalSummary": {
3388
+ "overallScore": 61,
3389
+ "grade": "D",
3390
+ "categories": [
3391
+ {
3392
+ "id": "structure",
3393
+ "name": "Structure & completeness",
3394
+ "score": 7,
3395
+ "max": 10
3396
+ },
3397
+ {
3398
+ "id": "description",
3399
+ "name": "Description quality",
3400
+ "score": 7,
3401
+ "max": 10
3402
+ },
3403
+ {
3404
+ "id": "prompt-engineering",
3405
+ "name": "Prompt engineering",
3406
+ "score": 4,
3407
+ "max": 10
3408
+ },
3409
+ {
3410
+ "id": "context-efficiency",
3411
+ "name": "Context efficiency",
3412
+ "score": 4,
3413
+ "max": 10
3414
+ },
3415
+ {
3416
+ "id": "safety",
3417
+ "name": "Safety & guardrails",
3418
+ "score": 4,
3419
+ "max": 10
3420
+ },
3421
+ {
3422
+ "id": "testability",
3423
+ "name": "Testability",
3424
+ "score": 5,
3425
+ "max": 10
3426
+ },
3427
+ {
3428
+ "id": "license",
3429
+ "name": "License verification",
3430
+ "score": 0,
3431
+ "max": 10
3432
+ },
3433
+ {
3434
+ "id": "naming",
3435
+ "name": "Naming & conventions",
3436
+ "score": 10,
3437
+ "max": 10
3438
+ },
3439
+ {
3440
+ "id": "pii",
3441
+ "name": "PII detection",
3442
+ "score": 10,
3443
+ "max": 10
3444
+ },
3445
+ {
3446
+ "id": "script-lint",
3447
+ "name": "Script linting",
3448
+ "score": 10,
3449
+ "max": 10
3450
+ }
3451
+ ],
3452
+ "evaluatedAt": "2026-09-09T12:11:32.642Z",
3453
+ "evaluatedVersion": "0.0.0"
3454
+ },
3455
+ "evalSummaries": {
3456
+ "quality": {
3457
+ "providerId": "quality",
3458
+ "providerVersion": "1.0.0",
3459
+ "schemaVersion": 1,
3460
+ "passed": true,
3461
+ "overallScore": 61,
3462
+ "grade": "D",
3463
+ "categories": [
3464
+ {
3465
+ "id": "structure",
3466
+ "name": "Structure & completeness",
3467
+ "score": 7,
3468
+ "max": 10
3469
+ },
3470
+ {
3471
+ "id": "description",
3472
+ "name": "Description quality",
3473
+ "score": 7,
3474
+ "max": 10
3475
+ },
3476
+ {
3477
+ "id": "prompt-engineering",
3478
+ "name": "Prompt engineering",
3479
+ "score": 4,
3480
+ "max": 10
3481
+ },
3482
+ {
3483
+ "id": "context-efficiency",
3484
+ "name": "Context efficiency",
3485
+ "score": 4,
3486
+ "max": 10
3487
+ },
3488
+ {
3489
+ "id": "safety",
3490
+ "name": "Safety & guardrails",
3491
+ "score": 4,
3492
+ "max": 10
3493
+ },
3494
+ {
3495
+ "id": "testability",
3496
+ "name": "Testability",
3497
+ "score": 5,
3498
+ "max": 10
3499
+ },
3500
+ {
3501
+ "id": "license",
3502
+ "name": "License verification",
3503
+ "score": 0,
3504
+ "max": 10
3505
+ },
3506
+ {
3507
+ "id": "naming",
3508
+ "name": "Naming & conventions",
3509
+ "score": 10,
3510
+ "max": 10
3511
+ },
3512
+ {
3513
+ "id": "pii",
3514
+ "name": "PII detection",
3515
+ "score": 10,
3516
+ "max": 10
3517
+ },
3518
+ {
3519
+ "id": "script-lint",
3520
+ "name": "Script linting",
3521
+ "score": 10,
3522
+ "max": 10
3523
+ }
3524
+ ],
3525
+ "evaluatedAt": "2026-09-09T12:11:32.642Z",
3526
+ "evaluatedVersion": "0.0.0"
3527
+ },
3528
+ "skill-best-practice": {
3529
+ "providerId": "skill-best-practice",
3530
+ "providerVersion": "1.2.0",
3531
+ "schemaVersion": 1,
3532
+ "passed": false,
3533
+ "overallScore": 77,
3534
+ "grade": "C",
3535
+ "categories": [
3536
+ {
3537
+ "id": "validation",
3538
+ "name": "Deterministic validation",
3539
+ "score": 10,
3540
+ "max": 13
3541
+ }
3542
+ ],
3543
+ "evaluatedAt": "2026-09-09T12:11:32.642Z",
3544
+ "evaluatedVersion": "0.0.0"
3545
+ }
3546
+ }
3547
+ }
3548
+ ],
3549
+ "bundles": [
3550
+ {
3551
+ "version": 1,
3552
+ "name": "juliusbrussee-caveman-data-ai",
3553
+ "description": "Data, analytics, AI, model, prompt, agent, and automation skills. Derived from JuliusBrussee/caveman.",
3554
+ "author": "ASM (JuliusBrussee/caveman)",
3555
+ "createdAt": "2026-09-09T12:11:32.937Z",
3556
+ "tags": [
3557
+ "repo-derived",
3558
+ "inferred",
3559
+ "data",
3560
+ "ai",
3561
+ "agents",
3562
+ "juliusbrussee",
3563
+ "caveman"
3564
+ ],
3565
+ "skills": [
3566
+ {
3567
+ "name": "cavecrew",
3568
+ "installUrl": "github:JuliusBrussee/caveman:skills/cavecrew",
3569
+ "description": "When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff review) instead of working inline or using `Explore`. Their output is compressed, so main context lasts longer.",
3570
+ "version": "0.0.0"
3571
+ },
3572
+ {
3573
+ "name": "caveman-compress",
3574
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-compress",
3575
+ "description": "Compress a memory file such as CLAUDE.md or a todo list into caveman format to save input tokens, keeping a readable backup. Trigger: /caveman-compress.",
3576
+ "version": "0.0.0"
3577
+ },
3578
+ {
3579
+ "name": "caveman-discover",
3580
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-discover",
3581
+ "description": "Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket. Use for \"discover workflows\" or breaking LLM spend down by workflow.",
3582
+ "version": "0.0.0"
3583
+ },
3584
+ {
3585
+ "name": "caveman-evidence-review",
3586
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-evidence-review",
3587
+ "description": "Read-only review of Caveman Cloud evidence: cost, Cave Score, workflows, traces, latency, errors, routing, savings. Use when asked what Caveman found or where LLM spend goes.",
3588
+ "version": "0.0.0"
3589
+ },
3590
+ {
3591
+ "name": "caveman-explore",
3592
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-explore",
3593
+ "description": "Read-only repository explorer for cold-start orientation, broad cross-file localization, or when a direct search failed. Skip it when the exact file or symbol is already named. Returns path:line citations only; its reads stay out of main context.",
3594
+ "version": "0.0.0"
3595
+ },
3596
+ {
3597
+ "name": "caveman-learn",
3598
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-learn",
3599
+ "description": "Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.",
3600
+ "version": "0.0.0"
3601
+ },
3602
+ {
3603
+ "name": "caveman-optimize",
3604
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-optimize",
3605
+ "description": "Turn a Caveman optimization observation into an operator-chosen candidate with a paired baseline evaluation. Use when asked to inspect or evaluate a Caveman optimization report. Needs explicit approval.",
3606
+ "version": "0.0.0"
3607
+ },
3608
+ {
3609
+ "name": "caveman-setup",
3610
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-setup",
3611
+ "description": "Wire a repository through the Caveman Cloud gateway so every LLM request is measured, with no behavior change. Use for \"set up caveman\" or adding LLM spend observability.",
3612
+ "version": "0.0.0"
3613
+ },
3614
+ {
3615
+ "name": "investigate-first",
3616
+ "installUrl": "github:JuliusBrussee/caveman:skills/investigate-first",
3617
+ "description": "Diagnose ambiguous failures before editing. Use for unknown causes, intermittent behavior, performance regressions, or investigations needing evidence-ranked hypotheses.",
3618
+ "version": "0.0.0"
3619
+ },
3620
+ {
3621
+ "name": "migration",
3622
+ "installUrl": "github:JuliusBrussee/caveman:skills/migration",
3623
+ "description": "Implement reversible compatibility-safe transitions. Use for schema, data, API, protocol, configuration, or dependency migrations requiring rollback and preservation proof.",
3624
+ "version": "0.0.0"
3625
+ }
3626
+ ],
3627
+ "sourceRepo": {
3628
+ "owner": "JuliusBrussee",
3629
+ "repo": "caveman",
3630
+ "repoUrl": "https://github.com/JuliusBrussee/caveman.git"
3631
+ },
3632
+ "inferred": true
3633
+ },
3634
+ {
3635
+ "version": 1,
3636
+ "name": "juliusbrussee-caveman-devops",
3637
+ "description": "Deployment, CI/CD, infrastructure, cloud, Docker, Kubernetes, and automation skills. Derived from JuliusBrussee/caveman.",
3638
+ "author": "ASM (JuliusBrussee/caveman)",
3639
+ "createdAt": "2026-09-09T12:11:32.937Z",
3640
+ "tags": [
3641
+ "repo-derived",
3642
+ "inferred",
3643
+ "devops",
3644
+ "infra",
3645
+ "automation",
3646
+ "juliusbrussee",
3647
+ "caveman"
3648
+ ],
3649
+ "skills": [
3650
+ {
3651
+ "name": "caveman-discover",
3652
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-discover",
3653
+ "description": "Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket. Use for \"discover workflows\" or breaking LLM spend down by workflow.",
3654
+ "version": "0.0.0"
3655
+ },
3656
+ {
3657
+ "name": "caveman-evidence-review",
3658
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-evidence-review",
3659
+ "description": "Read-only review of Caveman Cloud evidence: cost, Cave Score, workflows, traces, latency, errors, routing, savings. Use when asked what Caveman found or where LLM spend goes.",
3660
+ "version": "0.0.0"
3661
+ },
3662
+ {
3663
+ "name": "caveman-explore",
3664
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-explore",
3665
+ "description": "Read-only repository explorer for cold-start orientation, broad cross-file localization, or when a direct search failed. Skip it when the exact file or symbol is already named. Returns path:line citations only; its reads stay out of main context.",
3666
+ "version": "0.0.0"
3667
+ },
3668
+ {
3669
+ "name": "caveman-manage",
3670
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-manage",
3671
+ "description": "Inspect Caveman Cloud's experiment lifecycle and block unsafe execution. Use when asked to start, approve, cancel, promote or roll back a Caveman experiment.",
3672
+ "version": "0.0.0"
3673
+ },
3674
+ {
3675
+ "name": "caveman-optimize",
3676
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-optimize",
3677
+ "description": "Turn a Caveman optimization observation into an operator-chosen candidate with a paired baseline evaluation. Use when asked to inspect or evaluate a Caveman optimization report. Needs explicit approval.",
3678
+ "version": "0.0.0"
3679
+ },
3680
+ {
3681
+ "name": "caveman-setup",
3682
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-setup",
3683
+ "description": "Wire a repository through the Caveman Cloud gateway so every LLM request is measured, with no behavior change. Use for \"set up caveman\" or adding LLM spend observability.",
3684
+ "version": "0.0.0"
3685
+ },
3686
+ {
3687
+ "name": "lean-build",
3688
+ "installUrl": "github:JuliusBrussee/caveman:skills/lean-build",
3689
+ "description": "Build feature work with high overbuilding risk. Use for new behavior, product slices, or integrations where repository reuse, strict scope, and an explicit stop condition matter.",
3690
+ "version": "0.0.0"
3691
+ }
3692
+ ],
3693
+ "sourceRepo": {
3694
+ "owner": "JuliusBrussee",
3695
+ "repo": "caveman",
3696
+ "repoUrl": "https://github.com/JuliusBrussee/caveman.git"
3697
+ },
3698
+ "inferred": true
3699
+ },
3700
+ {
3701
+ "version": 1,
3702
+ "name": "juliusbrussee-caveman-engineering",
3703
+ "description": "Coding, debugging, testing, architecture, review, and software engineering skills. Derived from JuliusBrussee/caveman.",
3704
+ "author": "ASM (JuliusBrussee/caveman)",
3705
+ "createdAt": "2026-09-09T12:11:32.937Z",
3706
+ "tags": [
3707
+ "repo-derived",
3708
+ "inferred",
3709
+ "engineering",
3710
+ "coding",
3711
+ "testing",
3712
+ "juliusbrussee",
3713
+ "caveman"
3714
+ ],
3715
+ "skills": [
3716
+ {
3717
+ "name": "cavecrew",
3718
+ "installUrl": "github:JuliusBrussee/caveman:skills/cavecrew",
3719
+ "description": "When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff review) instead of working inline or using `Explore`. Their output is compressed, so main context lasts longer.",
3720
+ "version": "0.0.0"
3721
+ },
3722
+ {
3723
+ "name": "caveman-evidence-review",
3724
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-evidence-review",
3725
+ "description": "Read-only review of Caveman Cloud evidence: cost, Cave Score, workflows, traces, latency, errors, routing, savings. Use when asked what Caveman found or where LLM spend goes.",
3726
+ "version": "0.0.0"
3727
+ },
3728
+ {
3729
+ "name": "caveman-learn",
3730
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-learn",
3731
+ "description": "Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.",
3732
+ "version": "0.0.0"
3733
+ },
3734
+ {
3735
+ "name": "caveman-review",
3736
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-review",
3737
+ "description": "Compressed code review - one line per finding with location, problem and fix. Use for /caveman-review, \"review this PR\", or \"review the diff\".",
3738
+ "version": "0.0.0"
3739
+ },
3740
+ {
3741
+ "name": "lean-build",
3742
+ "installUrl": "github:JuliusBrussee/caveman:skills/lean-build",
3743
+ "description": "Build feature work with high overbuilding risk. Use for new behavior, product slices, or integrations where repository reuse, strict scope, and an explicit stop condition matter.",
3744
+ "version": "0.0.0"
3745
+ },
3746
+ {
3747
+ "name": "migration",
3748
+ "installUrl": "github:JuliusBrussee/caveman:skills/migration",
3749
+ "description": "Implement reversible compatibility-safe transitions. Use for schema, data, API, protocol, configuration, or dependency migrations requiring rollback and preservation proof.",
3750
+ "version": "0.0.0"
3751
+ },
3752
+ {
3753
+ "name": "safe-refactor",
3754
+ "installUrl": "github:JuliusBrussee/caveman:skills/safe-refactor",
3755
+ "description": "Restructure code while preserving behavior. Use for extraction, consolidation, ownership moves, or cleanup where verification must bracket structural edits.",
3756
+ "version": "0.0.0"
3757
+ },
3758
+ {
3759
+ "name": "surgical-patch",
3760
+ "installUrl": "github:JuliusBrussee/caveman:skills/surgical-patch",
3761
+ "description": "Fix bugs and small behavior changes at the narrowest responsible layer. Use when regression proof, preserved surrounding behavior, and task-relevant tests matter.",
3762
+ "version": "0.0.0"
3763
+ }
3764
+ ],
3765
+ "sourceRepo": {
3766
+ "owner": "JuliusBrussee",
3767
+ "repo": "caveman",
3768
+ "repoUrl": "https://github.com/JuliusBrussee/caveman.git"
3769
+ },
3770
+ "inferred": true
3771
+ },
3772
+ {
3773
+ "version": 1,
3774
+ "name": "juliusbrussee-caveman-frontend-design",
3775
+ "description": "Frontend, UI, UX, visual design, component, theme, and landing-page skills. Derived from JuliusBrussee/caveman.",
3776
+ "author": "ASM (JuliusBrussee/caveman)",
3777
+ "createdAt": "2026-09-09T12:11:32.937Z",
3778
+ "tags": [
3779
+ "repo-derived",
3780
+ "inferred",
3781
+ "frontend",
3782
+ "design",
3783
+ "ui",
3784
+ "juliusbrussee",
3785
+ "caveman"
3786
+ ],
3787
+ "skills": [
3788
+ {
3789
+ "name": "cavecrew",
3790
+ "installUrl": "github:JuliusBrussee/caveman:skills/cavecrew",
3791
+ "description": "When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff review) instead of working inline or using `Explore`. Their output is compressed, so main context lasts longer.",
3792
+ "version": "0.0.0"
3793
+ },
3794
+ {
3795
+ "name": "caveman-help",
3796
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-help",
3797
+ "description": "Quick-reference card for caveman modes, skills and commands. Trigger: /caveman-help or \"caveman help\".",
3798
+ "version": "0.0.0"
3799
+ },
3800
+ {
3801
+ "name": "lean-build",
3802
+ "installUrl": "github:JuliusBrussee/caveman:skills/lean-build",
3803
+ "description": "Build feature work with high overbuilding risk. Use for new behavior, product slices, or integrations where repository reuse, strict scope, and an explicit stop condition matter.",
3804
+ "version": "0.0.0"
3805
+ },
3806
+ {
3807
+ "name": "migration",
3808
+ "installUrl": "github:JuliusBrussee/caveman:skills/migration",
3809
+ "description": "Implement reversible compatibility-safe transitions. Use for schema, data, API, protocol, configuration, or dependency migrations requiring rollback and preservation proof.",
3810
+ "version": "0.0.0"
3811
+ }
3812
+ ],
3813
+ "sourceRepo": {
3814
+ "owner": "JuliusBrussee",
3815
+ "repo": "caveman",
3816
+ "repoUrl": "https://github.com/JuliusBrussee/caveman.git"
3817
+ },
3818
+ "inferred": true
3819
+ },
3820
+ {
3821
+ "version": 1,
3822
+ "name": "juliusbrussee-caveman-research",
3823
+ "description": "Research, academic, literature-review, citation, paper, and analysis skills. Derived from JuliusBrussee/caveman.",
3824
+ "author": "ASM (JuliusBrussee/caveman)",
3825
+ "createdAt": "2026-09-09T12:11:32.937Z",
3826
+ "tags": [
3827
+ "repo-derived",
3828
+ "inferred",
3829
+ "research",
3830
+ "academic",
3831
+ "analysis",
3832
+ "juliusbrussee",
3833
+ "caveman"
3834
+ ],
3835
+ "skills": [
3836
+ {
3837
+ "name": "cavecrew",
3838
+ "installUrl": "github:JuliusBrussee/caveman:skills/cavecrew",
3839
+ "description": "When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff review) instead of working inline or using `Explore`. Their output is compressed, so main context lasts longer.",
3840
+ "version": "0.0.0"
3841
+ },
3842
+ {
3843
+ "name": "caveman-evidence-review",
3844
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-evidence-review",
3845
+ "description": "Read-only review of Caveman Cloud evidence: cost, Cave Score, workflows, traces, latency, errors, routing, savings. Use when asked what Caveman found or where LLM spend goes.",
3846
+ "version": "0.0.0"
3847
+ },
3848
+ {
3849
+ "name": "caveman-explore",
3850
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-explore",
3851
+ "description": "Read-only repository explorer for cold-start orientation, broad cross-file localization, or when a direct search failed. Skip it when the exact file or symbol is already named. Returns path:line citations only; its reads stay out of main context.",
3852
+ "version": "0.0.0"
3853
+ },
3854
+ {
3855
+ "name": "caveman-learn",
3856
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-learn",
3857
+ "description": "Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.",
3858
+ "version": "0.0.0"
3859
+ },
3860
+ {
3861
+ "name": "caveman-optimize",
3862
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-optimize",
3863
+ "description": "Turn a Caveman optimization observation into an operator-chosen candidate with a paired baseline evaluation. Use when asked to inspect or evaluate a Caveman optimization report. Needs explicit approval.",
3864
+ "version": "0.0.0"
3865
+ },
3866
+ {
3867
+ "name": "caveman-review",
3868
+ "installUrl": "github:JuliusBrussee/caveman:skills/caveman-review",
3869
+ "description": "Compressed code review - one line per finding with location, problem and fix. Use for /caveman-review, \"review this PR\", or \"review the diff\".",
3870
+ "version": "0.0.0"
3871
+ },
3872
+ {
3873
+ "name": "verify-and-stop",
3874
+ "installUrl": "github:JuliusBrussee/caveman:skills/verify-and-stop",
3875
+ "description": "Prove existing work meets acceptance conditions without expanding scope. Use for validation-only tasks, completion checks, focused gate runs, and last-mile proof.",
3876
+ "version": "0.0.0"
3877
+ }
3878
+ ],
3879
+ "sourceRepo": {
3880
+ "owner": "JuliusBrussee",
3881
+ "repo": "caveman",
3882
+ "repoUrl": "https://github.com/JuliusBrussee/caveman.git"
3883
+ },
3884
+ "inferred": true
3885
+ }
3886
+ ]
3887
+ }