@elizaos/skills 2.0.0-alpha.3

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 (371) hide show
  1. package/README.md +126 -0
  2. package/package.json +53 -0
  3. package/skills/1password/SKILL.md +70 -0
  4. package/skills/1password/references/cli-examples.md +29 -0
  5. package/skills/1password/references/get-started.md +17 -0
  6. package/skills/apple-notes/SKILL.md +77 -0
  7. package/skills/apple-reminders/SKILL.md +96 -0
  8. package/skills/bear-notes/SKILL.md +107 -0
  9. package/skills/bird/SKILL.md +224 -0
  10. package/skills/blogwatcher/SKILL.md +69 -0
  11. package/skills/blucli/SKILL.md +47 -0
  12. package/skills/bluebubbles/SKILL.md +131 -0
  13. package/skills/camsnap/SKILL.md +45 -0
  14. package/skills/canvas/SKILL.md +203 -0
  15. package/skills/clawhub/SKILL.md +77 -0
  16. package/skills/coding-agent/SKILL.md +284 -0
  17. package/skills/discord/SKILL.md +578 -0
  18. package/skills/eightctl/SKILL.md +50 -0
  19. package/skills/food-order/SKILL.md +48 -0
  20. package/skills/gemini/SKILL.md +43 -0
  21. package/skills/gifgrep/SKILL.md +79 -0
  22. package/skills/github/SKILL.md +77 -0
  23. package/skills/gog/SKILL.md +116 -0
  24. package/skills/goplaces/SKILL.md +52 -0
  25. package/skills/healthcheck/SKILL.md +245 -0
  26. package/skills/himalaya/SKILL.md +257 -0
  27. package/skills/himalaya/references/configuration.md +184 -0
  28. package/skills/himalaya/references/message-composition.md +199 -0
  29. package/skills/imsg/SKILL.md +74 -0
  30. package/skills/local-places/SERVER_README.md +101 -0
  31. package/skills/local-places/SKILL.md +102 -0
  32. package/skills/local-places/pyproject.toml +21 -0
  33. package/skills/local-places/src/local_places/__init__.py +2 -0
  34. package/skills/local-places/src/local_places/google_places.py +314 -0
  35. package/skills/local-places/src/local_places/main.py +65 -0
  36. package/skills/local-places/src/local_places/schemas.py +107 -0
  37. package/skills/mcporter/SKILL.md +61 -0
  38. package/skills/model-usage/SKILL.md +69 -0
  39. package/skills/model-usage/references/codexbar-cli.md +33 -0
  40. package/skills/model-usage/scripts/model_usage.py +310 -0
  41. package/skills/nano-banana-pro/SKILL.md +58 -0
  42. package/skills/nano-banana-pro/scripts/generate_image.py +184 -0
  43. package/skills/nano-pdf/SKILL.md +38 -0
  44. package/skills/notion/SKILL.md +172 -0
  45. package/skills/obsidian/SKILL.md +81 -0
  46. package/skills/openai-image-gen/SKILL.md +89 -0
  47. package/skills/openai-image-gen/scripts/gen.py +240 -0
  48. package/skills/openai-whisper/SKILL.md +38 -0
  49. package/skills/openai-whisper-api/SKILL.md +52 -0
  50. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  51. package/skills/openhue/SKILL.md +51 -0
  52. package/skills/oracle/SKILL.md +125 -0
  53. package/skills/ordercli/SKILL.md +78 -0
  54. package/skills/peekaboo/SKILL.md +190 -0
  55. package/skills/sag/SKILL.md +87 -0
  56. package/skills/security-ask-questions-if-underspecified/.claude-plugin/plugin.json +10 -0
  57. package/skills/security-ask-questions-if-underspecified/README.md +24 -0
  58. package/skills/security-ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md +85 -0
  59. package/skills/security-audit-context-building/.claude-plugin/plugin.json +10 -0
  60. package/skills/security-audit-context-building/README.md +58 -0
  61. package/skills/security-audit-context-building/commands/audit-context.md +21 -0
  62. package/skills/security-audit-context-building/skills/audit-context-building/SKILL.md +297 -0
  63. package/skills/security-audit-context-building/skills/audit-context-building/resources/COMPLETENESS_CHECKLIST.md +47 -0
  64. package/skills/security-audit-context-building/skills/audit-context-building/resources/FUNCTION_MICRO_ANALYSIS_EXAMPLE.md +355 -0
  65. package/skills/security-audit-context-building/skills/audit-context-building/resources/OUTPUT_REQUIREMENTS.md +71 -0
  66. package/skills/security-building-secure-contracts/.claude-plugin/plugin.json +10 -0
  67. package/skills/security-building-secure-contracts/README.md +241 -0
  68. package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md +284 -0
  69. package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +405 -0
  70. package/skills/security-building-secure-contracts/skills/audit-prep-assistant/SKILL.md +409 -0
  71. package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/SKILL.md +329 -0
  72. package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +722 -0
  73. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/SKILL.md +218 -0
  74. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/ASSESSMENT_CRITERIA.md +355 -0
  75. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/EXAMPLE_REPORT.md +248 -0
  76. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/REPORT_FORMAT.md +33 -0
  77. package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/SKILL.md +334 -0
  78. package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +740 -0
  79. package/skills/security-building-secure-contracts/skills/guidelines-advisor/SKILL.md +252 -0
  80. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/ASSESSMENT_AREAS.md +329 -0
  81. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/DELIVERABLES.md +118 -0
  82. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/EXAMPLE_REPORT.md +298 -0
  83. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/SKILL.md +161 -0
  84. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/EXAMPLE_REPORT.md +279 -0
  85. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/WORKFLOW_STEPS.md +132 -0
  86. package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/SKILL.md +389 -0
  87. package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +669 -0
  88. package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/SKILL.md +298 -0
  89. package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +791 -0
  90. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/SKILL.md +362 -0
  91. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/ASSESSMENT_CATEGORIES.md +571 -0
  92. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/REPORT_TEMPLATES.md +141 -0
  93. package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/SKILL.md +388 -0
  94. package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +595 -0
  95. package/skills/security-burpsuite-project-parser/.claude-plugin/plugin.json +10 -0
  96. package/skills/security-burpsuite-project-parser/README.md +103 -0
  97. package/skills/security-burpsuite-project-parser/commands/burp-search.md +18 -0
  98. package/skills/security-burpsuite-project-parser/skills/SKILL.md +358 -0
  99. package/skills/security-burpsuite-project-parser/skills/scripts/burp-search.sh +99 -0
  100. package/skills/security-claude-in-chrome-troubleshooting/.claude-plugin/plugin.json +8 -0
  101. package/skills/security-claude-in-chrome-troubleshooting/README.md +31 -0
  102. package/skills/security-claude-in-chrome-troubleshooting/skills/claude-in-chrome-troubleshooting/SKILL.md +251 -0
  103. package/skills/security-constant-time-analysis/.claude-plugin/plugin.json +9 -0
  104. package/skills/security-constant-time-analysis/README.md +381 -0
  105. package/skills/security-constant-time-analysis/commands/ct-check.md +20 -0
  106. package/skills/security-constant-time-analysis/ct_analyzer/__init__.py +49 -0
  107. package/skills/security-constant-time-analysis/ct_analyzer/analyzer.py +1284 -0
  108. package/skills/security-constant-time-analysis/ct_analyzer/script_analyzers.py +3081 -0
  109. package/skills/security-constant-time-analysis/ct_analyzer/tests/__init__.py +1 -0
  110. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_analyzer.py +1397 -0
  111. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/bn_excerpt.js +205 -0
  112. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_constant_time.c +181 -0
  113. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.c +74 -0
  114. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.go +78 -0
  115. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.rs +92 -0
  116. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.cs +174 -0
  117. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.java +161 -0
  118. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.kt +181 -0
  119. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.php +140 -0
  120. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.py +252 -0
  121. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.rb +188 -0
  122. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.swift +199 -0
  123. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.ts +154 -0
  124. package/skills/security-constant-time-analysis/pyproject.toml +52 -0
  125. package/skills/security-constant-time-analysis/skills/constant-time-analysis/README.md +90 -0
  126. package/skills/security-constant-time-analysis/skills/constant-time-analysis/SKILL.md +219 -0
  127. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/compiled.md +129 -0
  128. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/javascript.md +136 -0
  129. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/kotlin.md +252 -0
  130. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/php.md +172 -0
  131. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/python.md +179 -0
  132. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/ruby.md +198 -0
  133. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/swift.md +288 -0
  134. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/vm-compiled.md +354 -0
  135. package/skills/security-constant-time-analysis/uv.lock +8 -0
  136. package/skills/security-culture-index/.claude-plugin/plugin.json +8 -0
  137. package/skills/security-culture-index/README.md +79 -0
  138. package/skills/security-culture-index/skills/interpreting-culture-index/SKILL.md +293 -0
  139. package/skills/security-culture-index/skills/interpreting-culture-index/references/anti-patterns.md +255 -0
  140. package/skills/security-culture-index/skills/interpreting-culture-index/references/conversation-starters.md +408 -0
  141. package/skills/security-culture-index/skills/interpreting-culture-index/references/interview-trait-signals.md +253 -0
  142. package/skills/security-culture-index/skills/interpreting-culture-index/references/motivators.md +158 -0
  143. package/skills/security-culture-index/skills/interpreting-culture-index/references/patterns-archetypes.md +147 -0
  144. package/skills/security-culture-index/skills/interpreting-culture-index/references/primary-traits.md +307 -0
  145. package/skills/security-culture-index/skills/interpreting-culture-index/references/secondary-traits.md +228 -0
  146. package/skills/security-culture-index/skills/interpreting-culture-index/references/team-composition.md +148 -0
  147. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/check_deps.py +108 -0
  148. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/__init__.py +20 -0
  149. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/constants.py +122 -0
  150. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/extract.py +187 -0
  151. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/models.py +16 -0
  152. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/opencv_extractor.py +520 -0
  153. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/extract_pdf.py +237 -0
  154. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/pyproject.toml +18 -0
  155. package/skills/security-culture-index/skills/interpreting-culture-index/templates/burnout-report.md +113 -0
  156. package/skills/security-culture-index/skills/interpreting-culture-index/templates/comparison-report.md +103 -0
  157. package/skills/security-culture-index/skills/interpreting-culture-index/templates/hiring-profile.md +127 -0
  158. package/skills/security-culture-index/skills/interpreting-culture-index/templates/individual-report.md +85 -0
  159. package/skills/security-culture-index/skills/interpreting-culture-index/templates/predicted-profile.md +165 -0
  160. package/skills/security-culture-index/skills/interpreting-culture-index/templates/team-report.md +109 -0
  161. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/analyze-team.md +188 -0
  162. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/coach-manager.md +267 -0
  163. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/compare-profiles.md +188 -0
  164. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/define-hiring-profile.md +220 -0
  165. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/detect-burnout.md +206 -0
  166. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/extract-from-pdf.md +121 -0
  167. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/interpret-individual.md +183 -0
  168. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/interview-debrief.md +234 -0
  169. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/mediate-conflict.md +306 -0
  170. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/plan-onboarding.md +322 -0
  171. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/predict-from-interview.md +250 -0
  172. package/skills/security-differential-review/.claude-plugin/plugin.json +10 -0
  173. package/skills/security-differential-review/README.md +109 -0
  174. package/skills/security-differential-review/commands/diff-review.md +21 -0
  175. package/skills/security-differential-review/skills/differential-review/SKILL.md +220 -0
  176. package/skills/security-differential-review/skills/differential-review/adversarial.md +203 -0
  177. package/skills/security-differential-review/skills/differential-review/methodology.md +234 -0
  178. package/skills/security-differential-review/skills/differential-review/patterns.md +300 -0
  179. package/skills/security-differential-review/skills/differential-review/reporting.md +369 -0
  180. package/skills/security-dwarf-expert/.claude-plugin/plugin.json +10 -0
  181. package/skills/security-dwarf-expert/README.md +38 -0
  182. package/skills/security-dwarf-expert/skills/dwarf-expert/SKILL.md +93 -0
  183. package/skills/security-dwarf-expert/skills/dwarf-expert/reference/coding.md +31 -0
  184. package/skills/security-dwarf-expert/skills/dwarf-expert/reference/dwarfdump.md +50 -0
  185. package/skills/security-dwarf-expert/skills/dwarf-expert/reference/readelf.md +8 -0
  186. package/skills/security-entry-point-analyzer/.claude-plugin/plugin.json +10 -0
  187. package/skills/security-entry-point-analyzer/README.md +74 -0
  188. package/skills/security-entry-point-analyzer/commands/entry-points.md +18 -0
  189. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/SKILL.md +251 -0
  190. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/cosmwasm.md +182 -0
  191. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-aptos.md +107 -0
  192. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-sui.md +87 -0
  193. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solana.md +155 -0
  194. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solidity.md +135 -0
  195. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/ton.md +185 -0
  196. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/vyper.md +141 -0
  197. package/skills/security-firebase-apk-scanner/.claude-plugin/plugin.json +10 -0
  198. package/skills/security-firebase-apk-scanner/README.md +85 -0
  199. package/skills/security-firebase-apk-scanner/commands/scan-apk.md +18 -0
  200. package/skills/security-firebase-apk-scanner/scanner.sh +1408 -0
  201. package/skills/security-firebase-apk-scanner/skills/firebase-apk-scanner/SKILL.md +197 -0
  202. package/skills/security-firebase-apk-scanner/skills/firebase-apk-scanner/references/vulnerabilities.md +803 -0
  203. package/skills/security-fix-review/.claude-plugin/plugin.json +13 -0
  204. package/skills/security-fix-review/README.md +118 -0
  205. package/skills/security-fix-review/commands/fix-review.md +24 -0
  206. package/skills/security-fix-review/skills/fix-review/SKILL.md +264 -0
  207. package/skills/security-fix-review/skills/fix-review/references/bug-detection.md +408 -0
  208. package/skills/security-fix-review/skills/fix-review/references/finding-matching.md +298 -0
  209. package/skills/security-fix-review/skills/fix-review/references/report-parsing.md +398 -0
  210. package/skills/security-insecure-defaults/.claude-plugin/plugin.json +10 -0
  211. package/skills/security-insecure-defaults/README.md +45 -0
  212. package/skills/security-insecure-defaults/skills/insecure-defaults/SKILL.md +117 -0
  213. package/skills/security-insecure-defaults/skills/insecure-defaults/references/examples.md +409 -0
  214. package/skills/security-modern-python/.claude-plugin/plugin.json +10 -0
  215. package/skills/security-modern-python/README.md +58 -0
  216. package/skills/security-modern-python/hooks/hooks.json +16 -0
  217. package/skills/security-modern-python/hooks/intercept-legacy-python.bats +388 -0
  218. package/skills/security-modern-python/hooks/intercept-legacy-python.sh +109 -0
  219. package/skills/security-modern-python/hooks/test_helper.bash +75 -0
  220. package/skills/security-modern-python/skills/modern-python/SKILL.md +333 -0
  221. package/skills/security-modern-python/skills/modern-python/references/dependabot.md +43 -0
  222. package/skills/security-modern-python/skills/modern-python/references/migration-checklist.md +141 -0
  223. package/skills/security-modern-python/skills/modern-python/references/pep723-scripts.md +259 -0
  224. package/skills/security-modern-python/skills/modern-python/references/prek.md +211 -0
  225. package/skills/security-modern-python/skills/modern-python/references/pyproject.md +254 -0
  226. package/skills/security-modern-python/skills/modern-python/references/ruff-config.md +240 -0
  227. package/skills/security-modern-python/skills/modern-python/references/security-setup.md +255 -0
  228. package/skills/security-modern-python/skills/modern-python/references/testing.md +284 -0
  229. package/skills/security-modern-python/skills/modern-python/references/uv-commands.md +200 -0
  230. package/skills/security-modern-python/skills/modern-python/templates/dependabot.yml +36 -0
  231. package/skills/security-modern-python/skills/modern-python/templates/pre-commit-config.yaml +66 -0
  232. package/skills/security-property-based-testing/.claude-plugin/plugin.json +9 -0
  233. package/skills/security-property-based-testing/README.md +47 -0
  234. package/skills/security-property-based-testing/skills/property-based-testing/README.md +88 -0
  235. package/skills/security-property-based-testing/skills/property-based-testing/SKILL.md +109 -0
  236. package/skills/security-property-based-testing/skills/property-based-testing/references/design.md +191 -0
  237. package/skills/security-property-based-testing/skills/property-based-testing/references/generating.md +200 -0
  238. package/skills/security-property-based-testing/skills/property-based-testing/references/libraries.md +130 -0
  239. package/skills/security-property-based-testing/skills/property-based-testing/references/refactoring.md +181 -0
  240. package/skills/security-property-based-testing/skills/property-based-testing/references/reviewing.md +209 -0
  241. package/skills/security-property-based-testing/skills/property-based-testing/references/strategies.md +124 -0
  242. package/skills/semgrep-rule-creator/.claude-plugin/plugin.json +8 -0
  243. package/skills/semgrep-rule-creator/README.md +43 -0
  244. package/skills/semgrep-rule-creator/commands/semgrep-rule.md +26 -0
  245. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/SKILL.md +168 -0
  246. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/quick-reference.md +203 -0
  247. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/workflow.md +240 -0
  248. package/skills/semgrep-rule-variant-creator/.claude-plugin/plugin.json +9 -0
  249. package/skills/semgrep-rule-variant-creator/README.md +86 -0
  250. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/SKILL.md +205 -0
  251. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/applicability-analysis.md +250 -0
  252. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/language-syntax-guide.md +324 -0
  253. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/workflow.md +518 -0
  254. package/skills/session-logs/SKILL.md +115 -0
  255. package/skills/sharp-edges/.claude-plugin/plugin.json +10 -0
  256. package/skills/sharp-edges/README.md +48 -0
  257. package/skills/sharp-edges/skills/sharp-edges/SKILL.md +292 -0
  258. package/skills/sharp-edges/skills/sharp-edges/references/auth-patterns.md +252 -0
  259. package/skills/sharp-edges/skills/sharp-edges/references/case-studies.md +274 -0
  260. package/skills/sharp-edges/skills/sharp-edges/references/config-patterns.md +333 -0
  261. package/skills/sharp-edges/skills/sharp-edges/references/crypto-apis.md +190 -0
  262. package/skills/sharp-edges/skills/sharp-edges/references/lang-c.md +205 -0
  263. package/skills/sharp-edges/skills/sharp-edges/references/lang-csharp.md +285 -0
  264. package/skills/sharp-edges/skills/sharp-edges/references/lang-go.md +270 -0
  265. package/skills/sharp-edges/skills/sharp-edges/references/lang-java.md +263 -0
  266. package/skills/sharp-edges/skills/sharp-edges/references/lang-javascript.md +269 -0
  267. package/skills/sharp-edges/skills/sharp-edges/references/lang-kotlin.md +265 -0
  268. package/skills/sharp-edges/skills/sharp-edges/references/lang-php.md +245 -0
  269. package/skills/sharp-edges/skills/sharp-edges/references/lang-python.md +274 -0
  270. package/skills/sharp-edges/skills/sharp-edges/references/lang-ruby.md +273 -0
  271. package/skills/sharp-edges/skills/sharp-edges/references/lang-rust.md +272 -0
  272. package/skills/sharp-edges/skills/sharp-edges/references/lang-swift.md +287 -0
  273. package/skills/sharp-edges/skills/sharp-edges/references/language-specific.md +588 -0
  274. package/skills/sherpa-onnx-tts/SKILL.md +103 -0
  275. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  276. package/skills/skill-creator/SKILL.md +370 -0
  277. package/skills/skill-creator/license.txt +202 -0
  278. package/skills/skill-creator/scripts/init_skill.py +378 -0
  279. package/skills/skill-creator/scripts/package_skill.py +111 -0
  280. package/skills/skill-creator/scripts/quick_validate.py +101 -0
  281. package/skills/slack/SKILL.md +144 -0
  282. package/skills/songsee/SKILL.md +49 -0
  283. package/skills/sonoscli/SKILL.md +46 -0
  284. package/skills/spec-to-code-compliance/.claude-plugin/plugin.json +10 -0
  285. package/skills/spec-to-code-compliance/README.md +67 -0
  286. package/skills/spec-to-code-compliance/commands/spec-compliance.md +22 -0
  287. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/SKILL.md +349 -0
  288. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/COMPLETENESS_CHECKLIST.md +69 -0
  289. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/IR_EXAMPLES.md +417 -0
  290. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/OUTPUT_REQUIREMENTS.md +105 -0
  291. package/skills/spotify-player/SKILL.md +64 -0
  292. package/skills/static-analysis/.claude-plugin/plugin.json +8 -0
  293. package/skills/static-analysis/README.md +59 -0
  294. package/skills/static-analysis/skills/codeql/SKILL.md +315 -0
  295. package/skills/static-analysis/skills/sarif-parsing/SKILL.md +479 -0
  296. package/skills/static-analysis/skills/sarif-parsing/resources/jq-queries.md +162 -0
  297. package/skills/static-analysis/skills/sarif-parsing/resources/sarif_helpers.py +331 -0
  298. package/skills/static-analysis/skills/semgrep/SKILL.md +337 -0
  299. package/skills/summarize/SKILL.md +87 -0
  300. package/skills/testing-handbook-skills/.claude-plugin/plugin.json +8 -0
  301. package/skills/testing-handbook-skills/README.md +241 -0
  302. package/skills/testing-handbook-skills/scripts/pyproject.toml +8 -0
  303. package/skills/testing-handbook-skills/scripts/validate-skills.py +657 -0
  304. package/skills/testing-handbook-skills/skills/address-sanitizer/SKILL.md +341 -0
  305. package/skills/testing-handbook-skills/skills/aflpp/SKILL.md +640 -0
  306. package/skills/testing-handbook-skills/skills/atheris/SKILL.md +515 -0
  307. package/skills/testing-handbook-skills/skills/cargo-fuzz/SKILL.md +454 -0
  308. package/skills/testing-handbook-skills/skills/codeql/SKILL.md +549 -0
  309. package/skills/testing-handbook-skills/skills/constant-time-testing/SKILL.md +507 -0
  310. package/skills/testing-handbook-skills/skills/coverage-analysis/SKILL.md +607 -0
  311. package/skills/testing-handbook-skills/skills/fuzzing-dictionary/SKILL.md +297 -0
  312. package/skills/testing-handbook-skills/skills/fuzzing-obstacles/SKILL.md +426 -0
  313. package/skills/testing-handbook-skills/skills/harness-writing/SKILL.md +614 -0
  314. package/skills/testing-handbook-skills/skills/libafl/SKILL.md +625 -0
  315. package/skills/testing-handbook-skills/skills/libfuzzer/SKILL.md +795 -0
  316. package/skills/testing-handbook-skills/skills/ossfuzz/SKILL.md +426 -0
  317. package/skills/testing-handbook-skills/skills/ruzzy/SKILL.md +443 -0
  318. package/skills/testing-handbook-skills/skills/semgrep/SKILL.md +601 -0
  319. package/skills/testing-handbook-skills/skills/testing-handbook-generator/SKILL.md +372 -0
  320. package/skills/testing-handbook-skills/skills/testing-handbook-generator/agent-prompt.md +280 -0
  321. package/skills/testing-handbook-skills/skills/testing-handbook-generator/discovery.md +452 -0
  322. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/domain-skill.md +504 -0
  323. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/fuzzer-skill.md +454 -0
  324. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/technique-skill.md +527 -0
  325. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/tool-skill.md +366 -0
  326. package/skills/testing-handbook-skills/skills/testing-handbook-generator/testing.md +482 -0
  327. package/skills/testing-handbook-skills/skills/wycheproof/SKILL.md +533 -0
  328. package/skills/things-mac/SKILL.md +86 -0
  329. package/skills/tmux/SKILL.md +135 -0
  330. package/skills/tmux/scripts/find-sessions.sh +112 -0
  331. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  332. package/skills/trello/SKILL.md +95 -0
  333. package/skills/variant-analysis/.claude-plugin/plugin.json +8 -0
  334. package/skills/variant-analysis/README.md +41 -0
  335. package/skills/variant-analysis/commands/variants.md +23 -0
  336. package/skills/variant-analysis/skills/variant-analysis/METHODOLOGY.md +327 -0
  337. package/skills/variant-analysis/skills/variant-analysis/SKILL.md +142 -0
  338. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/cpp.ql +119 -0
  339. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/go.ql +69 -0
  340. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/java.ql +71 -0
  341. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/javascript.ql +63 -0
  342. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/python.ql +80 -0
  343. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/cpp.yaml +98 -0
  344. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/go.yaml +63 -0
  345. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/java.yaml +61 -0
  346. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/javascript.yaml +60 -0
  347. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/python.yaml +72 -0
  348. package/skills/variant-analysis/skills/variant-analysis/resources/variant-report-template.md +75 -0
  349. package/skills/video-frames/SKILL.md +46 -0
  350. package/skills/video-frames/scripts/frame.sh +81 -0
  351. package/skills/voice-call/SKILL.md +45 -0
  352. package/skills/wacli/SKILL.md +72 -0
  353. package/skills/weather/SKILL.md +54 -0
  354. package/skills/yara-authoring/.claude-plugin/plugin.json +9 -0
  355. package/skills/yara-authoring/README.md +131 -0
  356. package/skills/yara-authoring/skills/yara-rule-authoring/SKILL.md +645 -0
  357. package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_Mac_ProtonRAT_Jan25.yar +99 -0
  358. package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_NPM_SupplyChain_Jan25.yar +170 -0
  359. package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_Win_Remcos_Jan25.yar +103 -0
  360. package/skills/yara-authoring/skills/yara-rule-authoring/examples/SUSP_CRX_SuspiciousPermissions.yar +134 -0
  361. package/skills/yara-authoring/skills/yara-rule-authoring/examples/SUSP_JS_Obfuscation_Jan25.yar +185 -0
  362. package/skills/yara-authoring/skills/yara-rule-authoring/references/crx-module.md +214 -0
  363. package/skills/yara-authoring/skills/yara-rule-authoring/references/dex-module.md +383 -0
  364. package/skills/yara-authoring/skills/yara-rule-authoring/references/performance.md +333 -0
  365. package/skills/yara-authoring/skills/yara-rule-authoring/references/strings.md +433 -0
  366. package/skills/yara-authoring/skills/yara-rule-authoring/references/style-guide.md +257 -0
  367. package/skills/yara-authoring/skills/yara-rule-authoring/references/testing.md +399 -0
  368. package/skills/yara-authoring/skills/yara-rule-authoring/scripts/atom_analyzer.py +526 -0
  369. package/skills/yara-authoring/skills/yara-rule-authoring/scripts/pyproject.toml +25 -0
  370. package/skills/yara-authoring/skills/yara-rule-authoring/scripts/yara_lint.py +631 -0
  371. package/skills/yara-authoring/skills/yara-rule-authoring/workflows/rule-development.md +493 -0
