@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,409 @@
1
+ # Insecure Defaults: Examples and Counter-Examples
2
+
3
+ This document provides detailed examples for each category in the Quick Verification Checklist, showing both vulnerable patterns (report these) and secure patterns (skip these).
4
+
5
+ ## Fallback Secrets
6
+
7
+ ### ❌ VULNERABLE - Report These
8
+
9
+ **Python: Environment variable with fallback**
10
+ ```python
11
+ # File: src/auth/jwt.py
12
+ SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-secret-key-123')
13
+
14
+ # Used in security context
15
+ def create_token(user_id):
16
+ return jwt.encode({'user_id': user_id}, SECRET_KEY, algorithm='HS256')
17
+ ```
18
+ **Why vulnerable:** App runs with known secret if `SECRET_KEY` is missing. Attacker can forge tokens.
19
+
20
+ **JavaScript: Logical OR fallback**
21
+ ```javascript
22
+ // File: config/database.js
23
+ const DB_PASSWORD = process.env.DB_PASSWORD || 'admin123';
24
+
25
+ const pool = new Pool({
26
+ user: 'admin',
27
+ password: DB_PASSWORD,
28
+ database: 'production'
29
+ });
30
+ ```
31
+ **Why vulnerable:** Database accepts hardcoded password in production if env var missing.
32
+
33
+ **Ruby: fetch with default**
34
+ ```ruby
35
+ # File: config/secrets.rb
36
+ Rails.application.credentials.secret_key_base =
37
+ ENV.fetch('SECRET_KEY_BASE', 'fallback-secret-base')
38
+ ```
39
+ **Why vulnerable:** Rails session encryption uses weak known key as fallback.
40
+
41
+ ### ✅ SECURE - Skip These
42
+
43
+ **Fail-secure: Crashes without config**
44
+ ```python
45
+ # File: src/auth/jwt.py
46
+ SECRET_KEY = os.environ['SECRET_KEY'] # Raises KeyError if missing
47
+
48
+ # App won't start without SECRET_KEY - fail-secure
49
+ ```
50
+
51
+ **Explicit validation**
52
+ ```javascript
53
+ // File: config/database.js
54
+ if (!process.env.DB_PASSWORD) {
55
+ throw new Error('DB_PASSWORD environment variable required');
56
+ }
57
+ const DB_PASSWORD = process.env.DB_PASSWORD;
58
+ ```
59
+
60
+ **Test fixtures (clearly scoped)**
61
+ ```python
62
+ # File: tests/fixtures/auth.py
63
+ TEST_SECRET = 'test-secret-key-123' # OK - test-only
64
+
65
+ # Usage in test
66
+ def test_token_creation():
67
+ token = create_token('user1', secret=TEST_SECRET)
68
+ ```
69
+
70
+ ---
71
+
72
+ ## Default Credentials
73
+
74
+ ### ❌ VULNERABLE - Report These
75
+
76
+ **Hardcoded admin account**
77
+ ```python
78
+ # File: src/models/user.py
79
+ def bootstrap_admin():
80
+ """Create default admin account if none exists"""
81
+ if not User.query.filter_by(role='admin').first():
82
+ admin = User(
83
+ username='admin',
84
+ password=hash_password('admin123'),
85
+ role='admin'
86
+ )
87
+ db.session.add(admin)
88
+ db.session.commit()
89
+ ```
90
+ **Why vulnerable:** Default admin account created on first run with known credentials.
91
+
92
+ **API key in code**
93
+ ```javascript
94
+ // File: src/integrations/payment.js
95
+ const STRIPE_API_KEY = process.env.STRIPE_KEY || 'sk_tes...';
96
+
97
+ const stripe = require('stripe')(STRIPE_API_KEY);
98
+ ```
99
+ **Why vulnerable:** Uses test API key if env var missing. Might reach production.
100
+
101
+ **Database connection string**
102
+ ```java
103
+ // File: DatabaseConfig.java
104
+ private static final String DB_URL = System.getenv().getOrDefault(
105
+ "DATABASE_URL",
106
+ "postgresql://admin:password@localhost:5432/prod"
107
+ );
108
+ ```
109
+ **Why vulnerable:** Hardcoded database credentials as fallback.
110
+
111
+ ### ✅ SECURE - Skip These
112
+
113
+ **Disabled default account**
114
+ ```python
115
+ # File: src/models/user.py
116
+ def bootstrap_admin():
117
+ """Admin account MUST be configured via environment"""
118
+ username = os.environ['ADMIN_USERNAME']
119
+ password = os.environ['ADMIN_PASSWORD']
120
+
121
+ if not User.query.filter_by(username=username).first():
122
+ admin = User(username=username, password=hash_password(password), role='admin')
123
+ db.session.add(admin)
124
+ ```
125
+
126
+ **Example/documentation credentials**
127
+ ```bash
128
+ # File: README.md
129
+ ## Setup
130
+
131
+ Configure your API key:
132
+ ```bash
133
+ export STRIPE_KEY='sk_tes...' # Example only
134
+ ```
135
+ ```
136
+
137
+ **Test fixture credentials**
138
+ ```python
139
+ # File: tests/conftest.py
140
+ @pytest.fixture
141
+ def test_user():
142
+ return User(username='test_user', password='test_pass') # OK - test scope
143
+ ```
144
+
145
+ ---
146
+
147
+ ## Fail-Open Security
148
+
149
+ ### ❌ VULNERABLE - Report These
150
+
151
+ **Authentication disabled by default**
152
+ ```python
153
+ # File: config/security.py
154
+ REQUIRE_AUTH = os.getenv('REQUIRE_AUTH', 'false').lower() == 'true'
155
+
156
+ @app.before_request
157
+ def check_auth():
158
+ if not REQUIRE_AUTH:
159
+ return # Skip auth check
160
+ # ... auth logic
161
+ ```
162
+ **Why vulnerable:** Default is no authentication. App runs insecurely if env var missing.
163
+
164
+ **CORS allows all origins**
165
+ ```javascript
166
+ // File: server.js
167
+ const allowedOrigins = process.env.ALLOWED_ORIGINS || '*';
168
+
169
+ app.use(cors({ origin: allowedOrigins }));
170
+ ```
171
+ **Why vulnerable:** Default allows requests from any origin. XSS/CSRF risk.
172
+
173
+ **Debug mode enabled by default**
174
+ ```python
175
+ # File: config.py
176
+ DEBUG = os.getenv('DEBUG', 'true').lower() != 'false' # Default: true
177
+
178
+ if DEBUG:
179
+ app.config['DEBUG'] = True
180
+ app.config['PROPAGATE_EXCEPTIONS'] = True
181
+ ```
182
+ **Why vulnerable:** Debug mode default. Stack traces leak sensitive info in production.
183
+
184
+ ### ✅ SECURE - Skip These
185
+
186
+ **Authentication required by default**
187
+ ```python
188
+ # File: config/security.py
189
+ REQUIRE_AUTH = os.getenv('REQUIRE_AUTH', 'true').lower() == 'true' # Default: true
190
+
191
+ # Or better - crash if not explicitly configured
192
+ REQUIRE_AUTH = os.environ['REQUIRE_AUTH'].lower() == 'true'
193
+ ```
194
+
195
+ **CORS requires explicit configuration**
196
+ ```javascript
197
+ // File: server.js
198
+ if (!process.env.ALLOWED_ORIGINS) {
199
+ throw new Error('ALLOWED_ORIGINS must be configured');
200
+ }
201
+ const allowedOrigins = process.env.ALLOWED_ORIGINS.split(',');
202
+
203
+ app.use(cors({ origin: allowedOrigins }));
204
+ ```
205
+
206
+ **Debug mode disabled by default**
207
+ ```python
208
+ # File: config.py
209
+ DEBUG = os.getenv('DEBUG', 'false').lower() == 'true' # Default: false
210
+ ```
211
+
212
+ ---
213
+
214
+ ## Weak Crypto
215
+
216
+ ### ❌ VULNERABLE - Report These
217
+
218
+ **MD5 for password hashing**
219
+ ```python
220
+ # File: src/auth/passwords.py
221
+ import hashlib
222
+
223
+ def hash_password(password):
224
+ """Hash user password"""
225
+ return hashlib.md5(password.encode()).hexdigest()
226
+ ```
227
+ **Why vulnerable:** MD5 is cryptographically broken. Rainbow tables exist. Use bcrypt/Argon2.
228
+
229
+ **DES encryption for sensitive data**
230
+ ```java
231
+ // File: Encryption.java
232
+ public static byte[] encrypt(String data, byte[] key) {
233
+ Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
234
+ SecretKeySpec secretKey = new SecretKeySpec(key, "DES");
235
+ cipher.init(Cipher.ENCRYPT_MODE, secretKey);
236
+ return cipher.doFinal(data.getBytes());
237
+ }
238
+ ```
239
+ **Why vulnerable:** DES has 56-bit keys (brute-forceable). ECB mode leaks patterns.
240
+
241
+ **SHA1 for signature verification**
242
+ ```javascript
243
+ // File: webhooks.js
244
+ function verifySignature(payload, signature) {
245
+ const hmac = crypto.createHmac('sha1', WEBHOOK_SECRET);
246
+ const computed = hmac.update(payload).digest('hex');
247
+ return computed === signature;
248
+ }
249
+ ```
250
+ **Why vulnerable:** SHA1 collisions exist. Use SHA256 or better.
251
+
252
+ ### ✅ SECURE - Skip These
253
+
254
+ **Weak crypto for non-security checksums**
255
+ ```python
256
+ # File: src/utils/cache.py
257
+ import hashlib
258
+
259
+ def cache_key(data):
260
+ """Generate cache key - not security-sensitive"""
261
+ return hashlib.md5(data.encode()).hexdigest() # OK - just for cache lookup
262
+ ```
263
+
264
+ **Modern crypto for passwords**
265
+ ```python
266
+ # File: src/auth/passwords.py
267
+ import bcrypt
268
+
269
+ def hash_password(password):
270
+ return bcrypt.hashpw(password.encode(), bcrypt.gensalt())
271
+ ```
272
+
273
+ **Strong encryption**
274
+ ```java
275
+ // File: Encryption.java
276
+ Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
277
+ // 256-bit key, authenticated encryption
278
+ ```
279
+
280
+ ---
281
+
282
+ ## Permissive Access
283
+
284
+ ### ❌ VULNERABLE - Report These
285
+
286
+ **File permissions world-writable**
287
+ ```python
288
+ # File: src/storage/files.py
289
+ def create_secure_file(path):
290
+ fd = os.open(path, os.O_CREAT | os.O_WRONLY, 0o666) # rw-rw-rw-
291
+ return fd
292
+ ```
293
+ **Why vulnerable:** Any user can write to file. Should be 0o600 or 0o644.
294
+
295
+ **S3 bucket public by default**
296
+ ```python
297
+ # File: infrastructure/storage.py
298
+ def create_storage_bucket(name):
299
+ bucket = s3.create_bucket(
300
+ Bucket=name,
301
+ ACL='public-read' # Publicly readable by default
302
+ )
303
+ ```
304
+ **Why vulnerable:** Sensitive data exposed publicly. Should require explicit configuration.
305
+
306
+ **API allows any origin**
307
+ ```python
308
+ # File: app.py
309
+ @app.after_request
310
+ def after_request(response):
311
+ response.headers['Access-Control-Allow-Origin'] = '*'
312
+ response.headers['Access-Control-Allow-Credentials'] = 'true'
313
+ return response
314
+ ```
315
+ **Why vulnerable:** CORS misconfiguration. Allows credential theft from any site.
316
+
317
+ ### ✅ SECURE - Skip These
318
+
319
+ **Explicitly configured permissiveness with justification**
320
+ ```python
321
+ # File: src/storage/public_assets.py
322
+ def create_public_asset(path):
323
+ """Create world-readable asset for CDN distribution"""
324
+ # Intentionally public - static assets only
325
+ fd = os.open(path, os.O_CREAT | os.O_WRONLY, 0o644)
326
+ return fd
327
+ ```
328
+
329
+ **Restrictive by default**
330
+ ```python
331
+ # File: infrastructure/storage.py
332
+ def create_storage_bucket(name, public=False):
333
+ acl = 'public-read' if public else 'private'
334
+ if public:
335
+ logger.warning(f'Creating PUBLIC bucket: {name}')
336
+ bucket = s3.create_bucket(Bucket=name, ACL=acl)
337
+ ```
338
+
339
+ ---
340
+
341
+ ## Debug Features
342
+
343
+ ### ❌ VULNERABLE - Report These
344
+
345
+ **Stack traces in API responses**
346
+ ```python
347
+ # File: app.py
348
+ @app.errorhandler(Exception)
349
+ def handle_error(error):
350
+ return jsonify({
351
+ 'error': str(error),
352
+ 'traceback': traceback.format_exc() # Leaks internal paths, library versions
353
+ }), 500
354
+ ```
355
+ **Why vulnerable:** Exposes internal implementation details to attackers.
356
+
357
+ **GraphQL introspection enabled**
358
+ ```javascript
359
+ // File: server.js
360
+ const server = new ApolloServer({
361
+ typeDefs,
362
+ resolvers,
363
+ introspection: true, // Enabled in production
364
+ playground: true
365
+ });
366
+ ```
367
+ **Why vulnerable:** Attackers can discover entire API schema, including admin-only fields.
368
+
369
+ **Verbose error messages**
370
+ ```java
371
+ // File: UserController.java
372
+ catch (SQLException e) {
373
+ return ResponseEntity.status(500).body(
374
+ "Database error: " + e.getMessage() // Leaks table names, constraints
375
+ );
376
+ }
377
+ ```
378
+ **Why vulnerable:** SQL error messages reveal database structure.
379
+
380
+ ### ✅ SECURE - Skip These
381
+
382
+ **Debug features in logging only**
383
+ ```python
384
+ # File: app.py
385
+ @app.errorhandler(Exception)
386
+ def handle_error(error):
387
+ logger.exception('Request failed', exc_info=error) # Logs full trace
388
+ return jsonify({'error': 'Internal server error'}), 500 # Generic to user
389
+ ```
390
+
391
+ **Environment-aware debug settings**
392
+ ```javascript
393
+ // File: server.js
394
+ const server = new ApolloServer({
395
+ typeDefs,
396
+ resolvers,
397
+ introspection: process.env.NODE_ENV !== 'production',
398
+ playground: process.env.NODE_ENV !== 'production'
399
+ });
400
+ ```
401
+
402
+ **Generic user-facing errors**
403
+ ```java
404
+ // File: UserController.java
405
+ catch (SQLException e) {
406
+ logger.error("Database error", e); // Full details to logs
407
+ return ResponseEntity.status(500).body("Unable to process request"); // Generic
408
+ }
409
+ ```
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "modern-python",
3
+ "version": "1.3.0",
4
+ "description": "Modern Python best practices. Use when creating new Python projects, and writing Python scripts, or migrating existing projects from legacy tools.",
5
+ "author": {
6
+ "name": "William Tan",
7
+ "email": "opensource@trailofbits.com",
8
+ "url": "https://github.com/trailofbits"
9
+ }
10
+ }
@@ -0,0 +1,58 @@
1
+ # Modern Python
2
+
3
+ Modern Python tooling and best practices using uv, ruff, ty, and pytest. Based on patterns from [trailofbits/cookiecutter-python](https://github.com/trailofbits/cookiecutter-python).
4
+
5
+ **Author:** William Tan
6
+
7
+ ## When to Use
8
+
9
+ - Setting up a new Python project with modern, fast tooling
10
+ - Replacing pip/virtualenv with uv for faster dependency management
11
+ - Replacing flake8/black/isort with ruff for unified linting and formatting
12
+ - Replacing mypy with ty for faster type checking
13
+ - Adding pre-commit hooks and security scanning to an existing project
14
+
15
+ ## What It Covers
16
+
17
+ **Core Tools:**
18
+ - **uv** - Package/dependency management (replaces pip, virtualenv, pip-tools, pipx, pyenv)
19
+ - **ruff** - Linting and formatting (replaces flake8, black, isort, pyupgrade)
20
+ - **ty** - Type checking (replaces mypy, pyright)
21
+ - **pytest** - Testing with coverage enforcement
22
+ - **prek** - Pre-commit hooks (replaces pre-commit)
23
+
24
+ **Security Tools:**
25
+ - **shellcheck** - Shell script linting
26
+ - **detect-secrets** - Secret detection in commits
27
+ - **actionlint** - GitHub Actions syntax validation
28
+ - **zizmor** - GitHub Actions security audit
29
+ - **pip-audit** - Dependency vulnerability scanning
30
+ - **Dependabot** - Automated dependency updates with supply chain protection
31
+
32
+ **Standards:**
33
+ - **pyproject.toml** - Single configuration file with dependency groups (PEP 735)
34
+ - **PEP 723** - Inline script metadata for single-file scripts
35
+ - **src/ layout** - Standard package structure
36
+ - **Python 3.11+** - Minimum version requirement
37
+
38
+ ## Hook: Legacy Command Interception
39
+
40
+ This plugin includes a `PreToolUse` hook that intercepts legacy Python/pip commands and suggests uv alternatives. When Claude attempts to run commands like `python` or `pip install`, the hook blocks the command and provides guidance:
41
+
42
+ | Legacy Command | Suggested Alternative |
43
+ |----------------|----------------------|
44
+ | `python` | `uv run python` |
45
+ | `python script.py` | `uv run script.py` |
46
+ | `pip install pkg` | `uv add pkg` or `uv run --with pkg` |
47
+ | `pip uninstall pkg` | `uv remove pkg` |
48
+ | `pip freeze` | `uv export` |
49
+ | `python -m pip` | `uv add`/`uv remove` |
50
+ | `uv pip` | `uv add`/`uv remove`/`uv sync` |
51
+
52
+ Commands using `uv run` are allowed through without interception.
53
+
54
+ ## Installation
55
+
56
+ ```
57
+ /plugin install trailofbits/skills/plugins/modern-python
58
+ ```
@@ -0,0 +1,16 @@
1
+ {
2
+ "description": "Intercept legacy Python/pip commands and suggest uv alternatives",
3
+ "hooks": {
4
+ "PreToolUse": [
5
+ {
6
+ "matcher": "Bash",
7
+ "hooks": [
8
+ {
9
+ "type": "command",
10
+ "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/intercept-legacy-python.sh\""
11
+ }
12
+ ]
13
+ }
14
+ ]
15
+ }
16
+ }