@ruaruababa/vibe-kit 1.0.0

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 (462) hide show
  1. package/CATALOG.md +317 -0
  2. package/README.md +121 -0
  3. package/aliases.json +65 -0
  4. package/bin/vibe.js +2 -0
  5. package/bundles.json +265 -0
  6. package/catalog.json +1560 -0
  7. package/dist/antigravity-skills/bin/cli.js +438 -0
  8. package/dist/antigravity-skills/lib/skill-utils.js +158 -0
  9. package/dist/antigravity-skills/scripts/build-catalog.js +305 -0
  10. package/dist/antigravity-skills/scripts/normalize-frontmatter.js +144 -0
  11. package/dist/antigravity-skills/scripts/validate-skills.js +230 -0
  12. package/dist/bin/vibe.js +2 -0
  13. package/dist/dist/src/cli/index.js +26 -0
  14. package/dist/lib/skill-utils.js +158 -0
  15. package/dist/scripts/build-catalog.js +50 -0
  16. package/dist/scripts/normalize-frontmatter.js +144 -0
  17. package/dist/scripts/validate-skills.js +56 -0
  18. package/dist/src/cli/index.js +146 -0
  19. package/dist/src/types/index.js +13 -0
  20. package/dist/src/utils/fs.js +1 -0
  21. package/package.json +43 -0
  22. package/skills/accessibility-compliance-accessibility-audit/SKILL.md +42 -0
  23. package/skills/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +502 -0
  24. package/skills/agent-orchestration-improve-agent/SKILL.md +349 -0
  25. package/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
  26. package/skills/agent-orchestrator/SKILL.md +24 -0
  27. package/skills/ai-engineer/SKILL.md +171 -0
  28. package/skills/airflow-dag-patterns/SKILL.md +41 -0
  29. package/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
  30. package/skills/angular-migration/SKILL.md +428 -0
  31. package/skills/anti-reversing-techniques/SKILL.md +42 -0
  32. package/skills/anti-reversing-techniques/resources/implementation-playbook.md +539 -0
  33. package/skills/api-design-principles/SKILL.md +37 -0
  34. package/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  35. package/skills/api-design-principles/assets/rest-api-template.py +182 -0
  36. package/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  37. package/skills/api-design-principles/references/rest-best-practices.md +408 -0
  38. package/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  39. package/skills/api-documenter/SKILL.md +184 -0
  40. package/skills/api-testing-observability-api-mock/SKILL.md +46 -0
  41. package/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
  42. package/skills/application-performance-performance-optimization/SKILL.md +154 -0
  43. package/skills/architect-review/SKILL.md +174 -0
  44. package/skills/architecture-decision-records/SKILL.md +441 -0
  45. package/skills/architecture-patterns/SKILL.md +37 -0
  46. package/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
  47. package/skills/arm-cortex-expert/SKILL.md +306 -0
  48. package/skills/async-python-patterns/SKILL.md +39 -0
  49. package/skills/async-python-patterns/resources/implementation-playbook.md +678 -0
  50. package/skills/attack-tree-construction/SKILL.md +38 -0
  51. package/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
  52. package/skills/auth-implementation-patterns/SKILL.md +39 -0
  53. package/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
  54. package/skills/backend-architect/SKILL.md +333 -0
  55. package/skills/backend-development-feature-development/SKILL.md +180 -0
  56. package/skills/backend-security-coder/SKILL.md +156 -0
  57. package/skills/backtesting-frameworks/SKILL.md +39 -0
  58. package/skills/backtesting-frameworks/resources/implementation-playbook.md +647 -0
  59. package/skills/bash-defensive-patterns/SKILL.md +43 -0
  60. package/skills/bash-defensive-patterns/resources/implementation-playbook.md +517 -0
  61. package/skills/bash-pro/SKILL.md +310 -0
  62. package/skills/bats-testing-patterns/SKILL.md +34 -0
  63. package/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -0
  64. package/skills/bazel-build-optimization/SKILL.md +397 -0
  65. package/skills/billing-automation/SKILL.md +42 -0
  66. package/skills/billing-automation/resources/implementation-playbook.md +544 -0
  67. package/skills/binary-analysis-patterns/SKILL.md +450 -0
  68. package/skills/blockchain-developer/SKILL.md +208 -0
  69. package/skills/business-analyst/SKILL.md +182 -0
  70. package/skills/c-pro/SKILL.md +56 -0
  71. package/skills/c4-architecture-c4-architecture/SKILL.md +389 -0
  72. package/skills/c4-code/SKILL.md +244 -0
  73. package/skills/c4-component/SKILL.md +153 -0
  74. package/skills/c4-container/SKILL.md +171 -0
  75. package/skills/c4-context/SKILL.md +150 -0
  76. package/skills/changelog-automation/SKILL.md +38 -0
  77. package/skills/changelog-automation/resources/implementation-playbook.md +538 -0
  78. package/skills/cicd-automation-workflow-automate/SKILL.md +51 -0
  79. package/skills/cicd-automation-workflow-automate/resources/implementation-playbook.md +1333 -0
  80. package/skills/clean-markdown/SKILL.md +23 -0
  81. package/skills/cloud-architect/SKILL.md +135 -0
  82. package/skills/code-documentation-code-explain/SKILL.md +46 -0
  83. package/skills/code-documentation-code-explain/resources/implementation-playbook.md +802 -0
  84. package/skills/code-documentation-doc-generate/SKILL.md +48 -0
  85. package/skills/code-documentation-doc-generate/resources/implementation-playbook.md +640 -0
  86. package/skills/code-refactoring-context-restore/SKILL.md +179 -0
  87. package/skills/code-refactoring-refactor-clean/SKILL.md +51 -0
  88. package/skills/code-refactoring-refactor-clean/resources/implementation-playbook.md +879 -0
  89. package/skills/code-refactoring-tech-debt/SKILL.md +386 -0
  90. package/skills/code-review-ai-ai-review/SKILL.md +450 -0
  91. package/skills/code-review-excellence/SKILL.md +40 -0
  92. package/skills/code-review-excellence/resources/implementation-playbook.md +515 -0
  93. package/skills/code-reviewer/SKILL.md +178 -0
  94. package/skills/codebase-cleanup-deps-audit/SKILL.md +51 -0
  95. package/skills/codebase-cleanup-deps-audit/resources/implementation-playbook.md +766 -0
  96. package/skills/codebase-cleanup-refactor-clean/SKILL.md +51 -0
  97. package/skills/codebase-cleanup-refactor-clean/resources/implementation-playbook.md +879 -0
  98. package/skills/codebase-cleanup-tech-debt/SKILL.md +386 -0
  99. package/skills/competitive-landscape/SKILL.md +34 -0
  100. package/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
  101. package/skills/comprehensive-review-full-review/SKILL.md +146 -0
  102. package/skills/comprehensive-review-pr-enhance/SKILL.md +46 -0
  103. package/skills/comprehensive-review-pr-enhance/resources/implementation-playbook.md +691 -0
  104. package/skills/conductor-implement/SKILL.md +388 -0
  105. package/skills/conductor-manage/SKILL.md +39 -0
  106. package/skills/conductor-manage/resources/implementation-playbook.md +1120 -0
  107. package/skills/conductor-new-track/SKILL.md +433 -0
  108. package/skills/conductor-revert/SKILL.md +372 -0
  109. package/skills/conductor-setup/SKILL.md +426 -0
  110. package/skills/conductor-status/SKILL.md +338 -0
  111. package/skills/conductor-validator/SKILL.md +62 -0
  112. package/skills/content-marketer/SKILL.md +170 -0
  113. package/skills/context-driven-development/SKILL.md +400 -0
  114. package/skills/context-management-context-restore/SKILL.md +179 -0
  115. package/skills/context-management-context-save/SKILL.md +177 -0
  116. package/skills/context-manager/SKILL.md +185 -0
  117. package/skills/cost-optimization/SKILL.md +286 -0
  118. package/skills/cpp-pro/SKILL.md +59 -0
  119. package/skills/cqrs-implementation/SKILL.md +35 -0
  120. package/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
  121. package/skills/csharp-pro/SKILL.md +59 -0
  122. package/skills/customer-support/SKILL.md +170 -0
  123. package/skills/data-engineer/SKILL.md +224 -0
  124. package/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
  125. package/skills/data-engineering-data-pipeline/SKILL.md +201 -0
  126. package/skills/data-quality-frameworks/SKILL.md +40 -0
  127. package/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
  128. package/skills/data-scientist/SKILL.md +199 -0
  129. package/skills/data-storytelling/SKILL.md +465 -0
  130. package/skills/database-admin/SKILL.md +165 -0
  131. package/skills/database-architect/SKILL.md +268 -0
  132. package/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
  133. package/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
  134. package/skills/database-migration/SKILL.md +436 -0
  135. package/skills/database-migrations-migration-observability/SKILL.md +420 -0
  136. package/skills/database-migrations-sql-migrations/SKILL.md +53 -0
  137. package/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
  138. package/skills/database-optimizer/SKILL.md +167 -0
  139. package/skills/dbt-transformation-patterns/SKILL.md +34 -0
  140. package/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
  141. package/skills/debugger/SKILL.md +49 -0
  142. package/skills/debugging-strategies/SKILL.md +34 -0
  143. package/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
  144. package/skills/debugging-toolkit-smart-debug/SKILL.md +197 -0
  145. package/skills/defi-protocol-templates/SKILL.md +466 -0
  146. package/skills/dependency-management-deps-audit/SKILL.md +44 -0
  147. package/skills/dependency-management-deps-audit/resources/implementation-playbook.md +766 -0
  148. package/skills/dependency-upgrade/SKILL.md +421 -0
  149. package/skills/deployment-engineer/SKILL.md +170 -0
  150. package/skills/deployment-pipeline-design/SKILL.md +371 -0
  151. package/skills/deployment-validation-config-validate/SKILL.md +496 -0
  152. package/skills/devops-troubleshooter/SKILL.md +161 -0
  153. package/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
  154. package/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
  155. package/skills/distributed-tracing/SKILL.md +450 -0
  156. package/skills/django-pro/SKILL.md +180 -0
  157. package/skills/docs-architect/SKILL.md +98 -0
  158. package/skills/documentation-generation-doc-generate/SKILL.md +48 -0
  159. package/skills/documentation-generation-doc-generate/resources/implementation-playbook.md +640 -0
  160. package/skills/dotnet-architect/SKILL.md +197 -0
  161. package/skills/dotnet-backend-patterns/SKILL.md +37 -0
  162. package/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
  163. package/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
  164. package/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
  165. package/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
  166. package/skills/dotnet-backend-patterns/resources/implementation-playbook.md +799 -0
  167. package/skills/dummy-skill/SKILL.md +5 -0
  168. package/skills/dx-optimizer/SKILL.md +83 -0
  169. package/skills/e2e-testing-patterns/SKILL.md +41 -0
  170. package/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
  171. package/skills/elixir-pro/SKILL.md +59 -0
  172. package/skills/embedding-strategies/SKILL.md +491 -0
  173. package/skills/employment-contract-templates/SKILL.md +39 -0
  174. package/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
  175. package/skills/error-debugging-error-analysis/SKILL.md +47 -0
  176. package/skills/error-debugging-error-analysis/resources/implementation-playbook.md +1143 -0
  177. package/skills/error-debugging-error-trace/SKILL.md +43 -0
  178. package/skills/error-debugging-error-trace/resources/implementation-playbook.md +1361 -0
  179. package/skills/error-debugging-multi-agent-review/SKILL.md +216 -0
  180. package/skills/error-detective/SKILL.md +53 -0
  181. package/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
  182. package/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
  183. package/skills/error-diagnostics-error-trace/SKILL.md +48 -0
  184. package/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
  185. package/skills/error-diagnostics-smart-debug/SKILL.md +197 -0
  186. package/skills/error-handling-patterns/SKILL.md +35 -0
  187. package/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
  188. package/skills/event-sourcing-architect/SKILL.md +58 -0
  189. package/skills/event-store-design/SKILL.md +449 -0
  190. package/skills/fastapi-pro/SKILL.md +192 -0
  191. package/skills/fastapi-templates/SKILL.md +32 -0
  192. package/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
  193. package/skills/final-test/SKILL.md +5 -0
  194. package/skills/firmware-analyst/SKILL.md +320 -0
  195. package/skills/flutter-expert/SKILL.md +200 -0
  196. package/skills/framework-migration-code-migrate/SKILL.md +48 -0
  197. package/skills/framework-migration-code-migrate/resources/implementation-playbook.md +1052 -0
  198. package/skills/framework-migration-deps-upgrade/SKILL.md +48 -0
  199. package/skills/framework-migration-deps-upgrade/resources/implementation-playbook.md +755 -0
  200. package/skills/framework-migration-legacy-modernize/SKILL.md +132 -0
  201. package/skills/frontend-developer/SKILL.md +171 -0
  202. package/skills/frontend-mobile-development-component-scaffold/SKILL.md +403 -0
  203. package/skills/frontend-mobile-security-xss-scan/SKILL.md +322 -0
  204. package/skills/frontend-security-coder/SKILL.md +170 -0
  205. package/skills/full-stack-orchestration-full-stack-feature/SKILL.md +135 -0
  206. package/skills/gdpr-data-handling/SKILL.md +33 -0
  207. package/skills/gdpr-data-handling/resources/implementation-playbook.md +615 -0
  208. package/skills/git-advanced-workflows/SKILL.md +412 -0
  209. package/skills/git-pr-workflows-git-workflow/SKILL.md +140 -0
  210. package/skills/git-pr-workflows-onboard/SKILL.md +416 -0
  211. package/skills/git-pr-workflows-pr-enhance/SKILL.md +48 -0
  212. package/skills/git-pr-workflows-pr-enhance/resources/implementation-playbook.md +701 -0
  213. package/skills/github-actions-templates/SKILL.md +345 -0
  214. package/skills/gitlab-ci-patterns/SKILL.md +283 -0
  215. package/skills/gitops-workflow/SKILL.md +303 -0
  216. package/skills/gitops-workflow/references/argocd-setup.md +134 -0
  217. package/skills/gitops-workflow/references/sync-policies.md +131 -0
  218. package/skills/go-concurrency-patterns/SKILL.md +33 -0
  219. package/skills/go-concurrency-patterns/resources/implementation-playbook.md +654 -0
  220. package/skills/godot-gdscript-patterns/SKILL.md +33 -0
  221. package/skills/godot-gdscript-patterns/resources/implementation-playbook.md +804 -0
  222. package/skills/golang-pro/SKILL.md +179 -0
  223. package/skills/grafana-dashboards/SKILL.md +381 -0
  224. package/skills/graphql-architect/SKILL.md +182 -0
  225. package/skills/haskell-pro/SKILL.md +56 -0
  226. package/skills/helm-chart-scaffolding/SKILL.md +34 -0
  227. package/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
  228. package/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
  229. package/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
  230. package/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
  231. package/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
  232. package/skills/hr-pro/SKILL.md +126 -0
  233. package/skills/hybrid-cloud-architect/SKILL.md +168 -0
  234. package/skills/hybrid-cloud-networking/SKILL.md +238 -0
  235. package/skills/hybrid-search-implementation/SKILL.md +32 -0
  236. package/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
  237. package/skills/incident-responder/SKILL.md +213 -0
  238. package/skills/incident-response-incident-response/SKILL.md +168 -0
  239. package/skills/incident-response-smart-fix/SKILL.md +29 -0
  240. package/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
  241. package/skills/incident-runbook-templates/SKILL.md +395 -0
  242. package/skills/ios-developer/SKILL.md +219 -0
  243. package/skills/istio-traffic-management/SKILL.md +337 -0
  244. package/skills/java-pro/SKILL.md +177 -0
  245. package/skills/javascript-pro/SKILL.md +57 -0
  246. package/skills/javascript-testing-patterns/SKILL.md +35 -0
  247. package/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
  248. package/skills/javascript-typescript-typescript-scaffold/SKILL.md +361 -0
  249. package/skills/julia-pro/SKILL.md +209 -0
  250. package/skills/k8s-manifest-generator/SKILL.md +35 -0
  251. package/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
  252. package/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
  253. package/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
  254. package/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
  255. package/skills/k8s-manifest-generator/references/service-spec.md +724 -0
  256. package/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
  257. package/skills/k8s-security-policies/SKILL.md +346 -0
  258. package/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
  259. package/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
  260. package/skills/kpi-dashboard-design/SKILL.md +440 -0
  261. package/skills/kubernetes-architect/SKILL.md +170 -0
  262. package/skills/langchain-architecture/SKILL.md +350 -0
  263. package/skills/legacy-modernizer/SKILL.md +53 -0
  264. package/skills/legal-advisor/SKILL.md +70 -0
  265. package/skills/linkerd-patterns/SKILL.md +321 -0
  266. package/skills/llm-application-dev-ai-assistant/SKILL.md +35 -0
  267. package/skills/llm-application-dev-ai-assistant/resources/implementation-playbook.md +1236 -0
  268. package/skills/llm-application-dev-langchain-agent/SKILL.md +246 -0
  269. package/skills/llm-application-dev-prompt-optimize/SKILL.md +37 -0
  270. package/skills/llm-application-dev-prompt-optimize/resources/implementation-playbook.md +591 -0
  271. package/skills/llm-evaluation/SKILL.md +483 -0
  272. package/skills/machine-learning-ops-ml-pipeline/SKILL.md +314 -0
  273. package/skills/malware-analyst/SKILL.md +247 -0
  274. package/skills/market-sizing-analysis/SKILL.md +425 -0
  275. package/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
  276. package/skills/market-sizing-analysis/references/data-sources.md +360 -0
  277. package/skills/memory-forensics/SKILL.md +491 -0
  278. package/skills/memory-safety-patterns/SKILL.md +33 -0
  279. package/skills/memory-safety-patterns/resources/implementation-playbook.md +603 -0
  280. package/skills/mermaid-expert/SKILL.md +59 -0
  281. package/skills/microservices-patterns/SKILL.md +35 -0
  282. package/skills/microservices-patterns/resources/implementation-playbook.md +607 -0
  283. package/skills/minecraft-bukkit-pro/SKILL.md +126 -0
  284. package/skills/ml-engineer/SKILL.md +168 -0
  285. package/skills/ml-pipeline-workflow/SKILL.md +257 -0
  286. package/skills/mlops-engineer/SKILL.md +219 -0
  287. package/skills/mobile-developer/SKILL.md +205 -0
  288. package/skills/mobile-security-coder/SKILL.md +184 -0
  289. package/skills/modern-javascript-patterns/SKILL.md +35 -0
  290. package/skills/modern-javascript-patterns/resources/implementation-playbook.md +910 -0
  291. package/skills/monorepo-architect/SKILL.md +61 -0
  292. package/skills/monorepo-management/SKILL.md +35 -0
  293. package/skills/monorepo-management/resources/implementation-playbook.md +621 -0
  294. package/skills/mtls-configuration/SKILL.md +359 -0
  295. package/skills/multi-cloud-architecture/SKILL.md +189 -0
  296. package/skills/multi-platform-apps-multi-platform/SKILL.md +203 -0
  297. package/skills/network-engineer/SKILL.md +169 -0
  298. package/skills/nextjs-app-router-patterns/SKILL.md +33 -0
  299. package/skills/nextjs-app-router-patterns/resources/implementation-playbook.md +543 -0
  300. package/skills/nft-standards/SKILL.md +395 -0
  301. package/skills/node-expert/SKILL.md +23 -0
  302. package/skills/nodejs-backend-patterns/SKILL.md +35 -0
  303. package/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
  304. package/skills/nx-workspace-patterns/SKILL.md +464 -0
  305. package/skills/observability-engineer/SKILL.md +237 -0
  306. package/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
  307. package/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
  308. package/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
  309. package/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
  310. package/skills/on-call-handoff-patterns/SKILL.md +453 -0
  311. package/skills/openapi-spec-generation/SKILL.md +33 -0
  312. package/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
  313. package/skills/payment-integration/SKILL.md +77 -0
  314. package/skills/paypal-integration/SKILL.md +479 -0
  315. package/skills/pci-compliance/SKILL.md +478 -0
  316. package/skills/performance-engineer/SKILL.md +180 -0
  317. package/skills/performance-testing-review-ai-review/SKILL.md +450 -0
  318. package/skills/performance-testing-review-multi-agent-review/SKILL.md +216 -0
  319. package/skills/php-pro/SKILL.md +63 -0
  320. package/skills/posix-shell-pro/SKILL.md +304 -0
  321. package/skills/postgresql/SKILL.md +230 -0
  322. package/skills/postmortem-writing/SKILL.md +386 -0
  323. package/skills/projection-patterns/SKILL.md +33 -0
  324. package/skills/projection-patterns/resources/implementation-playbook.md +501 -0
  325. package/skills/prometheus-configuration/SKILL.md +404 -0
  326. package/skills/prompt-engineer/SKILL.md +272 -0
  327. package/skills/prompt-engineering-patterns/SKILL.md +213 -0
  328. package/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
  329. package/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
  330. package/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
  331. package/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
  332. package/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
  333. package/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
  334. package/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
  335. package/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
  336. package/skills/protocol-reverse-engineering/SKILL.md +29 -0
  337. package/skills/protocol-reverse-engineering/resources/implementation-playbook.md +509 -0
  338. package/skills/python-development-python-scaffold/SKILL.md +331 -0
  339. package/skills/python-packaging/SKILL.md +36 -0
  340. package/skills/python-packaging/resources/implementation-playbook.md +869 -0
  341. package/skills/python-performance-optimization/SKILL.md +36 -0
  342. package/skills/python-performance-optimization/resources/implementation-playbook.md +868 -0
  343. package/skills/python-pro/SKILL.md +158 -0
  344. package/skills/python-testing-patterns/SKILL.md +37 -0
  345. package/skills/python-testing-patterns/resources/implementation-playbook.md +906 -0
  346. package/skills/quant-analyst/SKILL.md +53 -0
  347. package/skills/rag-implementation/SKILL.md +421 -0
  348. package/skills/react-modernization/SKILL.md +34 -0
  349. package/skills/react-modernization/resources/implementation-playbook.md +512 -0
  350. package/skills/react-native-architecture/SKILL.md +33 -0
  351. package/skills/react-native-architecture/resources/implementation-playbook.md +670 -0
  352. package/skills/react-state-management/SKILL.md +441 -0
  353. package/skills/reference-builder/SKILL.md +188 -0
  354. package/skills/reverse-engineer/SKILL.md +173 -0
  355. package/skills/risk-manager/SKILL.md +61 -0
  356. package/skills/risk-metrics-calculation/SKILL.md +33 -0
  357. package/skills/risk-metrics-calculation/resources/implementation-playbook.md +554 -0
  358. package/skills/ruby-pro/SKILL.md +56 -0
  359. package/skills/rust-async-patterns/SKILL.md +33 -0
  360. package/skills/rust-async-patterns/resources/implementation-playbook.md +516 -0
  361. package/skills/rust-pro/SKILL.md +178 -0
  362. package/skills/saga-orchestration/SKILL.md +496 -0
  363. package/skills/sales-automator/SKILL.md +55 -0
  364. package/skills/sast-configuration/SKILL.md +212 -0
  365. package/skills/scala-pro/SKILL.md +82 -0
  366. package/skills/screen-reader-testing/SKILL.md +33 -0
  367. package/skills/screen-reader-testing/resources/implementation-playbook.md +544 -0
  368. package/skills/search-specialist/SKILL.md +80 -0
  369. package/skills/secrets-management/SKILL.md +364 -0
  370. package/skills/security-auditor/SKILL.md +169 -0
  371. package/skills/security-compliance-compliance-check/SKILL.md +55 -0
  372. package/skills/security-compliance-compliance-check/resources/implementation-playbook.md +963 -0
  373. package/skills/security-requirement-extraction/SKILL.md +33 -0
  374. package/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
  375. package/skills/security-scanning-security-dependencies/SKILL.md +43 -0
  376. package/skills/security-scanning-security-dependencies/resources/implementation-playbook.md +544 -0
  377. package/skills/security-scanning-security-hardening/SKILL.md +147 -0
  378. package/skills/security-scanning-security-sast/SKILL.md +495 -0
  379. package/skills/seo-authority-builder/SKILL.md +136 -0
  380. package/skills/seo-cannibalization-detector/SKILL.md +123 -0
  381. package/skills/seo-content-auditor/SKILL.md +83 -0
  382. package/skills/seo-content-planner/SKILL.md +108 -0
  383. package/skills/seo-content-refresher/SKILL.md +118 -0
  384. package/skills/seo-content-writer/SKILL.md +96 -0
  385. package/skills/seo-keyword-strategist/SKILL.md +95 -0
  386. package/skills/seo-meta-optimizer/SKILL.md +92 -0
  387. package/skills/seo-snippet-hunter/SKILL.md +114 -0
  388. package/skills/seo-structure-architect/SKILL.md +108 -0
  389. package/skills/service-mesh-expert/SKILL.md +58 -0
  390. package/skills/service-mesh-observability/SKILL.md +395 -0
  391. package/skills/shellcheck-configuration/SKILL.md +466 -0
  392. package/skills/similarity-search-patterns/SKILL.md +33 -0
  393. package/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
  394. package/skills/slo-implementation/SKILL.md +341 -0
  395. package/skills/solidity-security/SKILL.md +34 -0
  396. package/skills/solidity-security/resources/implementation-playbook.md +524 -0
  397. package/skills/spark-optimization/SKILL.md +427 -0
  398. package/skills/sql-optimization-patterns/SKILL.md +35 -0
  399. package/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
  400. package/skills/sql-pro/SKILL.md +173 -0
  401. package/skills/startup-analyst/SKILL.md +328 -0
  402. package/skills/startup-business-analyst-business-case/SKILL.md +487 -0
  403. package/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
  404. package/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
  405. package/skills/startup-financial-modeling/SKILL.md +467 -0
  406. package/skills/startup-metrics-framework/SKILL.md +34 -0
  407. package/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
  408. package/skills/stride-analysis-patterns/SKILL.md +33 -0
  409. package/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
  410. package/skills/stripe-integration/SKILL.md +454 -0
  411. package/skills/systems-programming-rust-project/SKILL.md +440 -0
  412. package/skills/tailwind-design-system/SKILL.md +33 -0
  413. package/skills/tailwind-design-system/resources/implementation-playbook.md +665 -0
  414. package/skills/tdd-orchestrator/SKILL.md +205 -0
  415. package/skills/tdd-workflows-tdd-cycle/SKILL.md +221 -0
  416. package/skills/tdd-workflows-tdd-green/SKILL.md +73 -0
  417. package/skills/tdd-workflows-tdd-green/resources/implementation-playbook.md +870 -0
  418. package/skills/tdd-workflows-tdd-red/SKILL.md +164 -0
  419. package/skills/tdd-workflows-tdd-refactor/SKILL.md +187 -0
  420. package/skills/team-collaboration-issue/SKILL.md +37 -0
  421. package/skills/team-collaboration-issue/resources/implementation-playbook.md +640 -0
  422. package/skills/team-collaboration-standup-notes/SKILL.md +44 -0
  423. package/skills/team-collaboration-standup-notes/resources/implementation-playbook.md +768 -0
  424. package/skills/team-composition-analysis/SKILL.md +413 -0
  425. package/skills/temporal-python-pro/SKILL.md +370 -0
  426. package/skills/temporal-python-testing/SKILL.md +170 -0
  427. package/skills/temporal-python-testing/resources/integration-testing.md +455 -0
  428. package/skills/temporal-python-testing/resources/local-setup.md +553 -0
  429. package/skills/temporal-python-testing/resources/replay-testing.md +462 -0
  430. package/skills/temporal-python-testing/resources/unit-testing.md +328 -0
  431. package/skills/terraform-module-library/SKILL.md +261 -0
  432. package/skills/terraform-module-library/references/aws-modules.md +63 -0
  433. package/skills/terraform-specialist/SKILL.md +166 -0
  434. package/skills/test-automator/SKILL.md +224 -0
  435. package/skills/threat-mitigation-mapping/SKILL.md +33 -0
  436. package/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
  437. package/skills/threat-modeling-expert/SKILL.md +60 -0
  438. package/skills/track-management/SKILL.md +38 -0
  439. package/skills/track-management/resources/implementation-playbook.md +591 -0
  440. package/skills/turborepo-caching/SKILL.md +419 -0
  441. package/skills/tutorial-engineer/SKILL.md +139 -0
  442. package/skills/typescript-advanced-types/SKILL.md +35 -0
  443. package/skills/typescript-advanced-types/resources/implementation-playbook.md +716 -0
  444. package/skills/typescript-pro/SKILL.md +55 -0
  445. package/skills/ui-minimal/SKILL.md +23 -0
  446. package/skills/ui-ux-designer/SKILL.md +209 -0
  447. package/skills/ui-visual-validator/SKILL.md +214 -0
  448. package/skills/unit-testing-test-generate/SKILL.md +319 -0
  449. package/skills/unity-developer/SKILL.md +230 -0
  450. package/skills/unity-ecs-patterns/SKILL.md +33 -0
  451. package/skills/unity-ecs-patterns/resources/implementation-playbook.md +625 -0
  452. package/skills/uv-package-manager/SKILL.md +37 -0
  453. package/skills/uv-package-manager/resources/implementation-playbook.md +830 -0
  454. package/skills/vector-database-engineer/SKILL.md +60 -0
  455. package/skills/vector-index-tuning/SKILL.md +42 -0
  456. package/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
  457. package/skills/wcag-audit-patterns/SKILL.md +41 -0
  458. package/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -0
  459. package/skills/web3-testing/SKILL.md +427 -0
  460. package/skills/workflow-orchestration-patterns/SKILL.md +333 -0
  461. package/skills/workflow-patterns/SKILL.md +38 -0
  462. package/skills/workflow-patterns/resources/implementation-playbook.md +621 -0
