@elizaos/skills 2.0.0-alpha.10

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 (291) hide show
  1. package/README.md +126 -0
  2. package/dist/formatter.d.ts +44 -0
  3. package/dist/formatter.d.ts.map +1 -0
  4. package/dist/formatter.js +182 -0
  5. package/dist/frontmatter.d.ts +39 -0
  6. package/dist/frontmatter.d.ts.map +1 -0
  7. package/dist/frontmatter.js +105 -0
  8. package/dist/index.d.ts +29 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +31 -0
  11. package/dist/loader.d.ts +33 -0
  12. package/dist/loader.d.ts.map +1 -0
  13. package/dist/loader.js +362 -0
  14. package/dist/resolver.d.ts +18 -0
  15. package/dist/resolver.d.ts.map +1 -0
  16. package/dist/resolver.js +90 -0
  17. package/dist/types.d.ts +201 -0
  18. package/dist/types.d.ts.map +1 -0
  19. package/dist/types.js +1 -0
  20. package/package.json +57 -0
  21. package/skills/1password/SKILL.md +70 -0
  22. package/skills/1password/references/cli-examples.md +29 -0
  23. package/skills/1password/references/get-started.md +17 -0
  24. package/skills/apple-notes/SKILL.md +77 -0
  25. package/skills/apple-reminders/SKILL.md +96 -0
  26. package/skills/bear-notes/SKILL.md +107 -0
  27. package/skills/bird/SKILL.md +224 -0
  28. package/skills/blogwatcher/SKILL.md +69 -0
  29. package/skills/blucli/SKILL.md +47 -0
  30. package/skills/bluebubbles/SKILL.md +131 -0
  31. package/skills/camsnap/SKILL.md +45 -0
  32. package/skills/canvas/SKILL.md +203 -0
  33. package/skills/clawhub/SKILL.md +77 -0
  34. package/skills/coding-agent/SKILL.md +284 -0
  35. package/skills/discord/SKILL.md +578 -0
  36. package/skills/eightctl/SKILL.md +50 -0
  37. package/skills/food-order/SKILL.md +48 -0
  38. package/skills/gemini/SKILL.md +43 -0
  39. package/skills/gifgrep/SKILL.md +79 -0
  40. package/skills/github/SKILL.md +77 -0
  41. package/skills/gog/SKILL.md +116 -0
  42. package/skills/goplaces/SKILL.md +52 -0
  43. package/skills/healthcheck/SKILL.md +245 -0
  44. package/skills/himalaya/SKILL.md +257 -0
  45. package/skills/himalaya/references/configuration.md +184 -0
  46. package/skills/himalaya/references/message-composition.md +199 -0
  47. package/skills/imsg/SKILL.md +74 -0
  48. package/skills/local-places/SERVER_README.md +101 -0
  49. package/skills/local-places/SKILL.md +102 -0
  50. package/skills/local-places/pyproject.toml +21 -0
  51. package/skills/local-places/src/local_places/__init__.py +2 -0
  52. package/skills/local-places/src/local_places/google_places.py +314 -0
  53. package/skills/local-places/src/local_places/main.py +65 -0
  54. package/skills/local-places/src/local_places/schemas.py +107 -0
  55. package/skills/mcporter/SKILL.md +61 -0
  56. package/skills/model-usage/SKILL.md +69 -0
  57. package/skills/model-usage/references/codexbar-cli.md +33 -0
  58. package/skills/model-usage/scripts/model_usage.py +310 -0
  59. package/skills/nano-banana-pro/SKILL.md +58 -0
  60. package/skills/nano-banana-pro/scripts/generate_image.py +184 -0
  61. package/skills/nano-pdf/SKILL.md +38 -0
  62. package/skills/notion/SKILL.md +172 -0
  63. package/skills/obsidian/SKILL.md +81 -0
  64. package/skills/openai-image-gen/SKILL.md +89 -0
  65. package/skills/openai-image-gen/scripts/gen.py +240 -0
  66. package/skills/openai-whisper/SKILL.md +38 -0
  67. package/skills/openai-whisper-api/SKILL.md +52 -0
  68. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  69. package/skills/openhue/SKILL.md +51 -0
  70. package/skills/oracle/SKILL.md +125 -0
  71. package/skills/ordercli/SKILL.md +78 -0
  72. package/skills/peekaboo/SKILL.md +190 -0
  73. package/skills/sag/SKILL.md +87 -0
  74. package/skills/security-ask-questions-if-underspecified/.claude-plugin/plugin.json +10 -0
  75. package/skills/security-ask-questions-if-underspecified/README.md +24 -0
  76. package/skills/security-ask-questions-if-underspecified/SKILL.md +85 -0
  77. package/skills/security-ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md +85 -0
  78. package/skills/security-audit-context-building/.claude-plugin/plugin.json +10 -0
  79. package/skills/security-audit-context-building/README.md +58 -0
  80. package/skills/security-audit-context-building/SKILL.md +297 -0
  81. package/skills/security-audit-context-building/commands/audit-context.md +21 -0
  82. package/skills/security-audit-context-building/skills/audit-context-building/SKILL.md +297 -0
  83. package/skills/security-audit-context-building/skills/audit-context-building/resources/COMPLETENESS_CHECKLIST.md +47 -0
  84. package/skills/security-audit-context-building/skills/audit-context-building/resources/FUNCTION_MICRO_ANALYSIS_EXAMPLE.md +355 -0
  85. package/skills/security-audit-context-building/skills/audit-context-building/resources/OUTPUT_REQUIREMENTS.md +71 -0
  86. package/skills/security-building-secure-contracts/.claude-plugin/plugin.json +10 -0
  87. package/skills/security-building-secure-contracts/README.md +241 -0
  88. package/skills/security-building-secure-contracts/SKILL.md +67 -0
  89. package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md +284 -0
  90. package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +405 -0
  91. package/skills/security-building-secure-contracts/skills/audit-prep-assistant/SKILL.md +409 -0
  92. package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/SKILL.md +329 -0
  93. package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +722 -0
  94. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/SKILL.md +218 -0
  95. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/ASSESSMENT_CRITERIA.md +355 -0
  96. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/EXAMPLE_REPORT.md +248 -0
  97. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/REPORT_FORMAT.md +33 -0
  98. package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/SKILL.md +334 -0
  99. package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +740 -0
  100. package/skills/security-building-secure-contracts/skills/guidelines-advisor/SKILL.md +252 -0
  101. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/ASSESSMENT_AREAS.md +329 -0
  102. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/DELIVERABLES.md +118 -0
  103. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/EXAMPLE_REPORT.md +298 -0
  104. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/SKILL.md +161 -0
  105. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/EXAMPLE_REPORT.md +279 -0
  106. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/WORKFLOW_STEPS.md +132 -0
  107. package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/SKILL.md +389 -0
  108. package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +669 -0
  109. package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/SKILL.md +298 -0
  110. package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +791 -0
  111. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/SKILL.md +362 -0
  112. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/ASSESSMENT_CATEGORIES.md +571 -0
  113. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/REPORT_TEMPLATES.md +141 -0
  114. package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/SKILL.md +388 -0
  115. package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +595 -0
  116. package/skills/security-differential-review/.claude-plugin/plugin.json +10 -0
  117. package/skills/security-differential-review/README.md +109 -0
  118. package/skills/security-differential-review/SKILL.md +220 -0
  119. package/skills/security-differential-review/commands/diff-review.md +21 -0
  120. package/skills/security-differential-review/skills/differential-review/SKILL.md +220 -0
  121. package/skills/security-differential-review/skills/differential-review/adversarial.md +203 -0
  122. package/skills/security-differential-review/skills/differential-review/methodology.md +234 -0
  123. package/skills/security-differential-review/skills/differential-review/patterns.md +300 -0
  124. package/skills/security-differential-review/skills/differential-review/reporting.md +369 -0
  125. package/skills/security-entry-point-analyzer/.claude-plugin/plugin.json +10 -0
  126. package/skills/security-entry-point-analyzer/README.md +74 -0
  127. package/skills/security-entry-point-analyzer/SKILL.md +251 -0
  128. package/skills/security-entry-point-analyzer/commands/entry-points.md +18 -0
  129. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/SKILL.md +251 -0
  130. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/cosmwasm.md +182 -0
  131. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-aptos.md +107 -0
  132. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-sui.md +87 -0
  133. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solana.md +155 -0
  134. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solidity.md +135 -0
  135. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/ton.md +185 -0
  136. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/vyper.md +141 -0
  137. package/skills/security-fix-review/.claude-plugin/plugin.json +13 -0
  138. package/skills/security-fix-review/README.md +118 -0
  139. package/skills/security-fix-review/SKILL.md +264 -0
  140. package/skills/security-fix-review/commands/fix-review.md +24 -0
  141. package/skills/security-fix-review/skills/fix-review/SKILL.md +264 -0
  142. package/skills/security-fix-review/skills/fix-review/references/bug-detection.md +408 -0
  143. package/skills/security-fix-review/skills/fix-review/references/finding-matching.md +298 -0
  144. package/skills/security-fix-review/skills/fix-review/references/report-parsing.md +398 -0
  145. package/skills/security-insecure-defaults/.claude-plugin/plugin.json +10 -0
  146. package/skills/security-insecure-defaults/README.md +45 -0
  147. package/skills/security-insecure-defaults/SKILL.md +117 -0
  148. package/skills/security-insecure-defaults/skills/insecure-defaults/SKILL.md +117 -0
  149. package/skills/security-insecure-defaults/skills/insecure-defaults/references/examples.md +409 -0
  150. package/skills/security-modern-python/.claude-plugin/plugin.json +10 -0
  151. package/skills/security-modern-python/README.md +58 -0
  152. package/skills/security-modern-python/SKILL.md +333 -0
  153. package/skills/security-modern-python/hooks/hooks.json +16 -0
  154. package/skills/security-modern-python/hooks/intercept-legacy-python.bats +388 -0
  155. package/skills/security-modern-python/hooks/intercept-legacy-python.sh +109 -0
  156. package/skills/security-modern-python/hooks/test_helper.bash +75 -0
  157. package/skills/security-modern-python/skills/modern-python/SKILL.md +333 -0
  158. package/skills/security-modern-python/skills/modern-python/references/dependabot.md +43 -0
  159. package/skills/security-modern-python/skills/modern-python/references/migration-checklist.md +141 -0
  160. package/skills/security-modern-python/skills/modern-python/references/pep723-scripts.md +259 -0
  161. package/skills/security-modern-python/skills/modern-python/references/prek.md +211 -0
  162. package/skills/security-modern-python/skills/modern-python/references/pyproject.md +254 -0
  163. package/skills/security-modern-python/skills/modern-python/references/ruff-config.md +240 -0
  164. package/skills/security-modern-python/skills/modern-python/references/security-setup.md +255 -0
  165. package/skills/security-modern-python/skills/modern-python/references/testing.md +284 -0
  166. package/skills/security-modern-python/skills/modern-python/references/uv-commands.md +200 -0
  167. package/skills/security-modern-python/skills/modern-python/templates/dependabot.yml +36 -0
  168. package/skills/security-modern-python/skills/modern-python/templates/pre-commit-config.yaml +66 -0
  169. package/skills/security-property-based-testing/.claude-plugin/plugin.json +9 -0
  170. package/skills/security-property-based-testing/README.md +47 -0
  171. package/skills/security-property-based-testing/SKILL.md +109 -0
  172. package/skills/security-property-based-testing/skills/property-based-testing/README.md +88 -0
  173. package/skills/security-property-based-testing/skills/property-based-testing/SKILL.md +109 -0
  174. package/skills/security-property-based-testing/skills/property-based-testing/references/design.md +191 -0
  175. package/skills/security-property-based-testing/skills/property-based-testing/references/generating.md +200 -0
  176. package/skills/security-property-based-testing/skills/property-based-testing/references/libraries.md +130 -0
  177. package/skills/security-property-based-testing/skills/property-based-testing/references/refactoring.md +181 -0
  178. package/skills/security-property-based-testing/skills/property-based-testing/references/reviewing.md +209 -0
  179. package/skills/security-property-based-testing/skills/property-based-testing/references/strategies.md +124 -0
  180. package/skills/semgrep-rule-creator/.claude-plugin/plugin.json +8 -0
  181. package/skills/semgrep-rule-creator/README.md +43 -0
  182. package/skills/semgrep-rule-creator/SKILL.md +168 -0
  183. package/skills/semgrep-rule-creator/commands/semgrep-rule.md +26 -0
  184. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/SKILL.md +168 -0
  185. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/quick-reference.md +203 -0
  186. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/workflow.md +240 -0
  187. package/skills/session-logs/SKILL.md +115 -0
  188. package/skills/sharp-edges/.claude-plugin/plugin.json +10 -0
  189. package/skills/sharp-edges/README.md +48 -0
  190. package/skills/sharp-edges/SKILL.md +292 -0
  191. package/skills/sharp-edges/skills/sharp-edges/SKILL.md +292 -0
  192. package/skills/sharp-edges/skills/sharp-edges/references/auth-patterns.md +252 -0
  193. package/skills/sharp-edges/skills/sharp-edges/references/case-studies.md +274 -0
  194. package/skills/sharp-edges/skills/sharp-edges/references/config-patterns.md +333 -0
  195. package/skills/sharp-edges/skills/sharp-edges/references/crypto-apis.md +190 -0
  196. package/skills/sharp-edges/skills/sharp-edges/references/lang-c.md +205 -0
  197. package/skills/sharp-edges/skills/sharp-edges/references/lang-csharp.md +285 -0
  198. package/skills/sharp-edges/skills/sharp-edges/references/lang-go.md +270 -0
  199. package/skills/sharp-edges/skills/sharp-edges/references/lang-java.md +263 -0
  200. package/skills/sharp-edges/skills/sharp-edges/references/lang-javascript.md +269 -0
  201. package/skills/sharp-edges/skills/sharp-edges/references/lang-kotlin.md +265 -0
  202. package/skills/sharp-edges/skills/sharp-edges/references/lang-php.md +245 -0
  203. package/skills/sharp-edges/skills/sharp-edges/references/lang-python.md +274 -0
  204. package/skills/sharp-edges/skills/sharp-edges/references/lang-ruby.md +273 -0
  205. package/skills/sharp-edges/skills/sharp-edges/references/lang-rust.md +272 -0
  206. package/skills/sharp-edges/skills/sharp-edges/references/lang-swift.md +287 -0
  207. package/skills/sharp-edges/skills/sharp-edges/references/language-specific.md +588 -0
  208. package/skills/sherpa-onnx-tts/SKILL.md +103 -0
  209. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  210. package/skills/skill-creator/SKILL.md +370 -0
  211. package/skills/skill-creator/license.txt +202 -0
  212. package/skills/skill-creator/scripts/init_skill.py +378 -0
  213. package/skills/skill-creator/scripts/package_skill.py +111 -0
  214. package/skills/skill-creator/scripts/quick_validate.py +101 -0
  215. package/skills/slack/SKILL.md +144 -0
  216. package/skills/songsee/SKILL.md +49 -0
  217. package/skills/sonoscli/SKILL.md +46 -0
  218. package/skills/spec-to-code-compliance/.claude-plugin/plugin.json +10 -0
  219. package/skills/spec-to-code-compliance/README.md +67 -0
  220. package/skills/spec-to-code-compliance/SKILL.md +349 -0
  221. package/skills/spec-to-code-compliance/commands/spec-compliance.md +22 -0
  222. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/SKILL.md +349 -0
  223. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/COMPLETENESS_CHECKLIST.md +69 -0
  224. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/IR_EXAMPLES.md +417 -0
  225. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/OUTPUT_REQUIREMENTS.md +105 -0
  226. package/skills/spotify-player/SKILL.md +64 -0
  227. package/skills/static-analysis/.claude-plugin/plugin.json +8 -0
  228. package/skills/static-analysis/README.md +59 -0
  229. package/skills/static-analysis/SKILL.md +91 -0
  230. package/skills/static-analysis/skills/codeql/SKILL.md +315 -0
  231. package/skills/static-analysis/skills/sarif-parsing/SKILL.md +479 -0
  232. package/skills/static-analysis/skills/sarif-parsing/resources/jq-queries.md +162 -0
  233. package/skills/static-analysis/skills/sarif-parsing/resources/sarif_helpers.py +331 -0
  234. package/skills/static-analysis/skills/semgrep/SKILL.md +337 -0
  235. package/skills/summarize/SKILL.md +87 -0
  236. package/skills/testing-handbook-skills/.claude-plugin/plugin.json +8 -0
  237. package/skills/testing-handbook-skills/README.md +241 -0
  238. package/skills/testing-handbook-skills/SKILL.md +104 -0
  239. package/skills/testing-handbook-skills/scripts/pyproject.toml +8 -0
  240. package/skills/testing-handbook-skills/scripts/validate-skills.py +657 -0
  241. package/skills/testing-handbook-skills/skills/address-sanitizer/SKILL.md +341 -0
  242. package/skills/testing-handbook-skills/skills/aflpp/SKILL.md +640 -0
  243. package/skills/testing-handbook-skills/skills/atheris/SKILL.md +515 -0
  244. package/skills/testing-handbook-skills/skills/cargo-fuzz/SKILL.md +454 -0
  245. package/skills/testing-handbook-skills/skills/codeql/SKILL.md +549 -0
  246. package/skills/testing-handbook-skills/skills/constant-time-testing/SKILL.md +507 -0
  247. package/skills/testing-handbook-skills/skills/coverage-analysis/SKILL.md +607 -0
  248. package/skills/testing-handbook-skills/skills/fuzzing-dictionary/SKILL.md +297 -0
  249. package/skills/testing-handbook-skills/skills/fuzzing-obstacles/SKILL.md +426 -0
  250. package/skills/testing-handbook-skills/skills/harness-writing/SKILL.md +614 -0
  251. package/skills/testing-handbook-skills/skills/libafl/SKILL.md +625 -0
  252. package/skills/testing-handbook-skills/skills/libfuzzer/SKILL.md +795 -0
  253. package/skills/testing-handbook-skills/skills/ossfuzz/SKILL.md +426 -0
  254. package/skills/testing-handbook-skills/skills/ruzzy/SKILL.md +443 -0
  255. package/skills/testing-handbook-skills/skills/semgrep/SKILL.md +601 -0
  256. package/skills/testing-handbook-skills/skills/testing-handbook-generator/SKILL.md +372 -0
  257. package/skills/testing-handbook-skills/skills/testing-handbook-generator/agent-prompt.md +280 -0
  258. package/skills/testing-handbook-skills/skills/testing-handbook-generator/discovery.md +452 -0
  259. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/domain-skill.md +504 -0
  260. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/fuzzer-skill.md +454 -0
  261. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/technique-skill.md +527 -0
  262. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/tool-skill.md +366 -0
  263. package/skills/testing-handbook-skills/skills/testing-handbook-generator/testing.md +482 -0
  264. package/skills/testing-handbook-skills/skills/wycheproof/SKILL.md +533 -0
  265. package/skills/things-mac/SKILL.md +86 -0
  266. package/skills/tmux/SKILL.md +135 -0
  267. package/skills/tmux/scripts/find-sessions.sh +112 -0
  268. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  269. package/skills/trello/SKILL.md +95 -0
  270. package/skills/variant-analysis/.claude-plugin/plugin.json +8 -0
  271. package/skills/variant-analysis/README.md +41 -0
  272. package/skills/variant-analysis/SKILL.md +142 -0
  273. package/skills/variant-analysis/commands/variants.md +23 -0
  274. package/skills/variant-analysis/skills/variant-analysis/METHODOLOGY.md +327 -0
  275. package/skills/variant-analysis/skills/variant-analysis/SKILL.md +142 -0
  276. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/cpp.ql +119 -0
  277. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/go.ql +69 -0
  278. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/java.ql +71 -0
  279. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/javascript.ql +63 -0
  280. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/python.ql +80 -0
  281. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/cpp.yaml +98 -0
  282. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/go.yaml +63 -0
  283. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/java.yaml +61 -0
  284. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/javascript.yaml +60 -0
  285. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/python.yaml +72 -0
  286. package/skills/variant-analysis/skills/variant-analysis/resources/variant-report-template.md +75 -0
  287. package/skills/video-frames/SKILL.md +46 -0
  288. package/skills/video-frames/scripts/frame.sh +81 -0
  289. package/skills/voice-call/SKILL.md +45 -0
  290. package/skills/wacli/SKILL.md +72 -0
  291. package/skills/weather/SKILL.md +54 -0
