@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,240 @@
1
+ # Ruff Configuration Reference
2
+
3
+ Ruff is an extremely fast Python linter and formatter written in Rust. It replaces flake8, black, isort, pyupgrade, pydocstyle, and many other tools.
4
+
5
+ ## Basic Setup
6
+
7
+ Add to `pyproject.toml`:
8
+
9
+ ```toml
10
+ [tool.ruff]
11
+ line-length = 100
12
+ target-version = "py311"
13
+ src = ["src"]
14
+
15
+ [tool.ruff.lint]
16
+ select = ["ALL"]
17
+ ignore = [
18
+ "D", # pydocstyle
19
+ "COM812", # trailing comma (formatter conflict)
20
+ "ISC001", # string concat (formatter conflict)
21
+ ]
22
+
23
+ [tool.ruff.format]
24
+ quote-style = "double"
25
+ indent-style = "space"
26
+ docstring-code-format = true
27
+ ```
28
+
29
+ ## Running Ruff
30
+
31
+ ```bash
32
+ # Lint
33
+ uv run ruff check .
34
+ uv run ruff check --fix . # Auto-fix
35
+ uv run ruff check --fix --unsafe-fixes . # Including unsafe fixes
36
+
37
+ # Format
38
+ uv run ruff format .
39
+ uv run ruff format --check . # Check only
40
+ uv run ruff format --diff . # Show diff
41
+ ```
42
+
43
+ ## Rule Categories
44
+
45
+ Using `select = ["ALL"]` enables all rules. Common categories:
46
+
47
+ | Code | Category | Description |
48
+ |------|----------|-------------|
49
+ | `E`, `W` | pycodestyle | Style errors and warnings |
50
+ | `F` | Pyflakes | Logical errors |
51
+ | `I` | isort | Import sorting |
52
+ | `N` | pep8-naming | Naming conventions |
53
+ | `D` | pydocstyle | Docstring conventions |
54
+ | `UP` | pyupgrade | Python upgrade suggestions |
55
+ | `B` | flake8-bugbear | Bug detection |
56
+ | `S` | flake8-bandit | Security issues |
57
+ | `A` | flake8-builtins | Built-in shadowing |
58
+ | `C4` | flake8-comprehensions | Comprehension improvements |
59
+ | `DTZ` | flake8-datetimez | Timezone-aware datetime |
60
+ | `T10` | flake8-debugger | Debugger statements |
61
+ | `T20` | flake8-print | Print statements |
62
+ | `PT` | flake8-pytest-style | Pytest style |
63
+ | `Q` | flake8-quotes | Quote consistency |
64
+ | `SIM` | flake8-simplify | Simplification suggestions |
65
+ | `TID` | flake8-tidy-imports | Import hygiene |
66
+ | `ARG` | flake8-unused-arguments | Unused arguments |
67
+ | `ERA` | eradicate | Commented-out code |
68
+ | `PL` | Pylint | Pylint rules |
69
+ | `RUF` | Ruff-specific | Ruff's own rules |
70
+ | `ANN` | flake8-annotations | Type annotation checks |
71
+
72
+ ## Recommended Ignores
73
+
74
+ ### Always Ignore (Formatter Conflicts)
75
+
76
+ ```toml
77
+ ignore = [
78
+ "COM812", # missing-trailing-comma
79
+ "ISC001", # single-line-implicit-string-concatenation
80
+ ]
81
+ ```
82
+
83
+ ### Common Ignores
84
+
85
+ ```toml
86
+ ignore = [
87
+ "D", # Docstrings (enable selectively)
88
+ "ANN401", # Dynamically typed Any
89
+ "TD002", # Missing TODO author
90
+ "TD003", # Missing TODO link
91
+ "FIX002", # Line contains TODO
92
+ ]
93
+ ```
94
+
95
+ ## Per-File Ignores
96
+
97
+ ```toml
98
+ [tool.ruff.lint.per-file-ignores]
99
+ # Tests
100
+ "tests/**/*.py" = [
101
+ "S101", # assert usage
102
+ "PLR2004", # magic values
103
+ "ANN", # type annotations
104
+ "D", # docstrings
105
+ ]
106
+
107
+ # Scripts
108
+ "scripts/**/*.py" = [
109
+ "T20", # print statements
110
+ "INP001", # implicit namespace package
111
+ ]
112
+
113
+ # __init__.py
114
+ "__init__.py" = [
115
+ "F401", # unused imports (re-exports)
116
+ ]
117
+
118
+ # Migrations
119
+ "**/migrations/*.py" = [
120
+ "ALL", # ignore all
121
+ ]
122
+ ```
123
+
124
+ ## Import Sorting (isort)
125
+
126
+ ```toml
127
+ [tool.ruff.lint.isort]
128
+ force-single-line = false
129
+ known-first-party = ["myproject"]
130
+ required-imports = ["from __future__ import annotations"]
131
+ section-order = [
132
+ "future",
133
+ "standard-library",
134
+ "third-party",
135
+ "first-party",
136
+ "local-folder",
137
+ ]
138
+ ```
139
+
140
+ ## Docstring Style (pydocstyle)
141
+
142
+ If enabling docstring checks:
143
+
144
+ ```toml
145
+ [tool.ruff.lint]
146
+ select = ["D"]
147
+ ignore = [
148
+ "D100", # Missing module docstring
149
+ "D104", # Missing public package docstring
150
+ "D203", # 1 blank line before class docstring (conflicts D211)
151
+ "D213", # Multi-line summary second line (conflicts D212)
152
+ ]
153
+
154
+ [tool.ruff.lint.pydocstyle]
155
+ convention = "google" # or "numpy", "pep257"
156
+ ```
157
+
158
+ ## Formatter Configuration
159
+
160
+ ```toml
161
+ [tool.ruff.format]
162
+ quote-style = "double" # or "single"
163
+ indent-style = "space" # or "tab"
164
+ skip-magic-trailing-comma = false
165
+ line-ending = "auto" # or "lf", "crlf"
166
+ docstring-code-format = true
167
+ docstring-code-line-length = 80
168
+ ```
169
+
170
+ ## Type Checking
171
+
172
+ Ruff does NOT do type checking. Use **ty** (from Astral, the same team behind ruff and uv):
173
+
174
+ ```bash
175
+ # Add ty to dev dependencies
176
+ uv add --group dev ty
177
+
178
+ # Run type checking
179
+ uv run ty check src/
180
+ ```
181
+
182
+ ty is significantly faster than mypy or pyright and integrates well with the modern Python toolchain.
183
+
184
+ ## CI Configuration
185
+
186
+ ```yaml
187
+ # GitHub Actions
188
+ - name: Lint
189
+ run: uv run ruff check --output-format=github .
190
+
191
+ - name: Format check
192
+ run: uv run ruff format --check .
193
+ ```
194
+
195
+ ## Migration from Other Tools
196
+
197
+ ### From flake8
198
+
199
+ Ruff covers most flake8 plugins. Remove:
200
+ - flake8
201
+ - flake8-* plugins
202
+ - .flake8 config file
203
+
204
+ ### From black
205
+
206
+ Remove black and use `ruff format`. Remove:
207
+ - black
208
+ - [tool.black] config
209
+
210
+ ### From isort
211
+
212
+ Ruff includes isort. Remove:
213
+ - isort
214
+ - [tool.isort] config
215
+
216
+ Use `[tool.ruff.lint.isort]` for isort settings.
217
+
218
+ ## Code Modernization
219
+
220
+ Run pyupgrade rules to modernize syntax to your target Python version:
221
+
222
+ ```bash
223
+ uv run ruff check --select=UP --fix . # Auto-fix upgrades
224
+ uv run ruff check --select=UP . # Preview only
225
+ ```
226
+
227
+ Common modernizations include:
228
+ - `typing.Optional[X]` → `X | None`
229
+ - `typing.List[X]` → `list[X]`
230
+ - `super(ClassName, self)` → `super()`
231
+ - Format strings and other syntax upgrades
232
+
233
+ ## Line Length Migration
234
+
235
+ If migrating from 120 to 100 char lines, expect manual fixes.
236
+ For less churn during initial migration, keep existing:
237
+
238
+ ```toml
239
+ line-length = 120 # Match existing; tighten later
240
+ ```
@@ -0,0 +1,255 @@
1
+ # Security Setup
2
+
3
+ Security tooling for Python projects: pre-commit hooks, CI auditing, and dependency scanning.
4
+
5
+ ## Tool Installation
6
+
7
+ Install these tools before running the quick setup commands below.
8
+
9
+ ### prek (pre-commit runner)
10
+
11
+ ```bash
12
+ # Homebrew (recommended)
13
+ brew install prek
14
+
15
+ # Cargo
16
+ cargo install prek
17
+
18
+ # Standalone installer
19
+ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/latest/download/prek-installer.sh | sh
20
+ ```
21
+
22
+ ### Security tools
23
+
24
+ Pre-commit hooks auto-install tools when run via prek. For manual CLI usage:
25
+
26
+ ```bash
27
+ # Homebrew (macOS/Linux)
28
+ brew install actionlint shellcheck
29
+
30
+ # Python tools via uv
31
+ uv tool install detect-secrets
32
+ uv tool install zizmor
33
+ ```
34
+
35
+ Alternative installation methods:
36
+
37
+ - **actionlint**: `go install github.com/rhysd/actionlint/cmd/actionlint@latest`
38
+ - **zizmor**: `cargo install zizmor`
39
+ - **detect-secrets**: `pipx install detect-secrets`
40
+
41
+ ## Quick Setup
42
+
43
+ ```bash
44
+ # 1. Install security hooks
45
+ prek install
46
+
47
+ # 2. Initialize secrets baseline
48
+ detect-secrets scan > .secrets.baseline
49
+
50
+ # 3. Audit existing workflows
51
+ actionlint .github/workflows/
52
+ zizmor .github/workflows/
53
+ ```
54
+
55
+ See [templates/pre-commit-config.yaml](../templates/pre-commit-config.yaml) for a complete hook configuration.
56
+
57
+ ## Tool Matrix
58
+
59
+ | Tool | Runs | Catches |
60
+ |------|------|---------|
61
+ | **shellcheck** | pre-commit | Shell script bugs, quoting issues |
62
+ | **detect-secrets** | pre-commit | Leaked API keys, passwords, tokens |
63
+ | **actionlint** | pre-commit, CI | Workflow syntax errors, invalid refs |
64
+ | **zizmor** | pre-commit, CI | Workflow security issues, excessive permissions |
65
+ | **pip-audit** | CI, manual | Known CVEs in dependencies |
66
+ | **Dependabot** | scheduled | Outdated dependencies with vulnerabilities |
67
+
68
+ ## Pre-commit Hooks
69
+
70
+ These run locally before each commit via prek.
71
+
72
+ ### shellcheck - Shell Script Linting
73
+
74
+ Catches common shell scripting errors: unquoted variables, undefined variables, deprecated syntax.
75
+
76
+ ```yaml
77
+ # In .pre-commit-config.yaml
78
+ - repo: https://github.com/koalaman/shellcheck-precommit
79
+ rev: <latest> # https://github.com/koalaman/shellcheck-precommit/tags
80
+ hooks:
81
+ - id: shellcheck
82
+ args: [--severity=error] # Start strict, adjust if needed
83
+ ```
84
+
85
+ Common findings:
86
+ - `SC2086`: Unquoted variable expansion (word splitting risk)
87
+ - `SC2046`: Unquoted command substitution
88
+ - `SC2155`: Declare and assign separately to avoid masking return values
89
+
90
+ ### detect-secrets - Secret Detection
91
+
92
+ Prevents accidentally committing API keys, passwords, and tokens.
93
+
94
+ ```yaml
95
+ - repo: https://github.com/Yelp/detect-secrets
96
+ rev: <latest> # https://github.com/Yelp/detect-secrets/releases
97
+ hooks:
98
+ - id: detect-secrets
99
+ args: [--baseline, .secrets.baseline]
100
+ ```
101
+
102
+ **First-time setup:**
103
+
104
+ ```bash
105
+ # Generate baseline of existing "secrets" (false positives to ignore)
106
+ detect-secrets scan > .secrets.baseline
107
+
108
+ # Review the baseline - ensure no real secrets
109
+ cat .secrets.baseline
110
+
111
+ # Commit the baseline
112
+ git add .secrets.baseline
113
+ ```
114
+
115
+ **When hook fails:**
116
+
117
+ ```bash
118
+ # View the finding (non-interactive)
119
+ detect-secrets audit --report .secrets.baseline
120
+ ```
121
+
122
+ If false positive: update baseline with `detect-secrets scan --update .secrets.baseline`
123
+ If real secret: remove from code and rotate the credential.
124
+
125
+ ## CI Security
126
+
127
+ These run in GitHub Actions on every push/PR.
128
+
129
+ ### actionlint - Workflow Syntax Validation
130
+
131
+ Catches syntax errors, invalid action references, and type mismatches before they fail in CI.
132
+
133
+ ```yaml
134
+ - repo: https://github.com/rhysd/actionlint
135
+ rev: <latest> # https://github.com/rhysd/actionlint/releases
136
+ hooks:
137
+ - id: actionlint
138
+ ```
139
+
140
+ Run manually:
141
+
142
+ ```bash
143
+ actionlint .github/workflows/
144
+ ```
145
+
146
+ Common findings:
147
+ - Invalid event triggers
148
+ - Undefined workflow inputs
149
+ - Shell syntax errors in `run:` blocks
150
+ - Invalid action version references
151
+
152
+ ### zizmor - Workflow Security Audit
153
+
154
+ Finds security issues in GitHub Actions workflows: excessive permissions, injection risks, untrusted inputs.
155
+
156
+ ```yaml
157
+ - repo: https://github.com/zizmorcore/zizmor-pre-commit
158
+ rev: <latest> # https://github.com/zizmorcore/zizmor-pre-commit/releases
159
+ hooks:
160
+ - id: zizmor
161
+ args: [--persona=regular, --min-severity=medium, --min-confidence=medium]
162
+ ```
163
+
164
+ Run manually:
165
+
166
+ ```bash
167
+ zizmor .github/workflows/
168
+ ```
169
+
170
+ **Fixing `excessive-permissions`:**
171
+
172
+ By default, workflows get `write` access to everything. Lock down with explicit permissions:
173
+
174
+ ```yaml
175
+ # Read-only workflows (lint, test, audit)
176
+ permissions:
177
+ contents: read
178
+
179
+ # Workflows that push or create releases
180
+ permissions:
181
+ contents: write
182
+
183
+ # Workflows that comment on PRs
184
+ permissions:
185
+ contents: read
186
+ pull-requests: write
187
+ ```
188
+
189
+ Common findings:
190
+ - `excessive-permissions`: No `permissions:` block
191
+ - `template-injection`: Using `${{ github.event.* }}` unsafely
192
+ - `unpinned-action`: Actions not pinned to SHA
193
+ - `dangerous-triggers`: `pull_request_target` with checkout
194
+
195
+ ## Dependency Security
196
+
197
+ ### pip-audit - Vulnerability Scanning
198
+
199
+ Checks installed packages against the Python Advisory Database (PyPA) for known CVEs.
200
+
201
+ **Setup:**
202
+
203
+ ```toml
204
+ # pyproject.toml
205
+ [dependency-groups]
206
+ audit = ["pip-audit"]
207
+ ```
208
+
209
+ **Usage:**
210
+
211
+ ```bash
212
+ # Audit current environment
213
+ uv run pip-audit
214
+
215
+ # Audit without installing (faster for CI)
216
+ uv run pip-audit .
217
+
218
+ # Fix automatically (upgrades vulnerable packages)
219
+ uv run pip-audit --fix
220
+ ```
221
+
222
+ **In CI:**
223
+
224
+ ```yaml
225
+ - name: Security audit
226
+ run: uv run pip-audit .
227
+ ```
228
+
229
+ **When vulnerabilities found:**
230
+
231
+ 1. Check if the CVE affects your usage (many are in unused code paths)
232
+ 2. Update the package: `uv add <package>@latest`
233
+ 3. If no fix available: evaluate risk, consider alternatives, or add to ignore list
234
+
235
+ ### Dependabot - Automated Updates
236
+
237
+ Automatically creates PRs for outdated dependencies.
238
+
239
+ Copy [templates/dependabot.yml](../templates/dependabot.yml) to `.github/dependabot.yml`.
240
+
241
+ **How pip-audit and Dependabot work together:**
242
+
243
+ | Tool | Trigger | Scope |
244
+ |------|---------|-------|
245
+ | pip-audit | Every CI run | Known CVEs in current deps |
246
+ | Dependabot | Weekly schedule | All outdated deps, security + non-security |
247
+
248
+ - **pip-audit** catches: "You have a vulnerable version right now"
249
+ - **Dependabot** prevents: "You'll fall behind and accumulate vulnerabilities"
250
+
251
+ The 7-day cooldown protects against attackers publishing malicious updates and hoping for quick adoption before detection.
252
+
253
+ See [dependabot.md](./dependabot.md) for advanced configuration.
254
+
255
+ See [prek.md](./prek.md) for complete pre-commit hook configuration including security hooks.