@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,408 @@
1
+ # Bug Detection Patterns
2
+
3
+ Anti-patterns to detect when analyzing commits for bug introduction.
4
+
5
+ ## Overview
6
+
7
+ When reviewing fix commits, look for changes that may introduce new bugs or security vulnerabilities. These patterns represent common ways that "fixes" can make things worse.
8
+
9
+ ---
10
+
11
+ ## Security Anti-Patterns
12
+
13
+ ### Access Control Weakening
14
+
15
+ **Pattern:** Removal or weakening of access restrictions
16
+
17
+ **Detection:**
18
+ ```bash
19
+ # Search for removed access modifiers
20
+ git diff <source>..<target> | grep "^-" | grep -E "(onlyOwner|onlyAdmin|require\(msg\.sender|auth|access)"
21
+
22
+ # Search for visibility changes
23
+ git diff <source>..<target> | grep -E "^[-+].*(public|external|internal|private)"
24
+ ```
25
+
26
+ **Examples:**
27
+ ```diff
28
+ - function withdraw() external onlyOwner {
29
+ + function withdraw() external {
30
+ ```
31
+
32
+ ```diff
33
+ - require(msg.sender == owner, "Not owner");
34
+ + // Removed for gas optimization
35
+ ```
36
+
37
+ **Risk:** Privilege escalation, unauthorized access
38
+
39
+ ---
40
+
41
+ ### Validation Removal
42
+
43
+ **Pattern:** Removal of input validation or precondition checks
44
+
45
+ **Detection:**
46
+ ```bash
47
+ # Search for removed require/assert statements
48
+ git diff <source>..<target> | grep "^-" | grep -E "(require|assert|revert|throw)"
49
+
50
+ # Search for removed if-checks
51
+ git diff <source>..<target> | grep "^-" | grep -E "if\s*\("
52
+ ```
53
+
54
+ **Examples:**
55
+ ```diff
56
+ - require(amount > 0, "Zero amount");
57
+ - require(amount <= balance, "Insufficient balance");
58
+ balance -= amount;
59
+ ```
60
+
61
+ ```diff
62
+ - if (input == null) throw new IllegalArgumentException();
63
+ process(input);
64
+ ```
65
+
66
+ **Risk:** Input bypass, unexpected states, crashes
67
+
68
+ ---
69
+
70
+ ### Error Handling Reduction
71
+
72
+ **Pattern:** Removal or weakening of error handling
73
+
74
+ **Detection:**
75
+ ```bash
76
+ # Search for removed try/catch
77
+ git diff <source>..<target> | grep "^-" | grep -E "(try|catch|except|finally)"
78
+
79
+ # Search for removed error checks
80
+ git diff <source>..<target> | grep "^-" | grep -E "(error|Error|err|Err)"
81
+ ```
82
+
83
+ **Examples:**
84
+ ```diff
85
+ - try {
86
+ result = riskyOperation();
87
+ - } catch (Exception e) {
88
+ - logger.error("Operation failed", e);
89
+ - return fallbackValue;
90
+ - }
91
+ + result = riskyOperation();
92
+ ```
93
+
94
+ **Risk:** Silent failures, unhandled exceptions, crashes
95
+
96
+ ---
97
+
98
+ ### External Call Reordering
99
+
100
+ **Pattern:** State updates moved after external calls (reentrancy risk)
101
+
102
+ **Detection:**
103
+ ```bash
104
+ # Search for external calls followed by state changes
105
+ git diff <source>..<target> | grep -A10 "\.call\|\.transfer\|\.send"
106
+ ```
107
+
108
+ **Examples:**
109
+ ```diff
110
+ - balance[msg.sender] = 0;
111
+ - (bool success,) = msg.sender.call{value: amount}("");
112
+ + (bool success,) = msg.sender.call{value: amount}("");
113
+ + balance[msg.sender] = 0; // State change after external call!
114
+ ```
115
+
116
+ **Risk:** Reentrancy attacks
117
+
118
+ ---
119
+
120
+ ### Integer Operation Changes
121
+
122
+ **Pattern:** Removal of overflow/underflow protection
123
+
124
+ **Detection:**
125
+ ```bash
126
+ # Search for SafeMath removal
127
+ git diff <source>..<target> | grep "^-" | grep -E "(SafeMath|safeAdd|safeSub|safeMul|safeDiv)"
128
+
129
+ # Search for unchecked blocks
130
+ git diff <source>..<target> | grep -E "unchecked\s*\{"
131
+ ```
132
+
133
+ **Examples:**
134
+ ```diff
135
+ - using SafeMath for uint256;
136
+ - balance = balance.sub(amount);
137
+ + balance = balance - amount; // No overflow protection
138
+ ```
139
+
140
+ ```diff
141
+ - total = total + amount; // Solidity 0.8 has built-in checks
142
+ + unchecked {
143
+ + total = total + amount; // Disabled overflow check
144
+ + }
145
+ ```
146
+
147
+ **Risk:** Integer overflow/underflow
148
+
149
+ ---
150
+
151
+ ### Cryptographic Weakening
152
+
153
+ **Pattern:** Changes to cryptographic operations that reduce security
154
+
155
+ **Detection:**
156
+ ```bash
157
+ # Search for crypto-related changes
158
+ git diff <source>..<target> | grep -E "(hash|Hash|encrypt|decrypt|sign|verify|random|nonce|salt|key|Key)"
159
+
160
+ # Search for algorithm names
161
+ git diff <source>..<target> | grep -E "(SHA|MD5|AES|RSA|ECDSA|keccak)"
162
+ ```
163
+
164
+ **Examples:**
165
+ ```diff
166
+ - bytes32 hash = keccak256(abi.encodePacked(nonce, data));
167
+ + bytes32 hash = keccak256(abi.encodePacked(data)); // Removed nonce!
168
+ ```
169
+
170
+ ```diff
171
+ - return crypto.createHash('sha256').update(data).digest();
172
+ + return crypto.createHash('md5').update(data).digest(); // Weak hash!
173
+ ```
174
+
175
+ **Risk:** Hash collisions, signature bypass, predictability
176
+
177
+ ---
178
+
179
+ ### Memory Safety Issues
180
+
181
+ **Pattern:** Changes that introduce memory safety bugs
182
+
183
+ **Detection:**
184
+ ```bash
185
+ # Search for buffer/array operations
186
+ git diff <source>..<target> | grep -E "(malloc|free|memcpy|strcpy|buffer|array\[)"
187
+
188
+ # Search for bounds checks
189
+ git diff <source>..<target> | grep "^-" | grep -E "(length|size|bounds|index)"
190
+ ```
191
+
192
+ **Examples:**
193
+ ```diff
194
+ - if (index < array.length) {
195
+ return array[index];
196
+ - }
197
+ ```
198
+
199
+ ```diff
200
+ - strncpy(dest, src, sizeof(dest) - 1);
201
+ + strcpy(dest, src); // No bounds check!
202
+ ```
203
+
204
+ **Risk:** Buffer overflow, use-after-free, out-of-bounds access
205
+
206
+ ---
207
+
208
+ ### Concurrency Issues
209
+
210
+ **Pattern:** Removal of synchronization or race condition introduction
211
+
212
+ **Detection:**
213
+ ```bash
214
+ # Search for lock/synchronization changes
215
+ git diff <source>..<target> | grep -E "(lock|Lock|mutex|synchronized|atomic|volatile)"
216
+
217
+ # Search for removed synchronization
218
+ git diff <source>..<target> | grep "^-" | grep -E "(lock|synchronized)"
219
+ ```
220
+
221
+ **Examples:**
222
+ ```diff
223
+ - synchronized (this) {
224
+ counter++;
225
+ - }
226
+ + counter++; // No synchronization!
227
+ ```
228
+
229
+ **Risk:** Race conditions, data corruption
230
+
231
+ ---
232
+
233
+ ## General Bug Patterns
234
+
235
+ ### Logic Inversion
236
+
237
+ **Pattern:** Boolean logic changed incorrectly
238
+
239
+ **Detection:**
240
+ ```bash
241
+ # Search for condition changes
242
+ git diff <source>..<target> | grep -E "^[-+].*if\s*\(|^[-+].*\?|^[-+].*&&|^[-+].*\|\|"
243
+ ```
244
+
245
+ **Examples:**
246
+ ```diff
247
+ - if (isValid) {
248
+ + if (!isValid) {
249
+ process();
250
+ }
251
+ ```
252
+
253
+ ```diff
254
+ - return a && b;
255
+ + return a || b;
256
+ ```
257
+
258
+ ---
259
+
260
+ ### Off-by-One Errors
261
+
262
+ **Pattern:** Boundary conditions changed incorrectly
263
+
264
+ **Detection:**
265
+ ```bash
266
+ # Search for comparison operators
267
+ git diff <source>..<target> | grep -E "^[-+].*(<=|>=|<|>|==)"
268
+ ```
269
+
270
+ **Examples:**
271
+ ```diff
272
+ - for (i = 0; i < length; i++)
273
+ + for (i = 0; i <= length; i++) // Off-by-one!
274
+ ```
275
+
276
+ ```diff
277
+ - if (index < array.length)
278
+ + if (index <= array.length) // Off-by-one!
279
+ ```
280
+
281
+ ---
282
+
283
+ ### Null/Undefined Handling
284
+
285
+ **Pattern:** Removal of null checks
286
+
287
+ **Detection:**
288
+ ```bash
289
+ # Search for null checks
290
+ git diff <source>..<target> | grep "^-" | grep -E "(null|NULL|nil|None|undefined)"
291
+ ```
292
+
293
+ **Examples:**
294
+ ```diff
295
+ - if (obj == null) return defaultValue;
296
+ return obj.getValue(); // Potential NPE
297
+ ```
298
+
299
+ ---
300
+
301
+ ### Resource Leaks
302
+
303
+ **Pattern:** Removal of cleanup code
304
+
305
+ **Detection:**
306
+ ```bash
307
+ # Search for resource management
308
+ git diff <source>..<target> | grep "^-" | grep -E "(close|Close|dispose|Dispose|free|Free|release|Release)"
309
+ ```
310
+
311
+ **Examples:**
312
+ ```diff
313
+ file = open(path)
314
+ - try:
315
+ data = file.read()
316
+ - finally:
317
+ - file.close()
318
+ ```
319
+
320
+ ---
321
+
322
+ ## Analysis Workflow
323
+
324
+ ### Step 1: Get the Diff
325
+
326
+ ```bash
327
+ git diff <source>..<target> > changes.diff
328
+ ```
329
+
330
+ ### Step 2: Scan for Anti-Patterns
331
+
332
+ Run detection commands for each pattern category:
333
+
334
+ ```bash
335
+ # Security patterns
336
+ grep "^-" changes.diff | grep -E "(require|assert|onlyOwner|auth)"
337
+ grep "^-" changes.diff | grep -E "(try|catch|except)"
338
+
339
+ # Logic patterns
340
+ grep -E "^[-+].*if\s*\(" changes.diff
341
+ grep -E "^[-+].*(<=|>=|<|>)" changes.diff
342
+ ```
343
+
344
+ ### Step 3: Manual Review
345
+
346
+ For each detected pattern:
347
+ 1. Read the surrounding context
348
+ 2. Understand the intent of the change
349
+ 3. Determine if the pattern indicates a bug
350
+ 4. Document findings
351
+
352
+ ### Step 4: Rate Severity
353
+
354
+ | Severity | Criteria |
355
+ |----------|----------|
356
+ | Critical | Exploitable security vulnerability |
357
+ | High | Security regression or data loss risk |
358
+ | Medium | Logic error with limited impact |
359
+ | Low | Code smell, minor issue |
360
+ | Info | Observation, no immediate risk |
361
+
362
+ ---
363
+
364
+ ## False Positive Handling
365
+
366
+ Not every detected pattern is a bug. Consider:
367
+
368
+ **Intentional changes:**
369
+ - Removing redundant validation
370
+ - Simplifying error handling
371
+ - Refactoring for clarity
372
+
373
+ **Context matters:**
374
+ - Is the removed check truly necessary?
375
+ - Is there equivalent protection elsewhere?
376
+ - Does the surrounding code handle the case?
377
+
378
+ **Verify with:**
379
+ 1. Read the full commit context
380
+ 2. Check commit message for explanation
381
+ 3. Look for replacement logic
382
+ 4. Consider the broader codebase
383
+
384
+ ---
385
+
386
+ ## Reporting Format
387
+
388
+ For each detected concern:
389
+
390
+ ```markdown
391
+ ### Bug Introduction Concern
392
+
393
+ **Pattern:** [Pattern name]
394
+ **Commit:** [hash]
395
+ **File:** [path:line]
396
+ **Severity:** [Critical/High/Medium/Low/Info]
397
+
398
+ **Change:**
399
+ ```diff
400
+ [relevant diff snippet]
401
+ ```
402
+
403
+ **Analysis:**
404
+ [Explanation of why this is concerning]
405
+
406
+ **Recommendation:**
407
+ [Suggested action]
408
+ ```
@@ -0,0 +1,298 @@
1
+ # Finding Matching Strategies
2
+
3
+ Techniques for matching security findings to code commits.
4
+
5
+ ## Overview
6
+
7
+ Matching findings to commits requires multiple approaches since:
8
+ - Commit messages may not reference finding IDs
9
+ - Findings may span multiple files
10
+ - Multiple commits may partially address a single finding
11
+ - A single commit may address multiple findings
12
+
13
+ ---
14
+
15
+ ## Matching Approaches
16
+
17
+ ### 1. Direct ID Reference
18
+
19
+ Search commit messages for finding IDs:
20
+
21
+ ```bash
22
+ # Search for TOB-style IDs in commit messages
23
+ git log <source>..<target> --grep="TOB-" --oneline
24
+
25
+ # Search for generic finding references
26
+ git log <source>..<target> --grep="[Ff]inding" --oneline
27
+ git log <source>..<target> --grep="[Ff]ix" --oneline
28
+ ```
29
+
30
+ **Confidence:** High when found, but many commits lack explicit references.
31
+
32
+ ### 2. File Path Matching
33
+
34
+ Match findings by affected files:
35
+
36
+ ```bash
37
+ # Get files changed in commit range
38
+ git diff <source>..<target> --name-only
39
+
40
+ # Compare with files mentioned in finding
41
+ # Finding: "The vulnerability exists in contracts/Vault.sol"
42
+ # Check: Does any commit modify contracts/Vault.sol?
43
+ ```
44
+
45
+ **Workflow:**
46
+ 1. Extract file paths from finding description
47
+ 2. List changed files in commit range
48
+ 3. Identify commits touching those files
49
+ 4. Analyze those commits in detail
50
+
51
+ ### 3. Function/Symbol Matching
52
+
53
+ Match by function or variable names:
54
+
55
+ ```bash
56
+ # Search for function name in diffs
57
+ git log <source>..<target> -p | grep -A5 -B5 "function withdraw"
58
+
59
+ # Search for specific patterns
60
+ git log <source>..<target> -S "functionName" --oneline
61
+ ```
62
+
63
+ **Extract symbols from findings:**
64
+ - Function names: `withdraw()`, `transfer()`, `validateInput()`
65
+ - Variable names: `balance`, `owner`, `allowance`
66
+ - Contract/class names: `Vault`, `TokenManager`
67
+
68
+ ### 4. Code Pattern Matching
69
+
70
+ Match by vulnerability pattern:
71
+
72
+ ```bash
73
+ # Finding mentions "missing require statement"
74
+ # Search for added require statements
75
+ git diff <source>..<target> | grep "^+" | grep "require"
76
+
77
+ # Finding mentions "reentrancy"
78
+ # Search for state changes and external calls
79
+ git diff <source>..<target> | grep -E "(\.call|\.transfer|\.send)"
80
+ ```
81
+
82
+ ---
83
+
84
+ ## Matching Workflow
85
+
86
+ ### Step 1: Extract Finding Metadata
87
+
88
+ For each finding, extract:
89
+
90
+ | Field | Example |
91
+ |-------|---------|
92
+ | ID | TOB-CLIENT-1 |
93
+ | Title | Missing access control in withdraw() |
94
+ | Severity | High |
95
+ | Files | contracts/Vault.sol:L45-L67 |
96
+ | Functions | withdraw(), _validateCaller() |
97
+ | Pattern | Access control |
98
+ | Recommendation | Add onlyOwner modifier |
99
+
100
+ ### Step 2: Search for Direct Matches
101
+
102
+ ```bash
103
+ # Check for ID in commit messages
104
+ git log <source>..<target> --grep="TOB-CLIENT-1" --oneline
105
+
106
+ # Check for title keywords
107
+ git log <source>..<target> --grep="access control" --oneline
108
+ git log <source>..<target> --grep="withdraw" --oneline
109
+ ```
110
+
111
+ ### Step 3: Identify Relevant Commits
112
+
113
+ For each file mentioned in the finding:
114
+
115
+ ```bash
116
+ # Get commits that modified the file
117
+ git log <source>..<target> --oneline -- contracts/Vault.sol
118
+
119
+ # Get the diff for that file
120
+ git diff <source>..<target> -- contracts/Vault.sol
121
+ ```
122
+
123
+ ### Step 4: Analyze Fix Quality
124
+
125
+ For each potentially matching commit:
126
+
127
+ 1. **Read the full diff** - Understand what changed
128
+ 2. **Compare with recommendation** - Does the fix follow the suggested approach?
129
+ 3. **Check completeness** - Are all instances of the vulnerability fixed?
130
+ 4. **Verify correctness** - Is the fix itself correct (no logic errors)?
131
+
132
+ ---
133
+
134
+ ## Status Assignment Criteria
135
+
136
+ ### FIXED
137
+
138
+ Assign when:
139
+ - Code change directly addresses the root cause
140
+ - Fix follows the report's recommendation (or equivalent)
141
+ - All instances of the vulnerability are addressed
142
+ - No obvious issues with the fix itself
143
+
144
+ **Evidence required:**
145
+ - Commit hash
146
+ - File and line numbers
147
+ - Brief explanation of how fix addresses the finding
148
+
149
+ ### PARTIALLY_FIXED
150
+
151
+ Assign when:
152
+ - Some instances fixed, others remain
153
+ - Fix addresses symptoms but not root cause
154
+ - Fix is incomplete (missing edge cases)
155
+ - Fix works but doesn't follow best practice
156
+
157
+ **Evidence required:**
158
+ - What was fixed (with commit hash)
159
+ - What remains unfixed
160
+ - Specific gaps in the fix
161
+
162
+ ### NOT_ADDRESSED
163
+
164
+ Assign when:
165
+ - No commits modify relevant files
166
+ - Changes to relevant files don't address the finding
167
+ - Finding relates to architecture/design not changed
168
+
169
+ **Evidence required:**
170
+ - Confirmation that relevant files were checked
171
+ - Brief explanation of why no fix was found
172
+
173
+ ### CANNOT_DETERMINE
174
+
175
+ Assign when:
176
+ - Finding is ambiguous
177
+ - Code changes are unclear
178
+ - Requires runtime analysis to verify
179
+ - Need additional context from developers
180
+
181
+ **Evidence required:**
182
+ - What was analyzed
183
+ - Specific questions that need answers
184
+ - Suggested next steps
185
+
186
+ ---
187
+
188
+ ## Complex Scenarios
189
+
190
+ ### Multiple Commits for One Finding
191
+
192
+ When several commits contribute to fixing a single finding:
193
+
194
+ 1. List all relevant commits
195
+ 2. Analyze each contribution
196
+ 3. Determine if combined effect is FIXED or PARTIALLY_FIXED
197
+ 4. Document each commit's contribution
198
+
199
+ **Example:**
200
+ ```
201
+ TOB-XXX-1: Access control vulnerability in withdraw()
202
+
203
+ Commits:
204
+ - abc123: Added onlyOwner modifier
205
+ - def456: Added balance check
206
+ - ghi789: Added event emission
207
+
208
+ Combined: FIXED
209
+ - abc123 addresses the core access control issue
210
+ - def456 adds defense in depth
211
+ - ghi789 improves auditability
212
+ ```
213
+
214
+ ### One Commit for Multiple Findings
215
+
216
+ When a single commit addresses multiple findings:
217
+
218
+ 1. Analyze the commit once
219
+ 2. Map specific changes to each finding
220
+ 3. Assign status to each finding individually
221
+ 4. Reference the same commit in multiple findings
222
+
223
+ ### Interacting Findings
224
+
225
+ When findings are related and fixes may interact:
226
+
227
+ 1. Identify the relationship
228
+ 2. Analyze fixes together
229
+ 3. Check for conflicts or regressions
230
+ 4. Document the interaction
231
+
232
+ **Example:**
233
+ ```
234
+ TOB-XXX-1: Reentrancy in withdraw()
235
+ TOB-XXX-2: Missing balance validation
236
+
237
+ These interact: A reentrancy fix might break the balance check
238
+ Analysis: Commit abc123 uses checks-effects-interactions pattern
239
+ Result: Both findings addressed without conflict
240
+ ```
241
+
242
+ ---
243
+
244
+ ## Handling Ambiguity
245
+
246
+ ### When Finding Description is Vague
247
+
248
+ 1. Search for related patterns in the codebase
249
+ 2. Look for commit messages mentioning the issue
250
+ 3. Check if any changes seem security-related
251
+ 4. Mark as CANNOT_DETERMINE if unclear
252
+
253
+ ### When Multiple Interpretations Exist
254
+
255
+ 1. Document both interpretations
256
+ 2. Analyze against both
257
+ 3. Note which interpretation the fix addresses
258
+ 4. Flag for developer clarification if needed
259
+
260
+ ### When Fix Differs from Recommendation
261
+
262
+ The fix may be valid even if different from the recommendation:
263
+
264
+ 1. Understand the recommended approach
265
+ 2. Analyze the actual fix
266
+ 3. Determine if it addresses the root cause
267
+ 4. Mark as FIXED if effective, note the difference
268
+
269
+ ---
270
+
271
+ ## Git Commands Reference
272
+
273
+ ```bash
274
+ # List commits in range
275
+ git log <source>..<target> --oneline
276
+
277
+ # Search commit messages
278
+ git log <source>..<target> --grep="pattern" --oneline
279
+
280
+ # Get files changed
281
+ git diff <source>..<target> --name-only
282
+
283
+ # Get full diff
284
+ git diff <source>..<target>
285
+
286
+ # Get diff for specific file
287
+ git diff <source>..<target> -- path/to/file
288
+
289
+ # Search for code changes
290
+ git log <source>..<target> -S "code_pattern" --oneline
291
+
292
+ # Get commit details
293
+ git show <commit> --stat
294
+ git show <commit> -p
295
+
296
+ # Blame specific lines
297
+ git blame <commit> -- path/to/file
298
+ ```