agent-skill-manager 2.14.0 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +318 -121
  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 +27195 -5839
  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 +13755 -5388
  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 +960 -124
  19. package/data/skill-index/ParthJadhav_app-store-screenshots.json +185 -0
  20. package/data/skill-index/addyosmani_agent-skills.json +1127 -209
  21. package/data/skill-index/affaan-m_everything-claude-code.json +17427 -5038
  22. package/data/skill-index/alirezarezvani_claude-skills.json +20317 -3276
  23. package/data/skill-index/anthropics_skills.json +1256 -168
  24. package/data/skill-index/antithesishq_antithesis-skills.json +2567 -0
  25. package/data/skill-index/antonbabenko_terraform-skill.json +44 -6
  26. package/data/skill-index/badlogic_pi-skills.json +349 -45
  27. package/data/skill-index/briiirussell_cybersecurity-skills.json +1261 -159
  28. package/data/skill-index/bytedance_deer-flow.json +1572 -224
  29. package/data/skill-index/cloudai-x_threejs-skills.json +2007 -0
  30. package/data/skill-index/coreyhaines31_marketingskills.json +2846 -638
  31. package/data/skill-index/davidondrej_skills.json +6213 -783
  32. package/data/skill-index/emilkowalski_skills.json +2302 -0
  33. package/data/skill-index/entireio_skills.json +561 -63
  34. package/data/skill-index/garrytan_gstack.json +3023 -419
  35. package/data/skill-index/github_awesome-copilot.json +30442 -8371
  36. package/data/skill-index/google_skills.json +12472 -1527
  37. package/data/skill-index/heygen-com_hyperframes.json +2420 -454
  38. package/data/skill-index/himself65_finance-skills.json +1614 -254
  39. package/data/skill-index/ivan-magda_uikit-expert-skill.json +44 -6
  40. package/data/skill-index/kemiljk_fluid-design.json +44 -6
  41. package/data/skill-index/kepano_obsidian-skills.json +217 -27
  42. package/data/skill-index/luongnv89_asm.json +1887 -34
  43. package/data/skill-index/luongnv89_idd.json +369 -103
  44. package/data/skill-index/luongnv89_skills.json +2051 -900
  45. package/data/skill-index/mattpocock_skills.json +1910 -1027
  46. package/data/skill-index/mvanhorn_last30days-skill.json +50 -12
  47. package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +324 -64
  48. package/data/skill-index/obra_superpowers.json +651 -125
  49. package/data/skill-index/oliver-zehentleitner_keep-the-why.json +185 -0
  50. package/data/skill-index/romainsimon_paperasse.json +273 -45
  51. package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +1539 -243
  52. package/data/skill-index/santifer_career-ops.json +44 -657
  53. package/data/skill-index/sickn33_antigravity-awesome-skills.json +123142 -36221
  54. package/data/skill-index/slavingia_skills.json +436 -56
  55. package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +44 -6
  56. package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +44 -6
  57. package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +44 -6
  58. package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +44 -6
  59. package/data/skill-index/warpdotdev_oz-skills.json +651 -81
  60. package/data/skill-index/zarazhangrui_follow-builders.json +44 -6
  61. package/data/skill-index-resources.json +47 -2
  62. package/dist/agent-skill-manager.js +683 -603
  63. package/dist/chunk-BQ4RW237.js +20 -0
  64. package/dist/chunk-LH2C3PE7.js +3 -0
  65. package/dist/chunk-LS24FFOX.js +3 -0
  66. package/dist/chunk-RSVWCEZR.js +2 -0
  67. package/dist/config-AZYQEQOQ.js +2 -0
  68. package/dist/devtools-2L45W5A2.js +11 -0
  69. package/dist/lock-NN2MADX7.js +2 -0
  70. package/dist/src-BD3KFE5H.js +119 -0
  71. package/package.json +48 -22
  72. package/README.backup.md +0 -1237
  73. package/dist/chunk-7BMOBFGJ.js +0 -2
  74. package/dist/chunk-EOTW3XHQ.js +0 -3
  75. package/dist/chunk-P5N3FU3P.js +0 -3
  76. package/dist/chunk-UZ62MVXU.js +0 -19
  77. package/dist/config-KPT63KLE.js +0 -2
  78. package/dist/devtools-6JCLZ364.js +0 -8
  79. package/dist/lock-NOXBNSZW.js +0 -2
  80. package/dist/src-IHHUE6TP.js +0 -108
