@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,259 @@
1
+ # PEP 723: Inline Script Metadata
2
+
3
+ PEP 723 allows embedding dependency metadata directly in Python scripts, eliminating the need for separate `requirements.txt` or `pyproject.toml` files for simple scripts.
4
+
5
+ ## When to Use PEP 723
6
+
7
+ **Use for:**
8
+ - Single-file scripts with external dependencies
9
+ - Quick automation scripts
10
+ - Utility scripts shared between projects
11
+ - Scripts that need to be self-contained
12
+
13
+ **Don't use for:**
14
+ - Multi-file projects (use `pyproject.toml`)
15
+ - Reusable packages/libraries
16
+ - Projects requiring complex configuration
17
+
18
+ ## Basic Syntax
19
+
20
+ The metadata block uses TOML format embedded in a special comment:
21
+
22
+ ```python
23
+ #!/usr/bin/env -S uv run --script
24
+ # /// script
25
+ # requires-python = ">=3.11"
26
+ # dependencies = [
27
+ # "requests",
28
+ # "rich",
29
+ # ]
30
+ # ///
31
+
32
+ import requests
33
+ from rich import print
34
+
35
+ response = requests.get("https://api.example.com/data")
36
+ print(response.json())
37
+ ```
38
+
39
+ ## Running Scripts
40
+
41
+ ```bash
42
+ # With uv (recommended)
43
+ uv run script.py
44
+
45
+ # Script handles its own dependencies automatically
46
+ ./script.py # If shebang is set
47
+ ```
48
+
49
+ ## Metadata Fields
50
+
51
+ ### Required Python Version
52
+
53
+ ```python
54
+ # /// script
55
+ # requires-python = ">=3.11"
56
+ # ///
57
+ ```
58
+
59
+ ### Dependencies
60
+
61
+ ```python
62
+ # /// script
63
+ # dependencies = [
64
+ # "requests",
65
+ # "click",
66
+ # "rich",
67
+ # ]
68
+ # ///
69
+ ```
70
+
71
+ ### Private Package Index
72
+
73
+ ```python
74
+ # /// script
75
+ # dependencies = ["httpx"]
76
+ #
77
+ # [tool.uv]
78
+ # extra-index-url = ["https://pypi.company.com/simple/"]
79
+ # ///
80
+ ```
81
+
82
+ ## Complete Example
83
+
84
+ ```python
85
+ #!/usr/bin/env -S uv run --script
86
+ # /// script
87
+ # requires-python = ">=3.11"
88
+ # dependencies = [
89
+ # "httpx",
90
+ # "rich",
91
+ # "typer",
92
+ # ]
93
+ # ///
94
+
95
+ """Fetch and display API data with nice formatting."""
96
+
97
+ import httpx
98
+ import typer
99
+ from rich.console import Console
100
+ from rich.table import Table
101
+
102
+ console = Console()
103
+ app = typer.Typer()
104
+
105
+
106
+ @app.command()
107
+ def fetch(url: str, format: str = "table"):
108
+ """Fetch data from URL and display it."""
109
+ with httpx.Client() as client:
110
+ response = client.get(url)
111
+ response.raise_for_status()
112
+ data = response.json()
113
+
114
+ if format == "table" and isinstance(data, list):
115
+ table = Table()
116
+ if data:
117
+ for key in data[0].keys():
118
+ table.add_column(key)
119
+ for item in data:
120
+ table.add_row(*[str(v) for v in item.values()])
121
+ console.print(table)
122
+ else:
123
+ console.print_json(data=data)
124
+
125
+
126
+ if __name__ == "__main__":
127
+ app()
128
+ ```
129
+
130
+ ## Creating Scripts with uv
131
+
132
+ ```bash
133
+ # Create new script with metadata
134
+ uv init --script myscript.py
135
+
136
+ # Add dependency to existing script
137
+ uv add --script myscript.py requests
138
+
139
+ # Remove dependency from script
140
+ uv remove --script myscript.py requests
141
+ ```
142
+
143
+ ## Shebang Options
144
+
145
+ ### Basic (requires uv in PATH)
146
+
147
+ ```python
148
+ #!/usr/bin/env -S uv run --script
149
+ ```
150
+
151
+ ### With specific Python version
152
+
153
+ ```python
154
+ #!/usr/bin/env -S uv run --python 3.12 --script
155
+ ```
156
+
157
+ ### Quiet mode (suppress uv output)
158
+
159
+ ```python
160
+ #!/usr/bin/env -S uv run --quiet --script
161
+ ```
162
+
163
+ ## Examples by Use Case
164
+
165
+ ### Data Processing Script
166
+
167
+ ```python
168
+ #!/usr/bin/env -S uv run --script
169
+ # /// script
170
+ # requires-python = ">=3.11"
171
+ # dependencies = ["pandas", "openpyxl"]
172
+ # ///
173
+
174
+ import pandas as pd
175
+ import sys
176
+
177
+ df = pd.read_excel(sys.argv[1])
178
+ print(df.describe())
179
+ ```
180
+
181
+ ### Web Scraping Script
182
+
183
+ ```python
184
+ #!/usr/bin/env -S uv run --script
185
+ # /// script
186
+ # requires-python = ">=3.11"
187
+ # dependencies = ["httpx", "beautifulsoup4", "lxml"]
188
+ # ///
189
+
190
+ import httpx
191
+ from bs4 import BeautifulSoup
192
+
193
+ response = httpx.get("https://example.com")
194
+ soup = BeautifulSoup(response.text, "lxml")
195
+ print(soup.title.string)
196
+ ```
197
+
198
+ ### CLI Tool Script
199
+
200
+ ```python
201
+ #!/usr/bin/env -S uv run --script
202
+ # /// script
203
+ # requires-python = ">=3.11"
204
+ # dependencies = ["typer", "rich"]
205
+ # ///
206
+
207
+ import typer
208
+ from rich import print
209
+
210
+ app = typer.Typer()
211
+
212
+ @app.command()
213
+ def greet(name: str):
214
+ print(f"[green]Hello, {name}![/green]")
215
+
216
+ if __name__ == "__main__":
217
+ app()
218
+ ```
219
+
220
+ ### Async Script
221
+
222
+ ```python
223
+ #!/usr/bin/env -S uv run --script
224
+ # /// script
225
+ # requires-python = ">=3.11"
226
+ # dependencies = ["httpx"]
227
+ # ///
228
+
229
+ import asyncio
230
+ import httpx
231
+
232
+ async def main():
233
+ async with httpx.AsyncClient() as client:
234
+ urls = ["https://api1.example.com", "https://api2.example.com"]
235
+ tasks = [client.get(url) for url in urls]
236
+ responses = await asyncio.gather(*tasks)
237
+ for r in responses:
238
+ print(r.status_code)
239
+
240
+ asyncio.run(main())
241
+ ```
242
+
243
+ ## Best Practices
244
+
245
+ 1. **Always specify `requires-python`** - Ensures compatibility
246
+ 2. **Pin major versions for Python** - Use `>=3.11` not `==3.11`
247
+ 3. **Omit version constraints for dependencies** - Use `uv add --script` to add dependencies; let uv select versions
248
+ 4. **Keep scripts focused** - One script, one purpose
249
+ 5. **Add docstring** - Document what the script does
250
+ 6. **Use type hints** - Improves readability and catches errors
251
+
252
+ ## Limitations
253
+
254
+ - No support for dependency groups
255
+ - No support for editable installs
256
+ - No support for local dependencies (use relative imports)
257
+ - No lockfile (versions may vary between runs)
258
+
259
+ For projects needing these features, use a full `pyproject.toml` setup instead.
@@ -0,0 +1,211 @@
1
+ # prek: Fast Pre-commit Hooks
2
+
3
+ [prek](https://github.com/j178/prek) is a fast, Rust-native drop-in replacement for pre-commit. It uses the same `.pre-commit-config.yaml` format and is fully compatible with existing configurations.
4
+
5
+ ## Why prek over pre-commit?
6
+
7
+ | Feature | prek | pre-commit |
8
+ |---------|------|------------|
9
+ | Speed | ~7x faster hook installation | Slower |
10
+ | Dependencies | Single binary, no runtime needed | Requires Python |
11
+ | Disk usage | Shared toolchains between hooks | Isolated environments |
12
+ | Parallelism | Parallel repo cloning and hook execution | Sequential |
13
+ | Python management | Uses uv automatically | Manual Python setup |
14
+ | Monorepo support | Built-in workspace mode | Not supported |
15
+
16
+ **Already using prek:** CPython, Apache Airflow, FastAPI, Ruff, Home Assistant, and [many more](https://github.com/j178/prek#who-is-using-prek).
17
+
18
+ ## Installation
19
+
20
+ See [security-setup.md](./security-setup.md#tool-installation) for installation options.
21
+
22
+ ## Quick Start
23
+
24
+ ### For Existing pre-commit Users
25
+
26
+ prek is fully compatible with `.pre-commit-config.yaml`. Just replace commands:
27
+
28
+ ```bash
29
+ # Instead of: pre-commit install
30
+ prek install
31
+
32
+ # Instead of: pre-commit run --all-files
33
+ prek run --all-files
34
+
35
+ # Instead of: pre-commit autoupdate
36
+ prek auto-update
37
+ ```
38
+
39
+ ### New Setup
40
+
41
+ 1. Create `.pre-commit-config.yaml`:
42
+
43
+ ```yaml
44
+ repos:
45
+ - repo: https://github.com/astral-sh/ruff-pre-commit
46
+ rev: <latest> # https://github.com/astral-sh/ruff-pre-commit/releases
47
+ hooks:
48
+ - id: ruff
49
+ args: [--fix]
50
+ - id: ruff-format
51
+ ```
52
+
53
+ 2. Install and run:
54
+
55
+ ```bash
56
+ # Install git hooks
57
+ prek install
58
+
59
+ # Run manually on all files
60
+ prek run --all-files
61
+
62
+ # Run specific hook
63
+ prek run ruff
64
+ ```
65
+
66
+ ## Configuration
67
+
68
+ For a complete, copy-paste-ready configuration, see [templates/pre-commit-config.yaml](../templates/pre-commit-config.yaml).
69
+
70
+ ### Recommended `.pre-commit-config.yaml`
71
+
72
+ > **Note:** Versions shown as `<latest>` are placeholders. Always check the linked releases for current stable versions before use.
73
+
74
+ ```yaml
75
+ # See https://pre-commit.com for more information
76
+ default_language_version:
77
+ python: python3.12
78
+
79
+ repos:
80
+ # Ruff - linting and formatting
81
+ - repo: https://github.com/astral-sh/ruff-pre-commit
82
+ rev: <latest> # https://github.com/astral-sh/ruff-pre-commit/releases
83
+ hooks:
84
+ - id: ruff
85
+ args: [--fix]
86
+ - id: ruff-format
87
+
88
+ # General file checks (prek builtin - faster, no external deps)
89
+ - repo: builtin
90
+ hooks:
91
+ - id: trailing-whitespace
92
+ - id: end-of-file-fixer
93
+ - id: check-yaml
94
+ - id: check-merge-conflict
95
+
96
+ # Security hooks - see security-setup.md for detailed guidance
97
+ # Shell script linting
98
+ - repo: https://github.com/koalaman/shellcheck-precommit
99
+ rev: <latest> # https://github.com/koalaman/shellcheck-precommit/tags
100
+ hooks:
101
+ - id: shellcheck
102
+ args: [--severity=error]
103
+
104
+ # Secret detection
105
+ - repo: https://github.com/Yelp/detect-secrets
106
+ rev: <latest> # https://github.com/Yelp/detect-secrets/releases
107
+ hooks:
108
+ - id: detect-secrets
109
+ args: [--baseline, .secrets.baseline]
110
+
111
+ # GitHub Actions linting
112
+ - repo: https://github.com/rhysd/actionlint
113
+ rev: <latest> # https://github.com/rhysd/actionlint/releases
114
+ hooks:
115
+ - id: actionlint
116
+
117
+ # GitHub Actions security audit
118
+ - repo: https://github.com/zizmorcore/zizmor-pre-commit
119
+ rev: <latest> # https://github.com/zizmorcore/zizmor-pre-commit/releases
120
+ hooks:
121
+ - id: zizmor
122
+ args: [--persona=regular, --min-severity=medium, --min-confidence=medium]
123
+ ```
124
+
125
+ See [security-setup.md](./security-setup.md) for detailed guidance on each security hook.
126
+
127
+ ### Using Built-in Hooks
128
+
129
+ prek includes Rust-native implementations of common hooks for extra speed:
130
+
131
+ ```yaml
132
+ repos:
133
+ - repo: builtin
134
+ hooks:
135
+ - id: trailing-whitespace
136
+ - id: end-of-file-fixer
137
+ - id: check-yaml
138
+ - id: check-json
139
+ - id: check-toml
140
+ ```
141
+
142
+ ## Commands
143
+
144
+ | Command | Description |
145
+ |---------|-------------|
146
+ | `prek install` | Install git hooks |
147
+ | `prek uninstall` | Remove git hooks |
148
+ | `prek run` | Run hooks on staged files |
149
+ | `prek run --all-files` | Run on all files |
150
+ | `prek run --last-commit` | Run on last commit's files |
151
+ | `prek run HOOK [HOOK...]` | Run specific hook(s) |
152
+ | `prek run -d src/` | Run on files in directory |
153
+ | `prek auto-update` | Update hook versions |
154
+ | `prek list` | List configured hooks |
155
+ | `prek clean` | Remove cached environments |
156
+
157
+ ## CI Configuration
158
+
159
+ ### GitHub Actions
160
+
161
+ ```yaml
162
+ name: Pre-commit
163
+ on: [push, pull_request]
164
+
165
+ jobs:
166
+ prek:
167
+ runs-on: ubuntu-latest
168
+ steps:
169
+ - uses: actions/checkout@<sha> # <latest> https://github.com/actions/checkout/releases
170
+ - uses: j178/prek-action@<sha> # <latest> https://github.com/j178/prek-action/releases
171
+ ```
172
+
173
+ Or manually:
174
+
175
+ ```yaml
176
+ - name: Install prek
177
+ run: uv tool install prek
178
+
179
+ - name: Run hooks
180
+ run: prek run --all-files
181
+ ```
182
+
183
+ ## Makefile Integration
184
+
185
+ ```makefile
186
+ .PHONY: hooks hooks-install
187
+
188
+ hooks:
189
+ prek run --all-files
190
+
191
+ hooks-install:
192
+ prek install
193
+ ```
194
+
195
+ ## Migration from pre-commit
196
+
197
+ 1. Install prek: `uv tool install prek`
198
+ 2. Remove pre-commit: `pip uninstall pre-commit` or `uv tool uninstall pre-commit`
199
+ 3. Re-install hooks: `prek install`
200
+ 4. (Optional) Clean old environments: `rm -rf ~/.cache/pre-commit`
201
+
202
+ Your existing `.pre-commit-config.yaml` works unchanged.
203
+
204
+ ## Best Practices
205
+
206
+ 1. **Use `prek run --all-files` in CI** - Ensures all files are checked, not just changed ones
207
+ 2. **Pin hook versions** - Use specific `rev` values, not branches
208
+ 3. **Use `--cooldown-days` for auto-update** - Mitigates supply chain attacks: `prek auto-update --cooldown-days 7`
209
+ 4. **Prefer built-in hooks** - Use `repo: builtin` for common checks (faster, offline)
210
+ 5. **Run hooks before commit** - `prek install` sets this up automatically
211
+ 6. **Initialize detect-secrets baseline** - Run `detect-secrets scan > .secrets.baseline` before first commit
@@ -0,0 +1,254 @@
1
+ # pyproject.toml Configuration Reference
2
+
3
+ Complete reference for configuring `pyproject.toml` for modern Python projects.
4
+
5
+ **Important**: Always use `uv add` and `uv remove` to manage dependencies. Do not edit the `dependencies` or `dependency-groups` sections directly.
6
+
7
+ ## Complete Example
8
+
9
+ ```toml
10
+ [project]
11
+ name = "myproject"
12
+ version = "0.1.0"
13
+ description = "A modern Python project"
14
+ readme = "README.md"
15
+ license = "MIT"
16
+ requires-python = ">=3.11"
17
+ authors = [
18
+ { name = "Your Name", email = "you@example.com" }
19
+ ]
20
+ classifiers = [
21
+ "Development Status :: 4 - Beta",
22
+ "Programming Language :: Python :: 3",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
+ "Programming Language :: Python :: 3.13",
26
+ ]
27
+ dependencies = [
28
+ "requests",
29
+ "rich",
30
+ ]
31
+
32
+ [project.optional-dependencies]
33
+ # Use for optional features users can install
34
+ cli = ["typer"]
35
+
36
+ [project.scripts]
37
+ myproject = "myproject.cli:main"
38
+
39
+ [project.urls]
40
+ Homepage = "https://github.com/org/myproject"
41
+ Documentation = "https://myproject.readthedocs.io"
42
+ Repository = "https://github.com/org/myproject"
43
+
44
+ [build-system]
45
+ requires = ["uv_build>=0.9,<1"] # Use latest 0.x; check https://pypi.org/project/uv-build/
46
+ build-backend = "uv_build"
47
+
48
+ [dependency-groups]
49
+ dev = ["ruff", "ty"]
50
+ test = ["pytest", "pytest-cov", "hypothesis"]
51
+ docs = ["sphinx", "myst-parser"]
52
+
53
+ [tool.uv]
54
+ default-groups = ["dev", "test"]
55
+
56
+ [tool.ruff]
57
+ line-length = 100
58
+ target-version = "py311"
59
+ src = ["src"]
60
+
61
+ [tool.ruff.lint]
62
+ select = ["ALL"]
63
+ ignore = [
64
+ "D", # pydocstyle (enable selectively)
65
+ "COM812", # trailing comma (conflicts with formatter)
66
+ "ISC001", # implicit string concat (conflicts with formatter)
67
+ ]
68
+
69
+ [tool.ruff.lint.per-file-ignores]
70
+ "tests/**/*.py" = [
71
+ "S101", # assert allowed in tests
72
+ "PLR2004", # magic values allowed in tests
73
+ "ANN", # annotations optional in tests
74
+ ]
75
+
76
+ [tool.ruff.format]
77
+ quote-style = "double"
78
+ indent-style = "space"
79
+ docstring-code-format = true
80
+
81
+ [tool.pytest]
82
+ testpaths = ["tests"]
83
+ pythonpath = ["src"]
84
+ addopts = [
85
+ "--cov=myproject",
86
+ "--cov-report=term-missing",
87
+ "--cov-fail-under=80",
88
+ ]
89
+
90
+ [tool.coverage.run]
91
+ branch = true
92
+ source = ["src/myproject"]
93
+
94
+ [tool.coverage.report]
95
+ exclude_lines = [
96
+ "pragma: no cover",
97
+ "if TYPE_CHECKING:",
98
+ "if __name__ == .__main__.:",
99
+ ]
100
+ ```
101
+
102
+ ## Section Reference
103
+
104
+ ### [project]
105
+
106
+ Core project metadata following PEP 621.
107
+
108
+ | Field | Required | Description |
109
+ |-------|----------|-------------|
110
+ | `name` | Yes | Package name (lowercase, hyphens) |
111
+ | `version` | Yes | Semantic version |
112
+ | `description` | No | One-line description |
113
+ | `readme` | No | Path to README file |
114
+ | `license` | No | SPDX license identifier |
115
+ | `requires-python` | Recommended | Python version constraint |
116
+ | `authors` | No | List of author dicts |
117
+ | `dependencies` | No | Runtime dependencies |
118
+
119
+ ### [project.optional-dependencies]
120
+
121
+ **Rarely needed.** Only use for optional *runtime* features that end users install:
122
+
123
+ ```toml
124
+ [project.optional-dependencies]
125
+ # User installs with: uv add myproject[postgres]
126
+ postgres = ["psycopg2"]
127
+ ```
128
+
129
+ **Do NOT use for dev tools**—use `[dependency-groups]` instead.
130
+
131
+ ### [project.scripts]
132
+
133
+ Console entry points:
134
+
135
+ ```toml
136
+ [project.scripts]
137
+ myproject = "myproject.cli:main"
138
+ myproject-serve = "myproject.server:run"
139
+ ```
140
+
141
+ ### [build-system]
142
+
143
+ Build backend configuration. Use `uv_build` for most projects:
144
+
145
+ ```toml
146
+ [build-system]
147
+ requires = ["uv_build>=0.9,<1"] # Use latest 0.x; check https://pypi.org/project/uv-build/
148
+ build-backend = "uv_build"
149
+ ```
150
+
151
+ `uv_build` is simpler and sufficient for most use cases. Use static versioning in `[project] version` rather than VCS-aware dynamic versioning.
152
+
153
+ For flat layout (no `src/` directory), configure the module root:
154
+
155
+ ```toml
156
+ [tool.uv.build-backend]
157
+ module-root = ""
158
+ ```
159
+
160
+ > **Note:** These tools evolve rapidly. Prefer `>=X.Y,<X+1` constraints to automatically get newer releases within the same major version.
161
+
162
+ ### [dependency-groups]
163
+
164
+ Development dependencies (PEP 735). Unlike optional-dependencies, these are NOT installed by users:
165
+
166
+ ```toml
167
+ [dependency-groups]
168
+ dev = [{include-group = "lint"}, {include-group = "test"}, {include-group = "audit"}]
169
+ lint = ["ruff", "ty"]
170
+ test = ["pytest", "pytest-cov"]
171
+ audit = ["pip-audit"]
172
+ docs = ["sphinx", "myst-parser"]
173
+ ```
174
+
175
+ Install with: `uv sync --group dev --group test`
176
+
177
+ ### [tool.uv]
178
+
179
+ uv-specific configuration:
180
+
181
+ ```toml
182
+ [tool.uv]
183
+ # Default groups to install with `uv sync`
184
+ default-groups = ["dev", "test"]
185
+
186
+ # Python version management
187
+ python-preference = "managed"
188
+ ```
189
+
190
+ ## Version Specifiers
191
+
192
+ | Specifier | Meaning |
193
+ |-----------|---------|
194
+ | `>=1.0` | At least version 1.0 |
195
+ | `>=1.0,<2.0` | Version 1.x only |
196
+ | `~=1.4` | Compatible release (>=1.4, <2.0) |
197
+ | `==1.4.*` | Any 1.4.x version |
198
+
199
+ ## uv.lock Handling
200
+
201
+ | Project Type | uv.lock in Git? | Why |
202
+ |--------------|-----------------|-----|
203
+ | Application | ✅ Commit | Reproducible deploys |
204
+ | Library | ❌ .gitignore | Users resolve their own deps |
205
+
206
+ ## Common Patterns
207
+
208
+ ### Library Package
209
+
210
+ ```toml
211
+ [project]
212
+ dependencies = [] # Minimal runtime deps
213
+
214
+ [project.optional-dependencies]
215
+ # Optional runtime features (user installs with mylib[async])
216
+ async = ["httpx"]
217
+
218
+ [dependency-groups]
219
+ dev = ["ruff", "ty"]
220
+ test = ["pytest", "pytest-cov"]
221
+ ```
222
+
223
+ ### Application Package
224
+
225
+ ```toml
226
+ [project]
227
+ dependencies = [
228
+ "fastapi",
229
+ "uvicorn",
230
+ "sqlalchemy",
231
+ ]
232
+
233
+ [project.scripts]
234
+ myapp = "myapp.main:run"
235
+
236
+ [dependency-groups]
237
+ dev = ["ruff", "ty", "pytest"]
238
+ ```
239
+
240
+ ### CLI Tool
241
+
242
+ ```toml
243
+ [project]
244
+ dependencies = [
245
+ "typer",
246
+ "rich",
247
+ ]
248
+
249
+ [project.scripts]
250
+ mytool = "mytool.cli:app"
251
+
252
+ [dependency-groups]
253
+ dev = ["ruff", "ty", "pytest"]
254
+ ```