@@ -0,0 +1,372 @@
1
+ ---
2
+ name: testing-handbook-generator
3
+ description: >
4
+ Meta-skill that analyzes the Trail of Bits Testing Handbook (appsec.guide)
5
+ and generates Claude Code skills for security testing tools and techniques.
6
+ Use when creating new skills based on handbook content.
7
+ ---
8
+
9
+ # Testing Handbook Skill Generator
10
+
11
+ Generate and maintain Claude Code skills from the Trail of Bits Testing Handbook.
12
+
13
+ ## When to Use
14
+
15
+ **Invoke this skill when:**
16
+ - Creating new security testing skills from handbook content
17
+ - User mentions "testing handbook", "appsec.guide", or asks about generating skills
18
+ - Bulk skill generation or refresh is needed
19
+
20
+ **Do NOT use for:**
21
+ - General security testing questions (use the generated skills)
22
+ - Non-handbook skill creation
23
+
24
+ ## Handbook Location
25
+
26
+ The skill needs the Testing Handbook repository. See [discovery.md](discovery.md) for full details.
27
+
28
+ **Quick reference:** Check `./testing-handbook`, `../testing-handbook`, `~/testing-handbook` → ask user → clone as last resort.
29
+
30
+ **Repository:** `https://github.com/trailofbits/testing-handbook`
31
+
32
+ ## Workflow Overview
33
+
34
+ ```
35
+ Phase 0: Setup Phase 1: Discovery
36
+ ┌─────────────────┐ ┌─────────────────┐
37
+ │ Locate handbook │ → │ Analyze handbook│
38
+ │ - Find or clone │ │ - Scan sections │
39
+ │ - Confirm path │ │ - Classify types│
40
+ └─────────────────┘ └─────────────────┘
41
+ ↓ ↓
42
+ Phase 3: Generation Phase 2: Planning
43
+ ┌─────────────────┐ ┌─────────────────┐
44
+ │ TWO-PASS GEN │ ← │ Generate plan │
45
+ │ Pass 1: Content │ │ - New skills │
46
+ │ Pass 2: X-refs │ │ - Updates │
47
+ │ - Write to gen/ │ │ - Present user │
48
+ └─────────────────┘ └─────────────────┘
49
+
50
+ Phase 4: Testing Phase 5: Finalize
51
+ ┌─────────────────┐ ┌─────────────────┐
52
+ │ Validate skills │ → │ Post-generation │
53
+ │ - Run validator │ │ - Update README │
54
+ │ - Test activation│ │ - Update X-refs │
55
+ │ - Fix issues │ │ - Self-improve │
56
+ └─────────────────┘ └─────────────────┘
57
+ ```
58
+
59
+ ## Scope Restrictions
60
+
61
+ **ONLY modify these locations:**
62
+ - `plugins/testing-handbook-skills/skills/[skill-name]/*` - Generated skills (as siblings to testing-handbook-generator)
63
+ - `plugins/testing-handbook-skills/skills/testing-handbook-generator/*` - Self-improvement
64
+ - Repository root `README.md` - Add generated skills to table
65
+
66
+ **NEVER modify or analyze:**
67
+ - Other plugins (`plugins/property-based-testing/`, `plugins/static-analysis/`, etc.)
68
+ - Other skills outside this plugin
69
+
70
+ Do not scan or pull into context any skills outside of `testing-handbook-skills/`. Generate skills based solely on handbook content and resources referenced from it.
71
+
72
+ ## Quick Reference
73
+
74
+ ### Section → Skill Type Mapping
75
+
76
+ | Handbook Section | Skill Type | Template |
77
+ |------------------|------------|----------|
78
+ | `/static-analysis/[tool]/` | Tool Skill | tool-skill.md |
79
+ | `/fuzzing/[lang]/[fuzzer]/` | Fuzzer Skill | fuzzer-skill.md |
80
+ | `/fuzzing/techniques/` | Technique Skill | technique-skill.md |
81
+ | `/crypto/[tool]/` | Domain Skill | domain-skill.md |
82
+ | `/web/[tool]/` | Tool Skill | tool-skill.md |
83
+
84
+ ### Skill Candidate Signals
85
+
86
+ | Signal | Indicates |
87
+ |--------|-----------|
88
+ | `_index.md` with `bookCollapseSection: true` | Major tool/topic |
89
+ | Numbered files (00-, 10-, 20-) | Structured content |
90
+ | `techniques/` subsection | Methodology content |
91
+ | `99-resources.md` or `91-resources.md` | Has external links |
92
+
93
+ ### Exclusion Signals
94
+
95
+ | Signal | Action |
96
+ |--------|--------|
97
+ | `draft: true` in frontmatter | Skip section |
98
+ | Empty directory | Skip section |
99
+ | Template/placeholder file | Skip section |
100
+ | GUI-only tool (e.g., `web/burp/`) | Skip section (Claude cannot operate GUI tools) |
101
+
102
+ ## Decision Tree
103
+
104
+ **Starting skill generation?**
105
+
106
+ ```
107
+ ├─ Need to analyze handbook and build plan?
108
+ │ └─ Read: discovery.md
109
+ │ (Handbook analysis methodology, plan format)
110
+
111
+ ├─ Spawning skill generation agents?
112
+ │ └─ Read: agent-prompt.md
113
+ │ (Full prompt template, variable reference, validation checklist)
114
+
115
+ ├─ Generating a specific skill type?
116
+ │ └─ Read appropriate template:
117
+ │ ├─ Tool (Semgrep, CodeQL) → templates/tool-skill.md
118
+ │ ├─ Fuzzer (libFuzzer, AFL++) → templates/fuzzer-skill.md
119
+ │ ├─ Technique (harness, coverage) → templates/technique-skill.md
120
+ │ └─ Domain (crypto, web) → templates/domain-skill.md
121
+
122
+ ├─ Validating generated skills?
123
+ │ └─ Run: scripts/validate-skills.py
124
+ │ Then read: testing.md for activation testing
125
+
126
+ ├─ Finalizing after generation?
127
+ │ └─ See: Post-Generation Tasks below
128
+ │ (Update main README, update Skills Cross-Reference, self-improvement)
129
+
130
+ └─ Quick generation from specific section?
131
+ └─ Use Quick Reference above, apply template directly
132
+ ```
133
+
134
+ ## Two-Pass Generation (Phase 3)
135
+
136
+ Generation uses a **two-pass approach** to solve forward reference problems (skills referencing other skills that don't exist yet).
137
+
138
+ ### Pass 1: Content Generation (Parallel)
139
+
140
+ Generate all skills in parallel **without** the Related Skills section:
141
+
142
+ ```
143
+ Pass 1 - Generating 5 skills in parallel:
144
+ ├─ Agent 1: libfuzzer (fuzzer) → skills/libfuzzer/SKILL.md
145
+ ├─ Agent 2: aflpp (fuzzer) → skills/aflpp/SKILL.md
146
+ ├─ Agent 3: semgrep (tool) → skills/semgrep/SKILL.md
147
+ ├─ Agent 4: harness-writing (technique) → skills/harness-writing/SKILL.md
148
+ └─ Agent 5: wycheproof (domain) → skills/wycheproof/SKILL.md
149
+
150
+ Each agent uses: pass=1 (content only, Related Skills left empty)
151
+ ```
152
+
153
+ **Pass 1 agents:**
154
+ - Generate all sections EXCEPT Related Skills
155
+ - Leave a placeholder: `## Related Skills\n\n<!-- PASS2: populate after all skills exist -->`
156
+ - Output report includes `references: DEFERRED`
157
+
158
+ ### Pass 2: Cross-Reference Population (Sequential)
159
+
160
+ After all Pass 1 agents complete, run Pass 2 to populate Related Skills:
161
+
162
+ ```
163
+ Pass 2 - Populating cross-references:
164
+ ├─ Read all generated skill names from skills/*/SKILL.md
165
+ ├─ For each skill, determine related skills based on:
166
+ │ ├─ related_sections from discovery (handbook structure)
167
+ │ ├─ Skill type relationships (fuzzers → techniques)
168
+ │ └─ Explicit mentions in content
169
+ └─ Update each SKILL.md's Related Skills section
170
+ ```
171
+
172
+ **Pass 2 process:**
173
+ 1. Collect all generated skill names: `ls -d skills/*/SKILL.md`
174
+ 2. For each skill, identify related skills using the mapping from discovery
175
+ 3. Edit each SKILL.md to replace the placeholder with actual links
176
+ 4. Validate cross-references exist (no broken links)
177
+
178
+ ### Agent Prompt Template
179
+
180
+ See **[agent-prompt.md](agent-prompt.md)** for the full prompt template with:
181
+ - Variable substitution reference (including `pass` variable)
182
+ - Pre-write validation checklist
183
+ - Hugo shortcode conversion rules
184
+ - Line count splitting rules
185
+ - Error handling guidance
186
+ - Output report format
187
+
188
+ ### Collecting Results
189
+
190
+ After Pass 1: Aggregate output reports, verify all skills generated.
191
+ After Pass 2: Run validator to check cross-references.
192
+
193
+ ### Handling Agent Failures
194
+
195
+ If an agent fails or produces invalid output:
196
+
197
+ | Failure Type | Detection | Recovery Action |
198
+ |--------------|-----------|-----------------|
199
+ | Agent crashed | No output report | Re-run single agent with same inputs |
200
+ | Validation failed | Output report shows errors | Check gaps/warnings, manually patch or re-run |
201
+ | Wrong skill type | Content doesn't match template | Re-run with corrected `type` parameter |
202
+ | Missing content | Output report lists gaps | Accept if minor, or provide additional `related_sections` |
203
+ | Pass 2 broken ref | Validator shows missing skill | Check if skill was skipped, update reference |
204
+
205
+ **Important:** Do NOT re-run the entire parallel batch for a single agent failure. Fix individual failures independently.
206
+
207
+ ### Single-Skill Regeneration
208
+
209
+ To regenerate a single skill without re-running the entire batch:
210
+
211
+ ```
212
+ # Regenerate single skill (Pass 1 - content only)
213
+ "Use testing-handbook-generator to regenerate the {skill-name} skill from section {section_path}"
214
+
215
+ # Example:
216
+ "Use testing-handbook-generator to regenerate the libfuzzer skill from section fuzzing/c-cpp/10-libfuzzer"
217
+ ```
218
+
219
+ **Regeneration workflow:**
220
+ 1. Re-read the handbook section for fresh content
221
+ 2. Apply the appropriate template
222
+ 3. Write to `skills/{skill-name}/SKILL.md` (overwrites existing)
223
+ 4. Re-run Pass 2 for that skill only to update cross-references
224
+ 5. Run validator on the single skill: `uv run scripts/validate-skills.py --skill {skill-name}`
225
+
226
+ ## Output Location
227
+
228
+ Generated skills are written to:
229
+ ```
230
+ skills/[skill-name]/SKILL.md
231
+ ```
232
+
233
+ Each skill gets its own directory for potential supporting files (as siblings to testing-handbook-generator).
234
+
235
+ ## Quality Checklist
236
+
237
+ Before delivering generated skills:
238
+
239
+ - [ ] All handbook sections analyzed (Phase 1)
240
+ - [ ] Plan presented to user before generation (Phase 2)
241
+ - [ ] Parallel agents launched - one per skill (Phase 3)
242
+ - [ ] Templates applied correctly per skill type
243
+ - [ ] Validator passes: `uv run scripts/validate-skills.py`
244
+ - [ ] Activation testing passed - see [testing.md](testing.md)
245
+ - [ ] Main `README.md` updated with generated skills table
246
+ - [ ] `README.md` Skills Cross-Reference graph updated
247
+ - [ ] Self-improvement notes captured
248
+ - [ ] User notified with summary
249
+
250
+ ## Post-Generation Tasks
251
+
252
+ ### 1. Update Main README
253
+
254
+ After generating skills, update the repository's main `README.md` to list them.
255
+
256
+ **Format:** Add generated skills to the same "Available Plugins" table, directly after `testing-handbook-skills`. Use plain text `testing-handbook-generator` as the author (no link).
257
+
258
+ **Example:**
259
+
260
+ ```markdown
261
+ | Plugin | Description | Author |
262
+ |--------|-------------|--------|
263
+ | ... other plugins ... |
264
+ | [testing-handbook-skills](plugins/testing-handbook-skills/) | Meta-skill that generates skills from the Testing Handbook | Paweł Płatek |
265
+ | [libfuzzer](plugins/testing-handbook-skills/skills/libfuzzer/) | Coverage-guided fuzzing with libFuzzer for C/C++ | testing-handbook-generator |
266
+ | [aflpp](plugins/testing-handbook-skills/skills/aflpp/) | Multi-core fuzzing with AFL++ | testing-handbook-generator |
267
+ | [semgrep](plugins/testing-handbook-skills/skills/semgrep/) | Fast static analysis for finding bugs | testing-handbook-generator |
268
+ ```
269
+
270
+ ### 2. Update Skills Cross-Reference
271
+
272
+ After generating skills, update the `README.md`'s **Skills Cross-Reference** section with the mermaid graph showing skill relationships.
273
+
274
+ **Process:**
275
+ 1. Read each generated skill's `SKILL.md` and extract its `## Related Skills` section
276
+ 2. Build the mermaid graph with nodes grouped by skill type (Fuzzers, Techniques, Tools, Domain)
277
+ 3. Add edges based on the Related Skills relationships:
278
+ - Solid arrows (`-->`) for primary technique dependencies
279
+ - Dashed arrows (`-.->`) for alternative tool suggestions
280
+ 4. Replace the existing mermaid code block in README.md
281
+
282
+ **Edge classification:**
283
+ | Relationship | Arrow Style | Example |
284
+ |--------------|-------------|---------|
285
+ | Fuzzer → Technique | `-->` | `libfuzzer --> harness-writing` |
286
+ | Tool → Tool (alternative) | `-.->` | `semgrep -.-> codeql` |
287
+ | Fuzzer → Fuzzer (alternative) | `-.->` | `libfuzzer -.-> aflpp` |
288
+ | Technique → Technique | `-->` | `harness-writing --> coverage-analysis` |
289
+
290
+ **Validation:** After updating, run `validate-skills.py` to verify all referenced skills exist.
291
+
292
+ ### 3. Self-Improvement
293
+
294
+ After each generation run, reflect on what could improve future runs.
295
+
296
+ **Capture improvements to:**
297
+ - Templates (missing sections, better structure)
298
+ - Discovery logic (missed patterns, false positives)
299
+ - Content extraction (shortcodes not handled, formatting issues)
300
+
301
+ **Update process:**
302
+ 1. Note issues encountered during generation
303
+ 2. Identify patterns that caused problems
304
+ 3. Update relevant files:
305
+ - `SKILL.md` - Workflow, decision tree, quick reference updates
306
+ - `templates/*.md` - Template improvements
307
+ - `discovery.md` - Detection logic updates
308
+ - `testing.md` - New validation checks
309
+ 4. Document the improvement in commit message
310
+
311
+ **Example self-improvement:**
312
+ ```
313
+ Issue: libFuzzer skill missing sanitizer flags table
314
+ Fix: Updated templates/fuzzer-skill.md to include ## Compiler Flags section
315
+ ```
316
+
317
+ ## Example Usage
318
+
319
+ ### Full Discovery and Generation
320
+
321
+ ```
322
+ User: "Generate skills from the testing handbook"
323
+
324
+ 1. Locate handbook (check common locations, ask user, or clone)
325
+ 2. Read discovery.md for methodology
326
+ 3. Scan handbook at {handbook_path}/content/docs/
327
+ 4. Build candidate list with types
328
+ 5. Present plan to user
329
+ 6. On approval, generate each skill using appropriate template
330
+ 7. Validate generated skills
331
+ 8. Update main README.md with generated skills table
332
+ 9. Update README.md Skills Cross-Reference graph from Related Skills sections
333
+ 10. Self-improve: note any template/discovery issues for future runs
334
+ 11. Report results
335
+ ```
336
+
337
+ ### Single Section Generation
338
+
339
+ ```
340
+ User: "Create a skill for the libFuzzer section"
341
+
342
+ 1. Read /testing-handbook/content/docs/fuzzing/c-cpp/10-libfuzzer/
343
+ 2. Identify type: Fuzzer Skill
344
+ 3. Read templates/fuzzer-skill.md
345
+ 4. Extract content, apply template
346
+ 5. Write to skills/libfuzzer/SKILL.md
347
+ 6. Validate and report
348
+ ```
349
+
350
+ ## Tips
351
+
352
+ **Do:**
353
+ - Always present plan before generating
354
+ - Use appropriate template for skill type
355
+ - Preserve code blocks exactly
356
+ - Validate after generation
357
+
358
+ **Don't:**
359
+ - Generate without user approval
360
+ - Skip fetching non-video external resources (use WebFetch)
361
+ - Fetch video URLs (YouTube, Vimeo - titles only)
362
+ - Include handbook images directly
363
+ - Skip validation step
364
+ - Exceed 500 lines per SKILL.md
365
+
366
+ ---
367
+
368
+ **For first-time use:** Start with [discovery.md](discovery.md) to understand the handbook analysis process.
369
+
370
+ **For template reference:** See [templates/](templates/) directory for skill type templates.
371
+
372
+ **For validation:** See [testing.md](testing.md) for quality assurance methodology.
@@ -0,0 +1,280 @@
1
+ # Agent Prompt Template
2
+
3
+ Use this prompt when spawning each skill generation agent. Variables in `{braces}` are substituted from the per-skill package (see [discovery.md](discovery.md#phase-3-prepare-generation-context)).
4
+
5
+ ---
6
+
7
+ # Skill Generation Task
8
+
9
+ Generate: **{name}** (type: {type}, pass: {pass})
10
+
11
+ ## Context
12
+
13
+ You are generating a Claude Code skill as a sibling to testing-handbook-generator:
14
+ ```
15
+ plugins/testing-handbook-skills/skills/
16
+ ├── testing-handbook-generator/ # This generator (do not modify)
17
+ ├── {name}/ # ← Your output directory
18
+ │ └── SKILL.md # ← Write here
19
+ ├── libfuzzer/ # Example sibling
20
+ └── semgrep/ # Example sibling
21
+ ```
22
+
23
+ ## Inputs
24
+
25
+ | Variable | Value |
26
+ |----------|-------|
27
+ | Handbook section | `{handbook_path}/content/docs/{section_path}/` |
28
+ | Template | `{template_path}` |
29
+ | Related sections | `{related_sections}` |
30
+ | Pass | `{pass}` (1=content generation, 2=cross-references only) |
31
+
32
+ **Notes:**
33
+ - `related_sections` is a comma-separated list of handbook paths (e.g., `fuzzing/techniques/asan, fuzzing/techniques/harness`), or empty string if none.
34
+ - `pass` determines what to generate: Pass 1 generates all content except Related Skills; Pass 2 only populates Related Skills.
35
+
36
+ ## Process
37
+
38
+ ### Pass 1: Content Generation
39
+
40
+ 1. **Read template first** - defines all required sections
41
+ 2. **Read ALL `*.md` files** in the handbook section path
42
+ 3. **Read related sections** (if `related_sections` is not empty) for context
43
+ 4. **Fetch external resources** with these limits:
44
+ - Maximum **5 URLs** per skill (prioritize official docs over blogs)
45
+ - Skip video URLs (YouTube, Vimeo, etc.) - include title/URL only
46
+ - **30 second timeout** per fetch - skip and note in warnings if timeout
47
+ 5. **Check line count** - if content will exceed 450 lines, apply splitting rules (see below)
48
+ 6. **Validate before writing** (see checklist below)
49
+ 7. **Write SKILL.md** with Related Skills placeholder:
50
+ ```markdown
51
+ ## Related Skills
52
+
53
+ <!-- PASS2: populate after all skills exist -->
54
+ ```
55
+
56
+ ### Pass 2: Cross-Reference Population (run after all Pass 1 complete)
57
+
58
+ 1. **List generated skills**: Read all `skills/*/SKILL.md` files to get skill names
59
+ 2. **Determine related skills** for this skill based on:
60
+ - `related_sections` mapping (handbook structure → skill names)
61
+ - Skill type relationships (e.g., fuzzers typically relate to technique skills)
62
+ - Explicit mentions in the skill's content
63
+ 3. **Replace the placeholder** with actual Related Skills section
64
+ 4. **Validate** that all referenced skills exist
65
+
66
+ ## Pre-Write Validation Checklist
67
+
68
+ ### Pass 1 Checklist
69
+
70
+ Before writing SKILL.md, verify ALL items:
71
+
72
+ - [ ] **Line count**: Content will be under 500 lines (if >450, apply splitting rules)
73
+ - [ ] **No shortcodes**: No `{{<` or `{{% ` patterns remain in output
74
+ - [ ] **No escaped backticks**: No `\``` ` patterns remain (should be unescaped to ` ``` `)
75
+ - [ ] **Required section**: Has `## When to Use` heading
76
+ - [ ] **Trigger phrase**: Description contains "Use when" or "Use for"
77
+ - [ ] **Code preserved**: All code blocks have language specifier and exact content
78
+ - [ ] **Related Skills placeholder**: Has `## Related Skills` with `<!-- PASS2: ... -->` comment
79
+
80
+ If any check fails, fix before writing. If unfixable (e.g., source has no code), note in warnings.
81
+
82
+ ### Pass 2 Checklist
83
+
84
+ Before updating Related Skills section:
85
+
86
+ - [ ] **All referenced skills exist**: Each skill name in Related Skills has a corresponding `skills/{name}/SKILL.md`
87
+ - [ ] **No circular-only references**: Don't list only skills that reference this skill back
88
+ - [ ] **Appropriate skill types**: Fuzzers link to techniques; techniques link to tools/fuzzers
89
+
90
+ ## Critical Rules
91
+
92
+ **Template backtick escaping:**
93
+
94
+ Templates use `\``` ` (backslash-escaped backticks) to show code block examples within markdown code blocks. When generating skills:
95
+ - Convert `\``` ` → ` ``` ` (remove the backslash escape)
96
+ - This applies to all code fence markers in the "Template Structure" sections
97
+ - Example: `\```bash` in template becomes ` ```bash` in generated skill
98
+
99
+ **Hugo shortcode conversion:**
100
+
101
+ | From | To |
102
+ |------|-----|
103
+ | `{{< hint info >}}X{{< /hint >}}` | `> **Note:** X` |
104
+ | `{{< hint warning >}}X{{< /hint >}}` | `> **Warning:** X` |
105
+ | `{{< hint danger >}}X{{< /hint >}}` | `> **⚠️ Danger:** X` |
106
+ | `{{< tabs >}}{{< tab "Y" >}}X{{< /tab >}}{{< /tabs >}}` | `### Y` followed by X |
107
+ | `{{% relref "path" %}}` | `See: path` (plain text) |
108
+ | `{{< customFigure "..." >}}` | `(See handbook diagram)` |
109
+ | `{{< mermaid >}}X{{< /mermaid >}}` | Omit (describe diagram in text if critical) |
110
+ | `{{< details "title" >}}X{{< /details >}}` | `<details><summary>title</summary>X</details>` |
111
+ | `{{< expand "title" >}}X{{< /expand >}}` | `<details><summary>title</summary>X</details>` |
112
+ | `{{< figure src="..." >}}` | `(See handbook image: filename)` |
113
+ | `{{< youtube ID >}}` | `[Video: Title](https://youtube.com/watch?v=ID)` (title only) |
114
+ | `{{< vimeo ID >}}` | `[Video: Title](https://vimeo.com/ID)` (title only) |
115
+ | `{{< button href="URL" >}}X{{< /button >}}` | `[X](URL)` |
116
+ | `{{< columns >}}X{{< /columns >}}` | Remove wrapper, keep content X |
117
+ | `{{< katex >}}X{{< /katex >}}` | `$X$` (inline math) or omit if complex |
118
+
119
+ **Preserve exactly:** Code blocks (language specifier, indentation, full content)
120
+
121
+ **Omit:** Images (reference as: `See handbook diagram: filename.svg`), video content (title/URL only)
122
+
123
+ **YAML frontmatter:**
124
+ - `name`: lowercase, `[a-z0-9-]+`, max 64 chars
125
+ - `type`: one of `tool`, `fuzzer`, `technique`, `domain` (determines required sections)
126
+ - `description`: max 1024 chars, MUST include "Use when {trigger}" or "Use for {purpose}"
127
+
128
+ ## Error Handling
129
+
130
+ | Situation | Action |
131
+ |-----------|--------|
132
+ | Missing handbook content | Note gap in report, use template placeholder |
133
+ | WebFetch timeout (>30s) | Include URL without summary, note in warnings |
134
+ | WebFetch fails | Include URL without summary, note in warnings |
135
+ | Over 450 lines in draft | Apply Line Count Splitting Rules (see below) |
136
+ | Missing resources file | Omit Resources section, note in report |
137
+ | No related sections (`related_sections` is empty) | Leave Related Skills placeholder for Pass 2 |
138
+
139
+ ## Line Count Splitting Rules
140
+
141
+ **Hard limit:** 500 lines per file. **Soft limit:** 450 lines (triggers splitting).
142
+
143
+ ### When to Split
144
+
145
+ After drafting content, count lines. If **line count > 450**:
146
+
147
+ 1. **Identify split candidates** (sections that can stand alone):
148
+
149
+ | Section | Split Priority | Typical Lines |
150
+ |---------|---------------|---------------|
151
+ | Installation | High | 50-100 |
152
+ | Advanced Usage | High | 80-150 |
153
+ | CI/CD Integration | High | 60-100 |
154
+ | Troubleshooting | Medium | 40-80 |
155
+ | Configuration | Medium | 50-100 |
156
+ | Tool-Specific Guidance | Medium | 100-200 |
157
+
158
+ 2. **Calculate what to extract:** Remove sections until SKILL.md is under 400 lines (leaving room for decision tree).
159
+
160
+ ### How to Split
161
+
162
+ **Step 1:** Create file structure:
163
+ ```
164
+ skills/{name}/
165
+ ├── SKILL.md # Core content + decision tree (target: <400 lines)
166
+ ├── installation.md # If extracted
167
+ ├── advanced.md # If extracted
168
+ ├── ci-integration.md # If extracted
169
+ └── troubleshooting.md # If extracted
170
+ ```
171
+
172
+ **Step 2:** Transform SKILL.md into a router. Add decision tree after Quick Reference:
173
+ ```markdown
174
+ ## Decision Tree
175
+
176
+ **What do you need?**
177
+
178
+ ├─ First time setup?
179
+ │ └─ Read: [Installation Guide](installation.md)
180
+
181
+ ├─ Basic usage?
182
+ │ └─ See: Quick Reference above
183
+
184
+ ├─ Advanced features?
185
+ │ └─ Read: [Advanced Usage](advanced.md)
186
+
187
+ ├─ CI/CD integration?
188
+ │ └─ Read: [CI Integration](ci-integration.md)
189
+
190
+ └─ Something not working?
191
+ └─ Read: [Troubleshooting](troubleshooting.md)
192
+ ```
193
+
194
+ **Step 3:** Each extracted file gets minimal frontmatter:
195
+ ```yaml
196
+ ---
197
+ parent: {name}
198
+ title: Installation Guide
199
+ ---
200
+ ```
201
+
202
+ ### What to Keep in SKILL.md
203
+
204
+ Always keep in SKILL.md (never extract):
205
+ - YAML frontmatter (name, type, description)
206
+ - When to Use section
207
+ - Quick Reference section
208
+ - Decision Tree (add if splitting)
209
+ - Related Skills section (placeholder for Pass 2)
210
+
211
+ ### Splitting Decision Table
212
+
213
+ | Total Lines | Action |
214
+ |-------------|--------|
215
+ | ≤400 | No split needed |
216
+ | 401-450 | Review for optional trimming, no split required |
217
+ | 451-550 | Extract 1-2 largest sections |
218
+ | 551-700 | Extract 2-3 sections |
219
+ | >700 | Extract all optional sections, review for content reduction |
220
+
221
+ ### Example Split
222
+
223
+ **Before (520 lines):**
224
+ ```
225
+ SKILL.md
226
+ ├── Frontmatter (10 lines)
227
+ ├── When to Use (30 lines)
228
+ ├── Quick Reference (40 lines)
229
+ ├── Installation (90 lines) ← Extract
230
+ ├── Core Workflow (80 lines)
231
+ ├── Advanced Usage (120 lines) ← Extract
232
+ ├── CI/CD Integration (70 lines) ← Extract
233
+ ├── Common Mistakes (30 lines)
234
+ ├── Related Skills (20 lines)
235
+ └── Resources (30 lines)
236
+ ```
237
+
238
+ **After split:**
239
+ ```
240
+ SKILL.md (280 lines)
241
+ ├── Frontmatter (10 lines)
242
+ ├── When to Use (30 lines)
243
+ ├── Quick Reference (40 lines)
244
+ ├── Decision Tree (40 lines) ← Added
245
+ ├── Core Workflow (80 lines)
246
+ ├── Common Mistakes (30 lines)
247
+ ├── Related Skills (20 lines)
248
+ └── Resources (30 lines)
249
+
250
+ installation.md (90 lines)
251
+ advanced.md (120 lines)
252
+ ci-integration.md (70 lines)
253
+ ```
254
+
255
+ ## Scope Restriction
256
+
257
+ ONLY write to: `{output_dir}/{name}/`
258
+ Do NOT read/modify other plugins, skills, or testing-handbook-generator itself.
259
+
260
+ ## Output Report
261
+
262
+ After writing, output this report (used for orchestration and cross-reference tracking):
263
+
264
+ ### Pass 1 Report
265
+ ```
266
+ ## {name} (Pass 1)
267
+ - **Lines:** {count}
268
+ - **Split:** {Yes - files listed | No}
269
+ - **Sections:** {populated sections, comma-separated}
270
+ - **Gaps:** {missing template sections, or "None"}
271
+ - **Warnings:** {issues encountered, or "None"}
272
+ - **References:** DEFERRED (Pass 2)
273
+ ```
274
+
275
+ ### Pass 2 Report
276
+ ```
277
+ ## {name} (Pass 2)
278
+ - **References:** {skill names in Related Skills section, comma-separated}
279
+ - **Broken refs:** {skill names that don't exist, or "None"}
280
+ ```