agent-skill-manager 2.13.0 → 2.15.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 (78) hide show
  1. package/README.md +588 -714
  2. package/data/skill-index/Affitor_affiliate-skills.json +2375 -323
  3. package/data/skill-index/AvdLee_Core-Data-Agent-Skill.json +44 -6
  4. package/data/skill-index/AvdLee_Swift-Concurrency-Agent-Skill.json +49 -11
  5. package/data/skill-index/AvdLee_Swift-Testing-Agent-Skill.json +44 -6
  6. package/data/skill-index/AvdLee_SwiftUI-Agent-Skill.json +100 -24
  7. package/data/skill-index/AvdLee_Xcode-Build-Optimization-Agent-Skill.json +262 -34
  8. package/data/skill-index/Dimillian_Skills.json +699 -91
  9. package/data/skill-index/Egonex-AI_Understand-Anything.json +578 -81
  10. package/data/skill-index/Eronred_aso-skills.json +1729 -209
  11. package/data/skill-index/GPTomics_bioSkills.json +33358 -9410
  12. package/data/skill-index/Galaxy-Dawn_claude-scholar.json +1966 -256
  13. package/data/skill-index/Imbad0202_academic-research-skills.json +256 -98
  14. package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +14175 -5202
  15. package/data/skill-index/Leonxlnx_taste-skill.json +570 -76
  16. package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +44 -6
  17. package/data/skill-index/MiniMax-AI_skills.json +1007 -133
  18. package/data/skill-index/Paramchoudhary_ResumeSkills.json +1290 -114
  19. package/data/skill-index/ParthJadhav_app-store-screenshots.json +185 -0
  20. package/data/skill-index/addyosmani_agent-skills.json +1146 -222
  21. package/data/skill-index/affaan-m_everything-claude-code.json +18337 -5085
  22. package/data/skill-index/alirezarezvani_claude-skills.json +21303 -2755
  23. package/data/skill-index/anthropics_skills.json +1249 -161
  24. package/data/skill-index/antonbabenko_terraform-skill.json +44 -6
  25. package/data/skill-index/badlogic_pi-skills.json +349 -45
  26. package/data/skill-index/briiirussell_cybersecurity-skills.json +1474 -183
  27. package/data/skill-index/bytedance_deer-flow.json +1574 -226
  28. package/data/skill-index/cloudai-x_threejs-skills.json +2007 -0
  29. package/data/skill-index/coreyhaines31_marketingskills.json +3227 -661
  30. package/data/skill-index/davidondrej_skills.json +10480 -0
  31. package/data/skill-index/emilkowalski_skills.json +2302 -0
  32. package/data/skill-index/entireio_skills.json +713 -60
  33. package/data/skill-index/garrytan_gstack.json +3113 -509
  34. package/data/skill-index/github_awesome-copilot.json +31610 -8236
  35. package/data/skill-index/google_skills.json +17724 -921
  36. package/data/skill-index/heygen-com_hyperframes.json +2999 -449
  37. package/data/skill-index/himself65_finance-skills.json +1614 -254
  38. package/data/skill-index/ivan-magda_uikit-expert-skill.json +49 -11
  39. package/data/skill-index/kemiljk_fluid-design.json +44 -6
  40. package/data/skill-index/kepano_obsidian-skills.json +217 -27
  41. package/data/skill-index/luongnv89_asm.json +1992 -13
  42. package/data/skill-index/luongnv89_idd.json +1452 -0
  43. package/data/skill-index/luongnv89_skills.json +2832 -852
  44. package/data/skill-index/mattpocock_skills.json +2943 -815
  45. package/data/skill-index/mvanhorn_last30days-skill.json +58 -14
  46. package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +407 -147
  47. package/data/skill-index/obra_superpowers.json +653 -127
  48. package/data/skill-index/oliver-zehentleitner_keep-the-why.json +185 -0
  49. package/data/skill-index/romainsimon_paperasse.json +273 -45
  50. package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +1542 -246
  51. package/data/skill-index/santifer_career-ops.json +61 -23
  52. package/data/skill-index/sickn33_antigravity-awesome-skills.json +158205 -31989
  53. package/data/skill-index/slavingia_skills.json +436 -56
  54. package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +44 -6
  55. package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +44 -6
  56. package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +44 -6
  57. package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +44 -6
  58. package/data/skill-index/warpdotdev_oz-skills.json +651 -81
  59. package/data/skill-index/zarazhangrui_follow-builders.json +44 -6
  60. package/data/skill-index-resources.json +57 -3
  61. package/dist/agent-skill-manager.js +803 -613
  62. package/dist/chunk-BQ4RW237.js +20 -0
  63. package/dist/chunk-LH2C3PE7.js +3 -0
  64. package/dist/chunk-LS24FFOX.js +3 -0
  65. package/dist/chunk-RSVWCEZR.js +2 -0
  66. package/dist/config-AZYQEQOQ.js +2 -0
  67. package/dist/devtools-2L45W5A2.js +11 -0
  68. package/dist/lock-NN2MADX7.js +2 -0
  69. package/dist/src-BD3KFE5H.js +119 -0
  70. package/package.json +48 -22
  71. package/dist/chunk-7BMOBFGJ.js +0 -2
  72. package/dist/chunk-APSM2WG3.js +0 -3
  73. package/dist/chunk-GHPE6SB3.js +0 -3
  74. package/dist/chunk-HY3VQ3SV.js +0 -19
  75. package/dist/config-FRM3YOMA.js +0 -2
  76. package/dist/devtools-6JCLZ364.js +0 -8
  77. package/dist/lock-6S53S4SC.js +0 -2
  78. package/dist/src-3UQIRSQN.js +0 -108
@@ -2,24 +2,1280 @@
2
2
  "repoUrl": "https://github.com/luongnv89/asm.git",
3
3
  "owner": "luongnv89",
4
4
  "repo": "asm",
