@synapta/skills 0.1.1 → 0.2.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 (354) hide show
  1. package/dist/index.js +11 -4
  2. package/package.json +3 -4
  3. package/skills/ATTRIBUTION.md +80 -0
  4. package/skills/accessibility-audit/SKILL.md +325 -0
  5. package/skills/accessibility-audit/reference/wcag-checklist.md +103 -0
  6. package/skills/apns-notifier/SKILL.md +86 -0
  7. package/skills/approval-policy-enforcer/SKILL.md +66 -0
  8. package/skills/apps-sdk-builder/LICENSE.txt +201 -0
  9. package/skills/apps-sdk-builder/SKILL.md +328 -0
  10. package/skills/apps-sdk-builder/agents/openai.yaml +13 -0
  11. package/skills/apps-sdk-builder/references/app-archetypes.md +132 -0
  12. package/skills/apps-sdk-builder/references/apps-sdk-docs-workflow.md +135 -0
  13. package/skills/apps-sdk-builder/references/interactive-state-sync-patterns.md +113 -0
  14. package/skills/apps-sdk-builder/references/repo-contract-and-validation.md +93 -0
  15. package/skills/apps-sdk-builder/references/search-fetch-standard.md +67 -0
  16. package/skills/apps-sdk-builder/references/upstream-example-workflow.md +79 -0
  17. package/skills/apps-sdk-builder/references/window-openai-patterns.md +79 -0
  18. package/skills/apps-sdk-builder/scripts/scaffold_node_ext_apps.mjs +606 -0
  19. package/skills/architecture-selector/SKILL.md +64 -0
  20. package/skills/backlog-planner/SKILL.md +68 -0
  21. package/skills/carplay-entitlement-checker/SKILL.md +82 -0
  22. package/skills/concept-deepener/SKILL.md +86 -0
  23. package/skills/concept-discovery/SKILL.md +517 -0
  24. package/skills/concept-discovery/assets/sample-analysis.json +81 -0
  25. package/skills/concept-discovery/expected_outputs/sample-enum-dictionary.md +25 -0
  26. package/skills/concept-discovery/expected_outputs/sample-page-user-list.md +83 -0
  27. package/skills/concept-discovery/expected_outputs/sample-prd-readme.md +43 -0
  28. package/skills/concept-discovery/references/framework-patterns.md +228 -0
  29. package/skills/concept-discovery/references/prd-quality-checklist.md +65 -0
  30. package/skills/concept-discovery/scripts/codebase_analyzer.py +732 -0
  31. package/skills/concept-discovery/scripts/prd_scaffolder.py +435 -0
  32. package/skills/dast-zap/SKILL.md +453 -0
  33. package/skills/dast-zap/assets/.gitkeep +9 -0
  34. package/skills/dast-zap/assets/github_action.yml +207 -0
  35. package/skills/dast-zap/assets/gitlab_ci.yml +226 -0
  36. package/skills/dast-zap/assets/zap_automation.yaml +196 -0
  37. package/skills/dast-zap/assets/zap_context.xml +192 -0
  38. package/skills/dast-zap/references/EXAMPLE.md +40 -0
  39. package/skills/dast-zap/references/api_testing_guide.md +475 -0
  40. package/skills/dast-zap/references/authentication_guide.md +431 -0
  41. package/skills/dast-zap/references/false_positive_handling.md +427 -0
  42. package/skills/dast-zap/references/owasp_mapping.md +255 -0
  43. package/skills/dep-sbom-scan/SKILL.md +466 -0
  44. package/skills/deploy-cloudflare/SKILL.md +930 -0
  45. package/skills/deploy-docker/SKILL.md +55 -0
  46. package/skills/deploy-fly/SKILL.md +228 -0
  47. package/skills/deploy-k8s/SKILL.md +108 -0
  48. package/skills/deploy-k8s/assets/logo.png +0 -0
  49. package/skills/deploy-k8s/docs/README.md +29 -0
  50. package/skills/deploy-k8s/docs/SUMMARY.md +56 -0
  51. package/skills/deploy-k8s/docs/advanced/token-efficiency.md +61 -0
  52. package/skills/deploy-k8s/docs/architecture/multi-tenancy.md +96 -0
  53. package/skills/deploy-k8s/docs/architecture/storage-and-state.md +102 -0
  54. package/skills/deploy-k8s/docs/architecture/workload-patterns.md +87 -0
  55. package/skills/deploy-k8s/docs/book.json +16 -0
  56. package/skills/deploy-k8s/docs/community/changelog.md +34 -0
  57. package/skills/deploy-k8s/docs/community/contributing.md +67 -0
  58. package/skills/deploy-k8s/docs/core-concepts/failure-modes.md +153 -0
  59. package/skills/deploy-k8s/docs/core-concepts/philosophy.md +83 -0
  60. package/skills/deploy-k8s/docs/core-concepts/workflow.md +124 -0
  61. package/skills/deploy-k8s/docs/examples/bad-patterns.md +47 -0
  62. package/skills/deploy-k8s/docs/examples/do-dont-checklist.md +37 -0
  63. package/skills/deploy-k8s/docs/examples/good-patterns.md +49 -0
  64. package/skills/deploy-k8s/docs/failure-modes/api-drift.md +104 -0
  65. package/skills/deploy-k8s/docs/failure-modes/fragile-rollouts.md +99 -0
  66. package/skills/deploy-k8s/docs/failure-modes/insecure-workload-defaults.md +80 -0
  67. package/skills/deploy-k8s/docs/failure-modes/network-exposure.md +98 -0
  68. package/skills/deploy-k8s/docs/failure-modes/privilege-sprawl.md +91 -0
  69. package/skills/deploy-k8s/docs/failure-modes/resource-starvation.md +85 -0
  70. package/skills/deploy-k8s/docs/getting-started/installation.md +152 -0
  71. package/skills/deploy-k8s/docs/getting-started/quick-start.md +115 -0
  72. package/skills/deploy-k8s/docs/guides/helm-patterns.md +71 -0
  73. package/skills/deploy-k8s/docs/guides/kustomize-patterns.md +65 -0
  74. package/skills/deploy-k8s/docs/guides/observability.md +67 -0
  75. package/skills/deploy-k8s/docs/guides/security-hardening.md +59 -0
  76. package/skills/deploy-k8s/docs/guides/validation-and-policy.md +66 -0
  77. package/skills/deploy-k8s/docs/integrations/mcp-integration.md +52 -0
  78. package/skills/deploy-k8s/docs/package-lock.json +2892 -0
  79. package/skills/deploy-k8s/docs/package.json +13 -0
  80. package/skills/deploy-k8s/references/api-drift.md +298 -0
  81. package/skills/deploy-k8s/references/conditional/aks-patterns.md +70 -0
  82. package/skills/deploy-k8s/references/conditional/eks-patterns.md +79 -0
  83. package/skills/deploy-k8s/references/conditional/gitops-controllers.md +71 -0
  84. package/skills/deploy-k8s/references/conditional/gke-patterns.md +74 -0
  85. package/skills/deploy-k8s/references/conditional/observability-stacks.md +80 -0
  86. package/skills/deploy-k8s/references/conditional/openshift-patterns.md +67 -0
  87. package/skills/deploy-k8s/references/daemonset-operator-patterns.md +155 -0
  88. package/skills/deploy-k8s/references/deployment-patterns.md +146 -0
  89. package/skills/deploy-k8s/references/do-dont-patterns.md +87 -0
  90. package/skills/deploy-k8s/references/examples-bad.md +282 -0
  91. package/skills/deploy-k8s/references/examples-good.md +440 -0
  92. package/skills/deploy-k8s/references/fragile-rollouts.md +303 -0
  93. package/skills/deploy-k8s/references/helm-patterns.md +203 -0
  94. package/skills/deploy-k8s/references/insecure-workload-defaults.md +300 -0
  95. package/skills/deploy-k8s/references/job-patterns.md +120 -0
  96. package/skills/deploy-k8s/references/kustomize-patterns.md +239 -0
  97. package/skills/deploy-k8s/references/multi-tenancy.md +343 -0
  98. package/skills/deploy-k8s/references/network-exposure.md +481 -0
  99. package/skills/deploy-k8s/references/observability.md +302 -0
  100. package/skills/deploy-k8s/references/privilege-sprawl.md +273 -0
  101. package/skills/deploy-k8s/references/resource-starvation.md +374 -0
  102. package/skills/deploy-k8s/references/security-hardening.md +209 -0
  103. package/skills/deploy-k8s/references/stateful-patterns.md +130 -0
  104. package/skills/deploy-k8s/references/storage-and-state.md +330 -0
  105. package/skills/deploy-k8s/references/validation-and-policy.md +242 -0
  106. package/skills/deploy-railway/SKILL.md +235 -0
  107. package/skills/deploy-railway/references/analyze-db-mongo.md +84 -0
  108. package/skills/deploy-railway/references/analyze-db-mysql.md +254 -0
  109. package/skills/deploy-railway/references/analyze-db-postgres.md +479 -0
  110. package/skills/deploy-railway/references/analyze-db-redis.md +208 -0
  111. package/skills/deploy-railway/references/analyze-db.md +344 -0
  112. package/skills/deploy-railway/references/configure.md +309 -0
  113. package/skills/deploy-railway/references/deploy.md +195 -0
  114. package/skills/deploy-railway/references/operate.md +214 -0
  115. package/skills/deploy-railway/references/request.md +248 -0
  116. package/skills/deploy-railway/references/setup.md +312 -0
  117. package/skills/deploy-railway/scripts/analyze-mongo.py +1549 -0
  118. package/skills/deploy-railway/scripts/analyze-mysql.py +1195 -0
  119. package/skills/deploy-railway/scripts/analyze-postgres.py +3058 -0
  120. package/skills/deploy-railway/scripts/analyze-redis.py +1090 -0
  121. package/skills/deploy-railway/scripts/dal.py +671 -0
  122. package/skills/deploy-railway/scripts/enable-pg-stats.py +170 -0
  123. package/skills/deploy-railway/scripts/pg-extensions.py +370 -0
  124. package/skills/deploy-railway/scripts/railway-api.sh +52 -0
  125. package/skills/deploy-ssh/SKILL.md +91 -0
  126. package/skills/deploy-vercel/SKILL.md +304 -0
  127. package/skills/deploy-vercel/resources/deploy-codex.sh +301 -0
  128. package/skills/deploy-vercel/resources/deploy.sh +301 -0
  129. package/skills/docs-runbooks/SKILL.md +399 -0
  130. package/skills/drive-status-renderer/SKILL.md +62 -0
  131. package/skills/iac-scan/SKILL.md +680 -0
  132. package/skills/iac-scan/assets/.gitkeep +9 -0
  133. package/skills/iac-scan/assets/checkov_config.yaml +94 -0
  134. package/skills/iac-scan/assets/github_actions.yml +199 -0
  135. package/skills/iac-scan/assets/gitlab_ci.yml +218 -0
  136. package/skills/iac-scan/assets/pre_commit_config.yaml +92 -0
  137. package/skills/iac-scan/references/EXAMPLE.md +40 -0
  138. package/skills/iac-scan/references/compliance_mapping.md +237 -0
  139. package/skills/iac-scan/references/custom_policies.md +460 -0
  140. package/skills/iac-scan/references/suppression_guide.md +431 -0
  141. package/skills/incident-briefing/SKILL.md +66 -0
  142. package/skills/incident-triage/SKILL.md +481 -0
  143. package/{LICENSE → skills/mcp-builder/LICENSE.txt} +15 -14
  144. package/skills/mcp-builder/SKILL.md +244 -0
  145. package/skills/mcp-builder/reference/evaluation.md +602 -0
  146. package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  147. package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  148. package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  149. package/skills/mcp-builder/scripts/connections.py +151 -0
  150. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  151. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  152. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  153. package/skills/mobile-pairing/SKILL.md +52 -0
  154. package/skills/ops-sre/SKILL.md +297 -0
  155. package/skills/playwright-qa/LICENSE.txt +201 -0
  156. package/skills/playwright-qa/NOTICE.txt +14 -0
  157. package/skills/playwright-qa/SKILL.md +156 -0
  158. package/skills/playwright-qa/agents/openai.yaml +6 -0
  159. package/skills/playwright-qa/assets/playwright-small.svg +3 -0
  160. package/skills/playwright-qa/assets/playwright.png +0 -0
  161. package/skills/playwright-qa/references/cli.md +116 -0
  162. package/skills/playwright-qa/references/workflows.md +95 -0
  163. package/skills/playwright-qa/scripts/playwright_cli.sh +25 -0
  164. package/skills/release-publish/SKILL.md +85 -0
  165. package/skills/repo-bootstrap/SKILL.md +92 -0
  166. package/skills/repo-bootstrap/assets/example-workflows/validate-agents.yml +89 -0
  167. package/skills/repo-bootstrap/assets/root-thin.md +141 -0
  168. package/skills/repo-bootstrap/assets/root-verbose.md +149 -0
  169. package/skills/repo-bootstrap/assets/scoped/backend-go.md +107 -0
  170. package/skills/repo-bootstrap/assets/scoped/backend-php.md +94 -0
  171. package/skills/repo-bootstrap/assets/scoped/backend-python.md +84 -0
  172. package/skills/repo-bootstrap/assets/scoped/backend-typescript.md +89 -0
  173. package/skills/repo-bootstrap/assets/scoped/claude-code-skill.md +101 -0
  174. package/skills/repo-bootstrap/assets/scoped/cli.md +83 -0
  175. package/skills/repo-bootstrap/assets/scoped/concourse.md +196 -0
  176. package/skills/repo-bootstrap/assets/scoped/ddev.md +68 -0
  177. package/skills/repo-bootstrap/assets/scoped/docker.md +160 -0
  178. package/skills/repo-bootstrap/assets/scoped/documentation.md +98 -0
  179. package/skills/repo-bootstrap/assets/scoped/examples.md +96 -0
  180. package/skills/repo-bootstrap/assets/scoped/frontend-typescript.md +88 -0
  181. package/skills/repo-bootstrap/assets/scoped/github-actions.md +174 -0
  182. package/skills/repo-bootstrap/assets/scoped/gitlab-ci.md +174 -0
  183. package/skills/repo-bootstrap/assets/scoped/oro-bundle.md +209 -0
  184. package/skills/repo-bootstrap/assets/scoped/oro-project.md +170 -0
  185. package/skills/repo-bootstrap/assets/scoped/python-modern.md +170 -0
  186. package/skills/repo-bootstrap/assets/scoped/resources.md +96 -0
  187. package/skills/repo-bootstrap/assets/scoped/skill-repo.md +139 -0
  188. package/skills/repo-bootstrap/assets/scoped/symfony.md +168 -0
  189. package/skills/repo-bootstrap/assets/scoped/testing.md +87 -0
  190. package/skills/repo-bootstrap/assets/scoped/typo3-docs.md +103 -0
  191. package/skills/repo-bootstrap/assets/scoped/typo3-extension.md +133 -0
  192. package/skills/repo-bootstrap/assets/scoped/typo3-project.md +137 -0
  193. package/skills/repo-bootstrap/assets/scoped/typo3-testing.md +80 -0
  194. package/skills/repo-bootstrap/checkpoints.yaml +279 -0
  195. package/skills/repo-bootstrap/evals/evals.json +385 -0
  196. package/skills/repo-bootstrap/references/ai-contribution-guidelines.md +63 -0
  197. package/skills/repo-bootstrap/references/ai-tool-compatibility.md +223 -0
  198. package/skills/repo-bootstrap/references/directory-coverage.md +82 -0
  199. package/skills/repo-bootstrap/references/examples/coding-agent-cli/AGENTS.md +70 -0
  200. package/skills/repo-bootstrap/references/examples/coding-agent-cli/go.mod +3 -0
  201. package/skills/repo-bootstrap/references/examples/coding-agent-cli/scripts-AGENTS.md +389 -0
  202. package/skills/repo-bootstrap/references/examples/express-api-ts/.env.example +13 -0
  203. package/skills/repo-bootstrap/references/examples/express-api-ts/AGENTS.md +91 -0
  204. package/skills/repo-bootstrap/references/examples/express-api-ts/package.json +33 -0
  205. package/skills/repo-bootstrap/references/examples/express-api-ts/pnpm-lock.yaml +3 -0
  206. package/skills/repo-bootstrap/references/examples/express-api-ts/src/AGENTS.md +91 -0
  207. package/skills/repo-bootstrap/references/examples/express-api-ts/src/config.ts +28 -0
  208. package/skills/repo-bootstrap/references/examples/express-api-ts/src/controllers/userController.ts +74 -0
  209. package/skills/repo-bootstrap/references/examples/express-api-ts/src/index.ts +26 -0
  210. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/errorHandler.ts +45 -0
  211. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/requestLogger.ts +18 -0
  212. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/health.ts +18 -0
  213. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/users.ts +13 -0
  214. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/errors.ts +40 -0
  215. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/logger.ts +14 -0
  216. package/skills/repo-bootstrap/references/examples/express-api-ts/tsconfig.json +24 -0
  217. package/skills/repo-bootstrap/references/examples/fastapi-app/.env.example +19 -0
  218. package/skills/repo-bootstrap/references/examples/fastapi-app/AGENTS.md +92 -0
  219. package/skills/repo-bootstrap/references/examples/fastapi-app/pyproject.toml +88 -0
  220. package/skills/repo-bootstrap/references/examples/fastapi-app/src/AGENTS.md +85 -0
  221. package/skills/repo-bootstrap/references/examples/fastapi-app/src/__init__.py +3 -0
  222. package/skills/repo-bootstrap/references/examples/fastapi-app/src/config.py +49 -0
  223. package/skills/repo-bootstrap/references/examples/fastapi-app/src/main.py +66 -0
  224. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/__init__.py +13 -0
  225. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/item.py +43 -0
  226. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/user.py +40 -0
  227. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/__init__.py +5 -0
  228. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/health.py +20 -0
  229. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/items.py +61 -0
  230. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/users.py +55 -0
  231. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/__init__.py +6 -0
  232. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/item_service.py +77 -0
  233. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/user_service.py +69 -0
  234. package/skills/repo-bootstrap/references/examples/fastapi-app/uv.lock +4 -0
  235. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/.scopes +3 -0
  236. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/AGENTS.md +86 -0
  237. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/package.json +20 -0
  238. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/src/App.tsx +5 -0
  239. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/cmd/api/main.go +7 -0
  240. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/go.mod +2 -0
  241. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/main.go +7 -0
  242. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/.scopes +3 -0
  243. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/AGENTS.md +89 -0
  244. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/go.mod +2 -0
  245. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/AGENTS.md +90 -0
  246. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/package.json +17 -0
  247. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/App.tsx +1 -0
  248. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Button.tsx +1 -0
  249. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Footer.tsx +1 -0
  250. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Header.tsx +1 -0
  251. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Sidebar.tsx +1 -0
  252. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/main.go +7 -0
  253. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package-lock.json +0 -0
  254. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package.json +12 -0
  255. package/skills/repo-bootstrap/references/examples/ldap-selfservice/AGENTS.md +70 -0
  256. package/skills/repo-bootstrap/references/examples/ldap-selfservice/go.mod +3 -0
  257. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-AGENTS.md +371 -0
  258. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-web-AGENTS.md +448 -0
  259. package/skills/repo-bootstrap/references/examples/php-with-frontend/.scopes +3 -0
  260. package/skills/repo-bootstrap/references/examples/php-with-frontend/AGENTS.md +91 -0
  261. package/skills/repo-bootstrap/references/examples/php-with-frontend/composer.json +8 -0
  262. package/skills/repo-bootstrap/references/examples/php-with-frontend/package.json +15 -0
  263. package/skills/repo-bootstrap/references/examples/php-with-frontend/pnpm-lock.yaml +0 -0
  264. package/skills/repo-bootstrap/references/examples/php-with-frontend/src/Controller.php +3 -0
  265. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/AGENTS.md +92 -0
  266. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/package.json +26 -0
  267. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/App.tsx +3 -0
  268. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Button.tsx +10 -0
  269. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Footer.tsx +9 -0
  270. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Header.tsx +9 -0
  271. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/main.tsx +3 -0
  272. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/tsconfig.json +13 -0
  273. package/skills/repo-bootstrap/references/examples/pnpm-workspace/AGENTS.md +75 -0
  274. package/skills/repo-bootstrap/references/examples/pnpm-workspace/package.json +7 -0
  275. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/package.json +11 -0
  276. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/src/index.ts +11 -0
  277. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-lock.yaml +42 -0
  278. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-workspace.yaml +2 -0
  279. package/skills/repo-bootstrap/references/examples/simple-ldap-go/AGENTS.md +70 -0
  280. package/skills/repo-bootstrap/references/examples/simple-ldap-go/examples-AGENTS.md +45 -0
  281. package/skills/repo-bootstrap/references/examples/simple-ldap-go/go.mod +3 -0
  282. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/AGENTS.md +70 -0
  283. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md +392 -0
  284. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/composer.json +8 -0
  285. package/skills/repo-bootstrap/references/feedback-memory-schema.md +135 -0
  286. package/skills/repo-bootstrap/references/git-hooks-setup.md +79 -0
  287. package/skills/repo-bootstrap/references/output-structure.md +124 -0
  288. package/skills/repo-bootstrap/references/scripts-guide.md +175 -0
  289. package/skills/repo-bootstrap/references/verification-guide.md +137 -0
  290. package/skills/repo-bootstrap/scripts/analyze-git-history.sh +315 -0
  291. package/skills/repo-bootstrap/scripts/check-freshness.sh +230 -0
  292. package/skills/repo-bootstrap/scripts/detect-golden-samples.sh +161 -0
  293. package/skills/repo-bootstrap/scripts/detect-heuristics.sh +93 -0
  294. package/skills/repo-bootstrap/scripts/detect-project.sh +486 -0
  295. package/skills/repo-bootstrap/scripts/detect-scopes.sh +330 -0
  296. package/skills/repo-bootstrap/scripts/detect-utilities.sh +133 -0
  297. package/skills/repo-bootstrap/scripts/extract-adrs.sh +194 -0
  298. package/skills/repo-bootstrap/scripts/extract-agent-configs.sh +331 -0
  299. package/skills/repo-bootstrap/scripts/extract-architecture-rules.sh +522 -0
  300. package/skills/repo-bootstrap/scripts/extract-ci-commands.sh +385 -0
  301. package/skills/repo-bootstrap/scripts/extract-ci-rules.sh +384 -0
  302. package/skills/repo-bootstrap/scripts/extract-commands.sh +358 -0
  303. package/skills/repo-bootstrap/scripts/extract-documentation.sh +308 -0
  304. package/skills/repo-bootstrap/scripts/extract-github-rulesets.sh +96 -0
  305. package/skills/repo-bootstrap/scripts/extract-github-settings.sh +88 -0
  306. package/skills/repo-bootstrap/scripts/extract-ide-settings.sh +228 -0
  307. package/skills/repo-bootstrap/scripts/extract-platform-files.sh +290 -0
  308. package/skills/repo-bootstrap/scripts/extract-quality-configs.sh +442 -0
  309. package/skills/repo-bootstrap/scripts/generate-agents.sh +2424 -0
  310. package/skills/repo-bootstrap/scripts/generate-file-map.sh +153 -0
  311. package/skills/repo-bootstrap/scripts/lib/config-root.sh +211 -0
  312. package/skills/repo-bootstrap/scripts/lib/summary.sh +244 -0
  313. package/skills/repo-bootstrap/scripts/lib/template.sh +397 -0
  314. package/skills/repo-bootstrap/scripts/validate-structure.sh +324 -0
  315. package/skills/repo-bootstrap/scripts/verify-commands.sh +615 -0
  316. package/skills/repo-bootstrap/scripts/verify-content.sh +302 -0
  317. package/skills/schema-api-contracts/SKILL.md +56 -0
  318. package/skills/secret-hygiene/SKILL.md +511 -0
  319. package/skills/secret-hygiene/assets/.gitkeep +9 -0
  320. package/skills/secret-hygiene/assets/config-balanced.toml +81 -0
  321. package/skills/secret-hygiene/assets/config-custom.toml +178 -0
  322. package/skills/secret-hygiene/assets/config-strict.toml +48 -0
  323. package/skills/secret-hygiene/assets/github-action.yml +181 -0
  324. package/skills/secret-hygiene/assets/gitlab-ci.yml +257 -0
  325. package/skills/secret-hygiene/assets/precommit-config.yaml +70 -0
  326. package/skills/secret-hygiene/references/EXAMPLE.md +40 -0
  327. package/skills/secret-hygiene/references/compliance_mapping.md +538 -0
  328. package/skills/secret-hygiene/references/detection_rules.md +276 -0
  329. package/skills/secret-hygiene/references/false_positives.md +598 -0
  330. package/skills/secret-hygiene/references/remediation_guide.md +530 -0
  331. package/skills/stack-selector/SKILL.md +56 -0
  332. package/skills/telegram-control/SKILL.md +110 -0
  333. package/skills/telegram-control/references/architecture.md +184 -0
  334. package/skills/telegram-control/references/convex.md +173 -0
  335. package/skills/telegram-control/references/error_handling.md +212 -0
  336. package/skills/telegram-control/references/initial_setup.md +165 -0
  337. package/skills/telegram-control/references/telegram_api.md +156 -0
  338. package/skills/telegram-control/scripts/cancel_message.ts +53 -0
  339. package/skills/telegram-control/scripts/list_scheduled.ts +103 -0
  340. package/skills/telegram-control/scripts/logger.ts +121 -0
  341. package/skills/telegram-control/scripts/proxy-util.ts +11 -0
  342. package/skills/telegram-control/scripts/schedule_message.ts +216 -0
  343. package/skills/telegram-control/scripts/send_message.ts +115 -0
  344. package/skills/telegram-control/scripts/setup.ts +185 -0
  345. package/skills/telegram-control/scripts/types.ts +75 -0
  346. package/skills/telegram-control/scripts/view_history.ts +74 -0
  347. package/skills/test-strategy/SKILL.md +352 -0
  348. package/skills/threat-model/SKILL.md +303 -0
  349. package/skills/threat-model/examples/example-output.md +196 -0
  350. package/skills/threat-model/template.md +96 -0
  351. package/skills/ts-lint/SKILL.md +80 -0
  352. package/skills/ui-flow/SKILL.md +668 -0
  353. package/skills/voice-command-router/SKILL.md +51 -0
  354. package/skills/widget-live-activity-sync/SKILL.md +66 -0
