agent-skill-manager 2.17.0 → 2.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +108 -33
  2. package/data/bundles/content-writing.json +9 -9
  3. package/data/bundles/frontend-dev.json +6 -6
  4. package/data/bundles/game-dev.json +60 -0
  5. package/data/bundles/ios-release.json +1 -1
  6. package/data/bundles/marketing.json +40 -0
  7. package/data/bundles/software-dev.json +40 -0
  8. package/data/repo-stars.json +80 -0
  9. package/data/skill-index/Affitor_affiliate-skills.json +692 -226
  10. package/data/skill-index/AvdLee_Core-Data-Agent-Skill.json +7 -5
  11. package/data/skill-index/AvdLee_Swift-Concurrency-Agent-Skill.json +7 -5
  12. package/data/skill-index/AvdLee_Swift-Testing-Agent-Skill.json +7 -5
  13. package/data/skill-index/AvdLee_SwiftUI-Agent-Skill.json +53 -13
  14. package/data/skill-index/AvdLee_Xcode-Build-Optimization-Agent-Skill.json +102 -30
  15. package/data/skill-index/ComposioHQ_awesome-claude-skills.json +155207 -0
  16. package/data/skill-index/DietrichGebert_ponytail.json +1307 -0
  17. package/data/skill-index/Dimillian_Skills.json +182 -72
  18. package/data/skill-index/Egonex-AI_Understand-Anything.json +64 -46
  19. package/data/skill-index/Eronred_aso-skills.json +443 -177
  20. package/data/skill-index/GPTomics_bioSkills.json +3618 -2494
  21. package/data/skill-index/Galaxy-Dawn_claude-scholar.json +313 -203
  22. package/data/skill-index/Imbad0202_academic-research-skills.json +42 -34
  23. package/data/skill-index/JuliusBrussee_caveman.json +3887 -0
  24. package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +2473 -2643
  25. package/data/skill-index/Leonxlnx_taste-skill.json +86 -60
  26. package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +7 -5
  27. package/data/skill-index/MiniMax-AI_skills.json +186 -104
  28. package/data/skill-index/Nutlope_hallmark.json +187 -0
  29. package/data/skill-index/Paramchoudhary_ResumeSkills.json +140 -96
  30. package/data/skill-index/ParthJadhav_app-store-screenshots.json +7 -5
  31. package/data/skill-index/addyosmani_agent-skills.json +572 -257
  32. package/data/skill-index/affaan-m_ECC.json +54685 -0
  33. package/data/skill-index/affaan-m_everything-claude-code.json +1903 -1248
  34. package/data/skill-index/alirezarezvani_claude-skills.json +14453 -8549
  35. package/data/skill-index/anthropics_skills.json +138 -98
  36. package/data/skill-index/antithesishq_antithesis-skills.json +173 -149
  37. package/data/skill-index/antonbabenko_terraform-skill.json +7 -5
  38. package/data/skill-index/ayghri_i-have-adhd.json +187 -0
  39. package/data/skill-index/badlogic_pi-skills.json +55 -39
  40. package/data/skill-index/blader_humanizer.json +187 -0
  41. package/data/skill-index/briiirussell_cybersecurity-skills.json +212 -343
  42. package/data/skill-index/bytedance_deer-flow.json +180 -126
  43. package/data/skill-index/cathrynlavery_diagram-design.json +187 -0
  44. package/data/skill-index/charlie947_answer-first.json +187 -0
  45. package/data/skill-index/charlie947_voiceprint.json +187 -0
  46. package/data/skill-index/cloudai-x_threejs-skills.json +149 -45
  47. package/data/skill-index/coreyhaines31_marketingskills.json +802 -467
  48. package/data/skill-index/davidondrej_skills.json +4580 -1075
  49. package/data/skill-index/emilkowalski_skills.json +353 -52
  50. package/data/skill-index/entireio_skills.json +185 -101
  51. package/data/skill-index/garrytan_gstack.json +968 -600
  52. package/data/skill-index/github_awesome-copilot.json +9624 -7636
  53. package/data/skill-index/google-labs-code_design.md.json +899 -0
  54. package/data/skill-index/google_skills.json +7013 -2434
  55. package/data/skill-index/hardikpandya_stop-slop.json +187 -0
  56. package/data/skill-index/heygen-com_hyperframes.json +191 -139
  57. package/data/skill-index/himself65_finance-skills.json +175 -340
  58. package/data/skill-index/ivan-magda_uikit-expert-skill.json +7 -5
  59. package/data/skill-index/kemiljk_fluid-design.json +7 -5
  60. package/data/skill-index/kepano_obsidian-skills.json +34 -24
  61. package/data/skill-index/luongnv89_asm.json +307 -219
  62. package/data/skill-index/luongnv89_idd.json +121 -107
  63. package/data/skill-index/luongnv89_skills.json +1503 -599
  64. package/data/skill-index/majidmanzarpour_threejs-game-skills.json +2024 -0
  65. package/data/skill-index/mattpocock_skills.json +596 -154
  66. package/data/skill-index/multica-ai_andrej-karpathy-skills.json +187 -0
  67. package/data/skill-index/mvanhorn_last30days-skill.json +16 -20
  68. package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +84 -70
  69. package/data/skill-index/obra_superpowers.json +95 -67
  70. package/data/skill-index/oliver-zehentleitner_keep-the-why.json +28 -26
  71. package/data/skill-index/openai_skills.json +8816 -0
  72. package/data/skill-index/pbakaus_impeccable.json +187 -0
  73. package/data/skill-index/romainsimon_paperasse.json +44 -32
  74. package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +319 -119
  75. package/data/skill-index/santifer_career-ops.json +1009 -14
  76. package/data/skill-index/sickn33_antigravity-awesome-skills.json +63856 -42252
  77. package/data/skill-index/slavingia_skills.json +68 -48
  78. package/data/skill-index/tt-a1i_archify.json +187 -0
  79. package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +7 -5
  80. package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +7 -5
  81. package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +7 -5
  82. package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +7 -5
  83. package/data/skill-index/warpdotdev_oz-skills.json +101 -71
  84. package/data/skill-index/zarazhangrui_follow-builders.json +7 -5
  85. package/data/skill-index/zarazhangrui_frontend-slides.json +187 -0
  86. package/data/skill-index-resources.json +172 -10
  87. package/dist/agent-skill-manager.js +486 -538
  88. package/dist/{chunk-LH2C3PE7.js → chunk-3KGAHUVB.js} +1 -1
  89. package/dist/chunk-CBDNF2SR.js +166 -0
  90. package/dist/chunk-ESKBKSXS.js +2 -0
  91. package/dist/chunk-KWWFXT5F.js +3 -0
  92. package/dist/config-JPFUVYBM.js +2 -0
  93. package/dist/{lock-NN2MADX7.js → lock-UEL3CMOV.js} +1 -1
  94. package/dist/spawn-JDSII5L3.js +2 -0
  95. package/dist/src-ORQ3FXUL.js +119 -0
  96. package/package.json +1 -1
  97. package/dist/chunk-BQ4RW237.js +0 -20
  98. package/dist/chunk-LS24FFOX.js +0 -3
  99. package/dist/config-AZYQEQOQ.js +0 -2
  100. package/dist/src-BD3KFE5H.js +0 -119
@@ -2,25 +2,27 @@
2
2
  "repoUrl": "https://github.com/luongnv89/skills.git",
3
3
  "owner": "luongnv89",
4
4
  "repo": "skills",
5
- "updatedAt": "2026-08-21T09:19:40.261Z",
6
- "skillCount": 35,
5
+ "updatedAt": "2026-09-09T12:09:30.531Z",
6
+ "skillCount": 39,
7
7
  "skills": [
8
8
  {
9
9
  "name": "agent-config",
10
10
  "description": "Create or update CLAUDE.md and AGENTS.md files following official best practices. Use when asked to create, audit, or improve agent config files (CLAUDE.md, AGENTS.md). Don't use for README/contributor docs or non-Claude IDE plugins.",
11
- "version": "1.3.1",
11
+ "version": "1.4.1",
12
12
  "license": "MIT",
13
13
  "creator": "",
14
14
  "compatibility": "",
15
15
  "allowedTools": [],
16
+ "tags": [],
17
+ "dependencies": [],
16
18
  "modelInvocable": true,
17
19
  "userInvocable": true,
18
20
  "installUrl": "github:luongnv89/skills:skills/agent-config",
19
21
  "relPath": "skills/agent-config",
20
22
  "verified": true,
21
- "tokenCount": 2546,
23
+ "tokenCount": 4057,
22
24
  "evalSummary": {
23
- "overallScore": 95,
25
+ "overallScore": 93,
24
26
  "grade": "A",
25
27
  "categories": [
26
28
  {
@@ -44,7 +46,7 @@
44
46
  {
45
47
  "id": "context-efficiency",
46
48
  "name": "Context efficiency",
47
- "score": 10,
49
+ "score": 8,
48
50
  "max": 10
49
51
  },
50
52
  {
@@ -84,8 +86,8 @@
84
86
  "max": 10
85
87
  }
86
88
  ],
87
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
88
- "evaluatedVersion": "1.3.1"
89
+ "evaluatedAt": "2026-09-09T12:09:29.859Z",
90
+ "evaluatedVersion": "1.4.1"
89
91
  },
90
92
  "evalSummaries": {
91
93
  "quality": {
@@ -93,7 +95,7 @@
93
95
  "providerVersion": "1.0.0",
94
96
  "schemaVersion": 1,
95
97
  "passed": true,
96
- "overallScore": 95,
98
+ "overallScore": 93,
97
99
  "grade": "A",
98
100
  "categories": [
99
101
  {
@@ -117,7 +119,7 @@
117
119
  {
118
120
  "id": "context-efficiency",
119
121
  "name": "Context efficiency",
120
- "score": 10,
122
+ "score": 8,
121
123
  "max": 10
122
124
  },
123
125
  {
@@ -157,12 +159,12 @@
157
159
  "max": 10
158
160
  }
159
161
  ],
160
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
161
- "evaluatedVersion": "1.3.1"
162
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
163
+ "evaluatedVersion": "1.4.1"
162
164
  },
163
165
  "skill-best-practice": {
164
166
  "providerId": "skill-best-practice",
165
- "providerVersion": "1.1.0",
167
+ "providerVersion": "1.2.0",
166
168
  "schemaVersion": 1,
167
169
  "passed": true,
168
170
  "overallScore": 100,
@@ -175,19 +177,21 @@
175
177
  "max": 14
176
178
  }
177
179
  ],
178
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
179
- "evaluatedVersion": "1.3.1"
180
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
181
+ "evaluatedVersion": "1.4.1"
180
182
  }
181
183
  }
182
184
  },
183
185
  {
184
186
  "name": "appstore-review-checker",
185
187
  "description": "Audit iOS/macOS apps against App Store Review Guidelines before submission, with evidence-backed verdicts and fixes. Don't use for Google Play, general code review, or rejection appeals.",
186
- "version": "1.2.1",
188
+ "version": "1.2.2",
187
189
  "license": "MIT",
188
190
  "creator": "",
189
191
  "compatibility": "",
190
192
  "allowedTools": [],
193
+ "tags": [],
194
+ "dependencies": [],
191
195
  "modelInvocable": true,
192
196
  "userInvocable": true,
193
197
  "installUrl": "github:luongnv89/skills:skills/appstore-review-checker",
@@ -259,8 +263,8 @@
259
263
  "max": 10
260
264
  }
261
265
  ],
262
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
263
- "evaluatedVersion": "1.2.1"
266
+ "evaluatedAt": "2026-09-09T12:09:29.859Z",
267
+ "evaluatedVersion": "1.2.2"
264
268
  },
265
269
  "evalSummaries": {
266
270
  "quality": {
@@ -332,12 +336,12 @@
332
336
  "max": 10
333
337
  }
334
338
  ],
335
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
336
- "evaluatedVersion": "1.2.1"
339
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
340
+ "evaluatedVersion": "1.2.2"
337
341
  },
338
342
  "skill-best-practice": {
339
343
  "providerId": "skill-best-practice",
340
- "providerVersion": "1.1.0",
344
+ "providerVersion": "1.2.0",
341
345
  "schemaVersion": 1,
342
346
  "passed": true,
343
347
  "overallScore": 100,
@@ -350,25 +354,27 @@
350
354
  "max": 14
351
355
  }
352
356
  ],
353
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
354
- "evaluatedVersion": "1.2.1"
357
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
358
+ "evaluatedVersion": "1.2.2"
355
359
  }
356
360
  }
357
361
  },
358
362
  {
359
363
  "name": "aso-marketing",
360
364
  "description": "Optimize App Store and Google Play listings via a 7-phase, plan-approval-gated ASO workflow (keyword strategy, metadata, localization). Don't use for web SEO, paid UA campaigns, or pre-submission compliance audits.",
361
- "version": "1.2.1",
365
+ "version": "1.3.0",
362
366
  "license": "MIT",
363
367
  "creator": "",
364
368
  "compatibility": "",
365
369
  "allowedTools": [],
370
+ "tags": [],
371
+ "dependencies": [],
366
372
  "modelInvocable": true,
367
373
  "userInvocable": true,
368
374
  "installUrl": "github:luongnv89/skills:skills/aso-marketing",
369
375
  "relPath": "skills/aso-marketing",
370
376
  "verified": true,
371
- "tokenCount": 2181,
377
+ "tokenCount": 2213,
372
378
  "evalSummary": {
373
379
  "overallScore": 94,
374
380
  "grade": "A",
@@ -434,8 +440,8 @@
434
440
  "max": 10
435
441
  }
436
442
  ],
437
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
438
- "evaluatedVersion": "1.2.1"
443
+ "evaluatedAt": "2026-09-09T12:09:29.859Z",
444
+ "evaluatedVersion": "1.3.0"
439
445
  },
440
446
  "evalSummaries": {
441
447
  "quality": {
@@ -507,12 +513,12 @@
507
513
  "max": 10
508
514
  }
509
515
  ],
510
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
511
- "evaluatedVersion": "1.2.1"
516
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
517
+ "evaluatedVersion": "1.3.0"
512
518
  },
513
519
  "skill-best-practice": {
514
520
  "providerId": "skill-best-practice",
515
- "providerVersion": "1.1.0",
521
+ "providerVersion": "1.2.0",
516
522
  "schemaVersion": 1,
517
523
  "passed": true,
518
524
  "overallScore": 100,
@@ -525,19 +531,21 @@
525
531
  "max": 14
526
532
  }
527
533
  ],
528
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
529
- "evaluatedVersion": "1.2.1"
534
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
535
+ "evaluatedVersion": "1.3.0"
530
536
  }
531
537
  }
532
538
  },
533
539
  {
534
540
  "name": "auto-push",
535
541
  "description": "Generate a commit message, stage all changes, and push to remote after scanning for secrets, large files, and protected-branch risks. Skip for opening PRs, code review, or cutting releases/tags.",
536
- "version": "1.0.3",
542
+ "version": "1.0.4",
537
543
  "license": "MIT",
538
544
  "creator": "",
539
545
  "compatibility": "",
540
546
  "allowedTools": [],
547
+ "tags": [],
548
+ "dependencies": [],
541
549
  "modelInvocable": true,
542
550
  "userInvocable": true,
543
551
  "installUrl": "github:luongnv89/skills:skills/auto-push",
@@ -609,8 +617,8 @@
609
617
  "max": 10
610
618
  }
611
619
  ],
612
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
613
- "evaluatedVersion": "1.0.3"
620
+ "evaluatedAt": "2026-09-09T12:09:29.859Z",
621
+ "evaluatedVersion": "1.0.4"
614
622
  },
615
623
  "evalSummaries": {
616
624
  "quality": {
@@ -682,12 +690,12 @@
682
690
  "max": 10
683
691
  }
684
692
  ],
685
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
686
- "evaluatedVersion": "1.0.3"
693
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
694
+ "evaluatedVersion": "1.0.4"
687
695
  },
688
696
  "skill-best-practice": {
689
697
  "providerId": "skill-best-practice",
690
- "providerVersion": "1.1.0",
698
+ "providerVersion": "1.2.0",
691
699
  "schemaVersion": 1,
692
700
  "passed": true,
693
701
  "overallScore": 100,
@@ -700,25 +708,27 @@
700
708
  "max": 14
701
709
  }
702
710
  ],
703
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
704
- "evaluatedVersion": "1.0.3"
711
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
712
+ "evaluatedVersion": "1.0.4"
705
713
  }
706
714
  }
707
715
  },
708
716
  {
709
717
  "name": "brand-name-checker",
710
718
  "description": "Check product and brand names for conflicts across trademarks, domains, social handles, and package registries. Returns a risk level and Proceed/Modify/Abandon recommendation. Skip for name brainstorming, logo design, or trademark filings.",
711
- "version": "1.3.2",
719
+ "version": "1.4.0",
712
720
  "license": "MIT",
713
721
  "creator": "",
714
722
  "compatibility": "",
715
723
  "allowedTools": [],
724
+ "tags": [],
725
+ "dependencies": [],
716
726
  "modelInvocable": true,
717
727
  "userInvocable": true,
718
728
  "installUrl": "github:luongnv89/skills:skills/brand-name-checker",
719
729
  "relPath": "skills/brand-name-checker",
720
730
  "verified": true,
721
- "tokenCount": 2814,
731
+ "tokenCount": 2868,
722
732
  "evalSummary": {
723
733
  "overallScore": 94,
724
734
  "grade": "A",
@@ -784,8 +794,8 @@
784
794
  "max": 10
785
795
  }
786
796
  ],
787
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
788
- "evaluatedVersion": "1.3.2"
797
+ "evaluatedAt": "2026-09-09T12:09:29.859Z",
798
+ "evaluatedVersion": "1.4.0"
789
799
  },
790
800
  "evalSummaries": {
791
801
  "quality": {
@@ -857,12 +867,12 @@
857
867
  "max": 10
858
868
  }
859
869
  ],
860
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
861
- "evaluatedVersion": "1.3.2"
870
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
871
+ "evaluatedVersion": "1.4.0"
862
872
  },
863
873
  "skill-best-practice": {
864
874
  "providerId": "skill-best-practice",
865
- "providerVersion": "1.1.0",
875
+ "providerVersion": "1.2.0",
866
876
  "schemaVersion": 1,
867
877
  "passed": true,
868
878
  "overallScore": 100,
@@ -875,25 +885,27 @@
875
885
  "max": 14
876
886
  }
877
887
  ],
878
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
879
- "evaluatedVersion": "1.3.2"
888
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
889
+ "evaluatedVersion": "1.4.0"
880
890
  }
881
891
  }
882
892
  },
883
893
  {
884
894
  "name": "cli-builder",
885
895
  "description": "Build production-quality CLIs with language detection and a five-step approval-gated workflow. Use when wrapping an existing module or app. Don't use for GUI/TUI apps, web APIs, or one-off shell scripts.",
886
- "version": "1.0.5",
896
+ "version": "1.1.0",
887
897
  "license": "MIT",
888
898
  "creator": "",
889
899
  "compatibility": "",
890
900
  "allowedTools": [],
901
+ "tags": [],
902
+ "dependencies": [],
891
903
  "modelInvocable": true,
892
904
  "userInvocable": true,
893
905
  "installUrl": "github:luongnv89/skills:skills/cli-builder",
894
906
  "relPath": "skills/cli-builder",
895
907
  "verified": true,
896
- "tokenCount": 3057,
908
+ "tokenCount": 3037,
897
909
  "evalSummary": {
898
910
  "overallScore": 93,
899
911
  "grade": "A",
@@ -959,8 +971,8 @@
959
971
  "max": 10
960
972
  }
961
973
  ],
962
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
963
- "evaluatedVersion": "1.0.5"
974
+ "evaluatedAt": "2026-09-09T12:09:29.859Z",
975
+ "evaluatedVersion": "1.1.0"
964
976
  },
965
977
  "evalSummaries": {
966
978
  "quality": {
@@ -1032,12 +1044,12 @@
1032
1044
  "max": 10
1033
1045
  }
1034
1046
  ],
1035
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
1036
- "evaluatedVersion": "1.0.5"
1047
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
1048
+ "evaluatedVersion": "1.1.0"
1037
1049
  },
1038
1050
  "skill-best-practice": {
1039
1051
  "providerId": "skill-best-practice",
1040
- "providerVersion": "1.1.0",
1052
+ "providerVersion": "1.2.0",
1041
1053
  "schemaVersion": 1,
1042
1054
  "passed": true,
1043
1055
  "overallScore": 100,
@@ -1050,25 +1062,27 @@
1050
1062
  "max": 14
1051
1063
  }
1052
1064
  ],
1053
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
1054
- "evaluatedVersion": "1.0.5"
1065
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
1066
+ "evaluatedVersion": "1.1.0"
1055
1067
  }
1056
1068
  }
1057
1069
  },
1058
1070
  {
1059
1071
  "name": "code-review",
1060
1072
  "description": "Review or improve code — one skill, four modes: bug/security review (default), performance, clean-code audit, slop cleanup. Pass mode:review|perf|clean|cleanup or infer. Don't use for writing features or generating tests (use test-coverage).",
1061
- "version": "2.1.0",
1073
+ "version": "2.1.1",
1062
1074
  "license": "MIT",
1063
1075
  "creator": "",
1064
1076
  "compatibility": "",
1065
1077
  "allowedTools": [],
1078
+ "tags": [],
1079
+ "dependencies": [],
1066
1080
  "modelInvocable": true,
1067
1081
  "userInvocable": true,
1068
1082
  "installUrl": "github:luongnv89/skills:skills/code-review",
1069
1083
  "relPath": "skills/code-review",
1070
1084
  "verified": true,
1071
- "tokenCount": 1868,
1085
+ "tokenCount": 1916,
1072
1086
  "evalSummary": {
1073
1087
  "overallScore": 95,
1074
1088
  "grade": "A",
@@ -1134,8 +1148,8 @@
1134
1148
  "max": 10
1135
1149
  }
1136
1150
  ],
1137
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
1138
- "evaluatedVersion": "2.1.0"
1151
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
1152
+ "evaluatedVersion": "2.1.1"
1139
1153
  },
1140
1154
  "evalSummaries": {
1141
1155
  "quality": {
@@ -1207,12 +1221,12 @@
1207
1221
  "max": 10
1208
1222
  }
1209
1223
  ],
1210
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
1211
- "evaluatedVersion": "2.1.0"
1224
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
1225
+ "evaluatedVersion": "2.1.1"
1212
1226
  },
1213
1227
  "skill-best-practice": {
1214
1228
  "providerId": "skill-best-practice",
1215
- "providerVersion": "1.1.0",
1229
+ "providerVersion": "1.2.0",
1216
1230
  "schemaVersion": 1,
1217
1231
  "passed": true,
1218
1232
  "overallScore": 100,
@@ -1225,28 +1239,30 @@
1225
1239
  "max": 14
1226
1240
  }
1227
1241
  ],
1228
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
1229
- "evaluatedVersion": "2.1.0"
1242
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
1243
+ "evaluatedVersion": "2.1.1"
1230
1244
  }
1231
1245
  }
1232
1246
  },
1233
1247
  {
1234
1248
  "name": "codebase-modernizer",
1235
1249
  "description": "Audit a stale, inherited, or messy codebase — deps, bugs, security, tests, CI, docs, UI/UX — then emit a phased, testable modernization plan. Read-only: plans upgrades, never applies them. Not for single-PR review, PRD-to-tasks, or UX-only audits.",
1236
- "version": "1.2.2",
1250
+ "version": "1.3.0",
1237
1251
  "license": "MIT",
1238
1252
  "creator": "",
1239
1253
  "compatibility": "",
1240
1254
  "allowedTools": [],
1255
+ "tags": [],
1256
+ "dependencies": [],
1241
1257
  "modelInvocable": true,
1242
1258
  "userInvocable": true,
1243
1259
  "installUrl": "github:luongnv89/skills:skills/codebase-modernizer",
1244
1260
  "relPath": "skills/codebase-modernizer",
1245
1261
  "verified": true,
1246
- "tokenCount": 6514,
1262
+ "tokenCount": 5957,
1247
1263
  "evalSummary": {
1248
- "overallScore": 88,
1249
- "grade": "B",
1264
+ "overallScore": 91,
1265
+ "grade": "A",
1250
1266
  "categories": [
1251
1267
  {
1252
1268
  "id": "structure",
@@ -1263,13 +1279,13 @@
1263
1279
  {
1264
1280
  "id": "prompt-engineering",
1265
1281
  "name": "Prompt engineering",
1266
- "score": 8,
1282
+ "score": 9,
1267
1283
  "max": 10
1268
1284
  },
1269
1285
  {
1270
1286
  "id": "context-efficiency",
1271
1287
  "name": "Context efficiency",
1272
- "score": 6,
1288
+ "score": 8,
1273
1289
  "max": 10
1274
1290
  },
1275
1291
  {
@@ -1309,8 +1325,8 @@
1309
1325
  "max": 10
1310
1326
  }
1311
1327
  ],
1312
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
1313
- "evaluatedVersion": "1.2.2"
1328
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
1329
+ "evaluatedVersion": "1.3.0"
1314
1330
  },
1315
1331
  "evalSummaries": {
1316
1332
  "quality": {
@@ -1318,8 +1334,8 @@
1318
1334
  "providerVersion": "1.0.0",
1319
1335
  "schemaVersion": 1,
1320
1336
  "passed": true,
1321
- "overallScore": 87,
1322
- "grade": "B",
1337
+ "overallScore": 90,
1338
+ "grade": "A",
1323
1339
  "categories": [
1324
1340
  {
1325
1341
  "id": "structure",
@@ -1336,13 +1352,13 @@
1336
1352
  {
1337
1353
  "id": "prompt-engineering",
1338
1354
  "name": "Prompt engineering",
1339
- "score": 8,
1355
+ "score": 9,
1340
1356
  "max": 10
1341
1357
  },
1342
1358
  {
1343
1359
  "id": "context-efficiency",
1344
1360
  "name": "Context efficiency",
1345
- "score": 6,
1361
+ "score": 8,
1346
1362
  "max": 10
1347
1363
  },
1348
1364
  {
@@ -1382,12 +1398,12 @@
1382
1398
  "max": 10
1383
1399
  }
1384
1400
  ],
1385
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
1386
- "evaluatedVersion": "1.2.2"
1401
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
1402
+ "evaluatedVersion": "1.3.0"
1387
1403
  },
1388
1404
  "skill-best-practice": {
1389
1405
  "providerId": "skill-best-practice",
1390
- "providerVersion": "1.1.0",
1406
+ "providerVersion": "1.2.0",
1391
1407
  "schemaVersion": 1,
1392
1408
  "passed": true,
1393
1409
  "overallScore": 100,
@@ -1400,8 +1416,8 @@
1400
1416
  "max": 14
1401
1417
  }
1402
1418
  ],
1403
- "evaluatedAt": "2026-08-21T09:19:39.766Z",
1404
- "evaluatedVersion": "1.2.2"
1419
+ "evaluatedAt": "2026-09-09T12:09:29.860Z",
1420
+ "evaluatedVersion": "1.3.0"
1405
1421
  }
1406
1422
  }
1407
1423
  },