@@ -0,0 +1,205 @@
1
+ # C/C++ Sharp Edges
2
+
3
+ ## Integer Overflow is Undefined Behavior
4
+
5
+ ```c
6
+ // DANGEROUS: Signed overflow is UB, compiler can optimize away checks
7
+ int x = INT_MAX;
8
+ if (x + 1 > x) { // Compiler may assume always true (UB)
9
+ // Overflow check optimized away!
10
+ }
11
+
12
+ // DANGEROUS: Size calculations
13
+ size_t size = user_count * sizeof(struct User);
14
+ // If user_count * sizeof overflows, allocates tiny buffer
15
+ void *buf = malloc(size);
16
+ ```
17
+
18
+ **The Problem**: Signed integer overflow is undefined behavior. Compilers assume it never happens and optimize accordingly—including removing overflow checks.
19
+
20
+ **Detection**: Look for arithmetic on signed integers, especially in size calculations, loop bounds, and allocation sizes.
21
+
22
+ ## Buffer Handling
23
+
24
+ ```c
25
+ // DANGEROUS: No bounds checking
26
+ char buf[64];
27
+ strcpy(buf, user_input); // Classic overflow
28
+ sprintf(buf, "Hello %s", name); // Format + overflow
29
+ gets(buf); // Never use, removed in C11
30
+
31
+ // DANGEROUS: Off-by-one
32
+ char buf[64];
33
+ strncpy(buf, src, 64); // NOT null-terminated if src >= 64!
34
+ buf[63] = '\0'; // Must do manually
35
+
36
+ // DANGEROUS: snprintf return value
37
+ int ret = snprintf(buf, sizeof(buf), "%s", long_string);
38
+ // ret is length that WOULD be written, not actual length
39
+ // If ret >= sizeof(buf), output was truncated
40
+ ```
41
+
42
+ **Safe Alternatives**:
43
+ - `strlcpy`, `strlcat` (BSD, not standard)
44
+ - `snprintf` with proper return value checking
45
+ - C11 Annex K `strcpy_s`, `sprintf_s` (limited support)
46
+
47
+ ## Format Strings
48
+
49
+ ```c
50
+ // DANGEROUS: User controls format
51
+ printf(user_input); // Format string attack
52
+ syslog(LOG_INFO, user_input); // Same problem
53
+ fprintf(stderr, user_input); // Same problem
54
+
55
+ // Attacker input: "%x%x%x%x" → leaks stack
56
+ // Attacker input: "%n" → writes to memory
57
+
58
+ // SAFE: Format as literal
59
+ printf("%s", user_input);
60
+ ```
61
+
62
+ **Detection**: Any `*printf` family function where the format argument is not a string literal.
63
+
64
+ ## Memory Cleanup
65
+
66
+ ```c
67
+ // DANGEROUS: Compiler may optimize away
68
+ char password[64];
69
+ // ... use password ...
70
+ memset(password, 0, sizeof(password)); // May be removed!
71
+
72
+ // The compiler sees: "writes to password, then password goes out of scope"
73
+ // Optimization: "dead store elimination" removes the memset
74
+ ```
75
+
76
+ **Safe Alternatives**:
77
+ ```c
78
+ // Option 1: explicit_bzero (BSD, glibc 2.25+)
79
+ explicit_bzero(password, sizeof(password));
80
+
81
+ // Option 2: SecureZeroMemory (Windows)
82
+ SecureZeroMemory(password, sizeof(password));
83
+
84
+ // Option 3: Volatile function pointer trick
85
+ static void *(*const volatile memset_ptr)(void *, int, size_t) = memset;
86
+ memset_ptr(password, 0, sizeof(password));
87
+
88
+ // Option 4: C11 memset_s (limited support)
89
+ memset_s(password, sizeof(password), 0, sizeof(password));
90
+ ```
91
+
92
+ ## Uninitialized Variables
93
+
94
+ ```c
95
+ // DANGEROUS: Uninitialized stack variables
96
+ int result;
97
+ if (condition) {
98
+ result = compute();
99
+ }
100
+ return result; // Uninitialized if !condition
101
+
102
+ // DANGEROUS: Uninitialized struct padding
103
+ struct {
104
+ char a; // 1 byte
105
+ // 3 bytes padding (uninitialized)
106
+ int b; // 4 bytes
107
+ } s;
108
+ s.a = 'x';
109
+ s.b = 42;
110
+ send(sock, &s, sizeof(s), 0); // Leaks 3 bytes of stack
111
+ ```
112
+
113
+ **Fix**: Use `= {0}` initialization or `memset`.
114
+
115
+ ## Double Free and Use-After-Free
116
+
117
+ ```c
118
+ // DANGEROUS: Double free
119
+ free(ptr);
120
+ // ... later ...
121
+ free(ptr); // Heap corruption
122
+
123
+ // DANGEROUS: Use after free
124
+ free(ptr);
125
+ ptr->value = 42; // Writing to freed memory
126
+
127
+ // DANGEROUS: Returning pointer to local
128
+ char *get_greeting() {
129
+ char buf[64] = "hello";
130
+ return buf; // Stack pointer invalid after return
131
+ }
132
+ ```
133
+
134
+ **Mitigations**:
135
+ - Set pointer to NULL after free: `free(ptr); ptr = NULL;`
136
+ - Use static analysis (Coverity, cppcheck)
137
+ - Use AddressSanitizer in testing
138
+
139
+ ## Signal Handler Issues
140
+
141
+ ```c
142
+ // DANGEROUS: Non-async-signal-safe functions in handler
143
+ void handler(int sig) {
144
+ printf("Got signal\n"); // NOT async-signal-safe
145
+ malloc(100); // NOT async-signal-safe
146
+ free(ptr); // NOT async-signal-safe
147
+ }
148
+
149
+ // Async-signal-safe: write(), _exit(), signal()
150
+ // Most functions including printf, malloc, free are NOT safe
151
+ ```
152
+
153
+ ## Time-of-Check to Time-of-Use (TOCTOU)
154
+
155
+ ```c
156
+ // DANGEROUS: File state can change between check and use
157
+ if (access(filename, W_OK) == 0) {
158
+ // Attacker replaces file with symlink here
159
+ fd = open(filename, O_WRONLY); // Opens different file
160
+ }
161
+ ```
162
+
163
+ **Fix**: Open first, then check permissions on the file descriptor.
164
+
165
+ ## Variadic Function Pitfalls
166
+
167
+ ```c
168
+ // DANGEROUS: Wrong format specifier
169
+ printf("%d", (long long)value); // %d expects int, not long long
170
+ printf("%s", 42); // Interprets 42 as pointer
171
+
172
+ // DANGEROUS: Missing sentinel
173
+ execl("/bin/ls", "ls", "-l", NULL); // NULL required!
174
+ execl("/bin/ls", "ls", "-l"); // Missing NULL = UB
175
+ ```
176
+
177
+ ## Macro Pitfalls
178
+
179
+ ```c
180
+ // DANGEROUS: Macro arguments evaluated multiple times
181
+ #define SQUARE(x) ((x) * (x))
182
+ int a = 5;
183
+ SQUARE(a++); // Expands to ((a++) * (a++)) - increments twice!
184
+
185
+ // DANGEROUS: Operator precedence
186
+ #define ADD(a, b) a + b
187
+ int x = ADD(1, 2) * 3; // Expands to 1 + 2 * 3 = 7, not 9
188
+
189
+ // SAFER: Fully parenthesize
190
+ #define ADD(a, b) ((a) + (b))
191
+ ```
192
+
193
+ ## Detection Patterns
194
+
195
+ Search for these patterns in C/C++ code:
196
+
197
+ | Pattern | Risk |
198
+ |---------|------|
199
+ | `strcpy`, `strcat`, `gets`, `sprintf` | Buffer overflow |
200
+ | `printf(var)` where var is not literal | Format string |
201
+ | `memset` before variable goes out of scope | Dead store elimination |
202
+ | `free(ptr)` without `ptr = NULL` | Double free risk |
203
+ | `malloc` without overflow check on size | Integer overflow |
204
+ | Arithmetic on `int` near INT_MAX | Signed overflow UB |
205
+ | `strncpy` without explicit null termination | Missing terminator |
@@ -0,0 +1,285 @@
1
+ # C# Sharp Edges
2
+
3
+ ## Nullable Reference Types
4
+
5
+ ```csharp
6
+ // DANGEROUS: NRT is opt-in and warnings-only by default
7
+ // Project must enable: <Nullable>enable</Nullable>
8
+
9
+ string? nullable = null;
10
+ string nonNull = nullable; // Warning, but compiles!
11
+ nonNull.Length; // NullReferenceException at runtime
12
+
13
+ // DANGEROUS: Suppression operator
14
+ string value = possiblyNull!; // Suppresses warning, doesn't fix bug
15
+
16
+ // DANGEROUS: Default enabled doesn't mean enforced
17
+ // Many legacy codebases have NRT enabled with thousands of warnings ignored
18
+ ```
19
+
20
+ **Fix**: Enable NRT AND treat warnings as errors:
21
+ ```xml
22
+ <Nullable>enable</Nullable>
23
+ <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
24
+ ```
25
+
26
+ ## Default Struct Values
27
+
28
+ ```csharp
29
+ // DANGEROUS: Structs have default(T) that may be invalid
30
+ struct Connection {
31
+ public string Host; // Default: null
32
+ public int Port; // Default: 0
33
+ }
34
+
35
+ var conn = default(Connection);
36
+ // conn.Host is null, conn.Port is 0 - probably invalid state
37
+
38
+ // DANGEROUS: Array of structs
39
+ var connections = new Connection[10];
40
+ // All 10 are default(Connection) - invalid state
41
+ ```
42
+
43
+ **Fix**: Use constructors, or make structs readonly with init validation.
44
+
45
+ ## IDisposable Leaks
46
+
47
+ ```csharp
48
+ // DANGEROUS: Resources not disposed on exception
49
+ var conn = new SqlConnection(connectionString);
50
+ conn.Open();
51
+ // Exception here = connection never closed
52
+ Process(conn);
53
+ conn.Dispose();
54
+
55
+ // DANGEROUS: Nested disposables
56
+ var outer = new Outer(); // Creates inner disposable
57
+ // Exception before outer.Dispose() = inner leaked
58
+ ```
59
+
60
+ **Fix**: Use `using` statement or declaration:
61
+ ```csharp
62
+ using var conn = new SqlConnection(connectionString);
63
+ conn.Open();
64
+ // Disposed even on exception
65
+
66
+ using (var conn = new SqlConnection(...)) {
67
+ // Scoped disposal
68
+ }
69
+ ```
70
+
71
+ ## Async/Await Pitfalls
72
+
73
+ ```csharp
74
+ // DANGEROUS: async void - exceptions can't be caught
75
+ async void FireAndForget() {
76
+ throw new Exception("Lost!"); // Crashes the process
77
+ }
78
+
79
+ // DANGEROUS: Deadlock with .Result
80
+ async Task DoWork() {
81
+ await Task.Delay(100);
82
+ }
83
+
84
+ void Caller() {
85
+ DoWork().Result; // Deadlock in UI/ASP.NET contexts!
86
+ }
87
+
88
+ // DANGEROUS: Forgetting to await
89
+ async Task Process() {
90
+ DoWorkAsync(); // Not awaited - runs in background
91
+ // Exceptions lost, no completion guarantee
92
+ }
93
+ ```
94
+
95
+ **Fix**: Always return Task, use `ConfigureAwait(false)` in libraries:
96
+ ```csharp
97
+ async Task DoWorkAsync() {
98
+ await Task.Delay(100).ConfigureAwait(false);
99
+ }
100
+ ```
101
+
102
+ ## LINQ Deferred Execution
103
+
104
+ ```csharp
105
+ // DANGEROUS: LINQ queries are lazy
106
+ var query = items.Where(x => x.IsValid);
107
+ // Nothing executed yet!
108
+
109
+ items.Add(newItem); // Added after query defined
110
+ foreach (var item in query) {
111
+ // newItem IS included - query executes here
112
+ }
113
+
114
+ // DANGEROUS: Multiple enumeration
115
+ var filtered = items.Where(x => ExpensiveCheck(x));
116
+ var count = filtered.Count(); // Executes query
117
+ var first = filtered.First(); // Executes query AGAIN
118
+ ```
119
+
120
+ **Fix**: Materialize with `.ToList()` or `.ToArray()` when needed.
121
+
122
+ ## String Comparison
123
+
124
+ ```csharp
125
+ // DANGEROUS: Culture-sensitive comparison by default
126
+ "stra\u00dfe".Equals("strasse"); // Depends on culture!
127
+
128
+ // DANGEROUS: Turkish-I problem
129
+ "INFO".ToLower() == "info" // FALSE in Turkish culture!
130
+ // Turkish: I → ı (dotless i), İ → i
131
+
132
+ // DANGEROUS: Ordinal vs linguistic
133
+ string.Compare("a", "A"); // Culture-dependent
134
+ ```
135
+
136
+ **Fix**: Use ordinal comparison for identifiers:
137
+ ```csharp
138
+ string.Equals(a, b, StringComparison.Ordinal);
139
+ string.Equals(a, b, StringComparison.OrdinalIgnoreCase);
140
+ ```
141
+
142
+ ## Boxing and Unboxing
143
+
144
+ ```csharp
145
+ // DANGEROUS: Hidden boxing with value types
146
+ int value = 42;
147
+ object boxed = value; // Boxing allocation
148
+ int unboxed = (int)boxed; // Unboxing
149
+
150
+ // DANGEROUS: Interface boxing
151
+ struct Point : IComparable<Point> { ... }
152
+ IComparable<Point> comparable = point; // Boxed!
153
+
154
+ // DANGEROUS: LINQ with value types
155
+ var ints = new[] { 1, 2, 3 };
156
+ ints.Where(x => x > 1); // Closure may box
157
+ ```
158
+
159
+ ## Equality Implementation
160
+
161
+ ```csharp
162
+ // DANGEROUS: Incorrect equality implementation
163
+ class MyClass {
164
+ public int Id;
165
+
166
+ public override bool Equals(object obj) {
167
+ return Id == ((MyClass)obj).Id; // Throws if obj is null or wrong type
168
+ }
169
+
170
+ // DANGEROUS: Missing GetHashCode
171
+ // Objects that are Equal MUST have same hash code
172
+ // But: public override int GetHashCode() => ... // Missing!
173
+ }
174
+ ```
175
+
176
+ **Fix**: Implement correctly or use records (C# 9+):
177
+ ```csharp
178
+ record MyRecord(int Id); // Equality implemented correctly
179
+ ```
180
+
181
+ ## Lock Pitfalls
182
+
183
+ ```csharp
184
+ // DANGEROUS: Locking on public object
185
+ public object SyncRoot = new object();
186
+ lock (SyncRoot) { } // External code can deadlock
187
+
188
+ // DANGEROUS: Locking on this
189
+ lock (this) { } // External code can lock same object
190
+
191
+ // DANGEROUS: Locking on Type
192
+ lock (typeof(MyClass)) { } // Type objects are shared across AppDomains
193
+
194
+ // DANGEROUS: Locking on string
195
+ lock ("mylock") { } // String interning makes this shared!
196
+ ```
197
+
198
+ **Fix**: Lock on private readonly object:
199
+ ```csharp
200
+ private readonly object _lock = new object();
201
+ lock (_lock) { }
202
+ ```
203
+
204
+ ## Finalizers
205
+
206
+ ```csharp
207
+ // DANGEROUS: Finalizer delays GC and can resurrect objects
208
+ class Problematic {
209
+ ~Problematic() {
210
+ // This code runs on finalizer thread
211
+ // Can't access other managed objects safely
212
+ GlobalList.Add(this); // Resurrection!
213
+ }
214
+ }
215
+
216
+ // DANGEROUS: Finalizer without dispose pattern
217
+ // Object stays in memory longer (finalization queue)
218
+ ```
219
+
220
+ **Fix**: Implement dispose pattern, avoid finalizers:
221
+ ```csharp
222
+ class Proper : IDisposable {
223
+ private bool _disposed;
224
+
225
+ public void Dispose() {
226
+ Dispose(true);
227
+ GC.SuppressFinalize(this);
228
+ }
229
+
230
+ protected virtual void Dispose(bool disposing) {
231
+ if (_disposed) return;
232
+ if (disposing) { /* managed cleanup */ }
233
+ // unmanaged cleanup
234
+ _disposed = true;
235
+ }
236
+ }
237
+ ```
238
+
239
+ ## Event Handler Memory Leaks
240
+
241
+ ```csharp
242
+ // DANGEROUS: Event handlers keep objects alive
243
+ class Publisher {
244
+ public event EventHandler Changed;
245
+ }
246
+
247
+ class Subscriber {
248
+ public Subscriber(Publisher pub) {
249
+ pub.Changed += OnChanged; // Subscriber now rooted by Publisher
250
+ // Even if Subscriber should be collected, it won't be
251
+ }
252
+ }
253
+ ```
254
+
255
+ **Fix**: Unsubscribe in Dispose or use weak events.
256
+
257
+ ## Serialization
258
+
259
+ ```csharp
260
+ // DANGEROUS: BinaryFormatter is insecure
261
+ var formatter = new BinaryFormatter();
262
+ formatter.Deserialize(untrustedStream); // RCE vulnerability
263
+
264
+ // Microsoft: "BinaryFormatter is dangerous and is not recommended"
265
+ // Similar issues with NetDataContractSerializer, SoapFormatter
266
+ ```
267
+
268
+ **Fix**: Use JSON, XML with known types, or protobuf.
269
+
270
+ ## Detection Patterns
271
+
272
+ | Pattern | Risk |
273
+ |---------|------|
274
+ | `string? x = null; string y = x;` | NRT warning ignored |
275
+ | `possiblyNull!` | Null suppression |
276
+ | `new Connection[n]` for structs | Invalid default state |
277
+ | `SqlConnection` without `using` | Resource leak |
278
+ | `async void` | Unhandled exceptions |
279
+ | `.Result` or `.Wait()` on Task | Deadlock |
280
+ | Missing `await` before async call | Fire and forget |
281
+ | `.Where()` without materialization | Multiple enumeration |
282
+ | `string.Equals` without StringComparison | Culture bugs |
283
+ | `lock (this)` or `lock (typeof(...))` | Deadlock risk |
284
+ | `BinaryFormatter` | Deserialization RCE |
285
+ | Event subscription without unsubscription | Memory leak |