@@ -2,24 +2,25 @@
2
2
  "repoUrl": "https://github.com/luongnv89/asm.git",
3
3
  "owner": "luongnv89",
4
4
  "repo": "asm",
5
- "updatedAt": "2026-06-29T21:39:38.074Z",
6
- "skillCount": 3,
5
+ "updatedAt": "2026-08-21T09:18:55.699Z",
6
+ "skillCount": 10,
7
7
  "skills": [
8
8
  {
9
- "name": "skill-auto-improver",
10
- "description": "Improve a SKILL.md to pass the skill-creator standard (quick_validate, frontmatter audit, ≤500 lines) AND the asm-eval 85/8 floor. Use to level up a skill before publish. Don't use for authoring from scratch, bulk evaluation, or prose rewriting.",
11
- "version": "1.0.2",
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
12
  "license": "MIT",
13
- "creator": "luongnv89",
14
- "compatibility": "Claude Code; requires `asm` on PATH and Python 3 for skill-creator's quick_validate.py",
15
- "allowedTools": ["Bash", "Read", "Write", "Edit", "Grep", "Glob"],
16
- "installUrl": "github:luongnv89/asm:skills/skill-auto-improver",
17
- "relPath": "skills/skill-auto-improver",
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",
18
20
  "verified": true,
19
- "featured": true,
20
- "tokenCount": 5435,
21
+ "tokenCount": 2909,
21
22
  "evalSummary": {
22
- "overallScore": 97,
23
+ "overallScore": 95,
23
24
  "grade": "A",
24
25
  "categories": [
25
26
  {
@@ -43,7 +44,7 @@
43
44
  {
44
45
  "id": "context-efficiency",
45
46
  "name": "Context efficiency",
46
- "score": 8,
47
+ "score": 10,
47
48
  "max": 10
48
49
  },
49
50
  {
@@ -58,32 +59,144 @@
58
59
  "score": 10,
59
60
  "max": 10
60
61
  },
62
+ {
63
+ "id": "license",
64
+ "name": "License verification",
65
+ "score": 5,
66
+ "max": 10
67
+ },
61
68
  {
62
69
  "id": "naming",
63
70
  "name": "Naming & conventions",
64
71
  "score": 10,
65
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
66
85
  }
67
86
  ],
68
- "evaluatedAt": "2026-06-29T21:39:38.069Z",
69
- "evaluatedVersion": "1.0.2"
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
+ }
70
181
  }
71
182
  },
72
183
  {
73
- "name": "find-me-skills",
74
- "description": "Discover which Agent Skills a user needs for a goal they can't name yet, then export an installable bundle. Use for 'I want to do X but don't know which skills', 'find me skills for', or 'recommend skills for my project'. Don't use for installing an already-named skill, authoring a skill (skill-creator), or maintaining the catalog.",
184
+ "name": "hello-world",
185
+ "description": "A minimal test skill that greets the user and demonstrates the ASM publish workflow.",
75
186
  "version": "1.0.0",
76
187
  "license": "MIT",
77
- "creator": "Luong NGUYEN <luongnv89@gmail.com>",
78
- "compatibility": "Claude Code with the `asm` CLI on PATH",
188
+ "creator": "",
189
+ "compatibility": "Claude Code",
79
190
  "allowedTools": [],
80
- "installUrl": "github:luongnv89/asm:skills/find-me-skills",
81
- "relPath": "skills/find-me-skills",
191
+ "modelInvocable": true,
192
+ "userInvocable": true,
193
+ "installUrl": "github:luongnv89/asm:skills/hello-world",
194
+ "relPath": "skills/hello-world",
82
195
  "verified": true,
83
- "tokenCount": 3563,
196
+ "tokenCount": 120,
84
197
  "evalSummary": {
85
- "overallScore": 81,
86
- "grade": "B",
198
+ "overallScore": 53,
199
+ "grade": "D",
87
200
  "categories": [
88
201
  {
89
202
  "id": "structure",
@@ -94,21 +207,378 @@
94
207
  {
95
208
  "id": "description",
96
209
  "name": "Description quality",
97
- "score": 5,
210
+ "score": 4,
98
211
  "max": 10
99
212
  },
100
213
  {
101
214
  "id": "prompt-engineering",
102
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",
103
246
  "score": 10,
104
247
  "max": 10
105
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
+ },
106
394
  {
107
395
  "id": "context-efficiency",
108
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",
109
421
  "score": 5,
110
422
  "max": 10
111
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
+ },
112
582
  {
113
583
  "id": "safety",
114
584
  "name": "Safety & guardrails",
@@ -121,31 +591,325 @@
121
591
  "score": 7,
122
592
  "max": 10
123
593
  },
594
+ {
595
+ "id": "license",
596
+ "name": "License verification",
597
+ "score": 5,
598
+ "max": 10
599
+ },
124
600
  {
125
601
  "id": "naming",
126
602
  "name": "Naming & conventions",
127
603
  "score": 10,
128
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
129
617
  }
130
618
  ],
131
- "evaluatedAt": "2026-06-29T21:39:38.071Z",
619
+ "evaluatedAt": "2026-08-21T09:18:54.699Z",
132
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
+ },
715
+ {
716
+ "name": "skill-auto-improver",
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
+ }
133
895
  }
134
896
  },
135
897
  {
136
898
  "name": "skill-creator",
137
- "description": "Create, improve, evaluate, and 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.",
138
- "version": "1.8.0",
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",
139
901
  "license": "MIT",
140
- "creator": "Luong NGUYEN",
902
+ "creator": "",
141
903
  "compatibility": "",
142
904
  "allowedTools": [],
905
+ "modelInvocable": true,
906
+ "userInvocable": true,
143
907
  "installUrl": "github:luongnv89/asm:skills/skill-creator",
144
908
  "relPath": "skills/skill-creator",
145
909
  "verified": true,
146
- "tokenCount": 4864,
910
+ "tokenCount": 5966,
147
911
  "evalSummary": {
148
- "overallScore": 97,
912
+ "overallScore": 96,
149
913
  "grade": "A",
150
914
  "categories": [
151
915
  {
@@ -184,16 +948,1105 @@
184
948
  "score": 10,
185
949
  "max": 10
186
950
  },
951
+ {
952
+ "id": "license",
953
+ "name": "License verification",
954
+ "score": 10,
955
+ "max": 10
956
+ },
187
957
  {
188
958
  "id": "naming",
189
959
  "name": "Naming & conventions",
190
960
  "score": 10,
191
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
192
974
  }
193
975
  ],
194
- "evaluatedAt": "2026-06-29T21:39:38.073Z",
195
- "evaluatedVersion": "1.8.0"
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
+ }
196
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",
1076
+ "license": "MIT",
1077
+ "creator": "",
1078
+ "compatibility": "Claude Code",
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",
1275
+ "verified": true,
1276
+ "tokenCount": 4181,
1277
+ "evalSummary": {
1278
+ "overallScore": 92,
1279
+ "grade": "A",
1280
+ "categories": [
1281
+ {
1282
+ "id": "structure",
1283
+ "name": "Structure & completeness",
1284
+ "score": 10,
1285
+ "max": 10
1286
+ },
1287
+ {
1288
+ "id": "description",
1289
+ "name": "Description quality",
1290
+ "score": 10,
1291
+ "max": 10
1292
+ },
1293
+ {
1294
+ "id": "prompt-engineering",
1295
+ "name": "Prompt engineering",
1296
+ "score": 10,
1297
+ "max": 10
1298
+ },
1299
+ {
1300
+ "id": "context-efficiency",
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",
1472
+ "score": 10,
1473
+ "max": 10
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
+ },
1487
+ {
1488
+ "id": "safety",
1489
+ "name": "Safety & guardrails",
1490
+ "score": 10,
1491
+ "max": 10
1492
+ },
1493
+ {
1494
+ "id": "testability",
1495
+ "name": "Testability",
1496
+ "score": 10,
1497
+ "max": 10
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
+ },
1683
+ {
1684
+ "id": "naming",
1685
+ "name": "Naming & conventions",
1686
+ "score": 10,
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
1700
+ }
1701
+ ],
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
+ }
1796
+ }
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
197
2050
  }
198
2051
  ]
199
2052
  }