@@ -1413,6 +1429,8 @@
1413
1429
  "creator": "",
1414
1430
  "compatibility": "macOS, Linux (Debian/Ubuntu/Fedora/Arch), Windows (winget/PowerShell). Needs network and a package manager or permission to install one. Additive by default; anything that changes a working install needs an explicit per-item yes.",
1415
1431
  "allowedTools": [],
1432
+ "tags": [],
1433
+ "dependencies": [],
1416
1434
  "modelInvocable": true,
1417
1435
  "userInvocable": true,
1418
1436
  "installUrl": "github:luongnv89/skills:skills/dev-machine-setup",
@@ -1484,7 +1502,7 @@
1484
1502
  "max": 10
1485
1503
  }
1486
1504
  ],
1487
- "evaluatedAt": "2026-08-21T09:19:39.777Z",
1505
+ "evaluatedAt": "2026-09-09T12:09:29.872Z",
1488
1506
  "evaluatedVersion": "0.9.0"
1489
1507
  },
1490
1508
  "evalSummaries": {
@@ -1557,12 +1575,12 @@
1557
1575
  "max": 10
1558
1576
  }
1559
1577
  ],
1560
- "evaluatedAt": "2026-08-21T09:19:39.777Z",
1578
+ "evaluatedAt": "2026-09-09T12:09:29.873Z",
1561
1579
  "evaluatedVersion": "0.9.0"
1562
1580
  },
1563
1581
  "skill-best-practice": {
1564
1582
  "providerId": "skill-best-practice",
1565
- "providerVersion": "1.1.0",
1583
+ "providerVersion": "1.2.0",
1566
1584
  "schemaVersion": 1,
1567
1585
  "passed": true,
1568
1586
  "overallScore": 100,
@@ -1575,7 +1593,7 @@
1575
1593
  "max": 15
1576
1594
  }
1577
1595
  ],
1578
- "evaluatedAt": "2026-08-21T09:19:39.777Z",
1596
+ "evaluatedAt": "2026-09-09T12:09:29.873Z",
1579
1597
  "evaluatedVersion": "0.9.0"
1580
1598
  }
1581
1599
  }
@@ -1583,19 +1601,21 @@
1583
1601
  {
1584
1602
  "name": "devops-pipeline",
1585
1603
  "description": "Configure pre-commit hooks and lean GitHub Actions for shift-left quality assurance. Use when adding or auditing CI/CD to maximize local test coverage and minimize CI cost. Skip for Terraform/K8s, deployment pipelines, or non-GitHub CI providers.",
1586
- "version": "2.0.3",
1604
+ "version": "2.2.1",
1587
1605
  "license": "MIT",
1588
1606
  "creator": "",
1589
1607
  "compatibility": "",
1590
1608
  "allowedTools": [],
1609
+ "tags": [],
1610
+ "dependencies": [],
1591
1611
  "modelInvocable": true,
1592
1612
  "userInvocable": true,
1593
1613
  "installUrl": "github:luongnv89/skills:skills/devops-pipeline",
1594
1614
  "relPath": "skills/devops-pipeline",
1595
1615
  "verified": true,
1596
- "tokenCount": 3034,
1616
+ "tokenCount": 4933,
1597
1617
  "evalSummary": {
1598
- "overallScore": 93,
1618
+ "overallScore": 92,
1599
1619
  "grade": "A",
1600
1620
  "categories": [
1601
1621
  {
@@ -1619,13 +1639,13 @@
1619
1639
  {
1620
1640
  "id": "context-efficiency",
1621
1641
  "name": "Context efficiency",
1622
- "score": 10,
1642
+ "score": 8,
1623
1643
  "max": 10
1624
1644
  },
1625
1645
  {
1626
1646
  "id": "safety",
1627
1647
  "name": "Safety & guardrails",
1628
- "score": 9,
1648
+ "score": 10,
1629
1649
  "max": 10
1630
1650
  },
1631
1651
  {
@@ -1659,8 +1679,8 @@
1659
1679
  "max": 10
1660
1680
  }
1661
1681
  ],
1662
- "evaluatedAt": "2026-08-21T09:19:39.783Z",
1663
- "evaluatedVersion": "2.0.3"
1682
+ "evaluatedAt": "2026-09-09T12:09:29.877Z",
1683
+ "evaluatedVersion": "2.2.1"
1664
1684
  },
1665
1685
  "evalSummaries": {
1666
1686
  "quality": {
@@ -1668,7 +1688,7 @@
1668
1688
  "providerVersion": "1.0.0",
1669
1689
  "schemaVersion": 1,
1670
1690
  "passed": true,
1671
- "overallScore": 93,
1691
+ "overallScore": 92,
1672
1692
  "grade": "A",
1673
1693
  "categories": [
1674
1694
  {
@@ -1692,13 +1712,13 @@
1692
1712
  {
1693
1713
  "id": "context-efficiency",
1694
1714
  "name": "Context efficiency",
1695
- "score": 10,
1715
+ "score": 8,
1696
1716
  "max": 10
1697
1717
  },
1698
1718
  {
1699
1719
  "id": "safety",
1700
1720
  "name": "Safety & guardrails",
1701
- "score": 9,
1721
+ "score": 10,
1702
1722
  "max": 10
1703
1723
  },
1704
1724
  {
@@ -1732,12 +1752,12 @@
1732
1752
  "max": 10
1733
1753
  }
1734
1754
  ],
1735
- "evaluatedAt": "2026-08-21T09:19:39.783Z",
1736
- "evaluatedVersion": "2.0.3"
1755
+ "evaluatedAt": "2026-09-09T12:09:29.877Z",
1756
+ "evaluatedVersion": "2.2.1"
1737
1757
  },
1738
1758
  "skill-best-practice": {
1739
1759
  "providerId": "skill-best-practice",
1740
- "providerVersion": "1.1.0",
1760
+ "providerVersion": "1.2.0",
1741
1761
  "schemaVersion": 1,
1742
1762
  "passed": true,
1743
1763
  "overallScore": 100,
@@ -1750,8 +1770,8 @@
1750
1770
  "max": 14
1751
1771
  }
1752
1772
  ],
1753
- "evaluatedAt": "2026-08-21T09:19:39.783Z",
1754
- "evaluatedVersion": "2.0.3"
1773
+ "evaluatedAt": "2026-09-09T12:09:29.877Z",
1774
+ "evaluatedVersion": "2.2.1"
1755
1775
  }
1756
1776
  }
1757
1777
  },
@@ -1763,6 +1783,8 @@
1763
1783
  "creator": "",
1764
1784
  "compatibility": "",
1765
1785
  "allowedTools": [],
1786
+ "tags": [],
1787
+ "dependencies": [],
1766
1788
  "modelInvocable": true,
1767
1789
  "userInvocable": true,
1768
1790
  "installUrl": "github:luongnv89/skills:skills/diagram-generator",
@@ -1834,7 +1856,7 @@
1834
1856
  "max": 10
1835
1857
  }
1836
1858
  ],
1837
- "evaluatedAt": "2026-08-21T09:19:39.788Z",
1859
+ "evaluatedAt": "2026-09-09T12:09:29.881Z",
1838
1860
  "evaluatedVersion": "1.1.2"
1839
1861
  },
1840
1862
  "evalSummaries": {
@@ -1907,12 +1929,12 @@
1907
1929
  "max": 10
1908
1930
  }
1909
1931
  ],
1910
- "evaluatedAt": "2026-08-21T09:19:39.788Z",
1932
+ "evaluatedAt": "2026-09-09T12:09:29.882Z",
1911
1933
  "evaluatedVersion": "1.1.2"
1912
1934
  },
1913
1935
  "skill-best-practice": {
1914
1936
  "providerId": "skill-best-practice",
1915
- "providerVersion": "1.1.0",
1937
+ "providerVersion": "1.2.0",
1916
1938
  "schemaVersion": 1,
1917
1939
  "passed": true,
1918
1940
  "overallScore": 100,
@@ -1925,7 +1947,7 @@
1925
1947
  "max": 14
1926
1948
  }
1927
1949
  ],
1928
- "evaluatedAt": "2026-08-21T09:19:39.788Z",
1950
+ "evaluatedAt": "2026-09-09T12:09:29.882Z",
1929
1951
  "evaluatedVersion": "1.1.2"
1930
1952
  }
1931
1953
  }
@@ -1933,11 +1955,13 @@
1933
1955
  {
1934
1956
  "name": "doc-manager",
1935
1957
  "description": "Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script. Don't use for API-reference autogen (JSDoc/Sphinx), landing pages, or CLAUDE.md/AGENTS.md.",
1936
- "version": "2.0.2",
1958
+ "version": "2.0.3",
1937
1959
  "license": "MIT",
1938
1960
  "creator": "",
1939
1961
  "compatibility": "",
1940
1962
  "allowedTools": [],
1963
+ "tags": [],
1964
+ "dependencies": [],
1941
1965
  "modelInvocable": true,
1942
1966
  "userInvocable": true,
1943
1967
  "installUrl": "github:luongnv89/skills:skills/doc-manager",
@@ -2009,8 +2033,8 @@
2009
2033
  "max": 10
2010
2034
  }
2011
2035
  ],
2012
- "evaluatedAt": "2026-08-21T09:19:39.794Z",
2013
- "evaluatedVersion": "2.0.2"
2036
+ "evaluatedAt": "2026-09-09T12:09:29.883Z",
2037
+ "evaluatedVersion": "2.0.3"
2014
2038
  },
2015
2039
  "evalSummaries": {
2016
2040
  "quality": {
@@ -2082,12 +2106,12 @@
2082
2106
  "max": 10
2083
2107
  }
2084
2108
  ],
2085
- "evaluatedAt": "2026-08-21T09:19:39.794Z",
2086
- "evaluatedVersion": "2.0.2"
2109
+ "evaluatedAt": "2026-09-09T12:09:29.884Z",
2110
+ "evaluatedVersion": "2.0.3"
2087
2111
  },
2088
2112
  "skill-best-practice": {
2089
2113
  "providerId": "skill-best-practice",
2090
- "providerVersion": "1.1.0",
2114
+ "providerVersion": "1.2.0",
2091
2115
  "schemaVersion": 1,
2092
2116
  "passed": true,
2093
2117
  "overallScore": 100,
@@ -2100,25 +2124,27 @@
2100
2124
  "max": 14
2101
2125
  }
2102
2126
  ],
2103
- "evaluatedAt": "2026-08-21T09:19:39.794Z",
2104
- "evaluatedVersion": "2.0.2"
2127
+ "evaluatedAt": "2026-09-09T12:09:29.884Z",
2128
+ "evaluatedVersion": "2.0.3"
2105
2129
  }
2106
2130
  }
2107
2131
  },
2108
2132
  {
2109
2133
  "name": "dont-make-me-think",
2110
2134
  "description": "Review UI usability using Steve Krug's principles and produce a scannable report. Use for UX audits of screenshots, URLs, or code. Don't use for brand critique, WCAG audits, or backend/API review.",
2111
- "version": "1.3.2",
2135
+ "version": "1.4.1",
2112
2136
  "license": "MIT",
2113
2137
  "creator": "",
2114
2138
  "compatibility": "",
2115
2139
  "allowedTools": [],
2140
+ "tags": [],
2141
+ "dependencies": [],
2116
2142
  "modelInvocable": true,
2117
2143
  "userInvocable": true,
2118
2144
  "installUrl": "github:luongnv89/skills:skills/dont-make-me-think",
2119
2145
  "relPath": "skills/dont-make-me-think",
2120
2146
  "verified": true,
2121
- "tokenCount": 3476,
2147
+ "tokenCount": 4021,
2122
2148
  "evalSummary": {
2123
2149
  "overallScore": 93,
2124
2150
  "grade": "A",
@@ -2184,8 +2210,8 @@
2184
2210
  "max": 10
2185
2211
  }
2186
2212
  ],
2187
- "evaluatedAt": "2026-08-21T09:19:39.801Z",
2188
- "evaluatedVersion": "1.3.2"
2213
+ "evaluatedAt": "2026-09-09T12:09:29.890Z",
2214
+ "evaluatedVersion": "1.4.1"
2189
2215
  },
2190
2216
  "evalSummaries": {
2191
2217
  "quality": {
@@ -2257,12 +2283,12 @@
2257
2283
  "max": 10
2258
2284
  }
2259
2285
  ],
2260
- "evaluatedAt": "2026-08-21T09:19:39.801Z",
2261
- "evaluatedVersion": "1.3.2"
2286
+ "evaluatedAt": "2026-09-09T12:09:29.891Z",
2287
+ "evaluatedVersion": "1.4.1"
2262
2288
  },
2263
2289
  "skill-best-practice": {
2264
2290
  "providerId": "skill-best-practice",
2265
- "providerVersion": "1.1.0",
2291
+ "providerVersion": "1.2.0",
2266
2292
  "schemaVersion": 1,
2267
2293
  "passed": true,
2268
2294
  "overallScore": 100,
@@ -2275,19 +2301,21 @@
2275
2301
  "max": 14
2276
2302
  }
2277
2303
  ],
2278
- "evaluatedAt": "2026-08-21T09:19:39.801Z",
2279
- "evaluatedVersion": "1.3.2"
2304
+ "evaluatedAt": "2026-09-09T12:09:29.891Z",
2305
+ "evaluatedVersion": "1.4.1"
2280
2306
  }
2281
2307
  }
2282
2308
  },
2283
2309
  {
2284
2310
  "name": "fork-upstream-sync",
2285
2311
  "description": "Sync a GitHub fork with upstream while keeping unmerged feature branches and open PRs mergeable. Use for rebase on upstream, PR conflicts, integration main. Don't use for git init, releases, or non-fork repos.",
2286
- "version": "1.3.2",
2312
+ "version": "1.3.3",
2287
2313
  "license": "MIT",
2288
2314
  "creator": "",
2289
2315
  "compatibility": "",
2290
2316
  "allowedTools": [],
2317
+ "tags": [],
2318
+ "dependencies": [],
2291
2319
  "modelInvocable": true,
2292
2320
  "userInvocable": true,
2293
2321
  "installUrl": "github:luongnv89/skills:skills/fork-upstream-sync",
@@ -2359,8 +2387,8 @@
2359
2387
  "max": 10
2360
2388
  }
2361
2389
  ],
2362
- "evaluatedAt": "2026-08-21T09:19:39.801Z",
2363
- "evaluatedVersion": "1.3.2"
2390
+ "evaluatedAt": "2026-09-09T12:09:29.891Z",
2391
+ "evaluatedVersion": "1.3.3"
2364
2392
  },
2365
2393
  "evalSummaries": {
2366
2394
  "quality": {
@@ -2432,12 +2460,12 @@
2432
2460
  "max": 10
2433
2461
  }
2434
2462
  ],
2435
- "evaluatedAt": "2026-08-21T09:19:39.801Z",
2436
- "evaluatedVersion": "1.3.2"
2463
+ "evaluatedAt": "2026-09-09T12:09:29.891Z",
2464
+ "evaluatedVersion": "1.3.3"
2437
2465
  },
2438
2466
  "skill-best-practice": {
2439
2467
  "providerId": "skill-best-practice",
2440
- "providerVersion": "1.1.0",
2468
+ "providerVersion": "1.2.0",
2441
2469
  "schemaVersion": 1,
2442
2470
  "passed": true,
2443
2471
  "overallScore": 100,
@@ -2450,19 +2478,21 @@
2450
2478
  "max": 14
2451
2479
  }
2452
2480
  ],
2453
- "evaluatedAt": "2026-08-21T09:19:39.801Z",
2454
- "evaluatedVersion": "1.3.2"
2481
+ "evaluatedAt": "2026-09-09T12:09:29.891Z",
2482
+ "evaluatedVersion": "1.3.3"
2455
2483
  }
2456
2484
  }
2457
2485
  },
2458
2486
  {
2459
2487
  "name": "frontend-design",
2460
2488
  "description": "Build production-grade frontend interfaces with distinctive aesthetics and working code. Use for UI components, pages, or frontend features. Don't use for backend/API work or usability-only audits.",
2461
- "version": "1.2.4",
2489
+ "version": "1.2.5",
2462
2490
  "license": "MIT",
2463
2491
  "creator": "",
2464
2492
  "compatibility": "",
2465
2493
  "allowedTools": [],
2494
+ "tags": [],
2495
+ "dependencies": [],
2466
2496
  "modelInvocable": true,
2467
2497
  "userInvocable": true,
2468
2498
  "installUrl": "github:luongnv89/skills:skills/frontend-design",
@@ -2534,8 +2564,8 @@
2534
2564
  "max": 10
2535
2565
  }
2536
2566
  ],
2537
- "evaluatedAt": "2026-08-21T09:19:39.804Z",
2538
- "evaluatedVersion": "1.2.4"
2567
+ "evaluatedAt": "2026-09-09T12:09:29.895Z",
2568
+ "evaluatedVersion": "1.2.5"
2539
2569
  },
2540
2570
  "evalSummaries": {
2541
2571
  "quality": {
@@ -2607,12 +2637,12 @@
2607
2637
  "max": 10
2608
2638
  }
2609
2639
  ],
2610
- "evaluatedAt": "2026-08-21T09:19:39.805Z",
2611
- "evaluatedVersion": "1.2.4"
2640
+ "evaluatedAt": "2026-09-09T12:09:29.895Z",
2641
+ "evaluatedVersion": "1.2.5"
2612
2642
  },
2613
2643
  "skill-best-practice": {
2614
2644
  "providerId": "skill-best-practice",
2615
- "providerVersion": "1.1.0",
2645
+ "providerVersion": "1.2.0",
2616
2646
  "schemaVersion": 1,
2617
2647
  "passed": true,
2618
2648
  "overallScore": 100,
@@ -2625,25 +2655,27 @@
2625
2655
  "max": 14
2626
2656
  }
2627
2657
  ],
2628
- "evaluatedAt": "2026-08-21T09:19:39.805Z",
2629
- "evaluatedVersion": "1.2.4"
2658
+ "evaluatedAt": "2026-09-09T12:09:29.895Z",
2659
+ "evaluatedVersion": "1.2.5"
2630
2660
  }
2631
2661
  }
2632
2662
  },
2633
2663
  {
2634
- "name": "herdr-agent-comms",
2635
- "description": "Manage AI agent fleets in Herdr: split root + sub-agents into one tab as a tiled grid, message/wait/read via herdr CLI, steer any pane. Use for Herdr multi-agent fleets. Don't use for tmux, screen, or non-Herdr terminals.",
2636
- "version": "1.23.0",
2664
+ "name": "herdr-agent",
2665
+ "description": "Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; `help` lists every operation. Use for Herdr fleets. Don't use for tmux, screen, or non-Herdr terminals.",
2666
+ "version": "3.0.0",
2637
2667
  "license": "MIT",
2638
2668
  "creator": "",
2639
- "compatibility": "Requires `herdr` on PATH and a running Herdr server (`herdr status`).",
2669
+ "compatibility": "Requires herdr 0.9.0 or later on PATH and a running Herdr server (`herdr status`) for every operation except `help`, which runs no herdr command. The agent surface (`agent start`, `agent prompt --wait`, `agent wait`) and `api snapshot` are load-bearing.",
2640
2670
  "allowedTools": [],
2671
+ "tags": [],
2672
+ "dependencies": [],
2641
2673
  "modelInvocable": true,
2642
2674
  "userInvocable": true,
2643
- "installUrl": "github:luongnv89/skills:skills/herdr-agent-comms",
2644
- "relPath": "skills/herdr-agent-comms",
2675
+ "installUrl": "github:luongnv89/skills:skills/herdr-agent",
2676
+ "relPath": "skills/herdr-agent",
2645
2677
  "verified": true,
2646
- "tokenCount": 3587,
2678
+ "tokenCount": 5336,
2647
2679
  "evalSummary": {
2648
2680
  "overallScore": 92,
2649
2681
  "grade": "A",
@@ -2709,8 +2741,8 @@
2709
2741
  "max": 10
2710
2742
  }
2711
2743
  ],
2712
- "evaluatedAt": "2026-08-21T09:19:39.807Z",
2713
- "evaluatedVersion": "1.23.0"
2744
+ "evaluatedAt": "2026-09-09T12:09:29.897Z",
2745
+ "evaluatedVersion": "3.0.0"
2714
2746
  },
2715
2747
  "evalSummaries": {
2716
2748
  "quality": {
@@ -2718,7 +2750,7 @@
2718
2750
  "providerVersion": "1.0.0",
2719
2751
  "schemaVersion": 1,
2720
2752
  "passed": true,
2721
- "overallScore": 91,
2753
+ "overallScore": 92,
2722
2754
  "grade": "A",
2723
2755
  "categories": [
2724
2756
  {
@@ -2778,16 +2810,16 @@
2778
2810
  {
2779
2811
  "id": "script-lint",
2780
2812
  "name": "Script linting",
2781
- "score": 9,
2813
+ "score": 10,
2782
2814
  "max": 10
2783
2815
  }
2784
2816
  ],
2785
- "evaluatedAt": "2026-08-21T09:19:39.808Z",
2786
- "evaluatedVersion": "1.23.0"
2817
+ "evaluatedAt": "2026-09-09T12:09:29.897Z",
2818
+ "evaluatedVersion": "3.0.0"
2787
2819
  },
2788
2820
  "skill-best-practice": {
2789
2821
  "providerId": "skill-best-practice",
2790
- "providerVersion": "1.1.0",
2822
+ "providerVersion": "1.2.0",
2791
2823
  "schemaVersion": 1,
2792
2824
  "passed": true,
2793
2825
  "overallScore": 100,
@@ -2800,8 +2832,8 @@
2800
2832
  "max": 15
2801
2833
  }
2802
2834
  ],
2803
- "evaluatedAt": "2026-08-21T09:19:39.808Z",
2804
- "evaluatedVersion": "1.23.0"
2835
+ "evaluatedAt": "2026-09-09T12:09:29.897Z",
2836
+ "evaluatedVersion": "3.0.0"
2805
2837
  }
2806
2838
  }
2807
2839
  },
@@ -2813,6 +2845,8 @@
2813
2845
  "creator": "",
2814
2846
  "compatibility": "",
2815
2847
  "allowedTools": [],
2848
+ "tags": [],
2849
+ "dependencies": [],
2816
2850
  "modelInvocable": true,
2817
2851
  "userInvocable": true,
2818
2852
  "installUrl": "github:luongnv89/skills:skills/idea-validator",
@@ -2884,7 +2918,7 @@
2884
2918
  "max": 10
2885
2919
  }
2886
2920
  ],
2887
- "evaluatedAt": "2026-08-21T09:19:39.808Z",
2921
+ "evaluatedAt": "2026-09-09T12:09:29.905Z",
2888
2922
  "evaluatedVersion": "1.5.0"
2889
2923
  },
2890
2924
  "evalSummaries": {
@@ -2957,12 +2991,12 @@
2957
2991
  "max": 10
2958
2992
  }
2959
2993
  ],
2960
- "evaluatedAt": "2026-08-21T09:19:39.811Z",
2994
+ "evaluatedAt": "2026-09-09T12:09:29.908Z",
2961
2995
  "evaluatedVersion": "1.5.0"
2962
2996
  },
2963
2997
  "skill-best-practice": {
2964
2998
  "providerId": "skill-best-practice",
2965
- "providerVersion": "1.1.0",
2999
+ "providerVersion": "1.2.0",
2966
3000
  "schemaVersion": 1,
2967
3001
  "passed": true,
2968
3002
  "overallScore": 100,
@@ -2975,7 +3009,7 @@
2975
3009
  "max": 14
2976
3010
  }
2977
3011
  ],
2978
- "evaluatedAt": "2026-08-21T09:19:39.811Z",
3012
+ "evaluatedAt": "2026-09-09T12:09:29.908Z",
2979
3013
  "evaluatedVersion": "1.5.0"
2980
3014
  }
2981
3015
  }
@@ -2983,17 +3017,19 @@
2983
3017
  {
2984
3018
  "name": "install-script-generator",
2985
3019
  "description": "Generate cross-platform install scripts for any software or library — a standalone install.sh runnable via a curl/wget one-liner with OS, arch, and package manager detection. Don't use for Dockerfiles, CI/CD pipelines, or one-off shell scripts.",
2986
- "version": "2.2.1",
3020
+ "version": "2.2.3",
2987
3021
  "license": "MIT",
2988
3022
  "creator": "",
2989
3023
  "compatibility": "",
2990
3024
  "allowedTools": [],
3025
+ "tags": [],
3026
+ "dependencies": [],
2991
3027
  "modelInvocable": true,
2992
3028
  "userInvocable": true,
2993
3029
  "installUrl": "github:luongnv89/skills:skills/install-script-generator",
2994
3030
  "relPath": "skills/install-script-generator",
2995
3031
  "verified": true,
2996
- "tokenCount": 1806,
3032
+ "tokenCount": 1878,
2997
3033
  "evalSummary": {
2998
3034
  "overallScore": 93,
2999
3035
  "grade": "A",
@@ -3059,8 +3095,8 @@
3059
3095
  "max": 10
3060
3096
  }
3061
3097
  ],