5
- "updatedAt": "2026-04-21T20:48:38.441Z",
6
- "skillCount": 1,
5
+ "updatedAt": "2026-08-21T09:18:55.699Z",
6
+ "skillCount": 10,
7
7
  "skills": [
8
+ {
9
+ "name": "find-me-skills",
10
+ "description": "Find Agent Skills for a goal the user cannot name yet, then export an installable bundle. Use when they ask which skills fit a project. Don't use for installing named skills, authoring skills, or catalog maintenance.",
11
+ "version": "1.2.0",
12
+ "license": "MIT",
13
+ "creator": "",
14
+ "compatibility": "Claude Code with the `asm` CLI on PATH",
15
+ "allowedTools": [],
16
+ "modelInvocable": true,
17
+ "userInvocable": true,
18
+ "installUrl": "github:luongnv89/asm:skills/find-me-skills",
19
+ "relPath": "skills/find-me-skills",
20
+ "verified": true,
21
+ "tokenCount": 2909,
22
+ "evalSummary": {
23
+ "overallScore": 95,
24
+ "grade": "A",
25
+ "categories": [
26
+ {
27
+ "id": "structure",
28
+ "name": "Structure & completeness",
29
+ "score": 10,
30
+ "max": 10
31
+ },
32
+ {
33
+ "id": "description",
34
+ "name": "Description quality",
35
+ "score": 10,
36
+ "max": 10
37
+ },
38
+ {
39
+ "id": "prompt-engineering",
40
+ "name": "Prompt engineering",
41
+ "score": 10,
42
+ "max": 10
43
+ },
44
+ {
45
+ "id": "context-efficiency",
46
+ "name": "Context efficiency",
47
+ "score": 10,
48
+ "max": 10
49
+ },
50
+ {
51
+ "id": "safety",
52
+ "name": "Safety & guardrails",
53
+ "score": 10,
54
+ "max": 10
55
+ },
56
+ {
57
+ "id": "testability",
58
+ "name": "Testability",
59
+ "score": 10,
60
+ "max": 10
61
+ },
62
+ {
63
+ "id": "license",
64
+ "name": "License verification",
65
+ "score": 5,
66
+ "max": 10
67
+ },
68
+ {
69
+ "id": "naming",
70
+ "name": "Naming & conventions",
71
+ "score": 10,
72
+ "max": 10
73
+ },
74
+ {
75
+ "id": "pii",
76
+ "name": "PII detection",
77
+ "score": 10,
78
+ "max": 10
79
+ },
80
+ {
81
+ "id": "script-lint",
82
+ "name": "Script linting",
83
+ "score": 10,
84
+ "max": 10
85
+ }
86
+ ],
87
+ "evaluatedAt": "2026-08-21T09:18:54.710Z",
88
+ "evaluatedVersion": "1.2.0"
89
+ },
90
+ "evalSummaries": {
91
+ "quality": {
92
+ "providerId": "quality",
93
+ "providerVersion": "1.0.0",
94
+ "schemaVersion": 1,
95
+ "passed": true,
96
+ "overallScore": 95,
97
+ "grade": "A",
98
+ "categories": [
99
+ {
100
+ "id": "structure",
101
+ "name": "Structure & completeness",
102
+ "score": 10,
103
+ "max": 10
104
+ },
105
+ {
106
+ "id": "description",
107
+ "name": "Description quality",
108
+ "score": 10,
109
+ "max": 10
110
+ },
111
+ {
112
+ "id": "prompt-engineering",
113
+ "name": "Prompt engineering",
114
+ "score": 10,
115
+ "max": 10
116
+ },
117
+ {
118
+ "id": "context-efficiency",
119
+ "name": "Context efficiency",
120
+ "score": 10,
121
+ "max": 10
122
+ },
123
+ {
124
+ "id": "safety",
125
+ "name": "Safety & guardrails",
126
+ "score": 10,
127
+ "max": 10
128
+ },
129
+ {
130
+ "id": "testability",
131
+ "name": "Testability",
132
+ "score": 10,
133
+ "max": 10
134
+ },
135
+ {
136
+ "id": "license",
137
+ "name": "License verification",
138
+ "score": 5,
139
+ "max": 10
140
+ },
141
+ {
142
+ "id": "naming",
143
+ "name": "Naming & conventions",
144
+ "score": 10,
145
+ "max": 10
146
+ },
147
+ {
148
+ "id": "pii",
149
+ "name": "PII detection",
150
+ "score": 10,
151
+ "max": 10
152
+ },
153
+ {
154
+ "id": "script-lint",
155
+ "name": "Script linting",
156
+ "score": 10,
157
+ "max": 10
158
+ }
159
+ ],
160
+ "evaluatedAt": "2026-08-21T09:18:54.711Z",
161
+ "evaluatedVersion": "1.2.0"
162
+ },
163
+ "skill-best-practice": {
164
+ "providerId": "skill-best-practice",
165
+ "providerVersion": "1.1.0",
166
+ "schemaVersion": 1,
167
+ "passed": true,
168
+ "overallScore": 100,
169
+ "grade": "A",
170
+ "categories": [
171
+ {
172
+ "id": "validation",
173
+ "name": "Deterministic validation",
174
+ "score": 15,
175
+ "max": 15
176
+ }
177
+ ],
178
+ "evaluatedAt": "2026-08-21T09:18:54.711Z",
179
+ "evaluatedVersion": "1.2.0"
180
+ }
181
+ }
182
+ },
183
+ {
184
+ "name": "hello-world",
185
+ "description": "A minimal test skill that greets the user and demonstrates the ASM publish workflow.",
186
+ "version": "1.0.0",
187
+ "license": "MIT",
188
+ "creator": "",
189
+ "compatibility": "Claude Code",
190
+ "allowedTools": [],
191
+ "modelInvocable": true,
192
+ "userInvocable": true,
193
+ "installUrl": "github:luongnv89/asm:skills/hello-world",
194
+ "relPath": "skills/hello-world",
195
+ "verified": true,
196
+ "tokenCount": 120,
197
+ "evalSummary": {
198
+ "overallScore": 53,
199
+ "grade": "D",
200
+ "categories": [
201
+ {
202
+ "id": "structure",
203
+ "name": "Structure & completeness",
204
+ "score": 10,
205
+ "max": 10
206
+ },
207
+ {
208
+ "id": "description",
209
+ "name": "Description quality",
210
+ "score": 4,
211
+ "max": 10
212
+ },
213
+ {
214
+ "id": "prompt-engineering",
215
+ "name": "Prompt engineering",
216
+ "score": 0,
217
+ "max": 10
218
+ },
219
+ {
220
+ "id": "context-efficiency",
221
+ "name": "Context efficiency",
222
+ "score": 2,
223
+ "max": 10
224
+ },
225
+ {
226
+ "id": "safety",
227
+ "name": "Safety & guardrails",
228
+ "score": 2,
229
+ "max": 10
230
+ },
231
+ {
232
+ "id": "testability",
233
+ "name": "Testability",
234
+ "score": 0,
235
+ "max": 10
236
+ },
237
+ {
238
+ "id": "license",
239
+ "name": "License verification",
240
+ "score": 5,
241
+ "max": 10
242
+ },
243
+ {
244
+ "id": "naming",
245
+ "name": "Naming & conventions",
246
+ "score": 10,
247
+ "max": 10
248
+ },
249
+ {
250
+ "id": "pii",
251
+ "name": "PII detection",
252
+ "score": 10,
253
+ "max": 10
254
+ },
255
+ {
256
+ "id": "script-lint",
257
+ "name": "Script linting",
258
+ "score": 10,
259
+ "max": 10
260
+ }
261
+ ],
262
+ "evaluatedAt": "2026-08-21T09:18:54.699Z",
263
+ "evaluatedVersion": "1.0.0"
264
+ },
265
+ "evalSummaries": {
266
+ "quality": {
267
+ "providerId": "quality",
268
+ "providerVersion": "1.0.0",
269
+ "schemaVersion": 1,
270
+ "passed": true,
271
+ "overallScore": 53,
272
+ "grade": "D",
273
+ "categories": [
274
+ {
275
+ "id": "structure",
276
+ "name": "Structure & completeness",
277
+ "score": 10,
278
+ "max": 10
279
+ },
280
+ {
281
+ "id": "description",
282
+ "name": "Description quality",
283
+ "score": 4,
284
+ "max": 10
285
+ },
286
+ {
287
+ "id": "prompt-engineering",
288
+ "name": "Prompt engineering",
289
+ "score": 0,
290
+ "max": 10
291
+ },
292
+ {
293
+ "id": "context-efficiency",
294
+ "name": "Context efficiency",
295
+ "score": 2,
296
+ "max": 10
297
+ },
298
+ {
299
+ "id": "safety",
300
+ "name": "Safety & guardrails",
301
+ "score": 2,
302
+ "max": 10
303
+ },
304
+ {
305
+ "id": "testability",
306
+ "name": "Testability",
307
+ "score": 0,
308
+ "max": 10
309
+ },
310
+ {
311
+ "id": "license",
312
+ "name": "License verification",
313
+ "score": 5,
314
+ "max": 10
315
+ },
316
+ {
317
+ "id": "naming",
318
+ "name": "Naming & conventions",
319
+ "score": 10,
320
+ "max": 10
321
+ },
322
+ {
323
+ "id": "pii",
324
+ "name": "PII detection",
325
+ "score": 10,
326
+ "max": 10
327
+ },
328
+ {
329
+ "id": "script-lint",
330
+ "name": "Script linting",
331
+ "score": 10,
332
+ "max": 10
333
+ }
334
+ ],
335
+ "evaluatedAt": "2026-08-21T09:18:54.701Z",
336
+ "evaluatedVersion": "1.0.0"
337
+ },
338
+ "skill-best-practice": {
339
+ "providerId": "skill-best-practice",
340
+ "providerVersion": "1.1.0",
341
+ "schemaVersion": 1,
342
+ "passed": false,
343
+ "overallScore": 71,
344
+ "grade": "C",
345
+ "categories": [
346
+ {
347
+ "id": "validation",
348
+ "name": "Deterministic validation",
349
+ "score": 10,
350
+ "max": 14
351
+ }
352
+ ],
353
+ "evaluatedAt": "2026-08-21T09:18:54.701Z",
354
+ "evaluatedVersion": "1.0.0"
355
+ }
356
+ }
357
+ },
358
+ {
359
+ "name": "missing-frontmatter",
360
+ "description": "",
361
+ "version": "0.0.0",
362
+ "license": "",
363
+ "creator": "",
364
+ "compatibility": "",
365
+ "allowedTools": [],
366
+ "modelInvocable": true,
367
+ "userInvocable": true,
368
+ "installUrl": "github:luongnv89/asm:tests/fixtures/skills/missing-frontmatter",
369
+ "relPath": "tests/fixtures/skills/missing-frontmatter",
370
+ "verified": false,
371
+ "tokenCount": 66,
372
+ "evalSummary": {
373
+ "overallScore": 35,
374
+ "grade": "F",
375
+ "categories": [
376
+ {
377
+ "id": "structure",
378
+ "name": "Structure & completeness",
379
+ "score": 2,
380
+ "max": 10
381
+ },
382
+ {
383
+ "id": "description",
384
+ "name": "Description quality",
385
+ "score": 0,
386
+ "max": 10
387
+ },
388
+ {
389
+ "id": "prompt-engineering",
390
+ "name": "Prompt engineering",
391
+ "score": 0,
392
+ "max": 10
393
+ },
394
+ {
395
+ "id": "context-efficiency",
396
+ "name": "Context efficiency",
397
+ "score": 2,
398
+ "max": 10
399
+ },
400
+ {
401
+ "id": "safety",
402
+ "name": "Safety & guardrails",
403
+ "score": 3,
404
+ "max": 10
405
+ },
406
+ {
407
+ "id": "testability",
408
+ "name": "Testability",
409
+ "score": 3,
410
+ "max": 10
411
+ },
412
+ {
413
+ "id": "license",
414
+ "name": "License verification",
415
+ "score": 0,
416
+ "max": 10
417
+ },
418
+ {
419
+ "id": "naming",
420
+ "name": "Naming & conventions",
421
+ "score": 5,
422
+ "max": 10
423
+ },
424
+ {
425
+ "id": "pii",
426
+ "name": "PII detection",
427
+ "score": 10,
428
+ "max": 10
429
+ },
430
+ {
431
+ "id": "script-lint",
432
+ "name": "Script linting",
433
+ "score": 10,
434
+ "max": 10
435
+ }
436
+ ],
437
+ "evaluatedAt": "2026-08-21T09:18:54.698Z",
438
+ "evaluatedVersion": "0.0.0"
439
+ },
440
+ "evalSummaries": {
441
+ "quality": {
442
+ "providerId": "quality",
443
+ "providerVersion": "1.0.0",
444
+ "schemaVersion": 1,
445
+ "passed": false,
446
+ "overallScore": 35,
447
+ "grade": "F",
448
+ "categories": [
449
+ {
450
+ "id": "structure",
451
+ "name": "Structure & completeness",
452
+ "score": 2,
453
+ "max": 10
454
+ },
455
+ {
456
+ "id": "description",
457
+ "name": "Description quality",
458
+ "score": 0,
459
+ "max": 10
460
+ },
461
+ {
462
+ "id": "prompt-engineering",
463
+ "name": "Prompt engineering",
464
+ "score": 0,
465
+ "max": 10
466
+ },
467
+ {
468
+ "id": "context-efficiency",
469
+ "name": "Context efficiency",
470
+ "score": 2,
471
+ "max": 10
472
+ },
473
+ {
474
+ "id": "safety",
475
+ "name": "Safety & guardrails",
476
+ "score": 3,
477
+ "max": 10
478
+ },
479
+ {
480
+ "id": "testability",
481
+ "name": "Testability",
482
+ "score": 3,
483
+ "max": 10
484
+ },
485
+ {
486
+ "id": "license",
487
+ "name": "License verification",
488
+ "score": 0,
489
+ "max": 10
490
+ },
491
+ {
492
+ "id": "naming",
493
+ "name": "Naming & conventions",
494
+ "score": 5,
495
+ "max": 10
496
+ },
497
+ {
498
+ "id": "pii",
499
+ "name": "PII detection",
500
+ "score": 10,
501
+ "max": 10
502
+ },
503
+ {
504
+ "id": "script-lint",
505
+ "name": "Script linting",
506
+ "score": 10,
507
+ "max": 10
508
+ }
509
+ ],
510
+ "evaluatedAt": "2026-08-21T09:18:54.700Z",
511
+ "evaluatedVersion": "0.0.0"
512
+ },
513
+ "skill-best-practice": {
514
+ "providerId": "skill-best-practice",
515
+ "providerVersion": "1.1.0",
516
+ "schemaVersion": 1,
517
+ "passed": false,
518
+ "overallScore": 0,
519
+ "grade": "F",
520
+ "categories": [
521
+ {
522
+ "id": "validation",
523
+ "name": "Deterministic validation",
524
+ "score": 0,
525
+ "max": 1
526
+ }
527
+ ],
528
+ "evaluatedAt": "2026-08-21T09:18:54.701Z",
529
+ "evaluatedVersion": "0.0.0"
530
+ }
531
+ }
532
+ },
533
+ {
534
+ "name": "refresh-index",
535
+ "description": "Re-ingest every already-enabled repo in data/skill-index-resources.json: sync the working tree, run preindex, rebuild the catalog for verification, summarize updated/unchanged/failed/skipped, then gate commit + PR behind explicit confirmation. Use when asked to refresh the index, re-ingest indexed repos, or batch-maintain already-indexed skill sources. Don't use for adding new repos (use skill-index-updater), improving a single skill (use skill-auto-improver), or installing/updating skills on the local machine (use asm install or asm update).",
536
+ "version": "1.0.0",
537
+ "license": "MIT",
538
+ "creator": "",
539
+ "compatibility": "Claude Code",
540
+ "allowedTools": [
541
+ "Bash",
542
+ "Read",
543
+ "Write",
544
+ "Edit",
545
+ "Grep",
546
+ "Glob"
547
+ ],
548
+ "modelInvocable": true,
549
+ "userInvocable": true,
550
+ "installUrl": "github:luongnv89/asm:skills/refresh-index",
551
+ "relPath": "skills/refresh-index",
552
+ "verified": true,
553
+ "tokenCount": 5650,
554
+ "evalSummary": {
555
+ "overallScore": 79,
556
+ "grade": "C",
557
+ "categories": [
558
+ {
559
+ "id": "structure",
560
+ "name": "Structure & completeness",
561
+ "score": 10,
562
+ "max": 10
563
+ },
564
+ {
565
+ "id": "description",
566
+ "name": "Description quality",
567
+ "score": 3,
568
+ "max": 10
569
+ },
570
+ {
571
+ "id": "prompt-engineering",
572
+ "name": "Prompt engineering",
573
+ "score": 7,
574
+ "max": 10
575
+ },
576
+ {
577
+ "id": "context-efficiency",
578
+ "name": "Context efficiency",
579
+ "score": 7,
580
+ "max": 10
581
+ },
582
+ {
583
+ "id": "safety",
584
+ "name": "Safety & guardrails",
585
+ "score": 10,
586
+ "max": 10
587
+ },
588
+ {
589
+ "id": "testability",
590
+ "name": "Testability",
591
+ "score": 7,
592
+ "max": 10
593
+ },
594
+ {
595
+ "id": "license",
596
+ "name": "License verification",
597
+ "score": 5,
598
+ "max": 10
599
+ },
600
+ {
601
+ "id": "naming",
602
+ "name": "Naming & conventions",
603
+ "score": 10,
604
+ "max": 10
605
+ },
606
+ {
607
+ "id": "pii",
608
+ "name": "PII detection",
609
+ "score": 10,
610
+ "max": 10
611
+ },
612
+ {
613
+ "id": "script-lint",
614
+ "name": "Script linting",
615
+ "score": 10,
616
+ "max": 10
617
+ }
618
+ ],
619
+ "evaluatedAt": "2026-08-21T09:18:54.699Z",
620
+ "evaluatedVersion": "1.0.0"
621
+ },
622
+ "evalSummaries": {
623
+ "quality": {
624
+ "providerId": "quality",
625
+ "providerVersion": "1.0.0",
626
+ "schemaVersion": 1,
627
+ "passed": true,
628
+ "overallScore": 79,
629
+ "grade": "C",
630
+ "categories": [
631
+ {
632
+ "id": "structure",
633
+ "name": "Structure & completeness",
634
+ "score": 10,
635
+ "max": 10
636
+ },
637
+ {
638
+ "id": "description",
639
+ "name": "Description quality",
640
+ "score": 3,
641
+ "max": 10
642
+ },
643
+ {
644
+ "id": "prompt-engineering",
645
+ "name": "Prompt engineering",
646
+ "score": 7,
647
+ "max": 10
648
+ },
649
+ {
650
+ "id": "context-efficiency",
651
+ "name": "Context efficiency",
652
+ "score": 7,
653
+ "max": 10
654
+ },
655
+ {
656
+ "id": "safety",
657
+ "name": "Safety & guardrails",
658
+ "score": 10,
659
+ "max": 10
660
+ },
661
+ {
662
+ "id": "testability",
663
+ "name": "Testability",
664
+ "score": 7,
665
+ "max": 10
666
+ },
667
+ {
668
+ "id": "license",
669
+ "name": "License verification",
670
+ "score": 5,
671
+ "max": 10
672
+ },
673
+ {
674
+ "id": "naming",
675
+ "name": "Naming & conventions",
676
+ "score": 10,
677
+ "max": 10
678
+ },
679
+ {
680
+ "id": "pii",
681
+ "name": "PII detection",
682
+ "score": 10,
683
+ "max": 10
684
+ },
685
+ {
686
+ "id": "script-lint",
687
+ "name": "Script linting",
688
+ "score": 10,
689
+ "max": 10
690
+ }
691
+ ],
692
+ "evaluatedAt": "2026-08-21T09:18:54.701Z",
693
+ "evaluatedVersion": "1.0.0"
694
+ },
695
+ "skill-best-practice": {
696
+ "providerId": "skill-best-practice",
697
+ "providerVersion": "1.1.0",
698
+ "schemaVersion": 1,
699
+ "passed": true,
700
+ "overallScore": 93,
701
+ "grade": "A",
702
+ "categories": [
703
+ {
704
+ "id": "validation",
705
+ "name": "Deterministic validation",
706
+ "score": 14,
707
+ "max": 15
708
+ }
709
+ ],
710
+ "evaluatedAt": "2026-08-21T09:18:54.701Z",
711
+ "evaluatedVersion": "1.0.0"
712
+ }
713
+ }
714
+ },
8
715
  {
9
716
  "name": "skill-auto-improver",
10
- "description": "Improve a SKILL.md skill by running `asm eval`, fixing weakest categories, and looping until it clears the 85/8 floor or stops with a blocker. Use when leveling up a skill, preparing for publish, or rescuing a failing eval.",
11
- "version": "0.1.0",
717
+ "description": "Improve an external, legacy, or drifted SKILL.md to the skill-creator standard hard validation gates plus an advisory predictability audit. Don't use for authoring from scratch (skill-creator output is already standard), bulk eval, or prose edits.",
718
+ "version": "1.3.0",
719
+ "license": "MIT",
720
+ "creator": "",
721
+ "compatibility": "Claude Code; requires `asm` on PATH and Python 3 for skill-creator's quick_validate.py",
722
+ "allowedTools": [
723
+ "Bash",
724
+ "Read",
725
+ "Write",
726
+ "Edit",
727
+ "Grep",
728
+ "Glob"
729
+ ],
730
+ "modelInvocable": true,
731
+ "userInvocable": true,
732
+ "installUrl": "github:luongnv89/asm:skills/skill-auto-improver",
733
+ "relPath": "skills/skill-auto-improver",
734
+ "verified": true,
735
+ "tokenCount": 5902,
736
+ "evalSummary": {
737
+ "overallScore": 92,
738
+ "grade": "A",
739
+ "categories": [
740
+ {
741
+ "id": "structure",
742
+ "name": "Structure & completeness",
743
+ "score": 10,
744
+ "max": 10
745
+ },
746
+ {
747
+ "id": "description",
748
+ "name": "Description quality",
749
+ "score": 10,
750
+ "max": 10
751
+ },
752
+ {
753
+ "id": "prompt-engineering",
754
+ "name": "Prompt engineering",
755
+ "score": 9,
756
+ "max": 10
757
+ },
758
+ {
759
+ "id": "context-efficiency",
760
+ "name": "Context efficiency",
761
+ "score": 8,
762
+ "max": 10
763
+ },
764
+ {
765
+ "id": "safety",
766
+ "name": "Safety & guardrails",
767
+ "score": 10,
768
+ "max": 10
769
+ },
770
+ {
771
+ "id": "testability",
772
+ "name": "Testability",
773
+ "score": 10,
774
+ "max": 10
775
+ },
776
+ {
777
+ "id": "license",
778
+ "name": "License verification",
779
+ "score": 5,
780
+ "max": 10
781
+ },
782
+ {
783
+ "id": "naming",
784
+ "name": "Naming & conventions",
785
+ "score": 10,
786
+ "max": 10
787
+ },
788
+ {
789
+ "id": "pii",
790
+ "name": "PII detection",
791
+ "score": 10,
792
+ "max": 10
793
+ },
794
+ {
795
+ "id": "script-lint",
796
+ "name": "Script linting",
797
+ "score": 10,
798
+ "max": 10
799
+ }
800
+ ],
801
+ "evaluatedAt": "2026-08-21T09:18:54.722Z",
802
+ "evaluatedVersion": "1.3.0"
803
+ },
804
+ "evalSummaries": {
805
+ "quality": {
806
+ "providerId": "quality",
807
+ "providerVersion": "1.0.0",
808
+ "schemaVersion": 1,
809
+ "passed": true,
810
+ "overallScore": 92,
811
+ "grade": "A",
812
+ "categories": [
813
+ {
814
+ "id": "structure",
815
+ "name": "Structure & completeness",
816
+ "score": 10,
817
+ "max": 10
818
+ },
819
+ {
820
+ "id": "description",
821
+ "name": "Description quality",
822
+ "score": 10,
823
+ "max": 10
824
+ },
825
+ {
826
+ "id": "prompt-engineering",
827
+ "name": "Prompt engineering",
828
+ "score": 9,
829
+ "max": 10
830
+ },
831
+ {
832
+ "id": "context-efficiency",
833
+ "name": "Context efficiency",
834
+ "score": 8,
835
+ "max": 10
836
+ },
837
+ {
838
+ "id": "safety",
839
+ "name": "Safety & guardrails",
840
+ "score": 10,
841
+ "max": 10
842
+ },
843
+ {
844
+ "id": "testability",
845
+ "name": "Testability",
846
+ "score": 10,
847
+ "max": 10
848
+ },
849
+ {
850
+ "id": "license",
851
+ "name": "License verification",
852
+ "score": 5,
853
+ "max": 10
854
+ },
855
+ {
856
+ "id": "naming",
857
+ "name": "Naming & conventions",
858
+ "score": 10,
859
+ "max": 10
860
+ },
861
+ {
862
+ "id": "pii",
863
+ "name": "PII detection",
864
+ "score": 10,
865
+ "max": 10
866
+ },
867
+ {
868
+ "id": "script-lint",
869
+ "name": "Script linting",
870
+ "score": 10,
871
+ "max": 10
872
+ }
873
+ ],
874
+ "evaluatedAt": "2026-08-21T09:18:54.722Z",
875
+ "evaluatedVersion": "1.3.0"
876
+ },
877
+ "skill-best-practice": {
878
+ "providerId": "skill-best-practice",
879
+ "providerVersion": "1.1.0",
880
+ "schemaVersion": 1,
881
+ "passed": true,
882
+ "overallScore": 100,
883
+ "grade": "A",
884
+ "categories": [
885
+ {
886
+ "id": "validation",
887
+ "name": "Deterministic validation",
888
+ "score": 15,
889
+ "max": 15
890
+ }
891
+ ],
892
+ "evaluatedAt": "2026-08-21T09:18:54.722Z",
893
+ "evaluatedVersion": "1.3.0"
894
+ }
895
+ }
896
+ },
897
+ {
898
+ "name": "skill-creator",
899
+ "description": "Create, improve, evaluate, benchmark skills. Use when authoring a new skill, updating an existing one, running evals, or optimizing a skill's description for triggering. Don't use for invoking skills, writing prose, or scaffolding Python projects.",
900
+ "version": "1.13.2",
901
+ "license": "MIT",
902
+ "creator": "",
903
+ "compatibility": "",
904
+ "allowedTools": [],
905
+ "modelInvocable": true,
906
+ "userInvocable": true,
907
+ "installUrl": "github:luongnv89/asm:skills/skill-creator",
908
+ "relPath": "skills/skill-creator",
909
+ "verified": true,
910
+ "tokenCount": 5966,
911
+ "evalSummary": {
912
+ "overallScore": 96,
913
+ "grade": "A",
914
+ "categories": [
915
+ {
916
+ "id": "structure",
917
+ "name": "Structure & completeness",
918
+ "score": 10,
919
+ "max": 10
920
+ },
921
+ {
922
+ "id": "description",
923
+ "name": "Description quality",
924
+ "score": 10,
925
+ "max": 10
926
+ },
927
+ {
928
+ "id": "prompt-engineering",
929
+ "name": "Prompt engineering",
930
+ "score": 10,
931
+ "max": 10
932
+ },
933
+ {
934
+ "id": "context-efficiency",
935
+ "name": "Context efficiency",
936
+ "score": 8,
937
+ "max": 10
938
+ },
939
+ {
940
+ "id": "safety",
941
+ "name": "Safety & guardrails",
942
+ "score": 10,
943
+ "max": 10
944
+ },
945
+ {
946
+ "id": "testability",
947
+ "name": "Testability",
948
+ "score": 10,
949
+ "max": 10
950
+ },
951
+ {
952
+ "id": "license",
953
+ "name": "License verification",
954
+ "score": 10,
955
+ "max": 10
956
+ },
957
+ {
958
+ "id": "naming",
959
+ "name": "Naming & conventions",
960
+ "score": 10,
961
+ "max": 10
962
+ },
963
+ {
964
+ "id": "pii",
965
+ "name": "PII detection",
966
+ "score": 8,
967
+ "max": 10
968
+ },
969
+ {
970
+ "id": "script-lint",
971
+ "name": "Script linting",
972
+ "score": 10,
973
+ "max": 10
974
+ }
975
+ ],
976
+ "evaluatedAt": "2026-08-21T09:18:55.202Z",
977
+ "evaluatedVersion": "1.13.2"
978
+ },
979
+ "evalSummaries": {
980
+ "quality": {
981
+ "providerId": "quality",
982
+ "providerVersion": "1.0.0",
983
+ "schemaVersion": 1,
984
+ "passed": true,
985
+ "overallScore": 96,
986
+ "grade": "A",
987
+ "categories": [
988
+ {
989
+ "id": "structure",
990
+ "name": "Structure & completeness",
991
+ "score": 10,
992
+ "max": 10
993
+ },
994
+ {
995
+ "id": "description",
996
+ "name": "Description quality",
997
+ "score": 10,
998
+ "max": 10
999
+ },
1000
+ {
1001
+ "id": "prompt-engineering",
1002
+ "name": "Prompt engineering",
1003
+ "score": 10,
1004
+ "max": 10
1005
+ },
1006
+ {
1007
+ "id": "context-efficiency",
1008
+ "name": "Context efficiency",
1009
+ "score": 8,
1010
+ "max": 10
1011
+ },
1012
+ {
1013
+ "id": "safety",
1014
+ "name": "Safety & guardrails",
1015
+ "score": 10,
1016
+ "max": 10
1017
+ },
1018
+ {
1019
+ "id": "testability",
1020
+ "name": "Testability",
1021
+ "score": 10,
1022
+ "max": 10
1023
+ },
1024
+ {
1025
+ "id": "license",
1026
+ "name": "License verification",
1027
+ "score": 10,
1028
+ "max": 10
1029
+ },
1030
+ {
1031
+ "id": "naming",
1032
+ "name": "Naming & conventions",
1033
+ "score": 10,
1034
+ "max": 10
1035
+ },
1036
+ {
1037
+ "id": "pii",
1038
+ "name": "PII detection",
1039
+ "score": 8,
1040
+ "max": 10
1041
+ },
1042
+ {
1043
+ "id": "script-lint",
1044
+ "name": "Script linting",
1045
+ "score": 10,
1046
+ "max": 10
1047
+ }
1048
+ ],
1049
+ "evaluatedAt": "2026-08-21T09:18:55.202Z",
1050
+ "evaluatedVersion": "1.13.2"
1051
+ },
1052
+ "skill-best-practice": {
1053
+ "providerId": "skill-best-practice",
1054
+ "providerVersion": "1.1.0",
1055
+ "schemaVersion": 1,
1056
+ "passed": true,
1057
+ "overallScore": 100,
1058
+ "grade": "A",
1059
+ "categories": [
1060
+ {
1061
+ "id": "validation",
1062
+ "name": "Deterministic validation",
1063
+ "score": 14,
1064
+ "max": 14
1065
+ }
1066
+ ],
1067
+ "evaluatedAt": "2026-08-21T09:18:55.202Z",
1068
+ "evaluatedVersion": "1.13.2"
1069
+ }
1070
+ }
1071
+ },
1072
+ {
1073
+ "name": "skill-index-updater",
1074
+ "description": "Add GitHub skill repos to the ASM index: clone, audit, eval, regenerate index, rebuild catalog, open PR. Use when given GitHub URLs to onboard. Don't use for authoring (skill-creator), improving (skill-auto-improver), or install (asm install).",
1075
+ "version": "1.3.0",
12
1076
  "license": "MIT",
13
- "creator": "luongnv89",
1077
+ "creator": "",
14
1078
  "compatibility": "Claude Code",
15
- "allowedTools": ["Bash", "Read", "Write", "Edit", "Grep", "Glob"],
16
- "installUrl": "github:luongnv89/asm:skills/skill-auto-improver",
17
- "relPath": "skills/skill-auto-improver",
1079
+ "allowedTools": [
1080
+ "Bash",
1081
+ "Read",
1082
+ "Write",
1083
+ "Edit",
1084
+ "Grep",
1085
+ "Glob",
1086
+ "WebFetch",
1087
+ "Agent"
1088
+ ],
1089
+ "modelInvocable": true,
1090
+ "userInvocable": true,
1091
+ "installUrl": "github:luongnv89/asm:skills/skill-index-updater",
1092
+ "relPath": "skills/skill-index-updater",
1093
+ "verified": false,
1094
+ "tokenCount": 4937,
1095
+ "evalSummary": {
1096
+ "overallScore": 88,
1097
+ "grade": "B",
1098
+ "categories": [
1099
+ {
1100
+ "id": "structure",
1101
+ "name": "Structure & completeness",
1102
+ "score": 10,
1103
+ "max": 10
1104
+ },
1105
+ {
1106
+ "id": "description",
1107
+ "name": "Description quality",
1108
+ "score": 10,
1109
+ "max": 10
1110
+ },
1111
+ {
1112
+ "id": "prompt-engineering",
1113
+ "name": "Prompt engineering",
1114
+ "score": 8,
1115
+ "max": 10
1116
+ },
1117
+ {
1118
+ "id": "context-efficiency",
1119
+ "name": "Context efficiency",
1120
+ "score": 8,
1121
+ "max": 10
1122
+ },
1123
+ {
1124
+ "id": "safety",
1125
+ "name": "Safety & guardrails",
1126
+ "score": 10,
1127
+ "max": 10
1128
+ },
1129
+ {
1130
+ "id": "testability",
1131
+ "name": "Testability",
1132
+ "score": 7,
1133
+ "max": 10
1134
+ },
1135
+ {
1136
+ "id": "license",
1137
+ "name": "License verification",
1138
+ "score": 5,
1139
+ "max": 10
1140
+ },
1141
+ {
1142
+ "id": "naming",
1143
+ "name": "Naming & conventions",
1144
+ "score": 10,
1145
+ "max": 10
1146
+ },
1147
+ {
1148
+ "id": "pii",
1149
+ "name": "PII detection",
1150
+ "score": 10,
1151
+ "max": 10
1152
+ },
1153
+ {
1154
+ "id": "script-lint",
1155
+ "name": "Script linting",
1156
+ "score": 10,
1157
+ "max": 10
1158
+ }
1159
+ ],
1160
+ "evaluatedAt": "2026-08-21T09:18:54.709Z",
1161
+ "evaluatedVersion": "1.3.0"
1162
+ },
1163
+ "evalSummaries": {
1164
+ "quality": {
1165
+ "providerId": "quality",
1166
+ "providerVersion": "1.0.0",
1167
+ "schemaVersion": 1,
1168
+ "passed": true,
1169
+ "overallScore": 88,
1170
+ "grade": "B",
1171
+ "categories": [
1172
+ {
1173
+ "id": "structure",
1174
+ "name": "Structure & completeness",
1175
+ "score": 10,
1176
+ "max": 10
1177
+ },
1178
+ {
1179
+ "id": "description",
1180
+ "name": "Description quality",
1181
+ "score": 10,
1182
+ "max": 10
1183
+ },
1184
+ {
1185
+ "id": "prompt-engineering",
1186
+ "name": "Prompt engineering",
1187
+ "score": 8,
1188
+ "max": 10
1189
+ },
1190
+ {
1191
+ "id": "context-efficiency",
1192
+ "name": "Context efficiency",
1193
+ "score": 8,
1194
+ "max": 10
1195
+ },
1196
+ {
1197
+ "id": "safety",
1198
+ "name": "Safety & guardrails",
1199
+ "score": 10,
1200
+ "max": 10
1201
+ },
1202
+ {
1203
+ "id": "testability",
1204
+ "name": "Testability",
1205
+ "score": 7,
1206
+ "max": 10
1207
+ },
1208
+ {
1209
+ "id": "license",
1210
+ "name": "License verification",
1211
+ "score": 5,
1212
+ "max": 10
1213
+ },
1214
+ {
1215
+ "id": "naming",
1216
+ "name": "Naming & conventions",
1217
+ "score": 10,
1218
+ "max": 10
1219
+ },
1220
+ {
1221
+ "id": "pii",
1222
+ "name": "PII detection",
1223
+ "score": 10,
1224
+ "max": 10
1225
+ },
1226
+ {
1227
+ "id": "script-lint",
1228
+ "name": "Script linting",
1229
+ "score": 10,
1230
+ "max": 10
1231
+ }
1232
+ ],
1233
+ "evaluatedAt": "2026-08-21T09:18:54.710Z",
1234
+ "evaluatedVersion": "1.3.0"
1235
+ },
1236
+ "skill-best-practice": {
1237
+ "providerId": "skill-best-practice",
1238
+ "providerVersion": "1.1.0",
1239
+ "schemaVersion": 1,
1240
+ "passed": true,
1241
+ "overallScore": 100,
1242
+ "grade": "A",
1243
+ "categories": [
1244
+ {
1245
+ "id": "validation",
1246
+ "name": "Deterministic validation",
1247
+ "score": 15,
1248
+ "max": 15
1249
+ }
1250
+ ],
1251
+ "evaluatedAt": "2026-08-21T09:18:54.710Z",
1252
+ "evaluatedVersion": "1.3.0"
1253
+ }
1254
+ }
1255
+ },
1256
+ {
1257
+ "name": "skill-install-improved",
1258
+ "description": "Install an improved variant of one named skill: resolve it by local path, repo, or name, run skill-auto-improver on a throwaway copy, then install the improved result. Don't use for improving in place, upstream PRs, or plain asm install.",
1259
+ "version": "1.0.0",
1260
+ "license": "MIT",
1261
+ "creator": "",
1262
+ "compatibility": "Claude Code; requires `asm` and `git` on PATH",
1263
+ "allowedTools": [
1264
+ "Bash",
1265
+ "Read",
1266
+ "Write",
1267
+ "Edit",
1268
+ "Grep",
1269
+ "Glob"
1270
+ ],
1271
+ "modelInvocable": true,
1272
+ "userInvocable": true,
1273
+ "installUrl": "github:luongnv89/asm:skills/skill-install-improved",
1274
+ "relPath": "skills/skill-install-improved",
18
1275
  "verified": true,
19
- "featured": true,
20
- "tokenCount": 3101,
1276
+ "tokenCount": 4181,
21
1277
  "evalSummary": {
22
- "overallScore": 100,
1278
+ "overallScore": 92,
23
1279
  "grade": "A",
24
1280
  "categories": [
25
1281
  {
@@ -43,9 +1299,191 @@
43
1299
  {
44
1300
  "id": "context-efficiency",
45
1301
  "name": "Context efficiency",
1302
+ "score": 7,
1303
+ "max": 10
1304
+ },
1305
+ {
1306
+ "id": "safety",
1307
+ "name": "Safety & guardrails",
1308
+ "score": 10,
1309
+ "max": 10
1310
+ },
1311
+ {
1312
+ "id": "testability",
1313
+ "name": "Testability",
1314
+ "score": 10,
1315
+ "max": 10
1316
+ },
1317
+ {
1318
+ "id": "license",
1319
+ "name": "License verification",
1320
+ "score": 5,
1321
+ "max": 10
1322
+ },
1323
+ {
1324
+ "id": "naming",
1325
+ "name": "Naming & conventions",
1326
+ "score": 10,
1327
+ "max": 10
1328
+ },
1329
+ {
1330
+ "id": "pii",
1331
+ "name": "PII detection",
1332
+ "score": 10,
1333
+ "max": 10
1334
+ },
1335
+ {
1336
+ "id": "script-lint",
1337
+ "name": "Script linting",
1338
+ "score": 10,
1339
+ "max": 10
1340
+ }
1341
+ ],
1342
+ "evaluatedAt": "2026-08-21T09:18:54.717Z",
1343
+ "evaluatedVersion": "1.0.0"
1344
+ },
1345
+ "evalSummaries": {
1346
+ "quality": {
1347
+ "providerId": "quality",
1348
+ "providerVersion": "1.0.0",
1349
+ "schemaVersion": 1,
1350
+ "passed": true,
1351
+ "overallScore": 92,
1352
+ "grade": "A",
1353
+ "categories": [
1354
+ {
1355
+ "id": "structure",
1356
+ "name": "Structure & completeness",
1357
+ "score": 10,
1358
+ "max": 10
1359
+ },
1360
+ {
1361
+ "id": "description",
1362
+ "name": "Description quality",
1363
+ "score": 10,
1364
+ "max": 10
1365
+ },
1366
+ {
1367
+ "id": "prompt-engineering",
1368
+ "name": "Prompt engineering",
1369
+ "score": 10,
1370
+ "max": 10
1371
+ },
1372
+ {
1373
+ "id": "context-efficiency",
1374
+ "name": "Context efficiency",
1375
+ "score": 7,
1376
+ "max": 10
1377
+ },
1378
+ {
1379
+ "id": "safety",
1380
+ "name": "Safety & guardrails",
1381
+ "score": 10,
1382
+ "max": 10
1383
+ },
1384
+ {
1385
+ "id": "testability",
1386
+ "name": "Testability",
1387
+ "score": 10,
1388
+ "max": 10
1389
+ },
1390
+ {
1391
+ "id": "license",
1392
+ "name": "License verification",
1393
+ "score": 5,
1394
+ "max": 10
1395
+ },
1396
+ {
1397
+ "id": "naming",
1398
+ "name": "Naming & conventions",
1399
+ "score": 10,
1400
+ "max": 10
1401
+ },
1402
+ {
1403
+ "id": "pii",
1404
+ "name": "PII detection",
1405
+ "score": 10,
1406
+ "max": 10
1407
+ },
1408
+ {
1409
+ "id": "script-lint",
1410
+ "name": "Script linting",
1411
+ "score": 10,
1412
+ "max": 10
1413
+ }
1414
+ ],
1415
+ "evaluatedAt": "2026-08-21T09:18:54.717Z",
1416
+ "evaluatedVersion": "1.0.0"
1417
+ },
1418
+ "skill-best-practice": {
1419
+ "providerId": "skill-best-practice",
1420
+ "providerVersion": "1.1.0",
1421
+ "schemaVersion": 1,
1422
+ "passed": true,
1423
+ "overallScore": 100,
1424
+ "grade": "A",
1425
+ "categories": [
1426
+ {
1427
+ "id": "validation",
1428
+ "name": "Deterministic validation",
1429
+ "score": 15,
1430
+ "max": 15
1431
+ }
1432
+ ],
1433
+ "evaluatedAt": "2026-08-21T09:18:54.717Z",
1434
+ "evaluatedVersion": "1.0.0"
1435
+ }
1436
+ }
1437
+ },
1438
+ {
1439
+ "name": "skill-upstream-pr",
1440
+ "description": "Improve an open-source GitHub skill and open a friendly suggestion PR upstream: fork, run skill-auto-improver, attach asm eval before/after metrics. Don't use for local-only skills, authoring from scratch, bulk repos, or registry publish.",
1441
+ "version": "1.0.0",
1442
+ "license": "MIT",
1443
+ "creator": "",
1444
+ "compatibility": "Claude Code",
1445
+ "allowedTools": [
1446
+ "Bash",
1447
+ "Read",
1448
+ "Write",
1449
+ "Edit",
1450
+ "Grep",
1451
+ "Glob"
1452
+ ],
1453
+ "modelInvocable": true,
1454
+ "userInvocable": true,
1455
+ "installUrl": "github:luongnv89/asm:skills/skill-upstream-pr",
1456
+ "relPath": "skills/skill-upstream-pr",
1457
+ "verified": true,
1458
+ "tokenCount": 2962,
1459
+ "evalSummary": {
1460
+ "overallScore": 93,
1461
+ "grade": "A",
1462
+ "categories": [
1463
+ {
1464
+ "id": "structure",
1465
+ "name": "Structure & completeness",
1466
+ "score": 10,
1467
+ "max": 10
1468
+ },
1469
+ {
1470
+ "id": "description",
1471
+ "name": "Description quality",
46
1472
  "score": 10,
47
1473
  "max": 10
48
1474
  },
1475
+ {
1476
+ "id": "prompt-engineering",
1477
+ "name": "Prompt engineering",
1478
+ "score": 9,
1479
+ "max": 10
1480
+ },
1481
+ {
1482
+ "id": "context-efficiency",
1483
+ "name": "Context efficiency",
1484
+ "score": 9,
1485
+ "max": 10
1486
+ },
49
1487
  {
50
1488
  "id": "safety",
51
1489
  "name": "Safety & guardrails",
@@ -58,16 +1496,557 @@
58
1496
  "score": 10,
59
1497
  "max": 10
60
1498
  },
1499
+ {
1500
+ "id": "license",
1501
+ "name": "License verification",
1502
+ "score": 5,
1503
+ "max": 10
1504
+ },
1505
+ {
1506
+ "id": "naming",
1507
+ "name": "Naming & conventions",
1508
+ "score": 10,
1509
+ "max": 10
1510
+ },
1511
+ {
1512
+ "id": "pii",
1513
+ "name": "PII detection",
1514
+ "score": 10,
1515
+ "max": 10
1516
+ },
1517
+ {
1518
+ "id": "script-lint",
1519
+ "name": "Script linting",
1520
+ "score": 10,
1521
+ "max": 10
1522
+ }
1523
+ ],
1524
+ "evaluatedAt": "2026-08-21T09:18:54.722Z",
1525
+ "evaluatedVersion": "1.0.0"
1526
+ },
1527
+ "evalSummaries": {
1528
+ "quality": {
1529
+ "providerId": "quality",
1530
+ "providerVersion": "1.0.0",
1531
+ "schemaVersion": 1,
1532
+ "passed": true,
1533
+ "overallScore": 93,
1534
+ "grade": "A",
1535
+ "categories": [
1536
+ {
1537
+ "id": "structure",
1538
+ "name": "Structure & completeness",
1539
+ "score": 10,
1540
+ "max": 10
1541
+ },
1542
+ {
1543
+ "id": "description",
1544
+ "name": "Description quality",
1545
+ "score": 10,
1546
+ "max": 10
1547
+ },
1548
+ {
1549
+ "id": "prompt-engineering",
1550
+ "name": "Prompt engineering",
1551
+ "score": 9,
1552
+ "max": 10
1553
+ },
1554
+ {
1555
+ "id": "context-efficiency",
1556
+ "name": "Context efficiency",
1557
+ "score": 9,
1558
+ "max": 10
1559
+ },
1560
+ {
1561
+ "id": "safety",
1562
+ "name": "Safety & guardrails",
1563
+ "score": 10,
1564
+ "max": 10
1565
+ },
1566
+ {
1567
+ "id": "testability",
1568
+ "name": "Testability",
1569
+ "score": 10,
1570
+ "max": 10
1571
+ },
1572
+ {
1573
+ "id": "license",
1574
+ "name": "License verification",
1575
+ "score": 5,
1576
+ "max": 10
1577
+ },
1578
+ {
1579
+ "id": "naming",
1580
+ "name": "Naming & conventions",
1581
+ "score": 10,
1582
+ "max": 10
1583
+ },
1584
+ {
1585
+ "id": "pii",
1586
+ "name": "PII detection",
1587
+ "score": 10,
1588
+ "max": 10
1589
+ },
1590
+ {
1591
+ "id": "script-lint",
1592
+ "name": "Script linting",
1593
+ "score": 10,
1594
+ "max": 10
1595
+ }
1596
+ ],
1597
+ "evaluatedAt": "2026-08-21T09:18:54.722Z",
1598
+ "evaluatedVersion": "1.0.0"
1599
+ },
1600
+ "skill-best-practice": {
1601
+ "providerId": "skill-best-practice",
1602
+ "providerVersion": "1.1.0",
1603
+ "schemaVersion": 1,
1604
+ "passed": true,
1605
+ "overallScore": 100,
1606
+ "grade": "A",
1607
+ "categories": [
1608
+ {
1609
+ "id": "validation",
1610
+ "name": "Deterministic validation",
1611
+ "score": 15,
1612
+ "max": 15
1613
+ }
1614
+ ],
1615
+ "evaluatedAt": "2026-08-21T09:18:54.722Z",
1616
+ "evaluatedVersion": "1.0.0"
1617
+ }
1618
+ }
1619
+ },
1620
+ {
1621
+ "name": "well-formed",
1622
+ "description": "Review pull request diffs for code smells, style issues, and safety problems before merging.",
1623
+ "version": "1.0.0",
1624
+ "license": "MIT",
1625
+ "creator": "",
1626
+ "compatibility": "Claude Code",
1627
+ "allowedTools": [
1628
+ "Read",
1629
+ "Grep"
1630
+ ],
1631
+ "modelInvocable": true,
1632
+ "userInvocable": true,
1633
+ "installUrl": "github:luongnv89/asm:tests/fixtures/skills/well-formed",
1634
+ "relPath": "tests/fixtures/skills/well-formed",
1635
+ "verified": true,
1636
+ "tokenCount": 348,
1637
+ "evalSummary": {
1638
+ "overallScore": 89,
1639
+ "grade": "B",
1640
+ "categories": [
1641
+ {
1642
+ "id": "structure",
1643
+ "name": "Structure & completeness",
1644
+ "score": 10,
1645
+ "max": 10
1646
+ },
1647
+ {
1648
+ "id": "description",
1649
+ "name": "Description quality",
1650
+ "score": 10,
1651
+ "max": 10
1652
+ },
1653
+ {
1654
+ "id": "prompt-engineering",
1655
+ "name": "Prompt engineering",
1656
+ "score": 10,
1657
+ "max": 10
1658
+ },
1659
+ {
1660
+ "id": "context-efficiency",
1661
+ "name": "Context efficiency",
1662
+ "score": 9,
1663
+ "max": 10
1664
+ },
1665
+ {
1666
+ "id": "safety",
1667
+ "name": "Safety & guardrails",
1668
+ "score": 10,
1669
+ "max": 10
1670
+ },
1671
+ {
1672
+ "id": "testability",
1673
+ "name": "Testability",
1674
+ "score": 5,
1675
+ "max": 10
1676
+ },
1677
+ {
1678
+ "id": "license",
1679
+ "name": "License verification",
1680
+ "score": 5,
1681
+ "max": 10
1682
+ },
61
1683
  {
62
1684
  "id": "naming",
63
1685
  "name": "Naming & conventions",
64
1686
  "score": 10,
65
1687
  "max": 10
1688
+ },
1689
+ {
1690
+ "id": "pii",
1691
+ "name": "PII detection",
1692
+ "score": 10,
1693
+ "max": 10
1694
+ },
1695
+ {
1696
+ "id": "script-lint",
1697
+ "name": "Script linting",
1698
+ "score": 10,
1699
+ "max": 10
66
1700
  }
67
1701
  ],
68
- "evaluatedAt": "2026-04-21T20:48:38.441Z",
69
- "evaluatedVersion": "0.1.0"
1702
+ "evaluatedAt": "2026-08-21T09:18:54.718Z",
1703
+ "evaluatedVersion": "1.0.0"
1704
+ },
1705
+ "evalSummaries": {
1706
+ "quality": {
1707
+ "providerId": "quality",
1708
+ "providerVersion": "1.0.0",
1709
+ "schemaVersion": 1,
1710
+ "passed": true,
1711
+ "overallScore": 89,
1712
+ "grade": "B",
1713
+ "categories": [
1714
+ {
1715
+ "id": "structure",
1716
+ "name": "Structure & completeness",
1717
+ "score": 10,
1718
+ "max": 10
1719
+ },
1720
+ {
1721
+ "id": "description",
1722
+ "name": "Description quality",
1723
+ "score": 10,
1724
+ "max": 10
1725
+ },
1726
+ {
1727
+ "id": "prompt-engineering",
1728
+ "name": "Prompt engineering",
1729
+ "score": 10,
1730
+ "max": 10
1731
+ },
1732
+ {
1733
+ "id": "context-efficiency",
1734
+ "name": "Context efficiency",
1735
+ "score": 9,
1736
+ "max": 10
1737
+ },
1738
+ {
1739
+ "id": "safety",
1740
+ "name": "Safety & guardrails",
1741
+ "score": 10,
1742
+ "max": 10
1743
+ },
1744
+ {
1745
+ "id": "testability",
1746
+ "name": "Testability",
1747
+ "score": 5,
1748
+ "max": 10
1749
+ },
1750
+ {
1751
+ "id": "license",
1752
+ "name": "License verification",
1753
+ "score": 5,
1754
+ "max": 10
1755
+ },
1756
+ {
1757
+ "id": "naming",
1758
+ "name": "Naming & conventions",
1759
+ "score": 10,
1760
+ "max": 10
1761
+ },
1762
+ {
1763
+ "id": "pii",
1764
+ "name": "PII detection",
1765
+ "score": 10,
1766
+ "max": 10
1767
+ },
1768
+ {
1769
+ "id": "script-lint",
1770
+ "name": "Script linting",
1771
+ "score": 10,
1772
+ "max": 10
1773
+ }
1774
+ ],
1775
+ "evaluatedAt": "2026-08-21T09:18:54.718Z",
1776
+ "evaluatedVersion": "1.0.0"
1777
+ },
1778
+ "skill-best-practice": {
1779
+ "providerId": "skill-best-practice",
1780
+ "providerVersion": "1.1.0",
1781
+ "schemaVersion": 1,
1782
+ "passed": false,
1783
+ "overallScore": 71,
1784
+ "grade": "C",
1785
+ "categories": [
1786
+ {
1787
+ "id": "validation",
1788
+ "name": "Deterministic validation",
1789
+ "score": 10,
1790
+ "max": 14
1791
+ }
1792
+ ],
1793
+ "evaluatedAt": "2026-08-21T09:18:54.718Z",
1794
+ "evaluatedVersion": "1.0.0"
1795
+ }
70
1796
  }
71
1797
  }
1798
+ ],
1799
+ "bundles": [
1800
+ {
1801
+ "version": 1,
1802
+ "name": "luongnv89-asm-data-ai",
1803
+ "description": "Data, analytics, AI, model, prompt, agent, and automation skills. Derived from luongnv89/asm.",
1804
+ "author": "ASM (luongnv89/asm)",
1805
+ "createdAt": "2026-08-21T09:18:55.699Z",
1806
+ "tags": [
1807
+ "repo-derived",
1808
+ "inferred",
1809
+ "data",
1810
+ "ai",
1811
+ "agents",
1812
+ "luongnv89",
1813
+ "asm"
1814
+ ],
1815
+ "skills": [
1816
+ {
1817
+ "name": "find-me-skills",
1818
+ "installUrl": "github:luongnv89/asm:skills/find-me-skills",
1819
+ "description": "Find Agent Skills for a goal the user cannot name yet, then export an installable bundle. Use when they ask which skills fit a project. Don't use for installing named skills, authoring skills, or catalog maintenance.",
1820
+ "version": "1.2.0"
1821
+ },
1822
+ {
1823
+ "name": "refresh-index",
1824
+ "installUrl": "github:luongnv89/asm:skills/refresh-index",
1825
+ "description": "Re-ingest every already-enabled repo in data/skill-index-resources.json: sync the working tree, run preindex, rebuild the catalog for verification, summarize updated/unchanged/failed/skipped, then gate commit + PR behind explicit confirmation. Use when asked to refresh the index, re-ingest indexed repos, or batch-maintain already-indexed skill sources. Don't use for adding new repos (use skill-index-updater), improving a single skill (use skill-auto-improver), or installing/updating skills on the local machine (use asm install or asm update).",
1826
+ "version": "1.0.0"
1827
+ },
1828
+ {
1829
+ "name": "skill-install-improved",
1830
+ "installUrl": "github:luongnv89/asm:skills/skill-install-improved",
1831
+ "description": "Install an improved variant of one named skill: resolve it by local path, repo, or name, run skill-auto-improver on a throwaway copy, then install the improved result. Don't use for improving in place, upstream PRs, or plain asm install.",
1832
+ "version": "1.0.0"
1833
+ }
1834
+ ],
1835
+ "sourceRepo": {
1836
+ "owner": "luongnv89",
1837
+ "repo": "asm",
1838
+ "repoUrl": "https://github.com/luongnv89/asm.git"
1839
+ },
1840
+ "inferred": true
1841
+ },
1842
+ {
1843
+ "version": 1,
1844
+ "name": "luongnv89-asm-devops",
1845
+ "description": "Deployment, CI/CD, infrastructure, cloud, Docker, Kubernetes, and automation skills. Derived from luongnv89/asm.",
1846
+ "author": "ASM (luongnv89/asm)",
1847
+ "createdAt": "2026-08-21T09:18:55.699Z",
1848
+ "tags": [
1849
+ "repo-derived",
1850
+ "inferred",
1851
+ "devops",
1852
+ "infra",
1853
+ "automation",
1854
+ "luongnv89",
1855
+ "asm"
1856
+ ],
1857
+ "skills": [
1858
+ {
1859
+ "name": "hello-world",
1860
+ "installUrl": "github:luongnv89/asm:skills/hello-world",
1861
+ "description": "A minimal test skill that greets the user and demonstrates the ASM publish workflow.",
1862
+ "version": "1.0.0"
1863
+ },
1864
+ {
1865
+ "name": "refresh-index",
1866
+ "installUrl": "github:luongnv89/asm:skills/refresh-index",
1867
+ "description": "Re-ingest every already-enabled repo in data/skill-index-resources.json: sync the working tree, run preindex, rebuild the catalog for verification, summarize updated/unchanged/failed/skipped, then gate commit + PR behind explicit confirmation. Use when asked to refresh the index, re-ingest indexed repos, or batch-maintain already-indexed skill sources. Don't use for adding new repos (use skill-index-updater), improving a single skill (use skill-auto-improver), or installing/updating skills on the local machine (use asm install or asm update).",
1868
+ "version": "1.0.0"
1869
+ }
1870
+ ],
1871
+ "sourceRepo": {
1872
+ "owner": "luongnv89",
1873
+ "repo": "asm",
1874
+ "repoUrl": "https://github.com/luongnv89/asm.git"
1875
+ },
1876
+ "inferred": true
1877
+ },
1878
+ {
1879
+ "version": 1,
1880
+ "name": "luongnv89-asm-engineering",
1881
+ "description": "Coding, debugging, testing, architecture, review, and software engineering skills. Derived from luongnv89/asm.",
1882
+ "author": "ASM (luongnv89/asm)",
1883
+ "createdAt": "2026-08-21T09:18:55.699Z",
1884
+ "tags": [
1885
+ "repo-derived",
1886
+ "inferred",
1887
+ "engineering",
1888
+ "coding",
1889
+ "testing",
1890
+ "luongnv89",
1891
+ "asm"
1892
+ ],
1893
+ "skills": [
1894
+ {
1895
+ "name": "hello-world",
1896
+ "installUrl": "github:luongnv89/asm:skills/hello-world",
1897
+ "description": "A minimal test skill that greets the user and demonstrates the ASM publish workflow.",
1898
+ "version": "1.0.0"
1899
+ },
1900
+ {
1901
+ "name": "missing-frontmatter",
1902
+ "installUrl": "github:luongnv89/asm:tests/fixtures/skills/missing-frontmatter",
1903
+ "version": "0.0.0"
1904
+ },
1905
+ {
1906
+ "name": "refresh-index",
1907
+ "installUrl": "github:luongnv89/asm:skills/refresh-index",
1908
+ "description": "Re-ingest every already-enabled repo in data/skill-index-resources.json: sync the working tree, run preindex, rebuild the catalog for verification, summarize updated/unchanged/failed/skipped, then gate commit + PR behind explicit confirmation. Use when asked to refresh the index, re-ingest indexed repos, or batch-maintain already-indexed skill sources. Don't use for adding new repos (use skill-index-updater), improving a single skill (use skill-auto-improver), or installing/updating skills on the local machine (use asm install or asm update).",
1909
+ "version": "1.0.0"
1910
+ },
1911
+ {
1912
+ "name": "skill-creator",
1913
+ "installUrl": "github:luongnv89/asm:skills/skill-creator",
1914
+ "description": "Create, improve, evaluate, benchmark skills. Use when authoring a new skill, updating an existing one, running evals, or optimizing a skill's description for triggering. Don't use for invoking skills, writing prose, or scaffolding Python projects.",
1915
+ "version": "1.13.2"
1916
+ },
1917
+ {
1918
+ "name": "skill-index-updater",
1919
+ "installUrl": "github:luongnv89/asm:skills/skill-index-updater",
1920
+ "description": "Add GitHub skill repos to the ASM index: clone, audit, eval, regenerate index, rebuild catalog, open PR. Use when given GitHub URLs to onboard. Don't use for authoring (skill-creator), improving (skill-auto-improver), or install (asm install).",
1921
+ "version": "1.3.0"
1922
+ },
1923
+ {
1924
+ "name": "well-formed",
1925
+ "installUrl": "github:luongnv89/asm:tests/fixtures/skills/well-formed",
1926
+ "description": "Review pull request diffs for code smells, style issues, and safety problems before merging.",
1927
+ "version": "1.0.0"
1928
+ }
1929
+ ],
1930
+ "sourceRepo": {
1931
+ "owner": "luongnv89",
1932
+ "repo": "asm",
1933
+ "repoUrl": "https://github.com/luongnv89/asm.git"
1934
+ },
1935
+ "inferred": true
1936
+ },
1937
+ {
1938
+ "version": 1,
1939
+ "name": "luongnv89-asm-frontend-design",
1940
+ "description": "Frontend, UI, UX, visual design, component, theme, and landing-page skills. Derived from luongnv89/asm.",
1941
+ "author": "ASM (luongnv89/asm)",
1942
+ "createdAt": "2026-08-21T09:18:55.699Z",
1943
+ "tags": [
1944
+ "repo-derived",
1945
+ "inferred",
1946
+ "frontend",
1947
+ "design",
1948
+ "ui",
1949
+ "luongnv89",
1950
+ "asm"
1951
+ ],
1952
+ "skills": [
1953
+ {
1954
+ "name": "refresh-index",
1955
+ "installUrl": "github:luongnv89/asm:skills/refresh-index",
1956
+ "description": "Re-ingest every already-enabled repo in data/skill-index-resources.json: sync the working tree, run preindex, rebuild the catalog for verification, summarize updated/unchanged/failed/skipped, then gate commit + PR behind explicit confirmation. Use when asked to refresh the index, re-ingest indexed repos, or batch-maintain already-indexed skill sources. Don't use for adding new repos (use skill-index-updater), improving a single skill (use skill-auto-improver), or installing/updating skills on the local machine (use asm install or asm update).",
1957
+ "version": "1.0.0"
1958
+ },
1959
+ {
1960
+ "name": "skill-index-updater",
1961
+ "installUrl": "github:luongnv89/asm:skills/skill-index-updater",
1962
+ "description": "Add GitHub skill repos to the ASM index: clone, audit, eval, regenerate index, rebuild catalog, open PR. Use when given GitHub URLs to onboard. Don't use for authoring (skill-creator), improving (skill-auto-improver), or install (asm install).",
1963
+ "version": "1.3.0"
1964
+ }
1965
+ ],
1966
+ "sourceRepo": {
1967
+ "owner": "luongnv89",
1968
+ "repo": "asm",
1969
+ "repoUrl": "https://github.com/luongnv89/asm.git"
1970
+ },
1971
+ "inferred": true
1972
+ },
1973
+ {
1974
+ "version": 1,
1975
+ "name": "luongnv89-asm-research",
1976
+ "description": "Research, academic, literature-review, citation, paper, and analysis skills. Derived from luongnv89/asm.",
1977
+ "author": "ASM (luongnv89/asm)",
1978
+ "createdAt": "2026-08-21T09:18:55.699Z",
1979
+ "tags": [
1980
+ "repo-derived",
1981
+ "inferred",
1982
+ "research",
1983
+ "academic",
1984
+ "analysis",
1985
+ "luongnv89",
1986
+ "asm"
1987
+ ],
1988
+ "skills": [
1989
+ {
1990
+ "name": "refresh-index",
1991
+ "installUrl": "github:luongnv89/asm:skills/refresh-index",
1992
+ "description": "Re-ingest every already-enabled repo in data/skill-index-resources.json: sync the working tree, run preindex, rebuild the catalog for verification, summarize updated/unchanged/failed/skipped, then gate commit + PR behind explicit confirmation. Use when asked to refresh the index, re-ingest indexed repos, or batch-maintain already-indexed skill sources. Don't use for adding new repos (use skill-index-updater), improving a single skill (use skill-auto-improver), or installing/updating skills on the local machine (use asm install or asm update).",
1993
+ "version": "1.0.0"
1994
+ },
1995
+ {
1996
+ "name": "skill-creator",
1997
+ "installUrl": "github:luongnv89/asm:skills/skill-creator",
1998
+ "description": "Create, improve, evaluate, benchmark skills. Use when authoring a new skill, updating an existing one, running evals, or optimizing a skill's description for triggering. Don't use for invoking skills, writing prose, or scaffolding Python projects.",
1999
+ "version": "1.13.2"
2000
+ },
2001
+ {
2002
+ "name": "well-formed",
2003
+ "installUrl": "github:luongnv89/asm:tests/fixtures/skills/well-formed",
2004
+ "description": "Review pull request diffs for code smells, style issues, and safety problems before merging.",
2005
+ "version": "1.0.0"
2006
+ }
2007
+ ],
2008
+ "sourceRepo": {
2009
+ "owner": "luongnv89",
2010
+ "repo": "asm",
2011
+ "repoUrl": "https://github.com/luongnv89/asm.git"
2012
+ },
2013
+ "inferred": true
2014
+ },
2015
+ {
2016
+ "version": 1,
2017
+ "name": "luongnv89-asm-writing",
2018
+ "description": "Writing, editing, documentation, publishing, and content-production skills. Derived from luongnv89/asm.",
2019
+ "author": "ASM (luongnv89/asm)",
2020
+ "createdAt": "2026-08-21T09:18:55.699Z",
2021
+ "tags": [
2022
+ "repo-derived",
2023
+ "inferred",
2024
+ "writing",
2025
+ "content",
2026
+ "docs",
2027
+ "luongnv89",
2028
+ "asm"
2029
+ ],
2030
+ "skills": [
2031
+ {
2032
+ "name": "skill-creator",
2033
+ "installUrl": "github:luongnv89/asm:skills/skill-creator",
2034
+ "description": "Create, improve, evaluate, benchmark skills. Use when authoring a new skill, updating an existing one, running evals, or optimizing a skill's description for triggering. Don't use for invoking skills, writing prose, or scaffolding Python projects.",
2035
+ "version": "1.13.2"
2036
+ },
2037
+ {
2038
+ "name": "skill-install-improved",
2039
+ "installUrl": "github:luongnv89/asm:skills/skill-install-improved",
2040
+ "description": "Install an improved variant of one named skill: resolve it by local path, repo, or name, run skill-auto-improver on a throwaway copy, then install the improved result. Don't use for improving in place, upstream PRs, or plain asm install.",
2041
+ "version": "1.0.0"
2042
+ }
2043
+ ],
2044
+ "sourceRepo": {
2045
+ "owner": "luongnv89",
2046
+ "repo": "asm",
2047
+ "repoUrl": "https://github.com/luongnv89/asm.git"
2048
+ },
2049
+ "inferred": true
2050
+ }
72
2051
  ]
73
2052
  }