@@ -0,0 +1,453 @@
1
+ ---
2
+ name: dast-zap
3
+ synapta_original_name: dast-zap
4
+ triggers: [synapta DAST, ZAP, preview URL scan, OWASP Top 10, web vulnerability]
5
+ network: allowlist
6
+ source:
7
+ origin: https://github.com/AgentSecOps/SecOpsAgentKit
8
+ path: skills/appsec/dast-zap
9
+ commit: 6e25a4bc5743
10
+ license: see source repo
11
+ adapted: light-touch
12
+ description: >
13
+ Dynamic application security testing (DAST) using OWASP ZAP (Zed Attack Proxy) with passive and active scanning,
14
+ API testing, and OWASP Top 10 vulnerability detection. Use when: (1) Performing runtime security testing of web
15
+ applications and APIs, (2) Detecting vulnerabilities like XSS, SQL injection, and authentication flaws in deployed
16
+ applications, (3) Automating security scans in CI/CD pipelines with Docker containers, (4) Conducting authenticated
17
+ testing with session management, (5) Generating security reports with OWASP and CWE mappings for compliance.
18
+ version: 0.1.0
19
+ maintainer: SirAppSec
20
+ category: appsec
21
+ tags: [dast, zap, web-security, owasp, vulnerability-scanning, api-testing, penetration-testing]
22
+ frameworks: [OWASP, CWE]
23
+ dependencies:
24
+ tools: [docker]
25
+ optional: [python3, java]
26
+ references:
27
+ - https://www.zaproxy.org/docs/
28
+ - https://www.zaproxy.org/docs/docker/
29
+ - https://www.zaproxy.org/docs/desktop/start/features/
30
+ ---
31
+
32
+ # DAST with OWASP ZAP
33
+
34
+ ## Overview
35
+
36
+ OWASP ZAP (Zed Attack Proxy) is an open-source DAST tool that acts as a manipulator-in-the-middle proxy to intercept,
37
+ inspect, and test web application traffic for security vulnerabilities. ZAP provides automated passive and active
38
+ scanning, API testing capabilities, and seamless CI/CD integration for runtime security testing.
39
+
40
+ ## Quick Start
41
+
42
+ ### Baseline Scan (Docker)
43
+
44
+ Run a quick passive security scan:
45
+
46
+ ```bash
47
+ docker run -t zaproxy/zap-stable zap-baseline.py -t https://target-app.com -r baseline-report.html
48
+ ```
49
+
50
+ ### Full Active Scan (Docker)
51
+
52
+ Perform comprehensive active vulnerability testing:
53
+
54
+ ```bash
55
+ docker run -t zaproxy/zap-stable zap-full-scan.py -t https://target-app.com -r full-scan-report.html
56
+ ```
57
+
58
+ ### API Scan with OpenAPI Spec
59
+
60
+ Test APIs using OpenAPI/Swagger specification:
61
+
62
+ ```bash
63
+ docker run -v $(pwd):/zap/wrk/:rw -t zaproxy/zap-stable zap-api-scan.py \
64
+ -t https://api.target.com \
65
+ -f openapi \
66
+ -d /zap/wrk/openapi-spec.yaml \
67
+ -r /zap/wrk/api-report.html
68
+ ```
69
+
70
+ ## Core Workflow
71
+
72
+ ### Step 1: Define Scan Scope and Target
73
+
74
+ Identify the target application URL and define scope:
75
+
76
+ ```bash
77
+ # Set target URL
78
+ TARGET_URL="https://target-app.com"
79
+
80
+ # For authenticated scans, prepare authentication context
81
+ # See references/authentication_guide.md for detailed setup
82
+ ```
83
+
84
+ **Scope Considerations:**
85
+ - Exclude third-party domains and CDN URLs
86
+ - Include all application subdomains and API endpoints
87
+ - Respect scope limitations in penetration testing engagements
88
+
89
+ ### Step 2: Run Passive Scanning
90
+
91
+ Execute passive scanning to analyze traffic without active attacks:
92
+
93
+ ```bash
94
+ # Baseline scan performs spidering + passive scanning
95
+ docker run -t zaproxy/zap-stable zap-baseline.py \
96
+ -t $TARGET_URL \
97
+ -r baseline-report.html \
98
+ -J baseline-report.json
99
+ ```
100
+
101
+ **What Passive Scanning Detects:**
102
+ - Missing security headers (CSP, HSTS, X-Frame-Options)
103
+ - Information disclosure in responses
104
+ - Cookie security issues (HttpOnly, Secure flags)
105
+ - Basic authentication weaknesses
106
+ - Application fingerprinting data
107
+
108
+ ### Step 3: Execute Active Scanning
109
+
110
+ Perform active vulnerability testing (requires authorization):
111
+
112
+ ```bash
113
+ # Full scan includes spidering + passive + active scanning
114
+ docker run -t zaproxy/zap-stable zap-full-scan.py \
115
+ -t $TARGET_URL \
116
+ -r full-scan-report.html \
117
+ -J full-scan-report.json \
118
+ -z "-config api.addrs.addr.name=.* -config api.addrs.addr.regex=true"
119
+ ```
120
+
121
+ **Active Scanning Coverage:**
122
+ - SQL Injection (SQLi)
123
+ - Cross-Site Scripting (XSS)
124
+ - Path Traversal
125
+ - Command Injection
126
+ - XML External Entity (XXE)
127
+ - Server-Side Request Forgery (SSRF)
128
+ - Security Misconfigurations
129
+
130
+ **WARNING:** Active scanning performs real attacks. Only run against applications you have explicit authorization to test.
131
+
132
+ ### Step 4: Test APIs with Specifications
133
+
134
+ Scan REST, GraphQL, and SOAP APIs:
135
+
136
+ ```bash
137
+ # OpenAPI/Swagger API scan
138
+ docker run -v $(pwd):/zap/wrk/:rw -t zaproxy/zap-stable zap-api-scan.py \
139
+ -t https://api.target.com \
140
+ -f openapi \
141
+ -d /zap/wrk/openapi.yaml \
142
+ -r /zap/wrk/api-report.html
143
+
144
+ # GraphQL API scan
145
+ docker run -v $(pwd):/zap/wrk/:rw -t zaproxy/zap-stable zap-api-scan.py \
146
+ -t https://api.target.com/graphql \
147
+ -f graphql \
148
+ -d /zap/wrk/schema.graphql \
149
+ -r /zap/wrk/graphql-report.html
150
+ ```
151
+
152
+ Consult `references/api_testing_guide.md` for advanced API testing patterns including authentication and rate limiting.
153
+
154
+ ### Step 5: Handle Authentication
155
+
156
+ For testing authenticated application areas:
157
+
158
+ ```bash
159
+ # Use bundled script for authentication setup
160
+ python3 scripts/zap_auth_scanner.py \
161
+ --target $TARGET_URL \
162
+ --auth-type form \
163
+ --login-url https://target-app.com/login \
164
+ --username testuser \
165
+ --password-env ZAP_AUTH_PASSWORD \
166
+ --output auth-scan-report.html
167
+ ```
168
+
169
+ Authentication methods supported:
170
+ - Form-based authentication
171
+ - HTTP Basic/Digest authentication
172
+ - OAuth 2.0 flows
173
+ - API key/token authentication
174
+ - Script-based custom authentication
175
+
176
+ See `references/authentication_guide.md` for detailed authentication configuration.
177
+
178
+ ### Step 6: Analyze Results and Generate Reports
179
+
180
+ Review findings by risk level:
181
+
182
+ ```bash
183
+ # Generate multiple report formats
184
+ docker run -v $(pwd):/zap/wrk/:rw -t zaproxy/zap-stable zap-full-scan.py \
185
+ -t $TARGET_URL \
186
+ -r /zap/wrk/report.html \
187
+ -J /zap/wrk/report.json \
188
+ -x /zap/wrk/report.xml
189
+ ```
190
+
191
+ **Risk Levels:**
192
+ - **High**: Critical vulnerabilities requiring immediate remediation (SQLi, RCE, authentication bypass)
193
+ - **Medium**: Significant security weaknesses (XSS, CSRF, sensitive data exposure)
194
+ - **Low**: Security concerns with lower exploitability (information disclosure, minor misconfigurations)
195
+ - **Informational**: Security best practices and observations
196
+
197
+ Map findings to OWASP Top 10 using `references/owasp_mapping.md`.
198
+
199
+ ## Automation & CI/CD Integration
200
+
201
+ ### GitHub Actions Integration
202
+
203
+ Add ZAP scanning to GitHub workflows:
204
+
205
+ ```yaml
206
+ # .github/workflows/zap-scan.yml
207
+ name: ZAP Security Scan
208
+ on: [push, pull_request]
209
+
210
+ jobs:
211
+ zap_scan:
212
+ runs-on: ubuntu-latest
213
+ name: OWASP ZAP Baseline Scan
214
+ steps:
215
+ - name: Checkout
216
+ uses: actions/checkout@v2
217
+
218
+ - name: ZAP Baseline Scan
219
+ uses: zaproxy/action-baseline@v0.7.0
220
+ with:
221
+ target: 'https://staging.target-app.com'
222
+ rules_file_name: '.zap/rules.tsv'
223
+ cmd_options: '-a'
224
+ ```
225
+
226
+ ### Docker Automation Framework
227
+
228
+ Use YAML-based automation for advanced workflows:
229
+
230
+ ```bash
231
+ # Create automation config (see assets/zap_automation.yaml)
232
+ docker run -v $(pwd):/zap/wrk/:rw -t zaproxy/zap-stable \
233
+ zap.sh -cmd -autorun /zap/wrk/zap_automation.yaml
234
+ ```
235
+
236
+ The bundled `assets/zap_automation.yaml` template includes:
237
+ - Environment configuration
238
+ - Spider and AJAX spider settings
239
+ - Passive and active scan policies
240
+ - Authentication configuration
241
+ - Report generation
242
+
243
+ ### CI/CD Best Practices
244
+
245
+ - Use **baseline scans** for every commit/PR (low false positives)
246
+ - Run **full scans** on staging environments before production deployment
247
+ - Configure **API scans** for microservices and REST endpoints
248
+ - Set **failure thresholds** to break builds on high-severity findings
249
+ - Generate **SARIF reports** for GitHub Security tab integration
250
+
251
+ See `scripts/ci_integration.sh` for complete CI/CD integration examples.
252
+
253
+ ## Security Considerations
254
+
255
+ - **Authorization**: Always obtain written authorization before scanning production systems or third-party applications
256
+ - **Rate Limiting**: Configure scan speed to avoid overwhelming target applications or triggering DDoS protections
257
+ - **Sensitive Data**: Never include production credentials in scan configurations; use environment variables or secrets management
258
+ - **Scan Timing**: Run active scans during maintenance windows or against dedicated testing environments
259
+ - **Legal Compliance**: Adhere to computer fraud and abuse laws; unauthorized scanning may be illegal
260
+ - **Audit Logging**: Log all scan executions, targets, findings, and remediation actions for compliance audits
261
+ - **Data Retention**: Sanitize scan reports before sharing; they may contain sensitive application data
262
+ - **False Positives**: Manually verify findings before raising security incidents; DAST tools generate false positives
263
+
264
+ ## Bundled Resources
265
+
266
+ ### Scripts (`scripts/`)
267
+
268
+ - `zap_baseline_scan.sh` - Automated baseline scanning with configurable targets and reporting
269
+ - `zap_full_scan.sh` - Comprehensive active scanning with exclusion rules
270
+ - `zap_api_scan.py` - API testing with OpenAPI/GraphQL specification support
271
+ - `zap_auth_scanner.py` - Authenticated scanning with multiple authentication methods
272
+ - `ci_integration.sh` - CI/CD integration examples for Jenkins, GitLab CI, GitHub Actions
273
+
274
+ ### References (`references/`)
275
+
276
+ - `authentication_guide.md` - Complete authentication configuration for form-based, OAuth, and token authentication
277
+ - `owasp_mapping.md` - Mapping of ZAP alerts to OWASP Top 10 2021 and CWE classifications
278
+ - `api_testing_guide.md` - Advanced API testing patterns for REST, GraphQL, SOAP, and WebSocket
279
+ - `scan_policies.md` - Custom scan policy configuration for different application types
280
+ - `false_positive_handling.md` - Common false positives and verification techniques
281
+
282
+ ### Assets (`assets/`)
283
+
284
+ - `zap_automation.yaml` - Automation framework configuration template
285
+ - `zap_context.xml` - Context configuration with authentication and session management
286
+ - `scan_policy_modern_web.policy` - Scan policy optimized for modern JavaScript applications
287
+ - `scan_policy_api.policy` - Scan policy for REST and GraphQL APIs
288
+ - `github_action.yml` - GitHub Actions workflow template
289
+ - `gitlab_ci.yml` - GitLab CI pipeline template
290
+
291
+ ## Common Patterns
292
+
293
+ ### Pattern 1: Progressive Scanning (Speed vs. Coverage)
294
+
295
+ Start with fast scans and progressively increase depth:
296
+
297
+ ```bash
298
+ # Stage 1: Quick baseline scan (5-10 minutes)
299
+ docker run -t zaproxy/zap-stable zap-baseline.py -t $TARGET_URL -r baseline.html
300
+
301
+ # Stage 2: Full spider + passive scan (15-30 minutes)
302
+ docker run -t zaproxy/zap-stable zap-baseline.py -t $TARGET_URL -r baseline.html -c baseline-rules.tsv
303
+
304
+ # Stage 3: Targeted active scan on critical endpoints (1-2 hours)
305
+ docker run -t zaproxy/zap-stable zap-full-scan.py -t $TARGET_URL -r full.html -c full-rules.tsv
306
+ ```
307
+
308
+ ### Pattern 2: API-First Testing
309
+
310
+ Prioritize API security testing:
311
+
312
+ ```bash
313
+ # 1. Test API endpoints with specification
314
+ docker run -v $(pwd):/zap/wrk/:rw -t zaproxy/zap-stable zap-api-scan.py \
315
+ -t https://api.target.com -f openapi -d /zap/wrk/openapi.yaml -r /zap/wrk/api.html
316
+
317
+ # 2. Run active scan on discovered API endpoints
318
+ # (ZAP automatically includes spidered API routes)
319
+
320
+ # 3. Test authentication flows
321
+ python3 scripts/zap_auth_scanner.py --target https://api.target.com --auth-type bearer --token-env API_TOKEN
322
+ ```
323
+
324
+ ### Pattern 3: Authenticated Web Application Testing
325
+
326
+ Test complete application including protected areas:
327
+
328
+ ```bash
329
+ # 1. Configure authentication context
330
+ # See assets/zap_context.xml for template
331
+
332
+ # 2. Run authenticated scan
333
+ python3 scripts/zap_auth_scanner.py \
334
+ --target https://app.target.com \
335
+ --auth-type form \
336
+ --login-url https://app.target.com/login \
337
+ --username testuser \
338
+ --password-env APP_PASSWORD \
339
+ --verification-url https://app.target.com/dashboard \
340
+ --output authenticated-scan.html
341
+
342
+ # 3. Review session-specific vulnerabilities (CSRF, privilege escalation)
343
+ ```
344
+
345
+ ### Pattern 4: CI/CD Security Gate
346
+
347
+ Implement ZAP as a security gate in deployment pipelines:
348
+
349
+ ```bash
350
+ # Run baseline scan and fail build on high-risk findings
351
+ docker run -t zaproxy/zap-stable zap-baseline.py \
352
+ -t https://staging.target.com \
353
+ -r baseline-report.html \
354
+ -J baseline-report.json \
355
+ --hook=scripts/ci_integration.sh
356
+
357
+ # Check exit code
358
+ if [ $? -ne 0 ]; then
359
+ echo "Security scan failed! High-risk vulnerabilities detected."
360
+ exit 1
361
+ fi
362
+ ```
363
+
364
+ ## Integration Points
365
+
366
+ - **CI/CD**: GitHub Actions, GitLab CI, Jenkins, Azure DevOps, CircleCI
367
+ - **Issue Tracking**: Jira, GitHub Issues (via SARIF), ServiceNow
368
+ - **Security Tools**: Defect Dojo (vulnerability management), SonarQube, OWASP Dependency-Check
369
+ - **SDLC**: Pre-production testing phase, security regression testing, penetration testing preparation
370
+ - **Authentication**: Integrates with OAuth providers, SAML, API gateways, custom authentication scripts
371
+ - **Reporting**: HTML, JSON, XML, Markdown, SARIF (for GitHub Security), PDF (via custom scripts)
372
+
373
+ ## Troubleshooting
374
+
375
+ ### Issue: Docker Container Cannot Reach Target Application
376
+
377
+ **Solution**: For scanning applications running on localhost or in other containers:
378
+
379
+ ```bash
380
+ # Scanning host application from Docker container
381
+ # Use docker0 bridge IP instead of localhost
382
+ HOST_IP=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+')
383
+ docker run -t zaproxy/zap-stable zap-baseline.py -t http://$HOST_IP:8080
384
+
385
+ # Scanning between containers - create shared network
386
+ docker network create zap-network
387
+ docker run --network zap-network -t zaproxy/zap-stable zap-baseline.py -t http://app-container:8080
388
+ ```
389
+
390
+ ### Issue: Scan Completes Too Quickly (Incomplete Coverage)
391
+
392
+ **Solution**: Increase spider depth and scan duration:
393
+
394
+ ```bash
395
+ # Configure spider to crawl deeper
396
+ docker run -t zaproxy/zap-stable zap-baseline.py \
397
+ -t $TARGET_URL \
398
+ -r report.html \
399
+ -z "-config spider.maxDepth=10 -config spider.maxDuration=60"
400
+ ```
401
+
402
+ For JavaScript-heavy applications, use AJAX spider or Automation Framework.
403
+
404
+ ### Issue: High False Positive Rate
405
+
406
+ **Solution**: Create custom scan policy and rules file:
407
+
408
+ ```bash
409
+ # Use bundled false positive handling guide
410
+ # See references/false_positive_handling.md
411
+
412
+ # Generate rules file to suppress false positives
413
+ # Format: alert_id URL_pattern parameter CWE_id WARN|IGNORE|FAIL
414
+ echo "10202 https://target.com/static/.* .* 798 IGNORE" >> .zap/rules.tsv
415
+
416
+ docker run -t zaproxy/zap-stable zap-baseline.py -t $TARGET_URL -c .zap/rules.tsv
417
+ ```
418
+
419
+ ### Issue: Authentication Session Expires During Scan
420
+
421
+ **Solution**: Configure session re-authentication:
422
+
423
+ ```bash
424
+ # Use bundled authentication script with session monitoring
425
+ python3 scripts/zap_auth_scanner.py \
426
+ --target $TARGET_URL \
427
+ --auth-type form \
428
+ --login-url https://target.com/login \
429
+ --username testuser \
430
+ --password-env PASSWORD \
431
+ --re-authenticate-on 401,403 \
432
+ --verification-interval 300
433
+ ```
434
+
435
+ ### Issue: Scan Triggering Rate Limiting or WAF Blocking
436
+
437
+ **Solution**: Reduce scan aggressiveness:
438
+
439
+ ```bash
440
+ # Slower scan with delays between requests
441
+ docker run -t zaproxy/zap-stable zap-baseline.py \
442
+ -t $TARGET_URL \
443
+ -r report.html \
444
+ -z "-config scanner.threadPerHost=1 -config scanner.delayInMs=1000"
445
+ ```
446
+
447
+ ## References
448
+
449
+ - [OWASP ZAP Documentation](https://www.zaproxy.org/docs/)
450
+ - [ZAP Docker Documentation](https://www.zaproxy.org/docs/docker/)
451
+ - [OWASP Top 10 2021](https://owasp.org/Top10/)
452
+ - [ZAP Automation Framework](https://www.zaproxy.org/docs/automate/automation-framework/)
453
+ - [GitHub Actions for ZAP](https://github.com/zaproxy/action-baseline)
@@ -0,0 +1,9 @@
1
+ # Assets Directory
2
+
3
+ Place files that will be used in the output Claude produces:
4
+ - Templates
5
+ - Configuration files
6
+ - Images/logos
7
+ - Boilerplate code
8
+
9
+ These files are NOT loaded into context but copied/modified in output.
@@ -0,0 +1,207 @@
1
+ # GitHub Actions Workflow for OWASP ZAP Security Scanning
2
+ # Place this file in .github/workflows/zap-security-scan.yml
3
+
4
+ name: OWASP ZAP Security Scan
5
+
6
+ on:
7
+ push:
8
+ branches: [main, develop]
9
+ pull_request:
10
+ branches: [main]
11
+ schedule:
12
+ # Run weekly security scans on Sunday at 2 AM
13
+ - cron: '0 2 * * 0'
14
+ workflow_dispatch: # Allow manual triggering
15
+
16
+ permissions:
17
+ contents: read
18
+ security-events: write # For uploading SARIF reports
19
+ issues: write # For creating security issues
20
+
21
+ jobs:
22
+ zap-baseline-scan:
23
+ name: ZAP Baseline Scan (PR/Push)
24
+ runs-on: ubuntu-latest
25
+ if: github.event_name == 'pull_request' || github.event_name == 'push'
26
+
27
+ steps:
28
+ - name: Checkout code
29
+ uses: actions/checkout@v4
30
+
31
+ - name: Run ZAP Baseline Scan
32
+ uses: zaproxy/action-baseline@v0.10.0
33
+ with:
34
+ target: ${{ secrets.STAGING_URL }}
35
+ rules_file_name: '.zap/rules.tsv'
36
+ cmd_options: '-a -j'
37
+ fail_action: true
38
+ allow_issue_writing: false
39
+
40
+ - name: Upload ZAP Scan Report
41
+ uses: actions/upload-artifact@v4
42
+ if: always()
43
+ with:
44
+ name: zap-baseline-report
45
+ path: |
46
+ report_html.html
47
+ report_json.json
48
+ retention-days: 30
49
+
50
+ - name: Create Issue on Failure
51
+ if: failure()
52
+ uses: actions/github-script@v7
53
+ with:
54
+ script: |
55
+ github.rest.issues.create({
56
+ owner: context.repo.owner,
57
+ repo: context.repo.repo,
58
+ title: '🔒 ZAP Baseline Scan Found Security Issues',
59
+ body: 'ZAP baseline scan detected security vulnerabilities. Please review the scan report in the workflow artifacts.',
60
+ labels: ['security', 'automated']
61
+ })
62
+
63
+ zap-full-scan:
64
+ name: ZAP Full Active Scan (Staging)
65
+ runs-on: ubuntu-latest
66
+ if: github.ref == 'refs/heads/develop' || github.event_name == 'schedule'
67
+
68
+ steps:
69
+ - name: Checkout code
70
+ uses: actions/checkout@v4
71
+
72
+ - name: Run ZAP Full Scan
73
+ uses: zaproxy/action-full-scan@v0.8.0
74
+ with:
75
+ target: ${{ secrets.STAGING_URL }}
76
+ rules_file_name: '.zap/rules.tsv'
77
+ cmd_options: '-a -j -x report.xml'
78
+ fail_action: true
79
+ allow_issue_writing: true
80
+ issue_title: 'ZAP Full Scan: Security Vulnerabilities Detected'
81
+
82
+ - name: Upload ZAP Full Scan Report
83
+ uses: actions/upload-artifact@v4
84
+ if: always()
85
+ with:
86
+ name: zap-full-scan-report
87
+ path: |
88
+ report_html.html
89
+ report_json.json
90
+ report.xml
91
+ retention-days: 90
92
+
93
+ - name: Upload SARIF Report to GitHub Security
94
+ uses: github/codeql-action/upload-sarif@v3
95
+ if: always()
96
+ with:
97
+ sarif_file: report.xml
98
+
99
+ zap-api-scan:
100
+ name: ZAP API Scan
101
+ runs-on: ubuntu-latest
102
+ if: github.event_name == 'push' || github.event_name == 'pull_request'
103
+
104
+ steps:
105
+ - name: Checkout code
106
+ uses: actions/checkout@v4
107
+
108
+ - name: Run ZAP API Scan
109
+ uses: zaproxy/action-api-scan@v0.6.0
110
+ with:
111
+ target: ${{ secrets.API_URL }}
112
+ format: openapi
113
+ api_spec_file: './openapi.yaml'
114
+ cmd_options: '-a -j'
115
+ fail_action: true
116
+
117
+ - name: Upload API Scan Report
118
+ uses: actions/upload-artifact@v4
119
+ if: always()
120
+ with:
121
+ name: zap-api-scan-report
122
+ path: |
123
+ report_html.html
124
+ report_json.json
125
+ retention-days: 30
126
+
127
+ zap-authenticated-scan:
128
+ name: ZAP Authenticated Scan
129
+ runs-on: ubuntu-latest
130
+ if: github.ref == 'refs/heads/develop'
131
+
132
+ steps:
133
+ - name: Checkout code
134
+ uses: actions/checkout@v4
135
+
136
+ - name: Setup Python
137
+ uses: actions/setup-python@v5
138
+ with:
139
+ python-version: '3.11'
140
+
141
+ - name: Run Authenticated Scan
142
+ env:
143
+ APP_PASSWORD: ${{ secrets.TEST_USER_PASSWORD }}
144
+ TARGET_URL: ${{ secrets.STAGING_URL }}
145
+ run: |
146
+ python3 scripts/zap_auth_scanner.py \
147
+ --target $TARGET_URL \
148
+ --auth-type form \
149
+ --login-url $TARGET_URL/login \
150
+ --username testuser \
151
+ --password-env APP_PASSWORD \
152
+ --output ./authenticated-scan-report.html
153
+
154
+ - name: Upload Authenticated Scan Report
155
+ uses: actions/upload-artifact@v4
156
+ if: always()
157
+ with:
158
+ name: zap-authenticated-scan-report
159
+ path: authenticated-scan-report.*
160
+ retention-days: 90
161
+
162
+ security-gate:
163
+ name: Security Gate Check
164
+ runs-on: ubuntu-latest
165
+ needs: [zap-baseline-scan]
166
+ if: always()
167
+
168
+ steps:
169
+ - name: Download Scan Results
170
+ uses: actions/download-artifact@v4
171
+ with:
172
+ name: zap-baseline-report
173
+
174
+ - name: Check Security Thresholds
175
+ run: |
176
+ # Install jq for JSON parsing
177
+ sudo apt-get update && sudo apt-get install -y jq
178
+
179
+ # Count high and medium findings
180
+ HIGH_COUNT=$(jq '[.site[].alerts[] | select(.risk == "High")] | length' report_json.json)
181
+ MEDIUM_COUNT=$(jq '[.site[].alerts[] | select(.risk == "Medium")] | length' report_json.json)
182
+
183
+ echo "High risk findings: $HIGH_COUNT"
184
+ echo "Medium risk findings: $MEDIUM_COUNT"
185
+
186
+ # Fail if thresholds exceeded
187
+ if [ "$HIGH_COUNT" -gt 0 ]; then
188
+ echo "❌ Security gate failed: $HIGH_COUNT high-risk vulnerabilities found"
189
+ exit 1
190
+ fi
191
+
192
+ if [ "$MEDIUM_COUNT" -gt 10 ]; then
193
+ echo "❌ Security gate failed: $MEDIUM_COUNT medium-risk vulnerabilities (max: 10)"
194
+ exit 1
195
+ fi
196
+
197
+ echo "✅ Security gate passed"
198
+
199
+ - name: Post Summary
200
+ if: always()
201
+ run: |
202
+ echo "## Security Scan Summary" >> $GITHUB_STEP_SUMMARY
203
+ echo "" >> $GITHUB_STEP_SUMMARY
204
+ echo "| Risk Level | Count |" >> $GITHUB_STEP_SUMMARY
205
+ echo "|------------|-------|" >> $GITHUB_STEP_SUMMARY
206
+ jq -r '.site[].alerts[] | .risk' report_json.json | sort | uniq -c | \
207
+ awk '{print "| " $2 " | " $1 " |"}' >> $GITHUB_STEP_SUMMARY