3062
- "evaluatedAt": "2026-08-21T09:19:39.816Z",
3063
- "evaluatedVersion": "2.2.1"
3098
+ "evaluatedAt": "2026-09-09T12:09:29.910Z",
3099
+ "evaluatedVersion": "2.2.3"
3064
3100
  },
3065
3101
  "evalSummaries": {
3066
3102
  "quality": {
@@ -3132,12 +3168,12 @@
3132
3168
  "max": 10
3133
3169
  }
3134
3170
  ],
3135
- "evaluatedAt": "2026-08-21T09:19:39.819Z",
3136
- "evaluatedVersion": "2.2.1"
3171
+ "evaluatedAt": "2026-09-09T12:09:29.910Z",
3172
+ "evaluatedVersion": "2.2.3"
3137
3173
  },
3138
3174
  "skill-best-practice": {
3139
3175
  "providerId": "skill-best-practice",
3140
- "providerVersion": "1.1.0",
3176
+ "providerVersion": "1.2.0",
3141
3177
  "schemaVersion": 1,
3142
3178
  "passed": true,
3143
3179
  "overallScore": 100,
@@ -3150,28 +3186,30 @@
3150
3186
  "max": 14
3151
3187
  }
3152
3188
  ],
3153
- "evaluatedAt": "2026-08-21T09:19:39.819Z",
3154
- "evaluatedVersion": "2.2.1"
3189
+ "evaluatedAt": "2026-09-09T12:09:29.910Z",
3190
+ "evaluatedVersion": "2.2.3"
3155
3191
  }
3156
3192
  }
3157
3193
  },
3158
3194
  {
3159
3195
  "name": "issue-work-loop",
3160
3196
  "description": "Run Herdr loops for one open GitHub issue (resolve→review→fix) or an existing PR (review→lazy fixer) until CLEAN. Don't use for plain resolution without review, review-only/no-fix requests, backlog automation, or merging.",
3161
- "version": "1.3.1",
3197
+ "version": "1.4.1",
3162
3198
  "license": "MIT",
3163
3199
  "creator": "",
3164
- "compatibility": "Requires herdr, git, gh auth, issue-pr-review and herdr-agent-comms in both modes; issue-resolver is required only in ISSUE mode.",
3200
+ "compatibility": "Requires herdr, git, gh auth, issue-pr-review and herdr-agent in both modes; issue-resolver is required only in ISSUE mode.",
3165
3201
  "allowedTools": [],
3202
+ "tags": [],
3203
+ "dependencies": [],
3166
3204
  "modelInvocable": true,
3167
3205
  "userInvocable": true,
3168
3206
  "installUrl": "github:luongnv89/skills:skills/issue-work-loop",
3169
3207
  "relPath": "skills/issue-work-loop",
3170
3208
  "verified": true,
3171
- "tokenCount": 4681,
3209
+ "tokenCount": 4929,
3172
3210
  "evalSummary": {
3173
- "overallScore": 84,
3174
- "grade": "B",
3211
+ "overallScore": 92,
3212
+ "grade": "A",
3175
3213
  "categories": [
3176
3214
  {
3177
3215
  "id": "structure",
@@ -3194,7 +3232,7 @@
3194
3232
  {
3195
3233
  "id": "context-efficiency",
3196
3234
  "name": "Context efficiency",
3197
- "score": 7,
3235
+ "score": 8,
3198
3236
  "max": 10
3199
3237
  },
3200
3238
  {
@@ -3206,7 +3244,7 @@
3206
3244
  {
3207
3245
  "id": "testability",
3208
3246
  "name": "Testability",
3209
- "score": 3,
3247
+ "score": 10,
3210
3248
  "max": 10
3211
3249
  },
3212
3250
  {
@@ -3234,8 +3272,8 @@
3234
3272
  "max": 10
3235
3273
  }
3236
3274
  ],
3237
- "evaluatedAt": "2026-08-21T09:19:39.827Z",
3238
- "evaluatedVersion": "1.3.1"
3275
+ "evaluatedAt": "2026-09-09T12:09:29.913Z",
3276
+ "evaluatedVersion": "1.4.1"
3239
3277
  },
3240
3278
  "evalSummaries": {
3241
3279
  "quality": {
@@ -3243,8 +3281,8 @@
3243
3281
  "providerVersion": "1.0.0",
3244
3282
  "schemaVersion": 1,
3245
3283
  "passed": true,
3246
- "overallScore": 84,
3247
- "grade": "B",
3284
+ "overallScore": 92,
3285
+ "grade": "A",
3248
3286
  "categories": [
3249
3287
  {
3250
3288
  "id": "structure",
@@ -3267,7 +3305,7 @@
3267
3305
  {
3268
3306
  "id": "context-efficiency",
3269
3307
  "name": "Context efficiency",
3270
- "score": 7,
3308
+ "score": 8,
3271
3309
  "max": 10
3272
3310
  },
3273
3311
  {
@@ -3279,7 +3317,7 @@
3279
3317
  {
3280
3318
  "id": "testability",
3281
3319
  "name": "Testability",
3282
- "score": 3,
3320
+ "score": 10,
3283
3321
  "max": 10
3284
3322
  },
3285
3323
  {
@@ -3307,12 +3345,12 @@
3307
3345
  "max": 10
3308
3346
  }
3309
3347
  ],
3310
- "evaluatedAt": "2026-08-21T09:19:39.827Z",
3311
- "evaluatedVersion": "1.3.1"
3348
+ "evaluatedAt": "2026-09-09T12:09:29.914Z",
3349
+ "evaluatedVersion": "1.4.1"
3312
3350
  },
3313
3351
  "skill-best-practice": {
3314
3352
  "providerId": "skill-best-practice",
3315
- "providerVersion": "1.1.0",
3353
+ "providerVersion": "1.2.0",
3316
3354
  "schemaVersion": 1,
3317
3355
  "passed": true,
3318
3356
  "overallScore": 100,
@@ -3325,8 +3363,8 @@
3325
3363
  "max": 15
3326
3364
  }
3327
3365
  ],
3328
- "evaluatedAt": "2026-08-21T09:19:39.827Z",
3329
- "evaluatedVersion": "1.3.1"
3366
+ "evaluatedAt": "2026-09-09T12:09:29.914Z",
3367
+ "evaluatedVersion": "1.4.1"
3330
3368
  }
3331
3369
  }
3332
3370
  },
@@ -3338,6 +3376,8 @@
3338
3376
  "creator": "",
3339
3377
  "compatibility": "",
3340
3378
  "allowedTools": [],
3379
+ "tags": [],
3380
+ "dependencies": [],
3341
3381
  "modelInvocable": true,
3342
3382
  "userInvocable": true,
3343
3383
  "installUrl": "github:luongnv89/skills:skills/landing-page-generator",
@@ -3409,7 +3449,7 @@
3409
3449
  "max": 10
3410
3450
  }
3411
3451
  ],
3412
- "evaluatedAt": "2026-08-21T09:19:39.832Z",
3452
+ "evaluatedAt": "2026-09-09T12:09:29.919Z",
3413
3453
  "evaluatedVersion": "1.2.1"
3414
3454
  },
3415
3455
  "evalSummaries": {
@@ -3482,12 +3522,12 @@
3482
3522
  "max": 10
3483
3523
  }
3484
3524
  ],
3485
- "evaluatedAt": "2026-08-21T09:19:39.832Z",
3525
+ "evaluatedAt": "2026-09-09T12:09:29.920Z",
3486
3526
  "evaluatedVersion": "1.2.1"
3487
3527
  },
3488
3528
  "skill-best-practice": {
3489
3529
  "providerId": "skill-best-practice",
3490
- "providerVersion": "1.1.0",
3530
+ "providerVersion": "1.2.0",
3491
3531
  "schemaVersion": 1,
3492
3532
  "passed": true,
3493
3533
  "overallScore": 100,
@@ -3500,7 +3540,7 @@
3500
3540
  "max": 14
3501
3541
  }
3502
3542
  ],
3503
- "evaluatedAt": "2026-08-21T09:19:39.832Z",
3543
+ "evaluatedAt": "2026-09-09T12:09:29.920Z",
3504
3544
  "evaluatedVersion": "1.2.1"
3505
3545
  }
3506
3546
  }
@@ -3508,11 +3548,13 @@
3508
3548
  {
3509
3549
  "name": "logo-designer",
3510
3550
  "description": "Generate professional SVG logos from project context: 7 brand variants plus a showcase HTML page. Use for product marks, wordmarks, icons, and favicons. Don't use for raster-only logos, illustrations, or full brand guidelines.",
3511
- "version": "1.2.3",
3551
+ "version": "1.2.4",
3512
3552
  "license": "MIT",
3513
3553
  "creator": "",
3514
3554
  "compatibility": "",
3515
3555
  "allowedTools": [],
3556
+ "tags": [],
3557
+ "dependencies": [],
3516
3558
  "modelInvocable": true,
3517
3559
  "userInvocable": true,
3518
3560
  "installUrl": "github:luongnv89/skills:skills/logo-designer",
@@ -3584,8 +3626,8 @@
3584
3626
  "max": 10
3585
3627
  }
3586
3628
  ],
3587
- "evaluatedAt": "2026-08-21T09:19:39.833Z",
3588
- "evaluatedVersion": "1.2.3"
3629
+ "evaluatedAt": "2026-09-09T12:09:29.927Z",
3630
+ "evaluatedVersion": "1.2.4"
3589
3631
  },
3590
3632
  "evalSummaries": {
3591
3633
  "quality": {
@@ -3657,12 +3699,12 @@
3657
3699
  "max": 10
3658
3700
  }
3659
3701
  ],
3660
- "evaluatedAt": "2026-08-21T09:19:39.837Z",
3661
- "evaluatedVersion": "1.2.3"
3702
+ "evaluatedAt": "2026-09-09T12:09:29.927Z",
3703
+ "evaluatedVersion": "1.2.4"
3662
3704
  },
3663
3705
  "skill-best-practice": {
3664
3706
  "providerId": "skill-best-practice",
3665
- "providerVersion": "1.1.0",
3707
+ "providerVersion": "1.2.0",
3666
3708
  "schemaVersion": 1,
3667
3709
  "passed": true,
3668
3710
  "overallScore": 100,
@@ -3675,25 +3717,27 @@
3675
3717
  "max": 14
3676
3718
  }
3677
3719
  ],
3678
- "evaluatedAt": "2026-08-21T09:19:39.837Z",
3679
- "evaluatedVersion": "1.2.3"
3720
+ "evaluatedAt": "2026-09-09T12:09:29.927Z",
3721
+ "evaluatedVersion": "1.2.4"
3680
3722
  }
3681
3723
  }
3682
3724
  },
3683
3725
  {
3684
3726
  "name": "ollama-optimizer",
3685
3727
  "description": "Optimize Ollama configuration for the current machine's hardware. Use when asked to speed up Ollama, tune local LLM performance, or pick models that fit available GPU/RAM. Don't use for LM Studio, llama.cpp, vLLM, or hosted-API LLM providers.",
3686
- "version": "1.1.1",
3728
+ "version": "1.2.0",
3687
3729
  "license": "MIT",
3688
3730
  "creator": "",
3689
3731
  "compatibility": "",
3690
3732
  "allowedTools": [],
3733
+ "tags": [],
3734
+ "dependencies": [],
3691
3735
  "modelInvocable": true,
3692
3736
  "userInvocable": true,
3693
3737
  "installUrl": "github:luongnv89/skills:skills/ollama-optimizer",
3694
3738
  "relPath": "skills/ollama-optimizer",
3695
3739
  "verified": true,
3696
- "tokenCount": 2539,
3740
+ "tokenCount": 2769,
3697
3741
  "evalSummary": {
3698
3742
  "overallScore": 91,
3699
3743
  "grade": "A",
@@ -3759,8 +3803,8 @@
3759
3803
  "max": 10
3760
3804
  }
3761
3805
  ],
3762
- "evaluatedAt": "2026-08-21T09:19:39.844Z",
3763
- "evaluatedVersion": "1.1.1"
3806
+ "evaluatedAt": "2026-09-09T12:09:29.931Z",
3807
+ "evaluatedVersion": "1.2.0"
3764
3808
  },
3765
3809
  "evalSummaries": {
3766
3810
  "quality": {
@@ -3832,12 +3876,12 @@
3832
3876
  "max": 10
3833
3877
  }
3834
3878
  ],
3835
- "evaluatedAt": "2026-08-21T09:19:39.844Z",
3836
- "evaluatedVersion": "1.1.1"
3879
+ "evaluatedAt": "2026-09-09T12:09:29.931Z",
3880
+ "evaluatedVersion": "1.2.0"
3837
3881
  },
3838
3882
  "skill-best-practice": {
3839
3883
  "providerId": "skill-best-practice",
3840
- "providerVersion": "1.1.0",
3884
+ "providerVersion": "1.2.0",
3841
3885
  "schemaVersion": 1,
3842
3886
  "passed": true,
3843
3887
  "overallScore": 100,
@@ -3850,27 +3894,29 @@
3850
3894
  "max": 14
3851
3895
  }
3852
3896
  ],
3853
- "evaluatedAt": "2026-08-21T09:19:39.844Z",
3854
- "evaluatedVersion": "1.1.1"
3897
+ "evaluatedAt": "2026-09-09T12:09:29.931Z",
3898
+ "evaluatedVersion": "1.2.0"
3855
3899
  }
3856
3900
  }
3857
3901
  },
