@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,398 @@
1
+ # Report Parsing Strategies
2
+
3
+ Parsing security audit reports in various formats.
4
+
5
+ ## Overview
6
+
7
+ Security reports come in multiple formats. This guide covers parsing strategies for each format and handling special cases like Google Drive URLs.
8
+
9
+ ---
10
+
11
+ ## Trail of Bits Format
12
+
13
+ Trail of Bits reports follow a consistent structure.
14
+
15
+ ### Structure
16
+
17
+ ```
18
+ 1. Executive Summary
19
+ 2. Project Dashboard
20
+ 3. Engagement Goals
21
+ 4. Coverage
22
+ 5. Automated Testing
23
+ 6. Findings Overview
24
+ 7. Detailed Findings
25
+ - Each finding starts on new page
26
+ - Header table with ID, title, severity, type, target
27
+ - Description, Exploit Scenario, Recommendations
28
+ 8. Appendices
29
+ ```
30
+
31
+ ### Finding Identification
32
+
33
+ Each finding has a header table:
34
+
35
+ | Field | Format |
36
+ |-------|--------|
37
+ | ID | `TOB-[CLIENT]-[NUMBER]` (e.g., TOB-ACME-1) |
38
+ | Title | Descriptive title |
39
+ | Severity | Informational, Low, Medium, High |
40
+ | Difficulty | Low, Medium, High, Undetermined |
41
+ | Type | Access Controls, Cryptography, Data Validation, etc. |
42
+ | Target | File path(s) |
43
+
44
+ ### Extraction Pattern
45
+
46
+ ```
47
+ 1. Locate "Detailed Findings" section
48
+ 2. For each finding, extract:
49
+ - ID: Match pattern /TOB-[A-Z]+-[0-9]+/
50
+ - Title: Text following ID in header
51
+ - Severity: From header table
52
+ - Target: File paths from header table
53
+ - Description: Content after "Description" heading
54
+ - Recommendations: Content after "Recommendations" heading
55
+ ```
56
+
57
+ ### Example Finding
58
+
59
+ ```markdown
60
+ ## TOB-ACME-1: Missing access control in withdraw function
61
+
62
+ | Field | Value |
63
+ |-------|-------|
64
+ | ID | TOB-ACME-1 |
65
+ | Severity | High |
66
+ | Difficulty | Low |
67
+ | Type | Access Controls |
68
+ | Target | contracts/Vault.sol |
69
+
70
+ ### Description
71
+
72
+ The `withdraw` function in `Vault.sol` lacks access control...
73
+
74
+ ### Recommendations
75
+
76
+ Short term, add the `onlyOwner` modifier...
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Generic Report Formats
82
+
83
+ ### Numbered Findings
84
+
85
+ Reports with numbered findings (Finding 1, Finding 2, etc.):
86
+
87
+ ```
88
+ Pattern: /Finding\s+[0-9]+:?\s+(.+)/
89
+ /[0-9]+\.\s+(.+)/
90
+ /#[0-9]+\s+(.+)/
91
+ ```
92
+
93
+ Extract:
94
+ - Number as ID
95
+ - Following text as title
96
+ - Look for severity keywords nearby
97
+
98
+ ### Severity-Based Sections
99
+
100
+ Reports organized by severity:
101
+
102
+ ```
103
+ ## Critical
104
+ ### Finding title
105
+ ...
106
+
107
+ ## High
108
+ ### Another finding
109
+ ...
110
+ ```
111
+
112
+ Extract:
113
+ - Section heading as severity
114
+ - Sub-headings as finding titles
115
+ - Generate IDs (CRITICAL-1, HIGH-1, etc.)
116
+
117
+ ### Table-Based Findings
118
+
119
+ Reports with findings in tables:
120
+
121
+ ```markdown
122
+ | ID | Title | Severity | Status |
123
+ |----|-------|----------|--------|
124
+ | V-01 | SQL Injection | High | Open |
125
+ | V-02 | XSS in search | Medium | Open |
126
+ ```
127
+
128
+ Extract by parsing table structure.
129
+
130
+ ### JSON Format
131
+
132
+ Reports in JSON structure:
133
+
134
+ ```json
135
+ {
136
+ "findings": [
137
+ {
138
+ "id": "VULN-001",
139
+ "title": "SQL Injection",
140
+ "severity": "high",
141
+ "description": "...",
142
+ "files": ["app/db.py"]
143
+ }
144
+ ]
145
+ }
146
+ ```
147
+
148
+ Parse directly from JSON structure.
149
+
150
+ ---
151
+
152
+ ## Format Detection
153
+
154
+ When report format is unknown:
155
+
156
+ ### Step 1: Check for TOB Format
157
+
158
+ ```
159
+ Search for: "TOB-" followed by letters and numbers
160
+ If found: Use TOB parsing
161
+ ```
162
+
163
+ ### Step 2: Check for JSON
164
+
165
+ ```
166
+ If file extension is .json or content starts with '{':
167
+ Parse as JSON
168
+ Look for "findings" array
169
+ ```
170
+
171
+ ### Step 3: Check for Markdown Structure
172
+
173
+ ```
174
+ Search for: "## Finding" or "### Finding"
175
+ Search for: Severity headings (Critical, High, Medium, Low)
176
+ Search for: Numbered patterns (1., 2., or Finding 1, Finding 2)
177
+ ```
178
+
179
+ ### Step 4: Fall Back to Keyword Extraction
180
+
181
+ ```
182
+ Search for severity keywords: critical, high, medium, low, informational
183
+ Search for vulnerability keywords: vulnerability, issue, bug, flaw
184
+ Extract surrounding context as findings
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Google Drive Handling
190
+
191
+ When a Google Drive URL is provided and WebFetch fails (permissions, redirect):
192
+
193
+ ### Step 1: Detect Google Drive URL
194
+
195
+ ```
196
+ Pattern: https://drive.google.com/file/d/[FILE_ID]/...
197
+ https://docs.google.com/document/d/[DOC_ID]/...
198
+ https://drive.google.com/open?id=[FILE_ID]
199
+ ```
200
+
201
+ ### Step 2: Extract File ID
202
+
203
+ ```bash
204
+ # From /file/d/ URLs
205
+ FILE_ID=$(echo "$URL" | grep -oP 'file/d/\K[^/]+')
206
+
207
+ # From /document/d/ URLs
208
+ FILE_ID=$(echo "$URL" | grep -oP 'document/d/\K[^/]+')
209
+
210
+ # From ?id= URLs
211
+ FILE_ID=$(echo "$URL" | grep -oP 'id=\K[^&]+')
212
+ ```
213
+
214
+ ### Step 3: Check for gdrive CLI
215
+
216
+ ```bash
217
+ # Check if gdrive is installed
218
+ if command -v gdrive &> /dev/null; then
219
+ # Check if gdrive is configured (has auth)
220
+ if gdrive about &> /dev/null; then
221
+ echo "gdrive available and configured"
222
+ else
223
+ echo "gdrive installed but not configured"
224
+ fi
225
+ else
226
+ echo "gdrive not installed"
227
+ fi
228
+ ```
229
+
230
+ ### Step 4: Download with gdrive
231
+
232
+ If gdrive is available and configured:
233
+
234
+ ```bash
235
+ # Download to temp directory
236
+ gdrive files download "$FILE_ID" --path /tmp/
237
+
238
+ # Find the downloaded file
239
+ DOWNLOADED=$(ls -t /tmp/ | head -1)
240
+
241
+ # Read the file
242
+ cat "/tmp/$DOWNLOADED"
243
+ ```
244
+
245
+ ### Step 5: User Instructions (if gdrive unavailable)
246
+
247
+ If gdrive is not available or not configured:
248
+
249
+ ```
250
+ Unable to access the Google Drive URL directly. Please:
251
+
252
+ 1. Open the URL in your browser
253
+ 2. Download the file:
254
+ - For Google Docs: File → Download → Markdown (.md)
255
+ - For PDFs: Click download button
256
+ 3. Provide the local file path
257
+
258
+ Alternatively, install and configure gdrive:
259
+ brew install gdrive
260
+ gdrive about # Follow auth prompts
261
+ ```
262
+
263
+ ---
264
+
265
+ ## File Format Handling
266
+
267
+ ### PDF Files
268
+
269
+ Claude can read PDFs directly using the Read tool:
270
+
271
+ ```
272
+ Read /path/to/report.pdf
273
+ ```
274
+
275
+ For large PDFs, process section by section:
276
+ 1. Read table of contents/overview
277
+ 2. Locate "Findings" section
278
+ 3. Read findings section in detail
279
+
280
+ ### Markdown Files
281
+
282
+ Read directly:
283
+
284
+ ```
285
+ Read /path/to/report.md
286
+ ```
287
+
288
+ ### HTML Files
289
+
290
+ Read and parse:
291
+
292
+ ```
293
+ Read /path/to/report.html
294
+ ```
295
+
296
+ Extract text content, ignoring HTML tags.
297
+
298
+ ### JSON Files
299
+
300
+ Read and parse as structured data:
301
+
302
+ ```
303
+ Read /path/to/report.json
304
+ ```
305
+
306
+ Access fields directly from JSON structure.
307
+
308
+ ---
309
+
310
+ ## Extraction Output Format
311
+
312
+ Regardless of input format, normalize findings to:
313
+
314
+ ```json
315
+ {
316
+ "findings": [
317
+ {
318
+ "id": "TOB-ACME-1",
319
+ "title": "Missing access control in withdraw",
320
+ "severity": "High",
321
+ "difficulty": "Low",
322
+ "type": "Access Controls",
323
+ "files": ["contracts/Vault.sol"],
324
+ "description": "The withdraw function lacks...",
325
+ "recommendation": "Add onlyOwner modifier..."
326
+ }
327
+ ],
328
+ "metadata": {
329
+ "client": "ACME",
330
+ "date": "2024-01-15",
331
+ "format": "tob"
332
+ }
333
+ }
334
+ ```
335
+
336
+ This normalized format enables consistent processing regardless of source format.
337
+
338
+ ---
339
+
340
+ ## Handling Incomplete Reports
341
+
342
+ When report lacks standard structure:
343
+
344
+ ### Missing Finding IDs
345
+
346
+ Generate IDs based on:
347
+ - Severity + sequence: `HIGH-1`, `HIGH-2`, `MEDIUM-1`
348
+ - Position: `FINDING-1`, `FINDING-2`
349
+ - File path: `VAULT-1`, `TOKEN-1`
350
+
351
+ ### Missing Severity
352
+
353
+ Infer from:
354
+ - Keywords: "critical", "severe", "important" → High
355
+ - Impact description: "attacker can steal" → High
356
+ - Default to "Undetermined" if unclear
357
+
358
+ ### Missing File References
359
+
360
+ Search report for:
361
+ - File paths: `/path/to/file`, `src/module/file.py`
362
+ - Function names: `function()`, `method()`
363
+ - Contract names: `Contract.function`
364
+
365
+ ---
366
+
367
+ ## Error Handling
368
+
369
+ ### File Not Found
370
+
371
+ ```
372
+ Unable to read report at [path].
373
+ Please verify the file exists and provide the correct path.
374
+ ```
375
+
376
+ ### Unsupported Format
377
+
378
+ ```
379
+ Unable to parse report format.
380
+ Supported formats: PDF, Markdown, JSON, HTML
381
+ Please convert to a supported format or provide as Markdown.
382
+ ```
383
+
384
+ ### Empty Findings
385
+
386
+ ```
387
+ No findings detected in the report.
388
+ Please verify this is a security audit report with findings.
389
+ If findings exist but weren't detected, provide them manually.
390
+ ```
391
+
392
+ ### Partial Parse
393
+
394
+ ```
395
+ Parsed [N] findings, but some content may have been missed.
396
+ Detected findings: [list IDs]
397
+ Please verify all expected findings are included.
398
+ ```
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "insecure-defaults",
3
+ "version": "1.0.0",
4
+ "description": "Detects and verifies insecure default configurations",
5
+ "author": {
6
+ "name": "Trail of Bits",
7
+ "email": "opensource@trailofbits.com",
8
+ "url": "https://github.com/trailofbits"
9
+ }
10
+ }
@@ -0,0 +1,45 @@
1
+ # Insecure Defaults Detection
2
+
3
+ Security skill for detecting insecure default configurations that create vulnerabilities when applications run with missing or incomplete configuration.
4
+
5
+ ## Overview
6
+
7
+ The `insecure-defaults` skill helps identify security vulnerabilities caused by:
8
+
9
+ - **Hardcoded fallback secrets** (JWT keys, API keys, session secrets)
10
+ - **Default credentials** (admin/admin, root/password)
11
+ - **Weak cryptographic defaults** (MD5, DES, ECB mode)
12
+ - **Permissive access control** (CORS *, public by default)
13
+ - **Missing security configuration** that causes fail-open behavior
14
+
15
+ **Critical Distinction:** This skill emphasizes **fail-secure vs. fail-open** behavior. Applications that crash without proper configuration are safe; applications that run with insecure defaults are vulnerable.
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ cd parent-folder/skills
21
+ /plugin install ./plugins/insecure-defaults
22
+ ```
23
+
24
+ Or from the plugin marketplace:
25
+ ```bash
26
+ /plugin install insecure-defaults
27
+ ```
28
+
29
+ ## When to Use
30
+
31
+ Use this skill when:
32
+
33
+ - **Security auditing** production applications or services
34
+ - **Configuration review** of deployment manifests (Docker, Kubernetes, IaC)
35
+ - **Pre-production checks** before deploying new services
36
+ - **Code review** of authentication, authorization, or cryptographic code
37
+ - **Environment variable handling** analysis for secrets management
38
+ - **API security review** checking CORS, rate limiting, authentication
39
+ - **Third-party integration** review for hardcoded test credentials
40
+
41
+ ## Usage
42
+
43
+ ```
44
+ Audit this codebase for insecure defaults—focus on environment variable fallbacks and authentication configuration
45
+ ```
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: insecure-defaults
3
+ description: "Detects fail-open insecure defaults (hardcoded secrets, weak auth, permissive security) that allow apps to run insecurely in production. Use when auditing security, reviewing config management, or analyzing environment variable handling."
4
+ allowed-tools:
5
+ - Read
6
+ - Grep
7
+ - Glob
8
+ - Bash
9
+ ---
10
+
11
+ # Insecure Defaults Detection
12
+
13
+ Finds **fail-open** vulnerabilities where apps run insecurely with missing configuration. Distinguishes exploitable defaults from fail-secure patterns that crash safely.
14
+
15
+ - **Fail-open (CRITICAL):** `SECRET = env.get('KEY') or 'default'` → App runs with weak secret
16
+ - **Fail-secure (SAFE):** `SECRET = env['KEY']` → App crashes if missing
17
+
18
+ ## When to Use
19
+
20
+ - **Security audits** of production applications (auth, crypto, API security)
21
+ - **Configuration review** of deployment files, IaC templates, Docker configs
22
+ - **Code review** of environment variable handling and secrets management
23
+ - **Pre-deployment checks** for hardcoded credentials or weak defaults
24
+
25
+ ## When NOT to Use
26
+
27
+ Do not use this skill for:
28
+ - **Test fixtures** explicitly scoped to test environments (files in `test/`, `spec/`, `__tests__/`)
29
+ - **Example/template files** (`.example`, `.template`, `.sample` suffixes)
30
+ - **Development-only tools** (local Docker Compose for dev, debug scripts)
31
+ - **Documentation examples** in README.md or docs/ directories
32
+ - **Build-time configuration** that gets replaced during deployment
33
+ - **Crash-on-missing behavior** where app won't start without proper config (fail-secure)
34
+
35
+ When in doubt: trace the code path to determine if the app runs with the default or crashes.
36
+
37
+ ## Rationalizations to Reject
38
+
39
+ - **"It's just a development default"** → If it reaches production code, it's a finding
40
+ - **"The production config overrides it"** → Verify prod config exists; code-level vulnerability remains if not
41
+ - **"This would never run without proper config"** → Prove it with code trace; many apps fail silently
42
+ - **"It's behind authentication"** → Defense in depth; compromised session still exploits weak defaults
43
+ - **"We'll fix it before release"** → Document now; "later" rarely comes
44
+
45
+ ## Workflow
46
+
47
+ Follow this workflow for every potential finding:
48
+
49
+ ### 1. SEARCH: Perform Project Discovery and Find Insecure Defaults
50
+
51
+ Determine language, framework, and project conventions. Use this information to further discover things like secret storage locations, secret usage patterns, credentialed third-party integrations, cryptography, and any other relevant configuration. Further use information to analyze insecure default configurations.
52
+
53
+ **Example**
54
+ Search for patterns in `**/config/`, `**/auth/`, `**/database/`, and env files:
55
+ - **Fallback secrets:** `getenv.*\) or ['"]`, `process\.env\.[A-Z_]+ \|\| ['"]`, `ENV\.fetch.*default:`
56
+ - **Hardcoded credentials:** `password.*=.*['"][^'"]{8,}['"]`, `api[_-]?key.*=.*['"][^'"]+['"]`
57
+ - **Weak defaults:** `DEBUG.*=.*true`, `AUTH.*=.*false`, `CORS.*=.*\*`
58
+ - **Crypto algorithms:** `MD5|SHA1|DES|RC4|ECB` in security contexts
59
+
60
+ Tailor search approach based on discovery results.
61
+
62
+ Focus on production-reachable code, not test fixtures or example files.
63
+
64
+ ### 2. VERIFY: Actual Behavior
65
+ For each match, trace the code path to understand runtime behavior.
66
+
67
+ **Questions to answer:**
68
+ - When is this code executed? (Startup vs. runtime)
69
+ - What happens if a configuration variable is missing?
70
+ - Is there validation that enforces secure configuration?
71
+
72
+ ### 3. CONFIRM: Production Impact
73
+ Determine if this issue reaches production:
74
+
75
+ If production config provides the variable → Lower severity (but still a code-level vulnerability)
76
+ If production config missing or uses default → CRITICAL
77
+
78
+ ### 4. REPORT: with Evidence
79
+
80
+ **Example report:**
81
+ ```
82
+ Finding: Hardcoded JWT Secret Fallback
83
+ Location: src/auth/jwt.ts:15
84
+ Pattern: const secret = process.env.JWT_SECRET || 'default';
85
+
86
+ Verification: App starts without JWT_SECRET; secret used in jwt.sign() at line 42
87
+ Production Impact: Dockerfile missing JWT_SECRET
88
+ Exploitation: Attacker forges JWTs using 'default', gains unauthorized access
89
+ ```
90
+
91
+ ## Quick Verification Checklist
92
+
93
+ **Fallback Secrets:** `SECRET = env.get(X) or Y`
94
+ → Verify: App starts without env var? Secret used in crypto/auth?
95
+ → Skip: Test fixtures, example files
96
+
97
+ **Default Credentials:** Hardcoded `username`/`password` pairs
98
+ → Verify: Active in deployed config? No runtime override?
99
+ → Skip: Disabled accounts, documentation examples
100
+
101
+ **Fail-Open Security:** `AUTH_REQUIRED = env.get(X, 'false')`
102
+ → Verify: Default is insecure (false/disabled/permissive)?
103
+ → Safe: App crashes or default is secure (true/enabled/restricted)
104
+
105
+ **Weak Crypto:** MD5/SHA1/DES/RC4/ECB in security contexts
106
+ → Verify: Used for passwords, encryption, or tokens?
107
+ → Skip: Checksums, non-security hashing
108
+
109
+ **Permissive Access:** CORS `*`, permissions `0777`, public-by-default
110
+ → Verify: Default allows unauthorized access?
111
+ → Skip: Explicitly configured permissiveness with justification
112
+
113
+ **Debug Features:** Stack traces, introspection, verbose errors
114
+ → Verify: Enabled by default? Exposed in responses?
115
+ → Skip: Logging-only, not user-facing
116
+
117
+ For detailed examples and counter-examples, see [examples.md](references/examples.md).