@@ -0,0 +1,524 @@
1
+ # Solidity Security Implementation Playbook
2
+
3
+ This file contains detailed patterns, checklists, and code samples referenced by the skill.
4
+
5
+ # Solidity Security
6
+
7
+ Master smart contract security best practices, vulnerability prevention, and secure Solidity development patterns.
8
+
9
+ ## When to Use This Skill
10
+
11
+ - Writing secure smart contracts
12
+ - Auditing existing contracts for vulnerabilities
13
+ - Implementing secure DeFi protocols
14
+ - Preventing reentrancy, overflow, and access control issues
15
+ - Optimizing gas usage while maintaining security
16
+ - Preparing contracts for professional audits
17
+ - Understanding common attack vectors
18
+
19
+ ## Critical Vulnerabilities
20
+
21
+ ### 1. Reentrancy
22
+
23
+ Attacker calls back into your contract before state is updated.
24
+
25
+ **Vulnerable Code:**
26
+
27
+ ```solidity
28
+ // VULNERABLE TO REENTRANCY
29
+ contract VulnerableBank {
30
+ mapping(address => uint256) public balances;
31
+
32
+ function withdraw() public {
33
+ uint256 amount = balances[msg.sender];
34
+
35
+ // DANGER: External call before state update
36
+ (bool success, ) = msg.sender.call{value: amount}("");
37
+ require(success);
38
+
39
+ balances[msg.sender] = 0; // Too late!
40
+ }
41
+ }
42
+ ```
43
+
44
+ **Secure Pattern (Checks-Effects-Interactions):**
45
+
46
+ ```solidity
47
+ contract SecureBank {
48
+ mapping(address => uint256) public balances;
49
+
50
+ function withdraw() public {
51
+ uint256 amount = balances[msg.sender];
52
+ require(amount > 0, "Insufficient balance");
53
+
54
+ // EFFECTS: Update state BEFORE external call
55
+ balances[msg.sender] = 0;
56
+
57
+ // INTERACTIONS: External call last
58
+ (bool success, ) = msg.sender.call{value: amount}("");
59
+ require(success, "Transfer failed");
60
+ }
61
+ }
62
+ ```
63
+
64
+ **Alternative: ReentrancyGuard**
65
+
66
+ ```solidity
67
+ import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
68
+
69
+ contract SecureBank is ReentrancyGuard {
70
+ mapping(address => uint256) public balances;
71
+
72
+ function withdraw() public nonReentrant {
73
+ uint256 amount = balances[msg.sender];
74
+ require(amount > 0, "Insufficient balance");
75
+
76
+ balances[msg.sender] = 0;
77
+
78
+ (bool success, ) = msg.sender.call{value: amount}("");
79
+ require(success, "Transfer failed");
80
+ }
81
+ }
82
+ ```
83
+
84
+ ### 2. Integer Overflow/Underflow
85
+
86
+ **Vulnerable Code (Solidity < 0.8.0):**
87
+
88
+ ```solidity
89
+ // VULNERABLE
90
+ contract VulnerableToken {
91
+ mapping(address => uint256) public balances;
92
+
93
+ function transfer(address to, uint256 amount) public {
94
+ // No overflow check - can wrap around
95
+ balances[msg.sender] -= amount; // Can underflow!
96
+ balances[to] += amount; // Can overflow!
97
+ }
98
+ }
99
+ ```
100
+
101
+ **Secure Pattern (Solidity >= 0.8.0):**
102
+
103
+ ```solidity
104
+ // Solidity 0.8+ has built-in overflow/underflow checks
105
+ contract SecureToken {
106
+ mapping(address => uint256) public balances;
107
+
108
+ function transfer(address to, uint256 amount) public {
109
+ // Automatically reverts on overflow/underflow
110
+ balances[msg.sender] -= amount;
111
+ balances[to] += amount;
112
+ }
113
+ }
114
+ ```
115
+
116
+ **For Solidity < 0.8.0, use SafeMath:**
117
+
118
+ ```solidity
119
+ import "@openzeppelin/contracts/utils/math/SafeMath.sol";
120
+
121
+ contract SecureToken {
122
+ using SafeMath for uint256;
123
+ mapping(address => uint256) public balances;
124
+
125
+ function transfer(address to, uint256 amount) public {
126
+ balances[msg.sender] = balances[msg.sender].sub(amount);
127
+ balances[to] = balances[to].add(amount);
128
+ }
129
+ }
130
+ ```
131
+
132
+ ### 3. Access Control
133
+
134
+ **Vulnerable Code:**
135
+
136
+ ```solidity
137
+ // VULNERABLE: Anyone can call critical functions
138
+ contract VulnerableContract {
139
+ address public owner;
140
+
141
+ function withdraw(uint256 amount) public {
142
+ // No access control!
143
+ payable(msg.sender).transfer(amount);
144
+ }
145
+ }
146
+ ```
147
+
148
+ **Secure Pattern:**
149
+
150
+ ```solidity
151
+ import "@openzeppelin/contracts/access/Ownable.sol";
152
+
153
+ contract SecureContract is Ownable {
154
+ function withdraw(uint256 amount) public onlyOwner {
155
+ payable(owner()).transfer(amount);
156
+ }
157
+ }
158
+
159
+ // Or implement custom role-based access
160
+ contract RoleBasedContract {
161
+ mapping(address => bool) public admins;
162
+
163
+ modifier onlyAdmin() {
164
+ require(admins[msg.sender], "Not an admin");
165
+ _;
166
+ }
167
+
168
+ function criticalFunction() public onlyAdmin {
169
+ // Protected function
170
+ }
171
+ }
172
+ ```
173
+
174
+ ### 4. Front-Running
175
+
176
+ **Vulnerable:**
177
+
178
+ ```solidity
179
+ // VULNERABLE TO FRONT-RUNNING
180
+ contract VulnerableDEX {
181
+ function swap(uint256 amount, uint256 minOutput) public {
182
+ // Attacker sees this in mempool and front-runs
183
+ uint256 output = calculateOutput(amount);
184
+ require(output >= minOutput, "Slippage too high");
185
+ // Perform swap
186
+ }
187
+ }
188
+ ```
189
+
190
+ **Mitigation:**
191
+
192
+ ```solidity
193
+ contract SecureDEX {
194
+ mapping(bytes32 => bool) public usedCommitments;
195
+
196
+ // Step 1: Commit to trade
197
+ function commitTrade(bytes32 commitment) public {
198
+ usedCommitments[commitment] = true;
199
+ }
200
+
201
+ // Step 2: Reveal trade (next block)
202
+ function revealTrade(
203
+ uint256 amount,
204
+ uint256 minOutput,
205
+ bytes32 secret
206
+ ) public {
207
+ bytes32 commitment = keccak256(abi.encodePacked(
208
+ msg.sender, amount, minOutput, secret
209
+ ));
210
+ require(usedCommitments[commitment], "Invalid commitment");
211
+ // Perform swap
212
+ }
213
+ }
214
+ ```
215
+
216
+ ## Security Best Practices
217
+
218
+ ### Checks-Effects-Interactions Pattern
219
+
220
+ ```solidity
221
+ contract SecurePattern {
222
+ mapping(address => uint256) public balances;
223
+
224
+ function withdraw(uint256 amount) public {
225
+ // 1. CHECKS: Validate conditions
226
+ require(amount <= balances[msg.sender], "Insufficient balance");
227
+ require(amount > 0, "Amount must be positive");
228
+
229
+ // 2. EFFECTS: Update state
230
+ balances[msg.sender] -= amount;
231
+
232
+ // 3. INTERACTIONS: External calls last
233
+ (bool success, ) = msg.sender.call{value: amount}("");
234
+ require(success, "Transfer failed");
235
+ }
236
+ }
237
+ ```
238
+
239
+ ### Pull Over Push Pattern
240
+
241
+ ```solidity
242
+ // Prefer this (pull)
243
+ contract SecurePayment {
244
+ mapping(address => uint256) public pendingWithdrawals;
245
+
246
+ function recordPayment(address recipient, uint256 amount) internal {
247
+ pendingWithdrawals[recipient] += amount;
248
+ }
249
+
250
+ function withdraw() public {
251
+ uint256 amount = pendingWithdrawals[msg.sender];
252
+ require(amount > 0, "Nothing to withdraw");
253
+
254
+ pendingWithdrawals[msg.sender] = 0;
255
+ payable(msg.sender).transfer(amount);
256
+ }
257
+ }
258
+
259
+ // Over this (push)
260
+ contract RiskyPayment {
261
+ function distributePayments(address[] memory recipients, uint256[] memory amounts) public {
262
+ for (uint i = 0; i < recipients.length; i++) {
263
+ // If any transfer fails, entire batch fails
264
+ payable(recipients[i]).transfer(amounts[i]);
265
+ }
266
+ }
267
+ }
268
+ ```
269
+
270
+ ### Input Validation
271
+
272
+ ```solidity
273
+ contract SecureContract {
274
+ function transfer(address to, uint256 amount) public {
275
+ // Validate inputs
276
+ require(to != address(0), "Invalid recipient");
277
+ require(to != address(this), "Cannot send to contract");
278
+ require(amount > 0, "Amount must be positive");
279
+ require(amount <= balances[msg.sender], "Insufficient balance");
280
+
281
+ // Proceed with transfer
282
+ balances[msg.sender] -= amount;
283
+ balances[to] += amount;
284
+ }
285
+ }
286
+ ```
287
+
288
+ ### Emergency Stop (Circuit Breaker)
289
+
290
+ ```solidity
291
+ import "@openzeppelin/contracts/security/Pausable.sol";
292
+
293
+ contract EmergencyStop is Pausable, Ownable {
294
+ function criticalFunction() public whenNotPaused {
295
+ // Function logic
296
+ }
297
+
298
+ function emergencyStop() public onlyOwner {
299
+ _pause();
300
+ }
301
+
302
+ function resume() public onlyOwner {
303
+ _unpause();
304
+ }
305
+ }
306
+ ```
307
+
308
+ ## Gas Optimization
309
+
310
+ ### Use `uint256` Instead of Smaller Types
311
+
312
+ ```solidity
313
+ // More gas efficient
314
+ contract GasEfficient {
315
+ uint256 public value; // Optimal
316
+
317
+ function set(uint256 _value) public {
318
+ value = _value;
319
+ }
320
+ }
321
+
322
+ // Less efficient
323
+ contract GasInefficient {
324
+ uint8 public value; // Still uses 256-bit slot
325
+
326
+ function set(uint8 _value) public {
327
+ value = _value; // Extra gas for type conversion
328
+ }
329
+ }
330
+ ```
331
+
332
+ ### Pack Storage Variables
333
+
334
+ ```solidity
335
+ // Gas efficient (3 variables in 1 slot)
336
+ contract PackedStorage {
337
+ uint128 public a; // Slot 0
338
+ uint64 public b; // Slot 0
339
+ uint64 public c; // Slot 0
340
+ uint256 public d; // Slot 1
341
+ }
342
+
343
+ // Gas inefficient (each variable in separate slot)
344
+ contract UnpackedStorage {
345
+ uint256 public a; // Slot 0
346
+ uint256 public b; // Slot 1
347
+ uint256 public c; // Slot 2
348
+ uint256 public d; // Slot 3
349
+ }
350
+ ```
351
+
352
+ ### Use `calldata` Instead of `memory` for Function Arguments
353
+
354
+ ```solidity
355
+ contract GasOptimized {
356
+ // More gas efficient
357
+ function processData(uint256[] calldata data) public pure returns (uint256) {
358
+ return data[0];
359
+ }
360
+
361
+ // Less efficient
362
+ function processDataMemory(uint256[] memory data) public pure returns (uint256) {
363
+ return data[0];
364
+ }
365
+ }
366
+ ```
367
+
368
+ ### Use Events for Data Storage (When Appropriate)
369
+
370
+ ```solidity
371
+ contract EventStorage {
372
+ // Emitting events is cheaper than storage
373
+ event DataStored(address indexed user, uint256 indexed id, bytes data);
374
+
375
+ function storeData(uint256 id, bytes calldata data) public {
376
+ emit DataStored(msg.sender, id, data);
377
+ // Don't store in contract storage unless needed
378
+ }
379
+ }
380
+ ```
381
+
382
+ ## Common Vulnerabilities Checklist
383
+
384
+ ```solidity
385
+ // Security Checklist Contract
386
+ contract SecurityChecklist {
387
+ /**
388
+ * [ ] Reentrancy protection (ReentrancyGuard or CEI pattern)
389
+ * [ ] Integer overflow/underflow (Solidity 0.8+ or SafeMath)
390
+ * [ ] Access control (Ownable, roles, modifiers)
391
+ * [ ] Input validation (require statements)
392
+ * [ ] Front-running mitigation (commit-reveal if applicable)
393
+ * [ ] Gas optimization (packed storage, calldata)
394
+ * [ ] Emergency stop mechanism (Pausable)
395
+ * [ ] Pull over push pattern for payments
396
+ * [ ] No delegatecall to untrusted contracts
397
+ * [ ] No tx.origin for authentication (use msg.sender)
398
+ * [ ] Proper event emission
399
+ * [ ] External calls at end of function
400
+ * [ ] Check return values of external calls
401
+ * [ ] No hardcoded addresses
402
+ * [ ] Upgrade mechanism (if proxy pattern)
403
+ */
404
+ }
405
+ ```
406
+
407
+ ## Testing for Security
408
+
409
+ ```javascript
410
+ // Hardhat test example
411
+ const { expect } = require("chai");
412
+ const { ethers } = require("hardhat");
413
+
414
+ describe("Security Tests", function () {
415
+ it("Should prevent reentrancy attack", async function () {
416
+ const [attacker] = await ethers.getSigners();
417
+
418
+ const VictimBank = await ethers.getContractFactory("SecureBank");
419
+ const bank = await VictimBank.deploy();
420
+
421
+ const Attacker = await ethers.getContractFactory("ReentrancyAttacker");
422
+ const attackerContract = await Attacker.deploy(bank.address);
423
+
424
+ // Deposit funds
425
+ await bank.deposit({ value: ethers.utils.parseEther("10") });
426
+
427
+ // Attempt reentrancy attack
428
+ await expect(
429
+ attackerContract.attack({ value: ethers.utils.parseEther("1") }),
430
+ ).to.be.revertedWith("ReentrancyGuard: reentrant call");
431
+ });
432
+
433
+ it("Should prevent integer overflow", async function () {
434
+ const Token = await ethers.getContractFactory("SecureToken");
435
+ const token = await Token.deploy();
436
+
437
+ // Attempt overflow
438
+ await expect(token.transfer(attacker.address, ethers.constants.MaxUint256))
439
+ .to.be.reverted;
440
+ });
441
+
442
+ it("Should enforce access control", async function () {
443
+ const [owner, attacker] = await ethers.getSigners();
444
+
445
+ const Contract = await ethers.getContractFactory("SecureContract");
446
+ const contract = await Contract.deploy();
447
+
448
+ // Attempt unauthorized withdrawal
449
+ await expect(contract.connect(attacker).withdraw(100)).to.be.revertedWith(
450
+ "Ownable: caller is not the owner",
451
+ );
452
+ });
453
+ });
454
+ ```
455
+
456
+ ## Audit Preparation
457
+
458
+ ```solidity
459
+ contract WellDocumentedContract {
460
+ /**
461
+ * @title Well Documented Contract
462
+ * @dev Example of proper documentation for audits
463
+ * @notice This contract handles user deposits and withdrawals
464
+ */
465
+
466
+ /// @notice Mapping of user balances
467
+ mapping(address => uint256) public balances;
468
+
469
+ /**
470
+ * @dev Deposits ETH into the contract
471
+ * @notice Anyone can deposit funds
472
+ */
473
+ function deposit() public payable {
474
+ require(msg.value > 0, "Must send ETH");
475
+ balances[msg.sender] += msg.value;
476
+ }
477
+
478
+ /**
479
+ * @dev Withdraws user's balance
480
+ * @notice Follows CEI pattern to prevent reentrancy
481
+ * @param amount Amount to withdraw in wei
482
+ */
483
+ function withdraw(uint256 amount) public {
484
+ // CHECKS
485
+ require(amount <= balances[msg.sender], "Insufficient balance");
486
+
487
+ // EFFECTS
488
+ balances[msg.sender] -= amount;
489
+
490
+ // INTERACTIONS
491
+ (bool success, ) = msg.sender.call{value: amount}("");
492
+ require(success, "Transfer failed");
493
+ }
494
+ }
495
+ ```
496
+
497
+ ## Resources
498
+
499
+ - **references/reentrancy.md**: Comprehensive reentrancy prevention
500
+ - **references/access-control.md**: Role-based access patterns
501
+ - **references/overflow-underflow.md**: SafeMath and integer safety
502
+ - **references/gas-optimization.md**: Gas saving techniques
503
+ - **references/vulnerability-patterns.md**: Common vulnerability catalog
504
+ - **assets/solidity-contracts-templates.sol**: Secure contract templates
505
+ - **assets/security-checklist.md**: Pre-audit checklist
506
+ - **scripts/analyze-contract.sh**: Static analysis tools
507
+
508
+ ## Tools for Security Analysis
509
+
510
+ - **Slither**: Static analysis tool
511
+ - **Mythril**: Security analysis tool
512
+ - **Echidna**: Fuzzing tool
513
+ - **Manticore**: Symbolic execution
514
+ - **Securify**: Automated security scanner
515
+
516
+ ## Common Pitfalls
517
+
518
+ 1. **Using `tx.origin` for Authentication**: Use `msg.sender` instead
519
+ 2. **Unchecked External Calls**: Always check return values
520
+ 3. **Delegatecall to Untrusted Contracts**: Can hijack your contract
521
+ 4. **Floating Pragma**: Pin to specific Solidity version
522
+ 5. **Missing Events**: Emit events for state changes
523
+ 6. **Excessive Gas in Loops**: Can hit block gas limit
524
+ 7. **No Upgrade Path**: Consider proxy patterns if upgrades needed