3858
3902
  {
3859
- "name": "opencode-runner",
3860
- "description": "Run coding tasks via opencode using free cloud models. Use when asked to offload work to opencode.ai or run a free model. Don't use for local models (Ollama, LM Studio), Claude/OpenAI calls, or when Claude should do the work itself.",
3861
- "version": "1.4.1",
3903
+ "name": "opencode-handoff",
3904
+ "description": "Resume a limit-blocked OpenCode session in a fresh sandbox: same project and agent setup, no host OpenCode config/token/key, attached in a tmux panel. Don't use for one-shot sandbox tasks (opencode-sandbox), opencode.ai (opencode-runner), or Herdr.",
3905
+ "version": "1.0.5",
3862
3906
  "license": "MIT",
3863
3907
  "creator": "",
3864
- "compatibility": "",
3908
+ "compatibility": "Requires Docker on PATH and running, plus the opencode-sandbox skill at v2.1.0 or newer. The tmux panel additionally needs `tmux`; without it the skill prints the attach command instead.",
3865
3909
  "allowedTools": [],
3910
+ "tags": [],
3911
+ "dependencies": [],
3866
3912
  "modelInvocable": true,
3867
3913
  "userInvocable": true,
3868
- "installUrl": "github:luongnv89/skills:skills/opencode-runner",
3869
- "relPath": "skills/opencode-runner",
3914
+ "installUrl": "github:luongnv89/skills:skills/opencode-handoff",
3915
+ "relPath": "skills/opencode-handoff",
3870
3916
  "verified": true,
3871
- "tokenCount": 5149,
3917
+ "tokenCount": 2682,
3872
3918
  "evalSummary": {
3873
- "overallScore": 93,
3919
+ "overallScore": 91,
3874
3920
  "grade": "A",
3875
3921
  "categories": [
3876
3922
  {
@@ -3882,19 +3928,19 @@
3882
3928
  {
3883
3929
  "id": "description",
3884
3930
  "name": "Description quality",
3885
- "score": 10,
3931
+ "score": 7,
3886
3932
  "max": 10
3887
3933
  },
3888
3934
  {
3889
3935
  "id": "prompt-engineering",
3890
3936
  "name": "Prompt engineering",
3891
- "score": 10,
3937
+ "score": 9,
3892
3938
  "max": 10
3893
3939
  },
3894
3940
  {
3895
3941
  "id": "context-efficiency",
3896
3942
  "name": "Context efficiency",
3897
- "score": 8,
3943
+ "score": 10,
3898
3944
  "max": 10
3899
3945
  },
3900
3946
  {
@@ -3934,8 +3980,8 @@
3934
3980
  "max": 10
3935
3981
  }
3936
3982
  ],
3937
- "evaluatedAt": "2026-08-21T09:19:39.859Z",
3938
- "evaluatedVersion": "1.4.1"
3983
+ "evaluatedAt": "2026-09-09T12:09:29.933Z",
3984
+ "evaluatedVersion": "1.0.5"
3939
3985
  },
3940
3986
  "evalSummaries": {
3941
3987
  "quality": {
@@ -3943,8 +3989,8 @@
3943
3989
  "providerVersion": "1.0.0",
3944
3990
  "schemaVersion": 1,
3945
3991
  "passed": true,
3946
- "overallScore": 93,
3947
- "grade": "A",
3992
+ "overallScore": 89,
3993
+ "grade": "B",
3948
3994
  "categories": [
3949
3995
  {
3950
3996
  "id": "structure",
@@ -3955,19 +4001,19 @@
3955
4001
  {
3956
4002
  "id": "description",
3957
4003
  "name": "Description quality",
3958
- "score": 10,
4004
+ "score": 7,
3959
4005
  "max": 10
3960
4006
  },
3961
4007
  {
3962
4008
  "id": "prompt-engineering",
3963
4009
  "name": "Prompt engineering",
3964
- "score": 10,
4010
+ "score": 9,
3965
4011
  "max": 10
3966
4012
  },
3967
4013
  {
3968
4014
  "id": "context-efficiency",
3969
4015
  "name": "Context efficiency",
3970
- "score": 8,
4016
+ "score": 10,
3971
4017
  "max": 10
3972
4018
  },
3973
4019
  {
@@ -3997,7 +4043,7 @@
3997
4043
  {
3998
4044
  "id": "pii",
3999
4045
  "name": "PII detection",
4000
- "score": 10,
4046
+ "score": 8,
4001
4047
  "max": 10
4002
4048
  },
4003
4049
  {
@@ -4007,12 +4053,12 @@
4007
4053
  "max": 10
4008
4054
  }
4009
4055
  ],
4010
- "evaluatedAt": "2026-08-21T09:19:39.859Z",
4011
- "evaluatedVersion": "1.4.1"
4056
+ "evaluatedAt": "2026-09-09T12:09:29.933Z",
4057
+ "evaluatedVersion": "1.0.5"
4012
4058
  },
4013
4059
  "skill-best-practice": {
4014
4060
  "providerId": "skill-best-practice",
4015
- "providerVersion": "1.1.0",
4061
+ "providerVersion": "1.2.0",
4016
4062
  "schemaVersion": 1,
4017
4063
  "passed": true,
4018
4064
  "overallScore": 100,
@@ -4021,31 +4067,33 @@
4021
4067
  {
4022
4068
  "id": "validation",
4023
4069
  "name": "Deterministic validation",
4024
- "score": 14,
4025
- "max": 14
4070
+ "score": 15,
4071
+ "max": 15
4026
4072
  }
4027
4073
  ],
4028
- "evaluatedAt": "2026-08-21T09:19:39.859Z",
4029
- "evaluatedVersion": "1.4.1"
4074
+ "evaluatedAt": "2026-09-09T12:09:29.933Z",
4075
+ "evaluatedVersion": "1.0.5"
4030
4076
  }
4031
4077
  }
4032
4078
  },
4033
4079
  {
4034
- "name": "oss-ready",
4035
- "description": "Transform a project into a professional open-source repository by adding LICENSE, README, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, and GitHub issue/PR templates. Don't use for documentation overhauls, landing-page generation, or registry publishing.",
4036
- "version": "1.2.1",
4080
+ "name": "opencode-runner",
4081
+ "description": "Run coding tasks via opencode using free cloud models. Use when asked to offload work to opencode.ai or run a free model. Don't use for local models (Ollama, LM Studio), Claude/OpenAI calls, or when Claude should do the work itself.",
4082
+ "version": "1.5.0",
4037
4083
  "license": "MIT",
4038
4084
  "creator": "",
4039
4085
  "compatibility": "",
4040
4086
  "allowedTools": [],
4087
+ "tags": [],
4088
+ "dependencies": [],
4041
4089
  "modelInvocable": true,
4042
4090
  "userInvocable": true,
4043
- "installUrl": "github:luongnv89/skills:skills/oss-ready",
4044
- "relPath": "skills/oss-ready",
4091
+ "installUrl": "github:luongnv89/skills:skills/opencode-runner",
4092
+ "relPath": "skills/opencode-runner",
4045
4093
  "verified": true,
4046
- "tokenCount": 2751,
4094
+ "tokenCount": 5395,
4047
4095
  "evalSummary": {
4048
- "overallScore": 94,
4096
+ "overallScore": 93,
4049
4097
  "grade": "A",
4050
4098
  "categories": [
4051
4099
  {
@@ -4069,7 +4117,7 @@
4069
4117
  {
4070
4118
  "id": "context-efficiency",
4071
4119
  "name": "Context efficiency",
4072
- "score": 9,
4120
+ "score": 8,
4073
4121
  "max": 10
4074
4122
  },
4075
4123
  {
@@ -4109,8 +4157,8 @@
4109
4157
  "max": 10
4110
4158
  }
4111
4159
  ],
4112
- "evaluatedAt": "2026-08-21T09:19:39.870Z",
4113
- "evaluatedVersion": "1.2.1"
4160
+ "evaluatedAt": "2026-09-09T12:09:29.939Z",
4161
+ "evaluatedVersion": "1.5.0"
4114
4162
  },
4115
4163
  "evalSummaries": {
4116
4164
  "quality": {
@@ -4118,7 +4166,7 @@
4118
4166
  "providerVersion": "1.0.0",
4119
4167
  "schemaVersion": 1,
4120
4168
  "passed": true,
4121
- "overallScore": 94,
4169
+ "overallScore": 93,
4122
4170
  "grade": "A",
4123
4171
  "categories": [
4124
4172
  {
@@ -4142,7 +4190,7 @@
4142
4190
  {
4143
4191
  "id": "context-efficiency",
4144
4192
  "name": "Context efficiency",
4145
- "score": 9,
4193
+ "score": 8,
4146
4194
  "max": 10
4147
4195
  },
4148
4196
  {
@@ -4182,12 +4230,12 @@
4182
4230
  "max": 10
4183
4231
  }
4184
4232
  ],
4185
- "evaluatedAt": "2026-08-21T09:19:39.871Z",
4186
- "evaluatedVersion": "1.2.1"
4233
+ "evaluatedAt": "2026-09-09T12:09:29.939Z",
4234
+ "evaluatedVersion": "1.5.0"
4187
4235
  },
4188
4236
  "skill-best-practice": {
4189
4237
  "providerId": "skill-best-practice",
4190
- "providerVersion": "1.1.0",
4238
+ "providerVersion": "1.2.0",
4191
4239
  "schemaVersion": 1,
4192
4240
  "passed": true,
4193
4241
  "overallScore": 100,
@@ -4200,25 +4248,27 @@
4200
4248
  "max": 14
4201
4249
  }
4202
4250
  ],
4203
- "evaluatedAt": "2026-08-21T09:19:39.871Z",
4204
- "evaluatedVersion": "1.2.1"
4251
+ "evaluatedAt": "2026-09-09T12:09:29.939Z",
4252
+ "evaluatedVersion": "1.5.0"
4205
4253
  }
4206
4254
  }
4207
4255
  },
4208
4256
  {
4209
- "name": "prd-generator",
4210
- "description": "Generate Product Requirements Documents from `idea.md` and `validate.md` files. Use when asked to create or update a PRD. Don't use for TAD, sprint tasks, or raw idea validation.",
4211
- "version": "1.3.2",
4257
+ "name": "opencode-sandbox",
4258
+ "description": "Run OpenCode in a docker-dev sandbox (SSH/gh on by default; --no-ssh/--no-github to isolate). Prints docker exec attach; kept until you confirm rm. Don't use for opencode.ai (opencode-runner), Herdr, or the app.",
4259
+ "version": "3.0.1",
4212
4260
  "license": "MIT",
4213
4261
  "creator": "",
4214
- "compatibility": "",
4262
+ "compatibility": "Requires Docker (Desktop or Engine) on PATH and running. Interactive mode additionally needs `cdev` (auto-installable from luongnv89/docker-dev) plus a pane-management skill (herdr-agent or tmux-agent-comms).",
4215
4263
  "allowedTools": [],
4264
+ "tags": [],
4265
+ "dependencies": [],
4216
4266
  "modelInvocable": true,
4217
4267
  "userInvocable": true,
4218
- "installUrl": "github:luongnv89/skills:skills/prd-generator",
4219
- "relPath": "skills/prd-generator",
4268
+ "installUrl": "github:luongnv89/skills:skills/opencode-sandbox",
4269
+ "relPath": "skills/opencode-sandbox",
4220
4270
  "verified": true,
4221
- "tokenCount": 3120,
4271
+ "tokenCount": 4239,
4222
4272
  "evalSummary": {
4223
4273
  "overallScore": 93,
4224
4274
  "grade": "A",
@@ -4238,13 +4288,13 @@
4238
4288
  {
4239
4289
  "id": "prompt-engineering",
4240
4290
  "name": "Prompt engineering",
4241
- "score": 9,
4291
+ "score": 10,
4242
4292
  "max": 10
4243
4293
  },
4244
4294
  {
4245
4295
  "id": "context-efficiency",
4246
4296
  "name": "Context efficiency",
4247
- "score": 9,
4297
+ "score": 8,
4248
4298
  "max": 10
4249
4299
  },
4250
4300
  {
@@ -4284,8 +4334,8 @@
4284
4334
  "max": 10
4285
4335
  }
4286
4336
  ],
4287
- "evaluatedAt": "2026-08-21T09:19:39.871Z",
4288
- "evaluatedVersion": "1.3.2"
4337
+ "evaluatedAt": "2026-09-09T12:09:29.946Z",
4338
+ "evaluatedVersion": "3.0.1"
4289
4339
  },
4290
4340
  "evalSummaries": {
4291
4341
  "quality": {
@@ -4293,7 +4343,7 @@
4293
4343
  "providerVersion": "1.0.0",
4294
4344
  "schemaVersion": 1,
4295
4345
  "passed": true,
4296
- "overallScore": 93,
4346
+ "overallScore": 92,
4297
4347
  "grade": "A",
4298
4348
  "categories": [
4299
4349
  {
@@ -4311,13 +4361,13 @@
4311
4361
  {
4312
4362
  "id": "prompt-engineering",
4313
4363
  "name": "Prompt engineering",
4314
- "score": 9,
4364
+ "score": 10,
4315
4365
  "max": 10
4316
4366
  },
4317
4367
  {
4318
4368
  "id": "context-efficiency",
4319
4369
  "name": "Context efficiency",
4320
- "score": 9,
4370
+ "score": 8,
4321
4371
  "max": 10
4322
4372
  },
4323
4373
  {
@@ -4353,16 +4403,16 @@
4353
4403
  {
4354
4404
  "id": "script-lint",
4355
4405
  "name": "Script linting",
4356
- "score": 10,
4406
+ "score": 9,
4357
4407
  "max": 10
4358
4408
  }
4359
4409
  ],
4360
- "evaluatedAt": "2026-08-21T09:19:39.871Z",
4361
- "evaluatedVersion": "1.3.2"
4410
+ "evaluatedAt": "2026-09-09T12:09:29.946Z",
4411
+ "evaluatedVersion": "3.0.1"
4362
4412
  },
4363
4413
  "skill-best-practice": {
4364
4414
  "providerId": "skill-best-practice",
4365
- "providerVersion": "1.1.0",
4415
+ "providerVersion": "1.2.0",
4366
4416
  "schemaVersion": 1,
4367
4417
  "passed": true,
4368
4418
  "overallScore": 100,
@@ -4371,31 +4421,33 @@
4371
4421
  {
4372
4422
  "id": "validation",
4373
4423
  "name": "Deterministic validation",
4374
- "score": 14,
4375
- "max": 14
4424
+ "score": 15,
4425
+ "max": 15
4376
4426
  }
4377
4427
  ],
4378
- "evaluatedAt": "2026-08-21T09:19:39.871Z",
4379
- "evaluatedVersion": "1.3.2"
4428
+ "evaluatedAt": "2026-09-09T12:09:29.946Z",
4429
+ "evaluatedVersion": "3.0.1"
4380
4430
  }
4381
4431
  }
4382
4432
  },
4383
4433
  {
4384
- "name": "release-manager",
4385
- "description": "Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm. Use when asked to ship, cut a release, or tag a version. Don't use for routine commits or marketplace publishing.",
4386
- "version": "2.6.0",
4434
+ "name": "oss-ready",
4435
+ "description": "Transform a project into a professional open-source repository by adding LICENSE, README, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, and GitHub issue/PR templates. Don't use for documentation overhauls, landing-page generation, or registry publishing.",
4436
+ "version": "1.3.0",
4387
4437
  "license": "MIT",
4388
4438
  "creator": "",
4389
4439
  "compatibility": "",
4390
4440
  "allowedTools": [],
4441
+ "tags": [],
4442
+ "dependencies": [],
4391
4443
  "modelInvocable": true,
4392
4444
  "userInvocable": true,
4393
- "installUrl": "github:luongnv89/skills:skills/release-manager",
4394
- "relPath": "skills/release-manager",
4445
+ "installUrl": "github:luongnv89/skills:skills/oss-ready",
4446
+ "relPath": "skills/oss-ready",
4395
4447
  "verified": true,
4396
- "tokenCount": 2743,
4448
+ "tokenCount": 2827,
4397
4449
  "evalSummary": {
4398
- "overallScore": 93,
4450
+ "overallScore": 94,
4399
4451
  "grade": "A",
4400
4452
  "categories": [
4401
4453
  {
@@ -4413,7 +4465,7 @@
4413
4465
  {
4414
4466
  "id": "prompt-engineering",
4415
4467
  "name": "Prompt engineering",
4416
- "score": 9,
4468
+ "score": 10,
4417
4469
  "max": 10
4418
4470
  },
4419
4471
  {
@@ -4459,8 +4511,8 @@
4459
4511
  "max": 10
4460
4512
  }
4461
4513
  ],
4462
- "evaluatedAt": "2026-08-21T09:19:39.872Z",
4463
- "evaluatedVersion": "2.6.0"
4514
+ "evaluatedAt": "2026-09-09T12:09:29.948Z",
4515
+ "evaluatedVersion": "1.3.0"
4464
4516
  },
4465
4517
  "evalSummaries": {
4466
4518
  "quality": {
@@ -4468,7 +4520,7 @@
4468
4520
  "providerVersion": "1.0.0",
4469
4521
  "schemaVersion": 1,
4470
4522
  "passed": true,
4471
- "overallScore": 93,
4523
+ "overallScore": 94,
4472
4524
  "grade": "A",
4473
4525
  "categories": [
4474
4526
  {
@@ -4486,7 +4538,7 @@
4486
4538
  {
4487
4539
  "id": "prompt-engineering",
4488
4540
  "name": "Prompt engineering",
4489
- "score": 9,
4541
+ "score": 10,
4490
4542
  "max": 10
4491
4543
  },
4492
4544
  {
@@ -4532,12 +4584,12 @@
4532
4584
  "max": 10
4533
4585
  }
4534
4586
  ],
4535
- "evaluatedAt": "2026-08-21T09:19:39.873Z",
4536
- "evaluatedVersion": "2.6.0"
4587
+ "evaluatedAt": "2026-09-09T12:09:29.948Z",
4588
+ "evaluatedVersion": "1.3.0"
4537
4589
  },
4538
4590
  "skill-best-practice": {
4539
4591
  "providerId": "skill-best-practice",
4540
- "providerVersion": "1.1.0",
4592
+ "providerVersion": "1.2.0",
4541
4593
  "schemaVersion": 1,
4542
4594
  "passed": true,
4543
4595
  "overallScore": 100,
@@ -4550,27 +4602,29 @@
4550
4602
  "max": 14
4551
4603
  }
4552
4604
  ],
4553
- "evaluatedAt": "2026-08-21T09:19:39.873Z",
4554
- "evaluatedVersion": "2.6.0"
4605
+ "evaluatedAt": "2026-09-09T12:09:29.948Z",
4606
+ "evaluatedVersion": "1.3.0"
4555
4607
  }
4556
4608
  }
4557
4609
  },
4558
4610
  {
4559
- "name": "security-setup",
4560
- "description": "Install local-first security hardening: pre-commit secret detection, offline dependency scans, static analysis, reports, and gated free CI. Use when hardening repos or adding security hooks. Don't use for incident response or cloud security reviews.",
4561
- "version": "1.4.0",
4611
+ "name": "plan-to-issues",
4612
+ "description": "Convert any phased plan file, or a conversation about what to build, into labelled GitHub issues under one tracking epic mapping each issue to its source task. No plan file required. Don't use for writing plans, resolving issues, or triage.",
4613
+ "version": "2.0.4",
4562
4614
  "license": "MIT",
4563
4615
  "creator": "",
4564
- "compatibility": "Cross-platform (macOS, Linux, Windows). Requires git, Python 3.8+, and project write access. Uses pre-commit plus free local tools such as gitleaks, trivy, semgrep, bandit, or cargo-audit when appropriate. Semgrep on Windows requires WSL2.",
4616
+ "compatibility": "Requires git, GitHub CLI (gh) authenticated (`gh auth status`), and the issue-creator skill installed.",
4565
4617
  "allowedTools": [],
4618
+ "tags": [],
4619
+ "dependencies": [],
4566
4620
  "modelInvocable": true,
4567
4621
  "userInvocable": true,
4568
- "installUrl": "github:luongnv89/skills:skills/security-setup",
4569
- "relPath": "skills/security-setup",
4622
+ "installUrl": "github:luongnv89/skills:skills/plan-to-issues",
4623
+ "relPath": "skills/plan-to-issues",
4570
4624
  "verified": true,
4571
- "tokenCount": 4090,
4625
+ "tokenCount": 6061,
4572
4626
  "evalSummary": {
4573
- "overallScore": 93,
4627
+ "overallScore": 92,
4574
4628
  "grade": "A",
4575
4629
  "categories": [
4576
4630
  {
@@ -4588,7 +4642,7 @@
4588
4642
  {
4589
4643
  "id": "prompt-engineering",
4590
4644
  "name": "Prompt engineering",
4591
- "score": 10,
4645
+ "score": 9,
4592
4646
  "max": 10
4593
4647
  },
4594
4648
  {
@@ -4634,8 +4688,8 @@
4634
4688
  "max": 10
4635
4689
  }
4636
4690
  ],
4637
- "evaluatedAt": "2026-08-21T09:19:39.879Z",
4638
- "evaluatedVersion": "1.4.0"
4691
+ "evaluatedAt": "2026-09-09T12:09:29.954Z",
4692
+ "evaluatedVersion": "2.0.4"
4639
4693
  },
4640
4694
  "evalSummaries": {
4641
4695
  "quality": {
@@ -4643,7 +4697,7 @@
4643
4697
  "providerVersion": "1.0.0",
4644
4698
  "schemaVersion": 1,
4645
4699
  "passed": true,
4646
- "overallScore": 93,
4700
+ "overallScore": 92,
4647
4701
  "grade": "A",
4648
4702
  "categories": [
4649
4703
  {
@@ -4661,7 +4715,7 @@
4661
4715
  {
4662
4716
  "id": "prompt-engineering",
4663
4717
  "name": "Prompt engineering",
4664
- "score": 10,
4718
+ "score": 9,
4665
4719
  "max": 10
4666
4720
  },
4667
4721
  {
@@ -4707,12 +4761,12 @@
4707
4761
  "max": 10
4708
4762
  }
4709
4763
  ],
4710
- "evaluatedAt": "2026-08-21T09:19:39.880Z",
4711
- "evaluatedVersion": "1.4.0"
4764
+ "evaluatedAt": "2026-09-09T12:09:29.956Z",
4765
+ "evaluatedVersion": "2.0.4"
4712
4766
  },
4713
4767
  "skill-best-practice": {
4714
4768
  "providerId": "skill-best-practice",
4715
- "providerVersion": "1.1.0",
4769
+ "providerVersion": "1.2.0",
4716
4770
  "schemaVersion": 1,
4717
4771
  "passed": true,
4718
4772
  "overallScore": 100,
@@ -4725,27 +4779,29 @@
4725
4779
  "max": 15
4726
4780
  }
4727
4781
  ],
4728
- "evaluatedAt": "2026-08-21T09:19:39.880Z",
4729
- "evaluatedVersion": "1.4.0"
4782
+ "evaluatedAt": "2026-09-09T12:09:29.956Z",
4783
+ "evaluatedVersion": "2.0.4"
4730
4784
  }
4731
4785
  }
4732
4786
  },
4733
4787
  {
4734
- "name": "seo-ai-optimizer",
4735
- "description": "Audit and optimize websites for technical SEO, content SEO, and AI bot accessibility. Fixes meta tags, sitemaps, robots.txt, structured data, llms.txt, and GPTBot/ClaudeBot directives. Not for App Store ASO, paid search, or blog writing.",
4736
- "version": "1.2.3",
4788
+ "name": "prd-generator",
4789
+ "description": "Generate Product Requirements Documents from `idea.md` and `validate.md` files. Use when asked to create or update a PRD. Don't use for TAD, sprint tasks, or raw idea validation.",
4790
+ "version": "1.4.0",
4737
4791
  "license": "MIT",
4738
4792
  "creator": "",
4739
4793
  "compatibility": "",
4740
4794
  "allowedTools": [],
4795
+ "tags": [],
4796
+ "dependencies": [],
4741
4797
  "modelInvocable": true,
4742
4798
  "userInvocable": true,
4743
- "installUrl": "github:luongnv89/skills:skills/seo-ai-optimizer",
4744
- "relPath": "skills/seo-ai-optimizer",
4799
+ "installUrl": "github:luongnv89/skills:skills/prd-generator",
4800
+ "relPath": "skills/prd-generator",
4745
4801
  "verified": true,
4746
- "tokenCount": 1515,
4802
+ "tokenCount": 2587,
4747
4803
  "evalSummary": {
4748
- "overallScore": 91,
4804
+ "overallScore": 93,
4749
4805
  "grade": "A",
4750
4806
  "categories": [
4751
4807
  {
@@ -4763,7 +4819,7 @@
4763
4819
  {
4764
4820
  "id": "prompt-engineering",
4765
4821
  "name": "Prompt engineering",
4766
- "score": 10,
4822
+ "score": 9,
4767
4823
  "max": 10
4768
4824
  },
4769
4825
  {
@@ -4775,13 +4831,13 @@
4775
4831
  {
4776
4832
  "id": "safety",
4777
4833
  "name": "Safety & guardrails",
4778
- "score": 9,
4834
+ "score": 10,
4779
4835
  "max": 10
4780
4836
  },
4781
4837
  {
4782
4838
  "id": "testability",
4783
4839
  "name": "Testability",
4784
- "score": 8,
4840
+ "score": 10,
4785
4841
  "max": 10
4786
4842
  },
4787
4843
  {
@@ -4809,8 +4865,8 @@
4809
4865
  "max": 10
4810
4866
  }
4811
4867
  ],
4812
- "evaluatedAt": "2026-08-21T09:19:39.882Z",
4813
- "evaluatedVersion": "1.2.3"
4868
+ "evaluatedAt": "2026-09-09T12:09:29.960Z",
4869
+ "evaluatedVersion": "1.4.0"
4814
4870
  },
4815
4871
  "evalSummaries": {
4816
4872
  "quality": {
@@ -4818,7 +4874,7 @@
4818
4874
  "providerVersion": "1.0.0",
4819
4875
  "schemaVersion": 1,
4820
4876
  "passed": true,
4821
- "overallScore": 91,
4877
+ "overallScore": 93,
4822
4878
  "grade": "A",
4823
4879
  "categories": [
4824
4880
  {
@@ -4836,7 +4892,7 @@
4836
4892
  {
4837
4893
  "id": "prompt-engineering",
4838
4894
  "name": "Prompt engineering",
4839
- "score": 10,
4895
+ "score": 9,
4840
4896
  "max": 10
4841
4897
  },
4842
4898
  {
@@ -4848,13 +4904,13 @@
4848
4904
  {
4849
4905
  "id": "safety",
4850
4906
  "name": "Safety & guardrails",
4851
- "score": 9,
4907
+ "score": 10,
4852
4908
  "max": 10
4853
4909
  },
4854
4910
  {
4855
4911
  "id": "testability",
4856
4912
  "name": "Testability",
4857
- "score": 8,
4913
+ "score": 10,
4858
4914
  "max": 10
4859
4915
  },
4860
4916
  {
@@ -4882,12 +4938,12 @@
4882
4938
  "max": 10
4883
4939
  }
4884
4940
  ],
4885
- "evaluatedAt": "2026-08-21T09:19:39.882Z",
4886
- "evaluatedVersion": "1.2.3"
4941
+ "evaluatedAt": "2026-09-09T12:09:29.960Z",
4942
+ "evaluatedVersion": "1.4.0"
4887
4943
  },
4888
4944
  "skill-best-practice": {
4889
4945
  "providerId": "skill-best-practice",
4890
- "providerVersion": "1.1.0",
4946
+ "providerVersion": "1.2.0",
4891
4947
  "schemaVersion": 1,
4892
4948
  "passed": true,
4893
4949
  "overallScore": 100,
@@ -4900,33 +4956,35 @@
4900
4956
  "max": 14
4901
4957
  }
4902
4958
  ],
4903
- "evaluatedAt": "2026-08-21T09:19:39.882Z",
4904
- "evaluatedVersion": "1.2.3"
4959
+ "evaluatedAt": "2026-09-09T12:09:29.960Z",
4960
+ "evaluatedVersion": "1.4.0"
4905
4961
  }
4906
4962
  }
4907
4963
  },
4908
4964
  {
4909
- "name": "subagent-creator",
4910
- "description": "Create, evaluate, or improve Claude Code subagent files (.claude/agents/*.md) the frontmatter + system prompt defining a delegatable specialist. Don't use for skills (skill-creator), CLAUDE.md/AGENTS.md (agent-config), or running an agent.",
4911
- "version": "1.1.2",
4912
- "license": "",
4965
+ "name": "release-manager",
4966
+ "description": "Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm. Use when asked to ship, cut a release, or tag a version. Don't use for routine commits or marketplace publishing.",
4967
+ "version": "2.6.1",
4968
+ "license": "MIT",
4913
4969
  "creator": "",
4914
4970
  "compatibility": "",
4915
4971
  "allowedTools": [],
4972
+ "tags": [],
4973
+ "dependencies": [],
4916
4974
  "modelInvocable": true,
4917
4975
  "userInvocable": true,
4918
- "installUrl": "github:luongnv89/skills:skills/subagent-creator",
4919
- "relPath": "skills/subagent-creator",
4976
+ "installUrl": "github:luongnv89/skills:skills/release-manager",
4977
+ "relPath": "skills/release-manager",
4920
4978
  "verified": true,
4921
- "tokenCount": 3014,
4979
+ "tokenCount": 2793,
4922
4980
  "evalSummary": {
4923
- "overallScore": 87,
4924
- "grade": "B",
4981
+ "overallScore": 93,
4982
+ "grade": "A",
4925
4983
  "categories": [
4926
4984
  {
4927
4985
  "id": "structure",
4928
4986
  "name": "Structure & completeness",
4929
- "score": 9,
4987
+ "score": 10,
4930
4988
  "max": 10
4931
4989
  },
4932
4990
  {
@@ -4938,13 +4996,13 @@
4938
4996
  {
4939
4997
  "id": "prompt-engineering",
4940
4998
  "name": "Prompt engineering",
4941
- "score": 8,
4999
+ "score": 9,
4942
5000
  "max": 10
4943
5001
  },
4944
5002
  {
4945
5003
  "id": "context-efficiency",
4946
5004
  "name": "Context efficiency",
4947
- "score": 10,
5005
+ "score": 9,
4948
5006
  "max": 10
4949
5007
  },
4950
5008
  {
@@ -4962,7 +5020,7 @@
4962
5020
  {
4963
5021
  "id": "license",
4964
5022
  "name": "License verification",
4965
- "score": 0,
5023
+ "score": 5,
4966
5024
  "max": 10
4967
5025
  },
4968
5026
  {
@@ -4984,8 +5042,8 @@
4984
5042
  "max": 10
4985
5043
  }
4986
5044
  ],
4987
- "evaluatedAt": "2026-08-21T09:19:39.889Z",
4988
- "evaluatedVersion": "1.1.2"
5045
+ "evaluatedAt": "2026-09-09T12:09:29.967Z",
5046
+ "evaluatedVersion": "2.6.1"
4989
5047
  },
4990
5048
  "evalSummaries": {
4991
5049
  "quality": {
@@ -4993,13 +5051,13 @@
4993
5051
  "providerVersion": "1.0.0",
4994
5052
  "schemaVersion": 1,
4995
5053
  "passed": true,
4996
- "overallScore": 87,
4997
- "grade": "B",
5054
+ "overallScore": 93,
5055
+ "grade": "A",
4998
5056
  "categories": [
4999
5057
  {
5000
5058
  "id": "structure",
5001
5059
  "name": "Structure & completeness",
5002
- "score": 9,
5060
+ "score": 10,
5003
5061
  "max": 10
5004
5062
  },
5005
5063
  {
@@ -5011,13 +5069,13 @@
5011
5069
  {
5012
5070
  "id": "prompt-engineering",
5013
5071
  "name": "Prompt engineering",
5014
- "score": 8,
5072
+ "score": 9,
5015
5073
  "max": 10
5016
5074
  },
5017
5075
  {
5018
5076
  "id": "context-efficiency",
5019
5077
  "name": "Context efficiency",
5020
- "score": 10,
5078
+ "score": 9,
5021
5079
  "max": 10
5022
5080
  },
5023
5081
  {
@@ -5035,7 +5093,7 @@
5035
5093
  {
5036
5094
  "id": "license",
5037
5095
  "name": "License verification",
5038
- "score": 0,
5096
+ "score": 5,
5039
5097
  "max": 10
5040
5098
  },
5041
5099
  {
@@ -5057,12 +5115,12 @@
5057
5115
  "max": 10
5058
5116
  }
5059
5117
  ],
5060
- "evaluatedAt": "2026-08-21T09:19:39.889Z",
5061
- "evaluatedVersion": "1.1.2"
5118
+ "evaluatedAt": "2026-09-09T12:09:29.969Z",
5119
+ "evaluatedVersion": "2.6.1"
5062
5120
  },
5063
5121
  "skill-best-practice": {
5064
5122
  "providerId": "skill-best-practice",
5065
- "providerVersion": "1.1.0",
5123
+ "providerVersion": "1.2.0",
5066
5124
  "schemaVersion": 1,
5067
5125
  "passed": true,
5068
5126
  "overallScore": 100,
@@ -5075,27 +5133,29 @@
5075
5133
  "max": 14
5076
5134
  }
5077
5135
  ],
5078
- "evaluatedAt": "2026-08-21T09:19:39.889Z",
5079
- "evaluatedVersion": "1.1.2"
5136
+ "evaluatedAt": "2026-09-09T12:09:29.969Z",
5137
+ "evaluatedVersion": "2.6.1"
5080
5138
  }
5081
5139
  }
5082
5140
  },
5083
5141
  {
5084
- "name": "tad-generator",
5085
- "description": "Generate a Technical Architecture Document (TAD) from a PRD. Use when asked to design system architecture or define how a product is built. Updates tad.md and reports GitHub links. Don't use for PRD authoring, sprint tasks, or code implementation.",
5142
+ "name": "security-setup",
5143
+ "description": "Install local-first security hardening: pre-commit secret detection, offline dependency scans, static analysis, reports, and gated free CI. Use when hardening repos or adding security hooks. Don't use for incident response or cloud security reviews.",
5086
5144
  "version": "1.4.0",
5087
5145
  "license": "MIT",
5088
5146
  "creator": "",
5089
- "compatibility": "",
5147
+ "compatibility": "Cross-platform (macOS, Linux, Windows). Requires git, Python 3.8+, and project write access. Uses pre-commit plus free local tools such as gitleaks, trivy, semgrep, bandit, or cargo-audit when appropriate. Semgrep on Windows requires WSL2.",
5090
5148
  "allowedTools": [],
5149
+ "tags": [],
5150
+ "dependencies": [],
5091
5151
  "modelInvocable": true,
5092
5152
  "userInvocable": true,
5093
- "installUrl": "github:luongnv89/skills:skills/tad-generator",
5094
- "relPath": "skills/tad-generator",
5153
+ "installUrl": "github:luongnv89/skills:skills/security-setup",
5154
+ "relPath": "skills/security-setup",
5095
5155
  "verified": true,
5096
- "tokenCount": 3031,
5156
+ "tokenCount": 4090,
5097
5157
  "evalSummary": {
5098
- "overallScore": 94,
5158
+ "overallScore": 93,
5099
5159
  "grade": "A",
5100
5160
  "categories": [
5101
5161
  {
@@ -5119,13 +5179,13 @@
5119
5179
  {
5120
5180
  "id": "context-efficiency",
5121
5181
  "name": "Context efficiency",
5122
- "score": 10,
5182
+ "score": 8,
5123
5183
  "max": 10
5124
5184
  },
5125
5185
  {
5126
5186
  "id": "safety",
5127
5187
  "name": "Safety & guardrails",
5128
- "score": 9,
5188
+ "score": 10,
5129
5189
  "max": 10
5130
5190
  },
5131
5191
  {
@@ -5159,7 +5219,7 @@
5159
5219
  "max": 10
5160
5220
  }
5161
5221
  ],
5162
- "evaluatedAt": "2026-08-21T09:19:39.892Z",
5222
+ "evaluatedAt": "2026-09-09T12:09:29.975Z",
5163
5223
  "evaluatedVersion": "1.4.0"
5164
5224
  },
5165
5225
  "evalSummaries": {
@@ -5168,7 +5228,7 @@
5168
5228
  "providerVersion": "1.0.0",
5169
5229
  "schemaVersion": 1,
5170
5230
  "passed": true,
5171
- "overallScore": 94,
5231
+ "overallScore": 93,
5172
5232
  "grade": "A",
5173
5233
  "categories": [
5174
5234
  {
@@ -5192,13 +5252,13 @@
5192
5252
  {
5193
5253
  "id": "context-efficiency",
5194
5254
  "name": "Context efficiency",
5195
- "score": 10,
5255
+ "score": 8,
5196
5256
  "max": 10
5197
5257
  },
5198
5258
  {
5199
5259
  "id": "safety",
5200
5260
  "name": "Safety & guardrails",
5201
- "score": 9,
5261
+ "score": 10,
5202
5262
  "max": 10
5203
5263
  },
5204
5264
  {
@@ -5232,12 +5292,12 @@
5232
5292
  "max": 10
5233
5293
  }
5234
5294
  ],
5235
- "evaluatedAt": "2026-08-21T09:19:39.892Z",
5295
+ "evaluatedAt": "2026-09-09T12:09:29.975Z",
5236
5296
  "evaluatedVersion": "1.4.0"
5237
5297
  },
5238
5298
  "skill-best-practice": {
5239
5299
  "providerId": "skill-best-practice",
5240
- "providerVersion": "1.1.0",
5300
+ "providerVersion": "1.2.0",
5241
5301
  "schemaVersion": 1,
5242
5302
  "passed": true,
5243
5303
  "overallScore": 100,
@@ -5246,31 +5306,33 @@
5246
5306
  {
5247
5307
  "id": "validation",
5248
5308
  "name": "Deterministic validation",
5249
- "score": 14,
5250
- "max": 14
5309
+ "score": 15,
5310
+ "max": 15
5251
5311
  }
5252
5312
  ],
5253
- "evaluatedAt": "2026-08-21T09:19:39.892Z",
5313
+ "evaluatedAt": "2026-09-09T12:09:29.975Z",
5254
5314
  "evaluatedVersion": "1.4.0"
5255
5315
  }
5256
5316
  }
5257
5317
  },
5258
5318
  {
5259
- "name": "tasks-generator",
5260
- "description": "Generate sprint-based development tasks from a PRD. Use when asked to create tasks or break down requirements. Don't use for PRD/TAD authoring or task execution.",
5319
+ "name": "seo-ai-optimizer",
5320
+ "description": "Audit and optimize websites for technical SEO, content SEO, and AI bot accessibility. Fixes meta tags, sitemaps, robots.txt, structured data, llms.txt, and GPTBot/ClaudeBot directives. Not for App Store ASO, paid search, or blog writing.",
5261
5321
  "version": "1.3.1",
5262
5322
  "license": "MIT",
5263
5323
  "creator": "",
5264
5324
  "compatibility": "",
5265
5325
  "allowedTools": [],
5326
+ "tags": [],
5327
+ "dependencies": [],
5266
5328
  "modelInvocable": true,
5267
5329
  "userInvocable": true,
5268
- "installUrl": "github:luongnv89/skills:skills/tasks-generator",
5269
- "relPath": "skills/tasks-generator",
5330
+ "installUrl": "github:luongnv89/skills:skills/seo-ai-optimizer",
5331
+ "relPath": "skills/seo-ai-optimizer",
5270
5332
  "verified": true,
5271
- "tokenCount": 2874,
5333
+ "tokenCount": 2237,
5272
5334
  "evalSummary": {
5273
- "overallScore": 92,
5335
+ "overallScore": 91,
5274
5336
  "grade": "A",
5275
5337
  "categories": [
5276
5338
  {
@@ -5288,7 +5350,7 @@
5288
5350
  {
5289
5351
  "id": "prompt-engineering",
5290
5352
  "name": "Prompt engineering",
5291
- "score": 9,
5353
+ "score": 10,
5292
5354
  "max": 10
5293
5355
  },
5294
5356
  {
@@ -5306,7 +5368,7 @@
5306
5368
  {
5307
5369
  "id": "testability",
5308
5370
  "name": "Testability",
5309
- "score": 10,
5371
+ "score": 8,
5310
5372
  "max": 10
5311
5373
  },
5312
5374
  {
@@ -5334,7 +5396,7 @@
5334
5396
  "max": 10
5335
5397
  }
5336
5398
  ],
5337
- "evaluatedAt": "2026-08-21T09:19:39.903Z",
5399
+ "evaluatedAt": "2026-09-09T12:09:30.015Z",
5338
5400
  "evaluatedVersion": "1.3.1"
5339
5401
  },
5340
5402
  "evalSummaries": {
@@ -5343,7 +5405,7 @@
5343
5405
  "providerVersion": "1.0.0",
5344
5406
  "schemaVersion": 1,
5345
5407
  "passed": true,
5346
- "overallScore": 92,
5408
+ "overallScore": 91,
5347
5409
  "grade": "A",
5348
5410
  "categories": [
5349
5411
  {
@@ -5361,7 +5423,7 @@
5361
5423
  {
5362
5424
  "id": "prompt-engineering",
5363
5425
  "name": "Prompt engineering",
5364
- "score": 9,
5426
+ "score": 10,
5365
5427
  "max": 10
5366
5428
  },
5367
5429
  {
@@ -5379,7 +5441,7 @@
5379
5441
  {
5380
5442
  "id": "testability",
5381
5443
  "name": "Testability",
5382
- "score": 10,
5444
+ "score": 8,
5383
5445
  "max": 10
5384
5446
  },
5385
5447
  {
@@ -5407,12 +5469,12 @@
5407
5469
  "max": 10
5408
5470
  }
5409
5471
  ],
5410
- "evaluatedAt": "2026-08-21T09:19:39.903Z",
5472
+ "evaluatedAt": "2026-09-09T12:09:30.016Z",
5411
5473
  "evaluatedVersion": "1.3.1"
5412
5474
  },
5413
5475
  "skill-best-practice": {
5414
5476
  "providerId": "skill-best-practice",
5415
- "providerVersion": "1.1.0",
5477
+ "providerVersion": "1.2.0",
5416
5478
  "schemaVersion": 1,
5417
5479
  "passed": true,
5418
5480
  "overallScore": 100,
@@ -5425,33 +5487,35 @@
5425
5487
  "max": 14
5426
5488
  }
5427
5489
  ],
5428
- "evaluatedAt": "2026-08-21T09:19:39.903Z",
5490
+ "evaluatedAt": "2026-09-09T12:09:30.016Z",
5429
5491
  "evaluatedVersion": "1.3.1"
5430
5492
  }
5431
5493
  }
5432
5494
  },
5433
5495
  {
5434
- "name": "test-coverage",
5435
- "description": "Generate unit tests for untested branches and edge cases. Use when coverage is low, CI flags gaps, or a release needs hardening. Not for integration/E2E suites, framework migrations, or fixing production bugs.",
5436
- "version": "1.3.0",
5437
- "license": "MIT",
5496
+ "name": "subagent-creator",
5497
+ "description": "Create, evaluate, or improve Claude Code subagent files (.claude/agents/*.md) the frontmatter + system prompt defining a delegatable specialist. Don't use for skills (skill-creator), CLAUDE.md/AGENTS.md (agent-config), or running an agent.",
5498
+ "version": "1.1.2",
5499
+ "license": "",
5438
5500
  "creator": "",
5439
5501
  "compatibility": "",
5440
5502
  "allowedTools": [],
5503
+ "tags": [],
5504
+ "dependencies": [],
5441
5505
  "modelInvocable": true,
5442
5506
  "userInvocable": true,
5443
- "installUrl": "github:luongnv89/skills:skills/test-coverage",
5444
- "relPath": "skills/test-coverage",
5507
+ "installUrl": "github:luongnv89/skills:skills/subagent-creator",
5508
+ "relPath": "skills/subagent-creator",
5445
5509
  "verified": true,
5446
- "tokenCount": 2048,
5510
+ "tokenCount": 3014,
5447
5511
  "evalSummary": {
5448
- "overallScore": 93,
5449
- "grade": "A",
5512
+ "overallScore": 87,
5513
+ "grade": "B",
5450
5514
  "categories": [
5451
5515
  {
5452
5516
  "id": "structure",
5453
5517
  "name": "Structure & completeness",
5454
- "score": 10,
5518
+ "score": 9,
5455
5519
  "max": 10
5456
5520
  },
5457
5521
  {
@@ -5463,7 +5527,7 @@
5463
5527
  {
5464
5528
  "id": "prompt-engineering",
5465
5529
  "name": "Prompt engineering",
5466
- "score": 9,
5530
+ "score": 8,
5467
5531
  "max": 10
5468
5532
  },
5469
5533
  {
@@ -5475,7 +5539,7 @@
5475
5539
  {
5476
5540
  "id": "safety",
5477
5541
  "name": "Safety & guardrails",
5478
- "score": 9,
5542
+ "score": 10,
5479
5543
  "max": 10
5480
5544
  },
5481
5545
  {
@@ -5487,7 +5551,7 @@
5487
5551
  {
5488
5552
  "id": "license",
5489
5553
  "name": "License verification",
5490
- "score": 5,
5554
+ "score": 0,
5491
5555
  "max": 10
5492
5556
  },
5493
5557
  {
@@ -5509,8 +5573,8 @@
5509
5573
  "max": 10
5510
5574
  }
5511
5575
  ],
5512
- "evaluatedAt": "2026-08-21T09:19:39.906Z",
5513
- "evaluatedVersion": "1.3.0"
5576
+ "evaluatedAt": "2026-09-09T12:09:30.032Z",
5577
+ "evaluatedVersion": "1.1.2"
5514
5578
  },
5515
5579
  "evalSummaries": {
5516
5580
  "quality": {
@@ -5518,13 +5582,13 @@
5518
5582
  "providerVersion": "1.0.0",
5519
5583
  "schemaVersion": 1,
5520
5584
  "passed": true,
5521
- "overallScore": 93,
5522
- "grade": "A",
5585
+ "overallScore": 87,
5586
+ "grade": "B",
5523
5587
  "categories": [
5524
5588
  {
5525
5589
  "id": "structure",
5526
5590
  "name": "Structure & completeness",
5527
- "score": 10,
5591
+ "score": 9,
5528
5592
  "max": 10
5529
5593
  },
5530
5594
  {
@@ -5536,7 +5600,7 @@
5536
5600
  {
5537
5601
  "id": "prompt-engineering",
5538
5602
  "name": "Prompt engineering",
5539
- "score": 9,
5603
+ "score": 8,
5540
5604
  "max": 10
5541
5605
  },
5542
5606
  {
@@ -5548,7 +5612,7 @@
5548
5612
  {
5549
5613
  "id": "safety",
5550
5614
  "name": "Safety & guardrails",
5551
- "score": 9,
5615
+ "score": 10,
5552
5616
  "max": 10
5553
5617
  },
5554
5618
  {
@@ -5560,7 +5624,7 @@
5560
5624
  {
5561
5625
  "id": "license",
5562
5626
  "name": "License verification",
5563
- "score": 5,
5627
+ "score": 0,
5564
5628
  "max": 10
5565
5629
  },
5566
5630
  {
@@ -5582,12 +5646,12 @@
5582
5646
  "max": 10
5583
5647
  }
5584
5648
  ],
5585
- "evaluatedAt": "2026-08-21T09:19:39.906Z",
5586
- "evaluatedVersion": "1.3.0"
5649
+ "evaluatedAt": "2026-09-09T12:09:30.032Z",
5650
+ "evaluatedVersion": "1.1.2"
5587
5651
  },
5588
5652
  "skill-best-practice": {
5589
5653
  "providerId": "skill-best-practice",
5590
- "providerVersion": "1.1.0",
5654
+ "providerVersion": "1.2.0",
5591
5655
  "schemaVersion": 1,
5592
5656
  "passed": true,
5593
5657
  "overallScore": 100,
@@ -5600,27 +5664,29 @@
5600
5664
  "max": 14
5601
5665
  }
5602
5666
  ],
5603
- "evaluatedAt": "2026-08-21T09:19:39.906Z",
5604
- "evaluatedVersion": "1.3.0"
5667
+ "evaluatedAt": "2026-09-09T12:09:30.032Z",
5668
+ "evaluatedVersion": "1.1.2"
5605
5669
  }
5606
5670
  }
5607
5671
  },
5608
5672
  {
5609
- "name": "tmux-agent-comms",
5610
- "description": "Manage AI agents in tmux: spawn sessions, send messages, wait, capture replies, inspect fleets, and tear down safely. Use for tmux-hosted CLI agents. Don't use for SSH, GNU screen, or GUI apps.",
5611
- "version": "2.2.0",
5673
+ "name": "tad-generator",
5674
+ "description": "Generate a Technical Architecture Document (TAD) from a PRD. Use when asked to design system architecture or define how a product is built. Updates tad.md and reports GitHub links. Don't use for PRD authoring, sprint tasks, or code implementation.",
5675
+ "version": "1.5.0",
5612
5676
  "license": "MIT",
5613
5677
  "creator": "",
5614
- "compatibility": "Requires `tmux` on PATH. Optional Python 3 for wait/preflight/broadcast helpers.",
5678
+ "compatibility": "",
5615
5679
  "allowedTools": [],
5680
+ "tags": [],
5681
+ "dependencies": [],
5616
5682
  "modelInvocable": true,
5617
5683
  "userInvocable": true,
5618
- "installUrl": "github:luongnv89/skills:skills/tmux-agent-comms",
5619
- "relPath": "skills/tmux-agent-comms",
5684
+ "installUrl": "github:luongnv89/skills:skills/tad-generator",
5685
+ "relPath": "skills/tad-generator",
5620
5686
  "verified": true,
5621
- "tokenCount": 3474,
5687
+ "tokenCount": 3197,
5622
5688
  "evalSummary": {
5623
- "overallScore": 93,
5689
+ "overallScore": 92,
5624
5690
  "grade": "A",
5625
5691
  "categories": [
5626
5692
  {
@@ -5650,7 +5716,7 @@
5650
5716
  {
5651
5717
  "id": "safety",
5652
5718
  "name": "Safety & guardrails",
5653
- "score": 10,
5719
+ "score": 9,
5654
5720
  "max": 10
5655
5721
  },
5656
5722
  {
@@ -5684,8 +5750,8 @@
5684
5750
  "max": 10
5685
5751
  }
5686
5752
  ],
5687
- "evaluatedAt": "2026-08-21T09:19:39.909Z",
5688
- "evaluatedVersion": "2.2.0"
5753
+ "evaluatedAt": "2026-09-09T12:09:30.036Z",
5754
+ "evaluatedVersion": "1.5.0"
5689
5755
  },
5690
5756
  "evalSummaries": {
5691
5757
  "quality": {
@@ -5693,7 +5759,7 @@
5693
5759
  "providerVersion": "1.0.0",
5694
5760
  "schemaVersion": 1,
5695
5761
  "passed": true,
5696
- "overallScore": 90,
5762
+ "overallScore": 92,
5697
5763
  "grade": "A",
5698
5764
  "categories": [
5699
5765
  {
@@ -5723,7 +5789,7 @@
5723
5789
  {
5724
5790
  "id": "safety",
5725
5791
  "name": "Safety & guardrails",
5726
- "score": 10,
5792
+ "score": 9,
5727
5793
  "max": 10
5728
5794
  },
5729
5795
  {
@@ -5747,22 +5813,22 @@
5747
5813
  {
5748
5814
  "id": "pii",
5749
5815
  "name": "PII detection",
5750
- "score": 8,
5816
+ "score": 10,
5751
5817
  "max": 10
5752
5818
  },
5753
5819
  {
5754
5820
  "id": "script-lint",
5755
5821
  "name": "Script linting",
5756
- "score": 9,
5822
+ "score": 10,
5757
5823
  "max": 10
5758
5824
  }
5759
5825
  ],
5760
- "evaluatedAt": "2026-08-21T09:19:39.909Z",
5761
- "evaluatedVersion": "2.2.0"
5826
+ "evaluatedAt": "2026-09-09T12:09:30.036Z",
5827
+ "evaluatedVersion": "1.5.0"
5762
5828
  },
5763
5829
  "skill-best-practice": {
5764
5830
  "providerId": "skill-best-practice",
5765
- "providerVersion": "1.1.0",
5831
+ "providerVersion": "1.2.0",
5766
5832
  "schemaVersion": 1,
5767
5833
  "passed": true,
5768
5834
  "overallScore": 100,
@@ -5771,29 +5837,31 @@
5771
5837
  {
5772
5838
  "id": "validation",
5773
5839
  "name": "Deterministic validation",
5774
- "score": 15,
5775
- "max": 15
5840
+ "score": 14,
5841
+ "max": 14
5776
5842
  }
5777
5843
  ],
5778
- "evaluatedAt": "2026-08-21T09:19:39.909Z",
5779
- "evaluatedVersion": "2.2.0"
5844
+ "evaluatedAt": "2026-09-09T12:09:30.036Z",
5845
+ "evaluatedVersion": "1.5.0"
5780
5846
  }
5781
5847
  }
5782
5848
  },
5783
5849
  {
5784
- "name": "viral-product-evaluator",
5785
- "description": "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.",
5786
- "version": "1.2.4",
5850
+ "name": "tasks-generator",
5851
+ "description": "Generate sprint-based development tasks from a PRD. Use when asked to create tasks or break down requirements. Don't use for PRD/TAD authoring or task execution.",
5852
+ "version": "1.3.2",
5787
5853
  "license": "MIT",
5788
5854
  "creator": "",
5789
5855
  "compatibility": "",
5790
5856
  "allowedTools": [],
5857
+ "tags": [],
5858
+ "dependencies": [],
5791
5859
  "modelInvocable": true,
5792
5860
  "userInvocable": true,
5793
- "installUrl": "github:luongnv89/skills:skills/viral-product-evaluator",
5794
- "relPath": "skills/viral-product-evaluator",
5861
+ "installUrl": "github:luongnv89/skills:skills/tasks-generator",
5862
+ "relPath": "skills/tasks-generator",
5795
5863
  "verified": true,
5796
- "tokenCount": 2499,
5864
+ "tokenCount": 2868,
5797
5865
  "evalSummary": {
5798
5866
  "overallScore": 92,
5799
5867
  "grade": "A",
@@ -5859,8 +5927,8 @@
5859
5927
  "max": 10
5860
5928
  }
5861
5929
  ],
5862
- "evaluatedAt": "2026-08-21T09:19:39.912Z",
5863
- "evaluatedVersion": "1.2.4"
5930
+ "evaluatedAt": "2026-09-09T12:09:30.041Z",
5931
+ "evaluatedVersion": "1.3.2"
5864
5932
  },
5865
5933
  "evalSummaries": {
5866
5934
  "quality": {
@@ -5932,12 +6000,12 @@
5932
6000
  "max": 10
5933
6001
  }
5934
6002
  ],
5935
- "evaluatedAt": "2026-08-21T09:19:39.912Z",
5936
- "evaluatedVersion": "1.2.4"
6003
+ "evaluatedAt": "2026-09-09T12:09:30.041Z",
6004
+ "evaluatedVersion": "1.3.2"
5937
6005
  },
5938
6006
  "skill-best-practice": {
5939
6007
  "providerId": "skill-best-practice",
5940
- "providerVersion": "1.1.0",
6008
+ "providerVersion": "1.2.0",
5941
6009
  "schemaVersion": 1,
5942
6010
  "passed": true,
5943
6011
  "overallScore": 100,
@@ -5950,27 +6018,29 @@
5950
6018
  "max": 14
5951
6019
  }
5952
6020
  ],
5953
- "evaluatedAt": "2026-08-21T09:19:39.912Z",
5954
- "evaluatedVersion": "1.2.4"
6021
+ "evaluatedAt": "2026-09-09T12:09:30.041Z",
6022
+ "evaluatedVersion": "1.3.2"
5955
6023
  }
5956
6024
  }
5957
6025
  },
5958
6026
  {
5959
- "name": "website-cloner",
5960
- "description": "Build an improved website clone from a URL via 6-phase gated workflow (Vite/React/shadcn/Tailwind + GitHub Pages). Use for end-to-end site rebuilds. Don't use for single-phase work.",
5961
- "version": "1.2.1",
6027
+ "name": "test-coverage",
6028
+ "description": "Generate unit tests for untested branches and edge cases. Use when coverage is low, CI flags gaps, or a release needs hardening. Not for integration/E2E suites, framework migrations, or fixing production bugs.",
6029
+ "version": "1.3.1",
5962
6030
  "license": "MIT",
5963
6031
  "creator": "",
5964
6032
  "compatibility": "",
5965
6033
  "allowedTools": [],
6034
+ "tags": [],
6035
+ "dependencies": [],
5966
6036
  "modelInvocable": true,
5967
6037
  "userInvocable": true,
5968
- "installUrl": "github:luongnv89/skills:skills/website-cloner",
5969
- "relPath": "skills/website-cloner",
6038
+ "installUrl": "github:luongnv89/skills:skills/test-coverage",
6039
+ "relPath": "skills/test-coverage",
5970
6040
  "verified": true,
5971
- "tokenCount": 3585,
6041
+ "tokenCount": 2048,
5972
6042
  "evalSummary": {
5973
- "overallScore": 91,
6043
+ "overallScore": 93,
5974
6044
  "grade": "A",
5975
6045
  "categories": [
5976
6046
  {
@@ -5994,7 +6064,7 @@
5994
6064
  {
5995
6065
  "id": "context-efficiency",
5996
6066
  "name": "Context efficiency",
5997
- "score": 8,
6067
+ "score": 10,
5998
6068
  "max": 10
5999
6069
  },
6000
6070
  {
@@ -6034,8 +6104,8 @@
6034
6104
  "max": 10
6035
6105
  }
6036
6106
  ],
6037
- "evaluatedAt": "2026-08-21T09:19:39.923Z",
6038
- "evaluatedVersion": "1.2.1"
6107
+ "evaluatedAt": "2026-09-09T12:09:30.045Z",
6108
+ "evaluatedVersion": "1.3.1"
6039
6109
  },
6040
6110
  "evalSummaries": {
6041
6111
  "quality": {
@@ -6043,7 +6113,7 @@
6043
6113
  "providerVersion": "1.0.0",
6044
6114
  "schemaVersion": 1,
6045
6115
  "passed": true,
6046
- "overallScore": 91,
6116
+ "overallScore": 93,
6047
6117
  "grade": "A",
6048
6118
  "categories": [
6049
6119
  {
@@ -6067,7 +6137,7 @@
6067
6137
  {
6068
6138
  "id": "context-efficiency",
6069
6139
  "name": "Context efficiency",
6070
- "score": 8,
6140
+ "score": 10,
6071
6141
  "max": 10
6072
6142
  },
6073
6143
  {
@@ -6107,12 +6177,12 @@
6107
6177
  "max": 10
6108
6178
  }
6109
6179
  ],
6110
- "evaluatedAt": "2026-08-21T09:19:39.923Z",
6111
- "evaluatedVersion": "1.2.1"
6180
+ "evaluatedAt": "2026-09-09T12:09:30.045Z",
6181
+ "evaluatedVersion": "1.3.1"
6112
6182
  },
6113
6183
  "skill-best-practice": {
6114
6184
  "providerId": "skill-best-practice",
6115
- "providerVersion": "1.1.0",
6185
+ "providerVersion": "1.2.0",
6116
6186
  "schemaVersion": 1,
6117
6187
  "passed": true,
6118
6188
  "overallScore": 100,
@@ -6125,52 +6195,760 @@
6125
6195
  "max": 14
6126
6196
  }
6127
6197
  ],
6128
- "evaluatedAt": "2026-08-21T09:19:39.923Z",
6129
- "evaluatedVersion": "1.2.1"
6198
+ "evaluatedAt": "2026-09-09T12:09:30.045Z",
6199
+ "evaluatedVersion": "1.3.1"
6130
6200
  }
6131
6201
  }
6132
- }
6133
- ],
6134
- "bundles": [
6202
+ },
6135
6203
  {
6136
- "version": 1,
6137
- "name": "luongnv89-skills-data-ai",
6138
- "description": "Data, analytics, AI, model, prompt, agent, and automation skills. Derived from luongnv89/skills.",
6139
- "author": "ASM (luongnv89/skills)",
6140
- "createdAt": "2026-08-21T09:19:40.261Z",
6141
- "tags": [
6142
- "repo-derived",
6143
- "inferred",
6144
- "data",
6145
- "ai",
6146
- "agents",
6147
- "luongnv89",
6148
- "skills"
6149
- ],
6150
- "skills": [
6151
- {
6152
- "name": "agent-config",
6153
- "installUrl": "github:luongnv89/skills:skills/agent-config",
6154
- "description": "Create or update CLAUDE.md and AGENTS.md files following official best practices. Use when asked to create, audit, or improve agent config files (CLAUDE.md, AGENTS.md). Don't use for README/contributor docs or non-Claude IDE plugins.",
6155
- "version": "1.3.1"
6204
+ "name": "tmux-agent-comms",
6205
+ "description": "Manage AI agents in tmux: spawn sessions, send messages, wait, capture replies, inspect fleets, and tear down safely. Use for tmux-hosted CLI agents. Don't use for SSH, GNU screen, or GUI apps.",
6206
+ "version": "2.3.1",
6207
+ "license": "MIT",
6208
+ "creator": "",
6209
+ "compatibility": "Requires `tmux` on PATH. Optional Python 3 for wait/preflight/broadcast helpers.",
6210
+ "allowedTools": [],
6211
+ "tags": [],
6212
+ "dependencies": [],
6213
+ "modelInvocable": true,
6214
+ "userInvocable": true,
6215
+ "installUrl": "github:luongnv89/skills:skills/tmux-agent-comms",
6216
+ "relPath": "skills/tmux-agent-comms",
6217
+ "verified": true,
6218
+ "tokenCount": 3262,
6219
+ "evalSummary": {
6220
+ "overallScore": 93,
6221
+ "grade": "A",
6222
+ "categories": [
6223
+ {
6224
+ "id": "structure",
6225
+ "name": "Structure & completeness",
6226
+ "score": 10,
6227
+ "max": 10
6228
+ },
6229
+ {
6230
+ "id": "description",
6231
+ "name": "Description quality",
6232
+ "score": 10,
6233
+ "max": 10
6234
+ },
6235
+ {
6236
+ "id": "prompt-engineering",
6237
+ "name": "Prompt engineering",
6238
+ "score": 10,
6239
+ "max": 10
6240
+ },
6241
+ {
6242
+ "id": "context-efficiency",
6243
+ "name": "Context efficiency",
6244
+ "score": 8,
6245
+ "max": 10
6246
+ },
6247
+ {
6248
+ "id": "safety",
6249
+ "name": "Safety & guardrails",
6250
+ "score": 10,
6251
+ "max": 10
6252
+ },
6253
+ {
6254
+ "id": "testability",
6255
+ "name": "Testability",
6256
+ "score": 10,
6257
+ "max": 10
6258
+ },
6259
+ {
6260
+ "id": "license",
6261
+ "name": "License verification",
6262
+ "score": 5,
6263
+ "max": 10
6264
+ },
6265
+ {
6266
+ "id": "naming",
6267
+ "name": "Naming & conventions",
6268
+ "score": 10,
6269
+ "max": 10
6270
+ },
6271
+ {
6272
+ "id": "pii",
6273
+ "name": "PII detection",
6274
+ "score": 10,
6275
+ "max": 10
6276
+ },
6277
+ {
6278
+ "id": "script-lint",
6279
+ "name": "Script linting",
6280
+ "score": 10,
6281
+ "max": 10
6282
+ }
6283
+ ],
6284
+ "evaluatedAt": "2026-09-09T12:09:30.048Z",
6285
+ "evaluatedVersion": "2.3.1"
6286
+ },
6287
+ "evalSummaries": {
6288
+ "quality": {
6289
+ "providerId": "quality",
6290
+ "providerVersion": "1.0.0",
6291
+ "schemaVersion": 1,
6292
+ "passed": true,
6293
+ "overallScore": 90,
6294
+ "grade": "A",
6295
+ "categories": [
6296
+ {
6297
+ "id": "structure",
6298
+ "name": "Structure & completeness",
6299
+ "score": 10,
6300
+ "max": 10
6301
+ },
6302
+ {
6303
+ "id": "description",
6304
+ "name": "Description quality",
6305
+ "score": 10,
6306
+ "max": 10
6307
+ },
6308
+ {
6309
+ "id": "prompt-engineering",
6310
+ "name": "Prompt engineering",
6311
+ "score": 10,
6312
+ "max": 10
6313
+ },
6314
+ {
6315
+ "id": "context-efficiency",
6316
+ "name": "Context efficiency",
6317
+ "score": 8,
6318
+ "max": 10
6319
+ },
6320
+ {
6321
+ "id": "safety",
6322
+ "name": "Safety & guardrails",
6323
+ "score": 10,
6324
+ "max": 10
6325
+ },
6326
+ {
6327
+ "id": "testability",
6328
+ "name": "Testability",
6329
+ "score": 10,
6330
+ "max": 10
6331
+ },
6332
+ {
6333
+ "id": "license",
6334
+ "name": "License verification",
6335
+ "score": 5,
6336
+ "max": 10
6337
+ },
6338
+ {
6339
+ "id": "naming",
6340
+ "name": "Naming & conventions",
6341
+ "score": 10,
6342
+ "max": 10
6343
+ },
6344
+ {
6345
+ "id": "pii",
6346
+ "name": "PII detection",
6347
+ "score": 8,
6348
+ "max": 10
6349
+ },
6350
+ {
6351
+ "id": "script-lint",
6352
+ "name": "Script linting",
6353
+ "score": 9,
6354
+ "max": 10
6355
+ }
6356
+ ],
6357
+ "evaluatedAt": "2026-09-09T12:09:30.048Z",
6358
+ "evaluatedVersion": "2.3.1"
6359
+ },
6360
+ "skill-best-practice": {
6361
+ "providerId": "skill-best-practice",
6362
+ "providerVersion": "1.2.0",
6363
+ "schemaVersion": 1,
6364
+ "passed": true,
6365
+ "overallScore": 100,
6366
+ "grade": "A",
6367
+ "categories": [
6368
+ {
6369
+ "id": "validation",
6370
+ "name": "Deterministic validation",
6371
+ "score": 15,
6372
+ "max": 15
6373
+ }
6374
+ ],
6375
+ "evaluatedAt": "2026-09-09T12:09:30.048Z",
6376
+ "evaluatedVersion": "2.3.1"
6377
+ }
6378
+ }
6379
+ },
6380
+ {
6381
+ "name": "viral-product-evaluator",
6382
+ "description": "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.",
6383
+ "version": "1.3.0",
6384
+ "license": "MIT",
6385
+ "creator": "",
6386
+ "compatibility": "",
6387
+ "allowedTools": [],
6388
+ "tags": [],
6389
+ "dependencies": [],
6390
+ "modelInvocable": true,
6391
+ "userInvocable": true,
6392
+ "installUrl": "github:luongnv89/skills:skills/viral-product-evaluator",
6393
+ "relPath": "skills/viral-product-evaluator",
6394
+ "verified": true,
6395
+ "tokenCount": 2889,
6396
+ "evalSummary": {
6397
+ "overallScore": 93,
6398
+ "grade": "A",
6399
+ "categories": [
6400
+ {
6401
+ "id": "structure",
6402
+ "name": "Structure & completeness",
6403
+ "score": 10,
6404
+ "max": 10
6405
+ },
6406
+ {
6407
+ "id": "description",
6408
+ "name": "Description quality",
6409
+ "score": 10,
6410
+ "max": 10
6411
+ },
6412
+ {
6413
+ "id": "prompt-engineering",
6414
+ "name": "Prompt engineering",
6415
+ "score": 10,
6416
+ "max": 10
6417
+ },
6418
+ {
6419
+ "id": "context-efficiency",
6420
+ "name": "Context efficiency",
6421
+ "score": 9,
6422
+ "max": 10
6423
+ },
6424
+ {
6425
+ "id": "safety",
6426
+ "name": "Safety & guardrails",
6427
+ "score": 9,
6428
+ "max": 10
6429
+ },
6430
+ {
6431
+ "id": "testability",
6432
+ "name": "Testability",
6433
+ "score": 10,
6434
+ "max": 10
6435
+ },
6436
+ {
6437
+ "id": "license",
6438
+ "name": "License verification",
6439
+ "score": 5,
6440
+ "max": 10
6441
+ },
6442
+ {
6443
+ "id": "naming",
6444
+ "name": "Naming & conventions",
6445
+ "score": 10,
6446
+ "max": 10
6447
+ },
6448
+ {
6449
+ "id": "pii",
6450
+ "name": "PII detection",
6451
+ "score": 10,
6452
+ "max": 10
6453
+ },
6454
+ {
6455
+ "id": "script-lint",
6456
+ "name": "Script linting",
6457
+ "score": 10,
6458
+ "max": 10
6459
+ }
6460
+ ],
6461
+ "evaluatedAt": "2026-09-09T12:09:30.049Z",
6462
+ "evaluatedVersion": "1.3.0"
6463
+ },
6464
+ "evalSummaries": {
6465
+ "quality": {
6466
+ "providerId": "quality",
6467
+ "providerVersion": "1.0.0",
6468
+ "schemaVersion": 1,
6469
+ "passed": true,
6470
+ "overallScore": 93,
6471
+ "grade": "A",
6472
+ "categories": [
6473
+ {
6474
+ "id": "structure",
6475
+ "name": "Structure & completeness",
6476
+ "score": 10,
6477
+ "max": 10
6478
+ },
6479
+ {
6480
+ "id": "description",
6481
+ "name": "Description quality",
6482
+ "score": 10,
6483
+ "max": 10
6484
+ },
6485
+ {
6486
+ "id": "prompt-engineering",
6487
+ "name": "Prompt engineering",
6488
+ "score": 10,
6489
+ "max": 10
6490
+ },
6491
+ {
6492
+ "id": "context-efficiency",
6493
+ "name": "Context efficiency",
6494
+ "score": 9,
6495
+ "max": 10
6496
+ },
6497
+ {
6498
+ "id": "safety",
6499
+ "name": "Safety & guardrails",
6500
+ "score": 9,
6501
+ "max": 10
6502
+ },
6503
+ {
6504
+ "id": "testability",
6505
+ "name": "Testability",
6506
+ "score": 10,
6507
+ "max": 10
6508
+ },
6509
+ {
6510
+ "id": "license",
6511
+ "name": "License verification",
6512
+ "score": 5,
6513
+ "max": 10
6514
+ },
6515
+ {
6516
+ "id": "naming",
6517
+ "name": "Naming & conventions",
6518
+ "score": 10,
6519
+ "max": 10
6520
+ },
6521
+ {
6522
+ "id": "pii",
6523
+ "name": "PII detection",
6524
+ "score": 10,
6525
+ "max": 10
6526
+ },
6527
+ {
6528
+ "id": "script-lint",
6529
+ "name": "Script linting",
6530
+ "score": 10,
6531
+ "max": 10
6532
+ }
6533
+ ],
6534
+ "evaluatedAt": "2026-09-09T12:09:30.049Z",
6535
+ "evaluatedVersion": "1.3.0"
6536
+ },
6537
+ "skill-best-practice": {
6538
+ "providerId": "skill-best-practice",
6539
+ "providerVersion": "1.2.0",
6540
+ "schemaVersion": 1,
6541
+ "passed": true,
6542
+ "overallScore": 100,
6543
+ "grade": "A",
6544
+ "categories": [
6545
+ {
6546
+ "id": "validation",
6547
+ "name": "Deterministic validation",
6548
+ "score": 14,
6549
+ "max": 14
6550
+ }
6551
+ ],
6552
+ "evaluatedAt": "2026-09-09T12:09:30.049Z",
6553
+ "evaluatedVersion": "1.3.0"
6554
+ }
6555
+ }
6556
+ },
6557
+ {
6558
+ "name": "website-agent-readiness",
6559
+ "description": "Scan a live site with isitagentready.com, then approve each step: triage the 0-5 agent-readiness score, write agent-ready-plan.md, file issues via /plan-to-issues. Don't use for applying llms.txt/SEO fixes (seo-ai-optimizer) or app-store ASO.",
6560
+ "version": "1.2.0",
6561
+ "license": "MIT",
6562
+ "creator": "",
6563
+ "compatibility": "Requires curl and python3. Phase 4 additionally requires git, an authenticated GitHub CLI (`gh auth status`), and the plan-to-issues skill.",
6564
+ "allowedTools": [],
6565
+ "tags": [],
6566
+ "dependencies": [],
6567
+ "modelInvocable": true,
6568
+ "userInvocable": true,
6569
+ "installUrl": "github:luongnv89/skills:skills/website-agent-readiness",
6570
+ "relPath": "skills/website-agent-readiness",
6571
+ "verified": true,
6572
+ "tokenCount": 4900,
6573
+ "evalSummary": {
6574
+ "overallScore": 92,
6575
+ "grade": "A",
6576
+ "categories": [
6577
+ {
6578
+ "id": "structure",
6579
+ "name": "Structure & completeness",
6580
+ "score": 10,
6581
+ "max": 10
6582
+ },
6583
+ {
6584
+ "id": "description",
6585
+ "name": "Description quality",
6586
+ "score": 10,
6587
+ "max": 10
6588
+ },
6589
+ {
6590
+ "id": "prompt-engineering",
6591
+ "name": "Prompt engineering",
6592
+ "score": 10,
6593
+ "max": 10
6594
+ },
6595
+ {
6596
+ "id": "context-efficiency",
6597
+ "name": "Context efficiency",
6598
+ "score": 8,
6599
+ "max": 10
6600
+ },
6601
+ {
6602
+ "id": "safety",
6603
+ "name": "Safety & guardrails",
6604
+ "score": 9,
6605
+ "max": 10
6606
+ },
6607
+ {
6608
+ "id": "testability",
6609
+ "name": "Testability",
6610
+ "score": 10,
6611
+ "max": 10
6612
+ },
6613
+ {
6614
+ "id": "license",
6615
+ "name": "License verification",
6616
+ "score": 5,
6617
+ "max": 10
6618
+ },
6619
+ {
6620
+ "id": "naming",
6621
+ "name": "Naming & conventions",
6622
+ "score": 10,
6623
+ "max": 10
6624
+ },
6625
+ {
6626
+ "id": "pii",
6627
+ "name": "PII detection",
6628
+ "score": 10,
6629
+ "max": 10
6630
+ },
6631
+ {
6632
+ "id": "script-lint",
6633
+ "name": "Script linting",
6634
+ "score": 10,
6635
+ "max": 10
6636
+ }
6637
+ ],
6638
+ "evaluatedAt": "2026-09-09T12:09:30.052Z",
6639
+ "evaluatedVersion": "1.2.0"
6640
+ },
6641
+ "evalSummaries": {
6642
+ "quality": {
6643
+ "providerId": "quality",
6644
+ "providerVersion": "1.0.0",
6645
+ "schemaVersion": 1,
6646
+ "passed": true,
6647
+ "overallScore": 92,
6648
+ "grade": "A",
6649
+ "categories": [
6650
+ {
6651
+ "id": "structure",
6652
+ "name": "Structure & completeness",
6653
+ "score": 10,
6654
+ "max": 10
6655
+ },
6656
+ {
6657
+ "id": "description",
6658
+ "name": "Description quality",
6659
+ "score": 10,
6660
+ "max": 10
6661
+ },
6662
+ {
6663
+ "id": "prompt-engineering",
6664
+ "name": "Prompt engineering",
6665
+ "score": 10,
6666
+ "max": 10
6667
+ },
6668
+ {
6669
+ "id": "context-efficiency",
6670
+ "name": "Context efficiency",
6671
+ "score": 8,
6672
+ "max": 10
6673
+ },
6674
+ {
6675
+ "id": "safety",
6676
+ "name": "Safety & guardrails",
6677
+ "score": 9,
6678
+ "max": 10
6679
+ },
6680
+ {
6681
+ "id": "testability",
6682
+ "name": "Testability",
6683
+ "score": 10,
6684
+ "max": 10
6685
+ },
6686
+ {
6687
+ "id": "license",
6688
+ "name": "License verification",
6689
+ "score": 5,
6690
+ "max": 10
6691
+ },
6692
+ {
6693
+ "id": "naming",
6694
+ "name": "Naming & conventions",
6695
+ "score": 10,
6696
+ "max": 10
6697
+ },
6698
+ {
6699
+ "id": "pii",
6700
+ "name": "PII detection",
6701
+ "score": 10,
6702
+ "max": 10
6703
+ },
6704
+ {
6705
+ "id": "script-lint",
6706
+ "name": "Script linting",
6707
+ "score": 10,
6708
+ "max": 10
6709
+ }
6710
+ ],
6711
+ "evaluatedAt": "2026-09-09T12:09:30.052Z",
6712
+ "evaluatedVersion": "1.2.0"
6713
+ },
6714
+ "skill-best-practice": {
6715
+ "providerId": "skill-best-practice",
6716
+ "providerVersion": "1.2.0",
6717
+ "schemaVersion": 1,
6718
+ "passed": true,
6719
+ "overallScore": 100,
6720
+ "grade": "A",
6721
+ "categories": [
6722
+ {
6723
+ "id": "validation",
6724
+ "name": "Deterministic validation",
6725
+ "score": 15,
6726
+ "max": 15
6727
+ }
6728
+ ],
6729
+ "evaluatedAt": "2026-09-09T12:09:30.052Z",
6730
+ "evaluatedVersion": "1.2.0"
6731
+ }
6732
+ }
6733
+ },
6734
+ {
6735
+ "name": "website-cloner",
6736
+ "description": "Build an improved website clone from a URL via 6-phase gated workflow (Vite/React/shadcn/Tailwind + GitHub Pages). Use for end-to-end site rebuilds. Don't use for single-phase work.",
6737
+ "version": "1.2.1",
6738
+ "license": "MIT",
6739
+ "creator": "",
6740
+ "compatibility": "",
6741
+ "allowedTools": [],
6742
+ "tags": [],
6743
+ "dependencies": [],
6744
+ "modelInvocable": true,
6745
+ "userInvocable": true,
6746
+ "installUrl": "github:luongnv89/skills:skills/website-cloner",
6747
+ "relPath": "skills/website-cloner",
6748
+ "verified": true,
6749
+ "tokenCount": 3585,
6750
+ "evalSummary": {
6751
+ "overallScore": 91,
6752
+ "grade": "A",
6753
+ "categories": [
6754
+ {
6755
+ "id": "structure",
6756
+ "name": "Structure & completeness",
6757
+ "score": 10,
6758
+ "max": 10
6759
+ },
6760
+ {
6761
+ "id": "description",
6762
+ "name": "Description quality",
6763
+ "score": 10,
6764
+ "max": 10
6765
+ },
6766
+ {
6767
+ "id": "prompt-engineering",
6768
+ "name": "Prompt engineering",
6769
+ "score": 9,
6770
+ "max": 10
6771
+ },
6772
+ {
6773
+ "id": "context-efficiency",
6774
+ "name": "Context efficiency",
6775
+ "score": 8,
6776
+ "max": 10
6777
+ },
6778
+ {
6779
+ "id": "safety",
6780
+ "name": "Safety & guardrails",
6781
+ "score": 9,
6782
+ "max": 10
6783
+ },
6784
+ {
6785
+ "id": "testability",
6786
+ "name": "Testability",
6787
+ "score": 10,
6788
+ "max": 10
6789
+ },
6790
+ {
6791
+ "id": "license",
6792
+ "name": "License verification",
6793
+ "score": 5,
6794
+ "max": 10
6795
+ },
6796
+ {
6797
+ "id": "naming",
6798
+ "name": "Naming & conventions",
6799
+ "score": 10,
6800
+ "max": 10
6801
+ },
6802
+ {
6803
+ "id": "pii",
6804
+ "name": "PII detection",
6805
+ "score": 10,
6806
+ "max": 10
6807
+ },
6808
+ {
6809
+ "id": "script-lint",
6810
+ "name": "Script linting",
6811
+ "score": 10,
6812
+ "max": 10
6813
+ }
6814
+ ],
6815
+ "evaluatedAt": "2026-09-09T12:09:30.056Z",
6816
+ "evaluatedVersion": "1.2.1"
6817
+ },
6818
+ "evalSummaries": {
6819
+ "quality": {
6820
+ "providerId": "quality",
6821
+ "providerVersion": "1.0.0",
6822
+ "schemaVersion": 1,
6823
+ "passed": true,
6824
+ "overallScore": 91,
6825
+ "grade": "A",
6826
+ "categories": [
6827
+ {
6828
+ "id": "structure",
6829
+ "name": "Structure & completeness",
6830
+ "score": 10,
6831
+ "max": 10
6832
+ },
6833
+ {
6834
+ "id": "description",
6835
+ "name": "Description quality",
6836
+ "score": 10,
6837
+ "max": 10
6838
+ },
6839
+ {
6840
+ "id": "prompt-engineering",
6841
+ "name": "Prompt engineering",
6842
+ "score": 9,
6843
+ "max": 10
6844
+ },
6845
+ {
6846
+ "id": "context-efficiency",
6847
+ "name": "Context efficiency",
6848
+ "score": 8,
6849
+ "max": 10
6850
+ },
6851
+ {
6852
+ "id": "safety",
6853
+ "name": "Safety & guardrails",
6854
+ "score": 9,
6855
+ "max": 10
6856
+ },
6857
+ {
6858
+ "id": "testability",
6859
+ "name": "Testability",
6860
+ "score": 10,
6861
+ "max": 10
6862
+ },
6863
+ {
6864
+ "id": "license",
6865
+ "name": "License verification",
6866
+ "score": 5,
6867
+ "max": 10
6868
+ },
6869
+ {
6870
+ "id": "naming",
6871
+ "name": "Naming & conventions",
6872
+ "score": 10,
6873
+ "max": 10
6874
+ },
6875
+ {
6876
+ "id": "pii",
6877
+ "name": "PII detection",
6878
+ "score": 10,
6879
+ "max": 10
6880
+ },
6881
+ {
6882
+ "id": "script-lint",
6883
+ "name": "Script linting",
6884
+ "score": 10,
6885
+ "max": 10
6886
+ }
6887
+ ],
6888
+ "evaluatedAt": "2026-09-09T12:09:30.057Z",
6889
+ "evaluatedVersion": "1.2.1"
6890
+ },
6891
+ "skill-best-practice": {
6892
+ "providerId": "skill-best-practice",
6893
+ "providerVersion": "1.2.0",
6894
+ "schemaVersion": 1,
6895
+ "passed": true,
6896
+ "overallScore": 100,
6897
+ "grade": "A",
6898
+ "categories": [
6899
+ {
6900
+ "id": "validation",
6901
+ "name": "Deterministic validation",
6902
+ "score": 14,
6903
+ "max": 14
6904
+ }
6905
+ ],
6906
+ "evaluatedAt": "2026-09-09T12:09:30.057Z",
6907
+ "evaluatedVersion": "1.2.1"
6908
+ }
6909
+ }
6910
+ }
6911
+ ],
6912
+ "bundles": [
6913
+ {
6914
+ "version": 1,
6915
+ "name": "luongnv89-skills-data-ai",
6916
+ "description": "Data, analytics, AI, model, prompt, agent, and automation skills. Derived from luongnv89/skills.",
6917
+ "author": "ASM (luongnv89/skills)",
6918
+ "createdAt": "2026-09-09T12:09:30.531Z",
6919
+ "tags": [
6920
+ "repo-derived",
6921
+ "inferred",
6922
+ "data",
6923
+ "ai",
6924
+ "agents",
6925
+ "luongnv89",
6926
+ "skills"
6927
+ ],
6928
+ "skills": [
6929
+ {
6930
+ "name": "agent-config",
6931
+ "installUrl": "github:luongnv89/skills:skills/agent-config",
6932
+ "description": "Create or update CLAUDE.md and AGENTS.md files following official best practices. Use when asked to create, audit, or improve agent config files (CLAUDE.md, AGENTS.md). Don't use for README/contributor docs or non-Claude IDE plugins.",
6933
+ "version": "1.4.1"
6156
6934
  },
6157
6935
  {
6158
6936
  "name": "appstore-review-checker",
6159
6937
  "installUrl": "github:luongnv89/skills:skills/appstore-review-checker",
6160
6938
  "description": "Audit iOS/macOS apps against App Store Review Guidelines before submission, with evidence-backed verdicts and fixes. Don't use for Google Play, general code review, or rejection appeals.",
6161
- "version": "1.2.1"
6939
+ "version": "1.2.2"
6162
6940
  },
6163
6941
  {
6164
6942
  "name": "aso-marketing",
6165
6943
  "installUrl": "github:luongnv89/skills:skills/aso-marketing",
6166
6944
  "description": "Optimize App Store and Google Play listings via a 7-phase, plan-approval-gated ASO workflow (keyword strategy, metadata, localization). Don't use for web SEO, paid UA campaigns, or pre-submission compliance audits.",
6167
- "version": "1.2.1"
6945
+ "version": "1.3.0"
6168
6946
  },
6169
6947
  {
6170
6948
  "name": "brand-name-checker",
6171
6949
  "installUrl": "github:luongnv89/skills:skills/brand-name-checker",
6172
6950
  "description": "Check product and brand names for conflicts across trademarks, domains, social handles, and package registries. Returns a risk level and Proceed/Modify/Abandon recommendation. Skip for name brainstorming, logo design, or trademark filings.",
6173
- "version": "1.3.2"
6951
+ "version": "1.4.0"
6174
6952
  },
6175
6953
  {
6176
6954
  "name": "diagram-generator",
@@ -6182,19 +6960,19 @@
6182
6960
  "name": "doc-manager",
6183
6961
  "installUrl": "github:luongnv89/skills:skills/doc-manager",
6184
6962
  "description": "Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script. Don't use for API-reference autogen (JSDoc/Sphinx), landing pages, or CLAUDE.md/AGENTS.md.",
6185
- "version": "2.0.2"
6963
+ "version": "2.0.3"
6186
6964
  },
6187
6965
  {
6188
6966
  "name": "fork-upstream-sync",
6189
6967
  "installUrl": "github:luongnv89/skills:skills/fork-upstream-sync",
6190
6968
  "description": "Sync a GitHub fork with upstream while keeping unmerged feature branches and open PRs mergeable. Use for rebase on upstream, PR conflicts, integration main. Don't use for git init, releases, or non-fork repos.",
6191
- "version": "1.3.2"
6969
+ "version": "1.3.3"
6192
6970
  },
6193
6971
  {
6194
- "name": "herdr-agent-comms",
6195
- "installUrl": "github:luongnv89/skills:skills/herdr-agent-comms",
6196
- "description": "Manage AI agent fleets in Herdr: split root + sub-agents into one tab as a tiled grid, message/wait/read via herdr CLI, steer any pane. Use for Herdr multi-agent fleets. Don't use for tmux, screen, or non-Herdr terminals.",
6197
- "version": "1.23.0"
6972
+ "name": "herdr-agent",
6973
+ "installUrl": "github:luongnv89/skills:skills/herdr-agent",
6974
+ "description": "Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; `help` lists every operation. Use for Herdr fleets. Don't use for tmux, screen, or non-Herdr terminals.",
6975
+ "version": "3.0.0"
6198
6976
  },
6199
6977
  {
6200
6978
  "name": "idea-validator",
@@ -6206,7 +6984,7 @@
6206
6984
  "name": "issue-work-loop",
6207
6985
  "installUrl": "github:luongnv89/skills:skills/issue-work-loop",
6208
6986
  "description": "Run Herdr loops for one open GitHub issue (resolve→review→fix) or an existing PR (review→lazy fixer) until CLEAN. Don't use for plain resolution without review, review-only/no-fix requests, backlog automation, or merging.",
6209
- "version": "1.3.1"
6987
+ "version": "1.4.1"
6210
6988
  },
6211
6989
  {
6212
6990
  "name": "landing-page-generator",
@@ -6218,13 +6996,25 @@
6218
6996
  "name": "ollama-optimizer",
6219
6997
  "installUrl": "github:luongnv89/skills:skills/ollama-optimizer",
6220
6998
  "description": "Optimize Ollama configuration for the current machine's hardware. Use when asked to speed up Ollama, tune local LLM performance, or pick models that fit available GPU/RAM. Don't use for LM Studio, llama.cpp, vLLM, or hosted-API LLM providers.",
6221
- "version": "1.1.1"
6999
+ "version": "1.2.0"
7000
+ },
7001
+ {
7002
+ "name": "opencode-handoff",
7003
+ "installUrl": "github:luongnv89/skills:skills/opencode-handoff",
7004
+ "description": "Resume a limit-blocked OpenCode session in a fresh sandbox: same project and agent setup, no host OpenCode config/token/key, attached in a tmux panel. Don't use for one-shot sandbox tasks (opencode-sandbox), opencode.ai (opencode-runner), or Herdr.",
7005
+ "version": "1.0.5"
6222
7006
  },
6223
7007
  {
6224
7008
  "name": "opencode-runner",
6225
7009
  "installUrl": "github:luongnv89/skills:skills/opencode-runner",
6226
7010
  "description": "Run coding tasks via opencode using free cloud models. Use when asked to offload work to opencode.ai or run a free model. Don't use for local models (Ollama, LM Studio), Claude/OpenAI calls, or when Claude should do the work itself.",
6227
- "version": "1.4.1"
7011
+ "version": "1.5.0"
7012
+ },
7013
+ {
7014
+ "name": "opencode-sandbox",
7015
+ "installUrl": "github:luongnv89/skills:skills/opencode-sandbox",
7016
+ "description": "Run OpenCode in a docker-dev sandbox (SSH/gh on by default; --no-ssh/--no-github to isolate). Prints docker exec attach; kept until you confirm rm. Don't use for opencode.ai (opencode-runner), Herdr, or the app.",
7017
+ "version": "3.0.1"
6228
7018
  },
6229
7019
  {
6230
7020
  "name": "security-setup",
@@ -6236,7 +7026,7 @@
6236
7026
  "name": "seo-ai-optimizer",
6237
7027
  "installUrl": "github:luongnv89/skills:skills/seo-ai-optimizer",
6238
7028
  "description": "Audit and optimize websites for technical SEO, content SEO, and AI bot accessibility. Fixes meta tags, sitemaps, robots.txt, structured data, llms.txt, and GPTBot/ClaudeBot directives. Not for App Store ASO, paid search, or blog writing.",
6239
- "version": "1.2.3"
7029
+ "version": "1.3.1"
6240
7030
  },
6241
7031
  {
6242
7032
  "name": "subagent-creator",
@@ -6248,13 +7038,19 @@
6248
7038
  "name": "tmux-agent-comms",
6249
7039
  "installUrl": "github:luongnv89/skills:skills/tmux-agent-comms",
6250
7040
  "description": "Manage AI agents in tmux: spawn sessions, send messages, wait, capture replies, inspect fleets, and tear down safely. Use for tmux-hosted CLI agents. Don't use for SSH, GNU screen, or GUI apps.",
6251
- "version": "2.2.0"
7041
+ "version": "2.3.1"
6252
7042
  },
6253
7043
  {
6254
7044
  "name": "viral-product-evaluator",
6255
7045
  "installUrl": "github:luongnv89/skills:skills/viral-product-evaluator",
6256
7046
  "description": "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.",
6257
- "version": "1.2.4"
7047
+ "version": "1.3.0"
7048
+ },
7049
+ {
7050
+ "name": "website-agent-readiness",
7051
+ "installUrl": "github:luongnv89/skills:skills/website-agent-readiness",
7052
+ "description": "Scan a live site with isitagentready.com, then approve each step: triage the 0-5 agent-readiness score, write agent-ready-plan.md, file issues via /plan-to-issues. Don't use for applying llms.txt/SEO fixes (seo-ai-optimizer) or app-store ASO.",
7053
+ "version": "1.2.0"
6258
7054
  },
6259
7055
  {
6260
7056
  "name": "website-cloner",
@@ -6275,7 +7071,7 @@
6275
7071
  "name": "luongnv89-skills-devops",
6276
7072
  "description": "Deployment, CI/CD, infrastructure, cloud, Docker, Kubernetes, and automation skills. Derived from luongnv89/skills.",
6277
7073
  "author": "ASM (luongnv89/skills)",
6278
- "createdAt": "2026-08-21T09:19:40.261Z",
7074
+ "createdAt": "2026-09-09T12:09:30.531Z",
6279
7075
  "tags": [
6280
7076
  "repo-derived",
6281
7077
  "inferred",
@@ -6290,37 +7086,37 @@
6290
7086
  "name": "agent-config",
6291
7087
  "installUrl": "github:luongnv89/skills:skills/agent-config",
6292
7088
  "description": "Create or update CLAUDE.md and AGENTS.md files following official best practices. Use when asked to create, audit, or improve agent config files (CLAUDE.md, AGENTS.md). Don't use for README/contributor docs or non-Claude IDE plugins.",
6293
- "version": "1.3.1"
7089
+ "version": "1.4.1"
6294
7090
  },
6295
7091
  {
6296
7092
  "name": "aso-marketing",
6297
7093
  "installUrl": "github:luongnv89/skills:skills/aso-marketing",
6298
7094
  "description": "Optimize App Store and Google Play listings via a 7-phase, plan-approval-gated ASO workflow (keyword strategy, metadata, localization). Don't use for web SEO, paid UA campaigns, or pre-submission compliance audits.",
6299
- "version": "1.2.1"
7095
+ "version": "1.3.0"
6300
7096
  },
6301
7097
  {
6302
7098
  "name": "auto-push",
6303
7099
  "installUrl": "github:luongnv89/skills:skills/auto-push",
6304
7100
  "description": "Generate a commit message, stage all changes, and push to remote after scanning for secrets, large files, and protected-branch risks. Skip for opening PRs, code review, or cutting releases/tags.",
6305
- "version": "1.0.3"
7101
+ "version": "1.0.4"
6306
7102
  },
6307
7103
  {
6308
7104
  "name": "brand-name-checker",
6309
7105
  "installUrl": "github:luongnv89/skills:skills/brand-name-checker",
6310
7106
  "description": "Check product and brand names for conflicts across trademarks, domains, social handles, and package registries. Returns a risk level and Proceed/Modify/Abandon recommendation. Skip for name brainstorming, logo design, or trademark filings.",
6311
- "version": "1.3.2"
7107
+ "version": "1.4.0"
6312
7108
  },
6313
7109
  {
6314
7110
  "name": "cli-builder",
6315
7111
  "installUrl": "github:luongnv89/skills:skills/cli-builder",
6316
7112
  "description": "Build production-quality CLIs with language detection and a five-step approval-gated workflow. Use when wrapping an existing module or app. Don't use for GUI/TUI apps, web APIs, or one-off shell scripts.",
6317
- "version": "1.0.5"
7113
+ "version": "1.1.0"
6318
7114
  },
6319
7115
  {
6320
7116
  "name": "codebase-modernizer",
6321
7117
  "installUrl": "github:luongnv89/skills:skills/codebase-modernizer",
6322
7118
  "description": "Audit a stale, inherited, or messy codebase — deps, bugs, security, tests, CI, docs, UI/UX — then emit a phased, testable modernization plan. Read-only: plans upgrades, never applies them. Not for single-PR review, PRD-to-tasks, or UX-only audits.",
6323
- "version": "1.2.2"
7119
+ "version": "1.3.0"
6324
7120
  },
6325
7121
  {
6326
7122
  "name": "dev-machine-setup",
@@ -6332,7 +7128,7 @@
6332
7128
  "name": "devops-pipeline",
6333
7129
  "installUrl": "github:luongnv89/skills:skills/devops-pipeline",
6334
7130
  "description": "Configure pre-commit hooks and lean GitHub Actions for shift-left quality assurance. Use when adding or auditing CI/CD to maximize local test coverage and minimize CI cost. Skip for Terraform/K8s, deployment pipelines, or non-GitHub CI providers.",
6335
- "version": "2.0.3"
7131
+ "version": "2.2.1"
6336
7132
  },
6337
7133
  {
6338
7134
  "name": "diagram-generator",
@@ -6344,19 +7140,19 @@
6344
7140
  "name": "doc-manager",
6345
7141
  "installUrl": "github:luongnv89/skills:skills/doc-manager",
6346
7142
  "description": "Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script. Don't use for API-reference autogen (JSDoc/Sphinx), landing pages, or CLAUDE.md/AGENTS.md.",
6347
- "version": "2.0.2"
7143
+ "version": "2.0.3"
6348
7144
  },
6349
7145
  {
6350
7146
  "name": "dont-make-me-think",
6351
7147
  "installUrl": "github:luongnv89/skills:skills/dont-make-me-think",
6352
7148
  "description": "Review UI usability using Steve Krug's principles and produce a scannable report. Use for UX audits of screenshots, URLs, or code. Don't use for brand critique, WCAG audits, or backend/API review.",
6353
- "version": "1.3.2"
7149
+ "version": "1.4.1"
6354
7150
  },
6355
7151
  {
6356
7152
  "name": "fork-upstream-sync",
6357
7153
  "installUrl": "github:luongnv89/skills:skills/fork-upstream-sync",
6358
7154
  "description": "Sync a GitHub fork with upstream while keeping unmerged feature branches and open PRs mergeable. Use for rebase on upstream, PR conflicts, integration main. Don't use for git init, releases, or non-fork repos.",
6359
- "version": "1.3.2"
7155
+ "version": "1.3.3"
6360
7156
  },
6361
7157
  {
6362
7158
  "name": "idea-validator",
@@ -6368,19 +7164,25 @@
6368
7164
  "name": "install-script-generator",
6369
7165
  "installUrl": "github:luongnv89/skills:skills/install-script-generator",
6370
7166
  "description": "Generate cross-platform install scripts for any software or library — a standalone install.sh runnable via a curl/wget one-liner with OS, arch, and package manager detection. Don't use for Dockerfiles, CI/CD pipelines, or one-off shell scripts.",
6371
- "version": "2.2.1"
7167
+ "version": "2.2.3"
6372
7168
  },
6373
7169
  {
6374
7170
  "name": "opencode-runner",
6375
7171
  "installUrl": "github:luongnv89/skills:skills/opencode-runner",
6376
7172
  "description": "Run coding tasks via opencode using free cloud models. Use when asked to offload work to opencode.ai or run a free model. Don't use for local models (Ollama, LM Studio), Claude/OpenAI calls, or when Claude should do the work itself.",
6377
- "version": "1.4.1"
7173
+ "version": "1.5.0"
7174
+ },
7175
+ {
7176
+ "name": "opencode-sandbox",
7177
+ "installUrl": "github:luongnv89/skills:skills/opencode-sandbox",
7178
+ "description": "Run OpenCode in a docker-dev sandbox (SSH/gh on by default; --no-ssh/--no-github to isolate). Prints docker exec attach; kept until you confirm rm. Don't use for opencode.ai (opencode-runner), Herdr, or the app.",
7179
+ "version": "3.0.1"
6378
7180
  },
6379
7181
  {
6380
7182
  "name": "release-manager",
6381
7183
  "installUrl": "github:luongnv89/skills:skills/release-manager",
6382
7184
  "description": "Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm. Use when asked to ship, cut a release, or tag a version. Don't use for routine commits or marketplace publishing.",
6383
- "version": "2.6.0"
7185
+ "version": "2.6.1"
6384
7186
  },
6385
7187
  {
6386
7188
  "name": "security-setup",
@@ -6398,13 +7200,13 @@
6398
7200
  "name": "test-coverage",
6399
7201
  "installUrl": "github:luongnv89/skills:skills/test-coverage",
6400
7202
  "description": "Generate unit tests for untested branches and edge cases. Use when coverage is low, CI flags gaps, or a release needs hardening. Not for integration/E2E suites, framework migrations, or fixing production bugs.",
6401
- "version": "1.3.0"
7203
+ "version": "1.3.1"
6402
7204
  },
6403
7205
  {
6404
7206
  "name": "viral-product-evaluator",
6405
7207
  "installUrl": "github:luongnv89/skills:skills/viral-product-evaluator",
6406
7208
  "description": "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.",
6407
- "version": "1.2.4"
7209
+ "version": "1.3.0"
6408
7210
  },
6409
7211
  {
6410
7212
  "name": "website-cloner",
@@ -6425,7 +7227,7 @@
6425
7227
  "name": "luongnv89-skills-engineering",
6426
7228
  "description": "Coding, debugging, testing, architecture, review, and software engineering skills. Derived from luongnv89/skills.",
6427
7229
  "author": "ASM (luongnv89/skills)",
6428
- "createdAt": "2026-08-21T09:19:40.261Z",
7230
+ "createdAt": "2026-09-09T12:09:30.531Z",
6429
7231
  "tags": [
6430
7232
  "repo-derived",
6431
7233
  "inferred",
@@ -6440,37 +7242,37 @@
6440
7242
  "name": "appstore-review-checker",
6441
7243
  "installUrl": "github:luongnv89/skills:skills/appstore-review-checker",
6442
7244
  "description": "Audit iOS/macOS apps against App Store Review Guidelines before submission, with evidence-backed verdicts and fixes. Don't use for Google Play, general code review, or rejection appeals.",
6443
- "version": "1.2.1"
7245
+ "version": "1.2.2"
6444
7246
  },
6445
7247
  {
6446
7248
  "name": "auto-push",
6447
7249
  "installUrl": "github:luongnv89/skills:skills/auto-push",
6448
7250
  "description": "Generate a commit message, stage all changes, and push to remote after scanning for secrets, large files, and protected-branch risks. Skip for opening PRs, code review, or cutting releases/tags.",
6449
- "version": "1.0.3"
7251
+ "version": "1.0.4"
6450
7252
  },
6451
7253
  {
6452
7254
  "name": "cli-builder",
6453
7255
  "installUrl": "github:luongnv89/skills:skills/cli-builder",
6454
7256
  "description": "Build production-quality CLIs with language detection and a five-step approval-gated workflow. Use when wrapping an existing module or app. Don't use for GUI/TUI apps, web APIs, or one-off shell scripts.",
6455
- "version": "1.0.5"
7257
+ "version": "1.1.0"
6456
7258
  },
6457
7259
  {
6458
7260
  "name": "code-review",
6459
7261
  "installUrl": "github:luongnv89/skills:skills/code-review",
6460
7262
  "description": "Review or improve code — one skill, four modes: bug/security review (default), performance, clean-code audit, slop cleanup. Pass mode:review|perf|clean|cleanup or infer. Don't use for writing features or generating tests (use test-coverage).",
6461
- "version": "2.1.0"
7263
+ "version": "2.1.1"
6462
7264
  },
6463
7265
  {
6464
7266
  "name": "codebase-modernizer",
6465
7267
  "installUrl": "github:luongnv89/skills:skills/codebase-modernizer",
6466
7268
  "description": "Audit a stale, inherited, or messy codebase — deps, bugs, security, tests, CI, docs, UI/UX — then emit a phased, testable modernization plan. Read-only: plans upgrades, never applies them. Not for single-PR review, PRD-to-tasks, or UX-only audits.",
6467
- "version": "1.2.2"
7269
+ "version": "1.3.0"
6468
7270
  },
6469
7271
  {
6470
7272
  "name": "devops-pipeline",
6471
7273
  "installUrl": "github:luongnv89/skills:skills/devops-pipeline",
6472
7274
  "description": "Configure pre-commit hooks and lean GitHub Actions for shift-left quality assurance. Use when adding or auditing CI/CD to maximize local test coverage and minimize CI cost. Skip for Terraform/K8s, deployment pipelines, or non-GitHub CI providers.",
6473
- "version": "2.0.3"
7275
+ "version": "2.2.1"
6474
7276
  },
6475
7277
  {
6476
7278
  "name": "diagram-generator",
@@ -6482,31 +7284,31 @@
6482
7284
  "name": "doc-manager",
6483
7285
  "installUrl": "github:luongnv89/skills:skills/doc-manager",
6484
7286
  "description": "Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script. Don't use for API-reference autogen (JSDoc/Sphinx), landing pages, or CLAUDE.md/AGENTS.md.",
6485
- "version": "2.0.2"
7287
+ "version": "2.0.3"
6486
7288
  },
6487
7289
  {
6488
7290
  "name": "dont-make-me-think",
6489
7291
  "installUrl": "github:luongnv89/skills:skills/dont-make-me-think",
6490
7292
  "description": "Review UI usability using Steve Krug's principles and produce a scannable report. Use for UX audits of screenshots, URLs, or code. Don't use for brand critique, WCAG audits, or backend/API review.",
6491
- "version": "1.3.2"
7293
+ "version": "1.4.1"
6492
7294
  },
6493
7295
  {
6494
7296
  "name": "frontend-design",
6495
7297
  "installUrl": "github:luongnv89/skills:skills/frontend-design",
6496
7298
  "description": "Build production-grade frontend interfaces with distinctive aesthetics and working code. Use for UI components, pages, or frontend features. Don't use for backend/API work or usability-only audits.",
6497
- "version": "1.2.4"
7299
+ "version": "1.2.5"
6498
7300
  },
6499
7301
  {
6500
- "name": "herdr-agent-comms",
6501
- "installUrl": "github:luongnv89/skills:skills/herdr-agent-comms",
6502
- "description": "Manage AI agent fleets in Herdr: split root + sub-agents into one tab as a tiled grid, message/wait/read via herdr CLI, steer any pane. Use for Herdr multi-agent fleets. Don't use for tmux, screen, or non-Herdr terminals.",
6503
- "version": "1.23.0"
7302
+ "name": "herdr-agent",
7303
+ "installUrl": "github:luongnv89/skills:skills/herdr-agent",
7304
+ "description": "Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; `help` lists every operation. Use for Herdr fleets. Don't use for tmux, screen, or non-Herdr terminals.",
7305
+ "version": "3.0.0"
6504
7306
  },
6505
7307
  {
6506
7308
  "name": "issue-work-loop",
6507
7309
  "installUrl": "github:luongnv89/skills:skills/issue-work-loop",
6508
7310
  "description": "Run Herdr loops for one open GitHub issue (resolve→review→fix) or an existing PR (review→lazy fixer) until CLEAN. Don't use for plain resolution without review, review-only/no-fix requests, backlog automation, or merging.",
6509
- "version": "1.3.1"
7311
+ "version": "1.4.1"
6510
7312
  },
6511
7313
  {
6512
7314
  "name": "landing-page-generator",
@@ -6518,19 +7320,37 @@
6518
7320
  "name": "ollama-optimizer",
6519
7321
  "installUrl": "github:luongnv89/skills:skills/ollama-optimizer",
6520
7322
  "description": "Optimize Ollama configuration for the current machine's hardware. Use when asked to speed up Ollama, tune local LLM performance, or pick models that fit available GPU/RAM. Don't use for LM Studio, llama.cpp, vLLM, or hosted-API LLM providers.",
6521
- "version": "1.1.1"
7323
+ "version": "1.2.0"
7324
+ },
7325
+ {
7326
+ "name": "opencode-handoff",
7327
+ "installUrl": "github:luongnv89/skills:skills/opencode-handoff",
7328
+ "description": "Resume a limit-blocked OpenCode session in a fresh sandbox: same project and agent setup, no host OpenCode config/token/key, attached in a tmux panel. Don't use for one-shot sandbox tasks (opencode-sandbox), opencode.ai (opencode-runner), or Herdr.",
7329
+ "version": "1.0.5"
6522
7330
  },
6523
7331
  {
6524
7332
  "name": "opencode-runner",
6525
7333
  "installUrl": "github:luongnv89/skills:skills/opencode-runner",
6526
7334
  "description": "Run coding tasks via opencode using free cloud models. Use when asked to offload work to opencode.ai or run a free model. Don't use for local models (Ollama, LM Studio), Claude/OpenAI calls, or when Claude should do the work itself.",
6527
- "version": "1.4.1"
7335
+ "version": "1.5.0"
7336
+ },
7337
+ {
7338
+ "name": "opencode-sandbox",
7339
+ "installUrl": "github:luongnv89/skills:skills/opencode-sandbox",
7340
+ "description": "Run OpenCode in a docker-dev sandbox (SSH/gh on by default; --no-ssh/--no-github to isolate). Prints docker exec attach; kept until you confirm rm. Don't use for opencode.ai (opencode-runner), Herdr, or the app.",
7341
+ "version": "3.0.1"
6528
7342
  },
6529
7343
  {
6530
7344
  "name": "oss-ready",
6531
7345
  "installUrl": "github:luongnv89/skills:skills/oss-ready",
6532
7346
  "description": "Transform a project into a professional open-source repository by adding LICENSE, README, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, and GitHub issue/PR templates. Don't use for documentation overhauls, landing-page generation, or registry publishing.",
6533
- "version": "1.2.1"
7347
+ "version": "1.3.0"
7348
+ },
7349
+ {
7350
+ "name": "plan-to-issues",
7351
+ "installUrl": "github:luongnv89/skills:skills/plan-to-issues",
7352
+ "description": "Convert any phased plan file, or a conversation about what to build, into labelled GitHub issues under one tracking epic mapping each issue to its source task. No plan file required. Don't use for writing plans, resolving issues, or triage.",
7353
+ "version": "2.0.4"
6534
7354
  },
6535
7355
  {
6536
7356
  "name": "security-setup",
@@ -6548,25 +7368,25 @@
6548
7368
  "name": "tad-generator",
6549
7369
  "installUrl": "github:luongnv89/skills:skills/tad-generator",
6550
7370
  "description": "Generate a Technical Architecture Document (TAD) from a PRD. Use when asked to design system architecture or define how a product is built. Updates tad.md and reports GitHub links. Don't use for PRD authoring, sprint tasks, or code implementation.",
6551
- "version": "1.4.0"
7371
+ "version": "1.5.0"
6552
7372
  },
6553
7373
  {
6554
7374
  "name": "test-coverage",
6555
7375
  "installUrl": "github:luongnv89/skills:skills/test-coverage",
6556
7376
  "description": "Generate unit tests for untested branches and edge cases. Use when coverage is low, CI flags gaps, or a release needs hardening. Not for integration/E2E suites, framework migrations, or fixing production bugs.",
6557
- "version": "1.3.0"
7377
+ "version": "1.3.1"
6558
7378
  },
6559
7379
  {
6560
7380
  "name": "tmux-agent-comms",
6561
7381
  "installUrl": "github:luongnv89/skills:skills/tmux-agent-comms",
6562
7382
  "description": "Manage AI agents in tmux: spawn sessions, send messages, wait, capture replies, inspect fleets, and tear down safely. Use for tmux-hosted CLI agents. Don't use for SSH, GNU screen, or GUI apps.",
6563
- "version": "2.2.0"
7383
+ "version": "2.3.1"
6564
7384
  },
6565
7385
  {
6566
7386
  "name": "viral-product-evaluator",
6567
7387
  "installUrl": "github:luongnv89/skills:skills/viral-product-evaluator",
6568
7388
  "description": "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.",
6569
- "version": "1.2.4"
7389
+ "version": "1.3.0"
6570
7390
  },
6571
7391
  {
6572
7392
  "name": "website-cloner",
@@ -6587,7 +7407,7 @@
6587
7407
  "name": "luongnv89-skills-frontend-design",
6588
7408
  "description": "Frontend, UI, UX, visual design, component, theme, and landing-page skills. Derived from luongnv89/skills.",
6589
7409
  "author": "ASM (luongnv89/skills)",
6590
- "createdAt": "2026-08-21T09:19:40.261Z",
7410
+ "createdAt": "2026-09-09T12:09:30.531Z",
6591
7411
  "tags": [
6592
7412
  "repo-derived",
6593
7413
  "inferred",
@@ -6602,25 +7422,25 @@
6602
7422
  "name": "appstore-review-checker",
6603
7423
  "installUrl": "github:luongnv89/skills:skills/appstore-review-checker",
6604
7424
  "description": "Audit iOS/macOS apps against App Store Review Guidelines before submission, with evidence-backed verdicts and fixes. Don't use for Google Play, general code review, or rejection appeals.",
6605
- "version": "1.2.1"
7425
+ "version": "1.2.2"
6606
7426
  },
6607
7427
  {
6608
7428
  "name": "brand-name-checker",
6609
7429
  "installUrl": "github:luongnv89/skills:skills/brand-name-checker",
6610
7430
  "description": "Check product and brand names for conflicts across trademarks, domains, social handles, and package registries. Returns a risk level and Proceed/Modify/Abandon recommendation. Skip for name brainstorming, logo design, or trademark filings.",
6611
- "version": "1.3.2"
7431
+ "version": "1.4.0"
6612
7432
  },
6613
7433
  {
6614
7434
  "name": "cli-builder",
6615
7435
  "installUrl": "github:luongnv89/skills:skills/cli-builder",
6616
7436
  "description": "Build production-quality CLIs with language detection and a five-step approval-gated workflow. Use when wrapping an existing module or app. Don't use for GUI/TUI apps, web APIs, or one-off shell scripts.",
6617
- "version": "1.0.5"
7437
+ "version": "1.1.0"
6618
7438
  },
6619
7439
  {
6620
7440
  "name": "codebase-modernizer",
6621
7441
  "installUrl": "github:luongnv89/skills:skills/codebase-modernizer",
6622
7442
  "description": "Audit a stale, inherited, or messy codebase — deps, bugs, security, tests, CI, docs, UI/UX — then emit a phased, testable modernization plan. Read-only: plans upgrades, never applies them. Not for single-PR review, PRD-to-tasks, or UX-only audits.",
6623
- "version": "1.2.2"
7443
+ "version": "1.3.0"
6624
7444
  },
6625
7445
  {
6626
7446
  "name": "dev-machine-setup",
@@ -6632,25 +7452,25 @@
6632
7452
  "name": "doc-manager",
6633
7453
  "installUrl": "github:luongnv89/skills:skills/doc-manager",
6634
7454
  "description": "Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script. Don't use for API-reference autogen (JSDoc/Sphinx), landing pages, or CLAUDE.md/AGENTS.md.",
6635
- "version": "2.0.2"
7455
+ "version": "2.0.3"
6636
7456
  },
6637
7457
  {
6638
7458
  "name": "dont-make-me-think",
6639
7459
  "installUrl": "github:luongnv89/skills:skills/dont-make-me-think",
6640
7460
  "description": "Review UI usability using Steve Krug's principles and produce a scannable report. Use for UX audits of screenshots, URLs, or code. Don't use for brand critique, WCAG audits, or backend/API review.",
6641
- "version": "1.3.2"
7461
+ "version": "1.4.1"
6642
7462
  },
6643
7463
  {
6644
7464
  "name": "frontend-design",
6645
7465
  "installUrl": "github:luongnv89/skills:skills/frontend-design",
6646
7466
  "description": "Build production-grade frontend interfaces with distinctive aesthetics and working code. Use for UI components, pages, or frontend features. Don't use for backend/API work or usability-only audits.",
6647
- "version": "1.2.4"
7467
+ "version": "1.2.5"
6648
7468
  },
6649
7469
  {
6650
- "name": "herdr-agent-comms",
6651
- "installUrl": "github:luongnv89/skills:skills/herdr-agent-comms",
6652
- "description": "Manage AI agent fleets in Herdr: split root + sub-agents into one tab as a tiled grid, message/wait/read via herdr CLI, steer any pane. Use for Herdr multi-agent fleets. Don't use for tmux, screen, or non-Herdr terminals.",
6653
- "version": "1.23.0"
7470
+ "name": "herdr-agent",
7471
+ "installUrl": "github:luongnv89/skills:skills/herdr-agent",
7472
+ "description": "Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; `help` lists every operation. Use for Herdr fleets. Don't use for tmux, screen, or non-Herdr terminals.",
7473
+ "version": "3.0.0"
6654
7474
  },
6655
7475
  {
6656
7476
  "name": "landing-page-generator",
@@ -6662,49 +7482,61 @@
6662
7482
  "name": "logo-designer",
6663
7483
  "installUrl": "github:luongnv89/skills:skills/logo-designer",
6664
7484
  "description": "Generate professional SVG logos from project context: 7 brand variants plus a showcase HTML page. Use for product marks, wordmarks, icons, and favicons. Don't use for raster-only logos, illustrations, or full brand guidelines.",
6665
- "version": "1.2.3"
7485
+ "version": "1.2.4"
7486
+ },
7487
+ {
7488
+ "name": "opencode-handoff",
7489
+ "installUrl": "github:luongnv89/skills:skills/opencode-handoff",
7490
+ "description": "Resume a limit-blocked OpenCode session in a fresh sandbox: same project and agent setup, no host OpenCode config/token/key, attached in a tmux panel. Don't use for one-shot sandbox tasks (opencode-sandbox), opencode.ai (opencode-runner), or Herdr.",
7491
+ "version": "1.0.5"
6666
7492
  },
6667
7493
  {
6668
7494
  "name": "oss-ready",
6669
7495
  "installUrl": "github:luongnv89/skills:skills/oss-ready",
6670
7496
  "description": "Transform a project into a professional open-source repository by adding LICENSE, README, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, and GitHub issue/PR templates. Don't use for documentation overhauls, landing-page generation, or registry publishing.",
6671
- "version": "1.2.1"
7497
+ "version": "1.3.0"
7498
+ },
7499
+ {
7500
+ "name": "plan-to-issues",
7501
+ "installUrl": "github:luongnv89/skills:skills/plan-to-issues",
7502
+ "description": "Convert any phased plan file, or a conversation about what to build, into labelled GitHub issues under one tracking epic mapping each issue to its source task. No plan file required. Don't use for writing plans, resolving issues, or triage.",
7503
+ "version": "2.0.4"
6672
7504
  },
6673
7505
  {
6674
7506
  "name": "prd-generator",
6675
7507
  "installUrl": "github:luongnv89/skills:skills/prd-generator",
6676
7508
  "description": "Generate Product Requirements Documents from `idea.md` and `validate.md` files. Use when asked to create or update a PRD. Don't use for TAD, sprint tasks, or raw idea validation.",
6677
- "version": "1.3.2"
7509
+ "version": "1.4.0"
6678
7510
  },
6679
7511
  {
6680
7512
  "name": "tad-generator",
6681
7513
  "installUrl": "github:luongnv89/skills:skills/tad-generator",
6682
7514
  "description": "Generate a Technical Architecture Document (TAD) from a PRD. Use when asked to design system architecture or define how a product is built. Updates tad.md and reports GitHub links. Don't use for PRD authoring, sprint tasks, or code implementation.",
6683
- "version": "1.4.0"
7515
+ "version": "1.5.0"
6684
7516
  },
6685
7517
  {
6686
7518
  "name": "tasks-generator",
6687
7519
  "installUrl": "github:luongnv89/skills:skills/tasks-generator",
6688
7520
  "description": "Generate sprint-based development tasks from a PRD. Use when asked to create tasks or break down requirements. Don't use for PRD/TAD authoring or task execution.",
6689
- "version": "1.3.1"
7521
+ "version": "1.3.2"
6690
7522
  },
6691
7523
  {
6692
7524
  "name": "test-coverage",
6693
7525
  "installUrl": "github:luongnv89/skills:skills/test-coverage",
6694
7526
  "description": "Generate unit tests for untested branches and edge cases. Use when coverage is low, CI flags gaps, or a release needs hardening. Not for integration/E2E suites, framework migrations, or fixing production bugs.",
6695
- "version": "1.3.0"
7527
+ "version": "1.3.1"
6696
7528
  },
6697
7529
  {
6698
7530
  "name": "tmux-agent-comms",
6699
7531
  "installUrl": "github:luongnv89/skills:skills/tmux-agent-comms",
6700
7532
  "description": "Manage AI agents in tmux: spawn sessions, send messages, wait, capture replies, inspect fleets, and tear down safely. Use for tmux-hosted CLI agents. Don't use for SSH, GNU screen, or GUI apps.",
6701
- "version": "2.2.0"
7533
+ "version": "2.3.1"
6702
7534
  },
6703
7535
  {
6704
7536
  "name": "viral-product-evaluator",
6705
7537
  "installUrl": "github:luongnv89/skills:skills/viral-product-evaluator",
6706
7538
  "description": "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.",
6707
- "version": "1.2.4"
7539
+ "version": "1.3.0"
6708
7540
  },
6709
7541
  {
6710
7542
  "name": "website-cloner",
@@ -6725,7 +7557,7 @@
6725
7557
  "name": "luongnv89-skills-marketing",
6726
7558
  "description": "Marketing, growth, SEO, ASO, affiliate, sales, and conversion skills. Derived from luongnv89/skills.",
6727
7559
  "author": "ASM (luongnv89/skills)",
6728
- "createdAt": "2026-08-21T09:19:40.261Z",
7560
+ "createdAt": "2026-09-09T12:09:30.531Z",
6729
7561
  "tags": [
6730
7562
  "repo-derived",
6731
7563
  "inferred",
@@ -6740,25 +7572,25 @@
6740
7572
  "name": "aso-marketing",
6741
7573
  "installUrl": "github:luongnv89/skills:skills/aso-marketing",
6742
7574
  "description": "Optimize App Store and Google Play listings via a 7-phase, plan-approval-gated ASO workflow (keyword strategy, metadata, localization). Don't use for web SEO, paid UA campaigns, or pre-submission compliance audits.",
6743
- "version": "1.2.1"
7575
+ "version": "1.3.0"
6744
7576
  },
6745
7577
  {
6746
7578
  "name": "brand-name-checker",
6747
7579
  "installUrl": "github:luongnv89/skills:skills/brand-name-checker",
6748
7580
  "description": "Check product and brand names for conflicts across trademarks, domains, social handles, and package registries. Returns a risk level and Proceed/Modify/Abandon recommendation. Skip for name brainstorming, logo design, or trademark filings.",
6749
- "version": "1.3.2"
7581
+ "version": "1.4.0"
6750
7582
  },
6751
7583
  {
6752
7584
  "name": "dont-make-me-think",
6753
7585
  "installUrl": "github:luongnv89/skills:skills/dont-make-me-think",
6754
7586
  "description": "Review UI usability using Steve Krug's principles and produce a scannable report. Use for UX audits of screenshots, URLs, or code. Don't use for brand critique, WCAG audits, or backend/API review.",
6755
- "version": "1.3.2"
7587
+ "version": "1.4.1"
6756
7588
  },
6757
7589
  {
6758
7590
  "name": "install-script-generator",
6759
7591
  "installUrl": "github:luongnv89/skills:skills/install-script-generator",
6760
7592
  "description": "Generate cross-platform install scripts for any software or library — a standalone install.sh runnable via a curl/wget one-liner with OS, arch, and package manager detection. Don't use for Dockerfiles, CI/CD pipelines, or one-off shell scripts.",
6761
- "version": "2.2.1"
7593
+ "version": "2.2.3"
6762
7594
  },
6763
7595
  {
6764
7596
  "name": "landing-page-generator",
@@ -6770,19 +7602,73 @@
6770
7602
  "name": "logo-designer",
6771
7603
  "installUrl": "github:luongnv89/skills:skills/logo-designer",
6772
7604
  "description": "Generate professional SVG logos from project context: 7 brand variants plus a showcase HTML page. Use for product marks, wordmarks, icons, and favicons. Don't use for raster-only logos, illustrations, or full brand guidelines.",
6773
- "version": "1.2.3"
7605
+ "version": "1.2.4"
6774
7606
  },
6775
7607
  {
6776
7608
  "name": "seo-ai-optimizer",
6777
7609
  "installUrl": "github:luongnv89/skills:skills/seo-ai-optimizer",
6778
7610
  "description": "Audit and optimize websites for technical SEO, content SEO, and AI bot accessibility. Fixes meta tags, sitemaps, robots.txt, structured data, llms.txt, and GPTBot/ClaudeBot directives. Not for App Store ASO, paid search, or blog writing.",
6779
- "version": "1.2.3"
7611
+ "version": "1.3.1"
6780
7612
  },
6781
7613
  {
6782
7614
  "name": "viral-product-evaluator",
6783
7615
  "installUrl": "github:luongnv89/skills:skills/viral-product-evaluator",
6784
7616
  "description": "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.",
6785
- "version": "1.2.4"
7617
+ "version": "1.3.0"
7618
+ },
7619
+ {
7620
+ "name": "website-agent-readiness",
7621
+ "installUrl": "github:luongnv89/skills:skills/website-agent-readiness",
7622
+ "description": "Scan a live site with isitagentready.com, then approve each step: triage the 0-5 agent-readiness score, write agent-ready-plan.md, file issues via /plan-to-issues. Don't use for applying llms.txt/SEO fixes (seo-ai-optimizer) or app-store ASO.",
7623
+ "version": "1.2.0"
7624
+ }
7625
+ ],
7626
+ "sourceRepo": {
7627
+ "owner": "luongnv89",
7628
+ "repo": "skills",
7629
+ "repoUrl": "https://github.com/luongnv89/skills.git"
7630
+ },
7631
+ "inferred": true
7632
+ },
7633
+ {
7634
+ "version": 1,
7635
+ "name": "luongnv89-skills-mobile",
7636
+ "description": "iOS, Swift, SwiftUI, Xcode, macOS, and App Store skills. Derived from luongnv89/skills.",
7637
+ "author": "ASM (luongnv89/skills)",
7638
+ "createdAt": "2026-09-09T12:09:30.531Z",
7639
+ "tags": [
7640
+ "repo-derived",
7641
+ "inferred",
7642
+ "mobile",
7643
+ "ios",
7644
+ "swift",
7645
+ "luongnv89",
7646
+ "skills"
7647
+ ],
7648
+ "skills": [
7649
+ {
7650
+ "name": "appstore-review-checker",
7651
+ "installUrl": "github:luongnv89/skills:skills/appstore-review-checker",
7652
+ "description": "Audit iOS/macOS apps against App Store Review Guidelines before submission, with evidence-backed verdicts and fixes. Don't use for Google Play, general code review, or rejection appeals.",
7653
+ "version": "1.2.2"
7654
+ },
7655
+ {
7656
+ "name": "aso-marketing",
7657
+ "installUrl": "github:luongnv89/skills:skills/aso-marketing",
7658
+ "description": "Optimize App Store and Google Play listings via a 7-phase, plan-approval-gated ASO workflow (keyword strategy, metadata, localization). Don't use for web SEO, paid UA campaigns, or pre-submission compliance audits.",
7659
+ "version": "1.3.0"
7660
+ },
7661
+ {
7662
+ "name": "dev-machine-setup",
7663
+ "installUrl": "github:luongnv89/skills:skills/dev-machine-setup",
7664
+ "description": "Set up or tune any dev machine, fresh or drifted, on macOS, Linux, or Windows: report what's missing, install only that, then fix PATH, duplicate runtimes, and shell config. Don't use for Dockerfiles, CI images, or single package installs.",
7665
+ "version": "0.9.0"
7666
+ },
7667
+ {
7668
+ "name": "seo-ai-optimizer",
7669
+ "installUrl": "github:luongnv89/skills:skills/seo-ai-optimizer",
7670
+ "description": "Audit and optimize websites for technical SEO, content SEO, and AI bot accessibility. Fixes meta tags, sitemaps, robots.txt, structured data, llms.txt, and GPTBot/ClaudeBot directives. Not for App Store ASO, paid search, or blog writing.",
7671
+ "version": "1.3.1"
6786
7672
  }
6787
7673
  ],
6788
7674
  "sourceRepo": {
@@ -6797,7 +7683,7 @@
6797
7683
  "name": "luongnv89-skills-product-business",
6798
7684
  "description": "Product, strategy, PRD, planning, finance, resume, and business workflow skills. Derived from luongnv89/skills.",
6799
7685
  "author": "ASM (luongnv89/skills)",
6800
- "createdAt": "2026-08-21T09:19:40.261Z",
7686
+ "createdAt": "2026-09-09T12:09:30.531Z",
6801
7687
  "tags": [
6802
7688
  "repo-derived",
6803
7689
  "inferred",
@@ -6812,31 +7698,31 @@
6812
7698
  "name": "aso-marketing",
6813
7699
  "installUrl": "github:luongnv89/skills:skills/aso-marketing",
6814
7700
  "description": "Optimize App Store and Google Play listings via a 7-phase, plan-approval-gated ASO workflow (keyword strategy, metadata, localization). Don't use for web SEO, paid UA campaigns, or pre-submission compliance audits.",
6815
- "version": "1.2.1"
7701
+ "version": "1.3.0"
6816
7702
  },
6817
7703
  {
6818
7704
  "name": "brand-name-checker",
6819
7705
  "installUrl": "github:luongnv89/skills:skills/brand-name-checker",
6820
7706
  "description": "Check product and brand names for conflicts across trademarks, domains, social handles, and package registries. Returns a risk level and Proceed/Modify/Abandon recommendation. Skip for name brainstorming, logo design, or trademark filings.",
6821
- "version": "1.3.2"
7707
+ "version": "1.4.0"
6822
7708
  },
6823
7709
  {
6824
7710
  "name": "cli-builder",
6825
7711
  "installUrl": "github:luongnv89/skills:skills/cli-builder",
6826
7712
  "description": "Build production-quality CLIs with language detection and a five-step approval-gated workflow. Use when wrapping an existing module or app. Don't use for GUI/TUI apps, web APIs, or one-off shell scripts.",
6827
- "version": "1.0.5"
7713
+ "version": "1.1.0"
6828
7714
  },
6829
7715
  {
6830
7716
  "name": "codebase-modernizer",
6831
7717
  "installUrl": "github:luongnv89/skills:skills/codebase-modernizer",
6832
7718
  "description": "Audit a stale, inherited, or messy codebase — deps, bugs, security, tests, CI, docs, UI/UX — then emit a phased, testable modernization plan. Read-only: plans upgrades, never applies them. Not for single-PR review, PRD-to-tasks, or UX-only audits.",
6833
- "version": "1.2.2"
7719
+ "version": "1.3.0"
6834
7720
  },
6835
7721
  {
6836
7722
  "name": "frontend-design",
6837
7723
  "installUrl": "github:luongnv89/skills:skills/frontend-design",
6838
7724
  "description": "Build production-grade frontend interfaces with distinctive aesthetics and working code. Use for UI components, pages, or frontend features. Don't use for backend/API work or usability-only audits.",
6839
- "version": "1.2.4"
7725
+ "version": "1.2.5"
6840
7726
  },
6841
7727
  {
6842
7728
  "name": "idea-validator",
@@ -6854,43 +7740,49 @@
6854
7740
  "name": "logo-designer",
6855
7741
  "installUrl": "github:luongnv89/skills:skills/logo-designer",
6856
7742
  "description": "Generate professional SVG logos from project context: 7 brand variants plus a showcase HTML page. Use for product marks, wordmarks, icons, and favicons. Don't use for raster-only logos, illustrations, or full brand guidelines.",
6857
- "version": "1.2.3"
7743
+ "version": "1.2.4"
7744
+ },
7745
+ {
7746
+ "name": "opencode-handoff",
7747
+ "installUrl": "github:luongnv89/skills:skills/opencode-handoff",
7748
+ "description": "Resume a limit-blocked OpenCode session in a fresh sandbox: same project and agent setup, no host OpenCode config/token/key, attached in a tmux panel. Don't use for one-shot sandbox tasks (opencode-sandbox), opencode.ai (opencode-runner), or Herdr.",
7749
+ "version": "1.0.5"
6858
7750
  },
6859
7751
  {
6860
7752
  "name": "prd-generator",
6861
7753
  "installUrl": "github:luongnv89/skills:skills/prd-generator",
6862
7754
  "description": "Generate Product Requirements Documents from `idea.md` and `validate.md` files. Use when asked to create or update a PRD. Don't use for TAD, sprint tasks, or raw idea validation.",
6863
- "version": "1.3.2"
7755
+ "version": "1.4.0"
6864
7756
  },
6865
7757
  {
6866
7758
  "name": "release-manager",
6867
7759
  "installUrl": "github:luongnv89/skills:skills/release-manager",
6868
7760
  "description": "Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm. Use when asked to ship, cut a release, or tag a version. Don't use for routine commits or marketplace publishing.",
6869
- "version": "2.6.0"
7761
+ "version": "2.6.1"
6870
7762
  },
6871
7763
  {
6872
7764
  "name": "tad-generator",
6873
7765
  "installUrl": "github:luongnv89/skills:skills/tad-generator",
6874
7766
  "description": "Generate a Technical Architecture Document (TAD) from a PRD. Use when asked to design system architecture or define how a product is built. Updates tad.md and reports GitHub links. Don't use for PRD authoring, sprint tasks, or code implementation.",
6875
- "version": "1.4.0"
7767
+ "version": "1.5.0"
6876
7768
  },
6877
7769
  {
6878
7770
  "name": "tasks-generator",
6879
7771
  "installUrl": "github:luongnv89/skills:skills/tasks-generator",
6880
7772
  "description": "Generate sprint-based development tasks from a PRD. Use when asked to create tasks or break down requirements. Don't use for PRD/TAD authoring or task execution.",
6881
- "version": "1.3.1"
7773
+ "version": "1.3.2"
6882
7774
  },
6883
7775
  {
6884
7776
  "name": "test-coverage",
6885
7777
  "installUrl": "github:luongnv89/skills:skills/test-coverage",
6886
7778
  "description": "Generate unit tests for untested branches and edge cases. Use when coverage is low, CI flags gaps, or a release needs hardening. Not for integration/E2E suites, framework migrations, or fixing production bugs.",
6887
- "version": "1.3.0"
7779
+ "version": "1.3.1"
6888
7780
  },
6889
7781
  {
6890
7782
  "name": "viral-product-evaluator",
6891
7783
  "installUrl": "github:luongnv89/skills:skills/viral-product-evaluator",
6892
7784
  "description": "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.",
6893
- "version": "1.2.4"
7785
+ "version": "1.3.0"
6894
7786
  }
6895
7787
  ],
6896
7788
  "sourceRepo": {
@@ -6905,7 +7797,7 @@
6905
7797
  "name": "luongnv89-skills-research",
6906
7798
  "description": "Research, academic, literature-review, citation, paper, and analysis skills. Derived from luongnv89/skills.",
6907
7799
  "author": "ASM (luongnv89/skills)",
6908
- "createdAt": "2026-08-21T09:19:40.261Z",
7800
+ "createdAt": "2026-09-09T12:09:30.531Z",
6909
7801
  "tags": [
6910
7802
  "repo-derived",
6911
7803
  "inferred",
@@ -6920,31 +7812,31 @@
6920
7812
  "name": "appstore-review-checker",
6921
7813
  "installUrl": "github:luongnv89/skills:skills/appstore-review-checker",
6922
7814
  "description": "Audit iOS/macOS apps against App Store Review Guidelines before submission, with evidence-backed verdicts and fixes. Don't use for Google Play, general code review, or rejection appeals.",
6923
- "version": "1.2.1"
7815
+ "version": "1.2.2"
6924
7816
  },
6925
7817
  {
6926
7818
  "name": "auto-push",
6927
7819
  "installUrl": "github:luongnv89/skills:skills/auto-push",
6928
7820
  "description": "Generate a commit message, stage all changes, and push to remote after scanning for secrets, large files, and protected-branch risks. Skip for opening PRs, code review, or cutting releases/tags.",
6929
- "version": "1.0.3"
7821
+ "version": "1.0.4"
6930
7822
  },
6931
7823
  {
6932
7824
  "name": "code-review",
6933
7825
  "installUrl": "github:luongnv89/skills:skills/code-review",
6934
7826
  "description": "Review or improve code — one skill, four modes: bug/security review (default), performance, clean-code audit, slop cleanup. Pass mode:review|perf|clean|cleanup or infer. Don't use for writing features or generating tests (use test-coverage).",
6935
- "version": "2.1.0"
7827
+ "version": "2.1.1"
6936
7828
  },
6937
7829
  {
6938
7830
  "name": "codebase-modernizer",
6939
7831
  "installUrl": "github:luongnv89/skills:skills/codebase-modernizer",
6940
7832
  "description": "Audit a stale, inherited, or messy codebase — deps, bugs, security, tests, CI, docs, UI/UX — then emit a phased, testable modernization plan. Read-only: plans upgrades, never applies them. Not for single-PR review, PRD-to-tasks, or UX-only audits.",
6941
- "version": "1.2.2"
7833
+ "version": "1.3.0"
6942
7834
  },
6943
7835
  {
6944
7836
  "name": "dont-make-me-think",
6945
7837
  "installUrl": "github:luongnv89/skills:skills/dont-make-me-think",
6946
7838
  "description": "Review UI usability using Steve Krug's principles and produce a scannable report. Use for UX audits of screenshots, URLs, or code. Don't use for brand critique, WCAG audits, or backend/API review.",
6947
- "version": "1.3.2"
7839
+ "version": "1.4.1"
6948
7840
  },
6949
7841
  {
6950
7842
  "name": "idea-validator",
@@ -6956,7 +7848,7 @@
6956
7848
  "name": "issue-work-loop",
6957
7849
  "installUrl": "github:luongnv89/skills:skills/issue-work-loop",
6958
7850
  "description": "Run Herdr loops for one open GitHub issue (resolve→review→fix) or an existing PR (review→lazy fixer) until CLEAN. Don't use for plain resolution without review, review-only/no-fix requests, backlog automation, or merging.",
6959
- "version": "1.3.1"
7851
+ "version": "1.4.1"
6960
7852
  },
6961
7853
  {
6962
7854
  "name": "security-setup",
@@ -6974,7 +7866,7 @@
6974
7866
  "name": "viral-product-evaluator",
6975
7867
  "installUrl": "github:luongnv89/skills:skills/viral-product-evaluator",
6976
7868
  "description": "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.",
6977
- "version": "1.2.4"
7869
+ "version": "1.3.0"
6978
7870
  }
6979
7871
  ],
6980
7872
  "sourceRepo": {
@@ -6989,7 +7881,7 @@
6989
7881
  "name": "luongnv89-skills-writing",
6990
7882
  "description": "Writing, editing, documentation, publishing, and content-production skills. Derived from luongnv89/skills.",
6991
7883
  "author": "ASM (luongnv89/skills)",
6992
- "createdAt": "2026-08-21T09:19:40.261Z",
7884
+ "createdAt": "2026-09-09T12:09:30.531Z",
6993
7885
  "tags": [
6994
7886
  "repo-derived",
6995
7887
  "inferred",
@@ -7004,25 +7896,25 @@
7004
7896
  "name": "agent-config",
7005
7897
  "installUrl": "github:luongnv89/skills:skills/agent-config",
7006
7898
  "description": "Create or update CLAUDE.md and AGENTS.md files following official best practices. Use when asked to create, audit, or improve agent config files (CLAUDE.md, AGENTS.md). Don't use for README/contributor docs or non-Claude IDE plugins.",
7007
- "version": "1.3.1"
7899
+ "version": "1.4.1"
7008
7900
  },
7009
7901
  {
7010
7902
  "name": "code-review",
7011
7903
  "installUrl": "github:luongnv89/skills:skills/code-review",
7012
7904
  "description": "Review or improve code — one skill, four modes: bug/security review (default), performance, clean-code audit, slop cleanup. Pass mode:review|perf|clean|cleanup or infer. Don't use for writing features or generating tests (use test-coverage).",
7013
- "version": "2.1.0"
7905
+ "version": "2.1.1"
7014
7906
  },
7015
7907
  {
7016
7908
  "name": "codebase-modernizer",
7017
7909
  "installUrl": "github:luongnv89/skills:skills/codebase-modernizer",
7018
7910
  "description": "Audit a stale, inherited, or messy codebase — deps, bugs, security, tests, CI, docs, UI/UX — then emit a phased, testable modernization plan. Read-only: plans upgrades, never applies them. Not for single-PR review, PRD-to-tasks, or UX-only audits.",
7019
- "version": "1.2.2"
7911
+ "version": "1.3.0"
7020
7912
  },
7021
7913
  {
7022
7914
  "name": "doc-manager",
7023
7915
  "installUrl": "github:luongnv89/skills:skills/doc-manager",
7024
7916
  "description": "Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script. Don't use for API-reference autogen (JSDoc/Sphinx), landing pages, or CLAUDE.md/AGENTS.md.",
7025
- "version": "2.0.2"
7917
+ "version": "2.0.3"
7026
7918
  },
7027
7919
  {
7028
7920
  "name": "landing-page-generator",
@@ -7034,19 +7926,31 @@
7034
7926
  "name": "oss-ready",
7035
7927
  "installUrl": "github:luongnv89/skills:skills/oss-ready",
7036
7928
  "description": "Transform a project into a professional open-source repository by adding LICENSE, README, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, and GitHub issue/PR templates. Don't use for documentation overhauls, landing-page generation, or registry publishing.",
7037
- "version": "1.2.1"
7929
+ "version": "1.3.0"
7930
+ },
7931
+ {
7932
+ "name": "plan-to-issues",
7933
+ "installUrl": "github:luongnv89/skills:skills/plan-to-issues",
7934
+ "description": "Convert any phased plan file, or a conversation about what to build, into labelled GitHub issues under one tracking epic mapping each issue to its source task. No plan file required. Don't use for writing plans, resolving issues, or triage.",
7935
+ "version": "2.0.4"
7038
7936
  },
7039
7937
  {
7040
7938
  "name": "seo-ai-optimizer",
7041
7939
  "installUrl": "github:luongnv89/skills:skills/seo-ai-optimizer",
7042
7940
  "description": "Audit and optimize websites for technical SEO, content SEO, and AI bot accessibility. Fixes meta tags, sitemaps, robots.txt, structured data, llms.txt, and GPTBot/ClaudeBot directives. Not for App Store ASO, paid search, or blog writing.",
7043
- "version": "1.2.3"
7941
+ "version": "1.3.1"
7044
7942
  },
7045
7943
  {
7046
7944
  "name": "viral-product-evaluator",
7047
7945
  "installUrl": "github:luongnv89/skills:skills/viral-product-evaluator",
7048
7946
  "description": "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.",
7049
- "version": "1.2.4"
7947
+ "version": "1.3.0"
7948
+ },
7949
+ {
7950
+ "name": "website-agent-readiness",
7951
+ "installUrl": "github:luongnv89/skills:skills/website-agent-readiness",
7952
+ "description": "Scan a live site with isitagentready.com, then approve each step: triage the 0-5 agent-readiness score, write agent-ready-plan.md, file issues via /plan-to-issues. Don't use for applying llms.txt/SEO fixes (seo-ai-optimizer) or app-store ASO.",
7953
+ "version": "1.2.0"
7050
7954
  }
7051
7955
  ],
7052
7956
  "sourceRepo": {