@synapta/skills 0.1.0 → 0.1.2

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 (353) 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-discovery/SKILL.md +517 -0
  23. package/skills/concept-discovery/assets/sample-analysis.json +81 -0
  24. package/skills/concept-discovery/expected_outputs/sample-enum-dictionary.md +25 -0
  25. package/skills/concept-discovery/expected_outputs/sample-page-user-list.md +83 -0
  26. package/skills/concept-discovery/expected_outputs/sample-prd-readme.md +43 -0
  27. package/skills/concept-discovery/references/framework-patterns.md +228 -0
  28. package/skills/concept-discovery/references/prd-quality-checklist.md +65 -0
  29. package/skills/concept-discovery/scripts/codebase_analyzer.py +732 -0
  30. package/skills/concept-discovery/scripts/prd_scaffolder.py +435 -0
  31. package/skills/dast-zap/SKILL.md +453 -0
  32. package/skills/dast-zap/assets/.gitkeep +9 -0
  33. package/skills/dast-zap/assets/github_action.yml +207 -0
  34. package/skills/dast-zap/assets/gitlab_ci.yml +226 -0
  35. package/skills/dast-zap/assets/zap_automation.yaml +196 -0
  36. package/skills/dast-zap/assets/zap_context.xml +192 -0
  37. package/skills/dast-zap/references/EXAMPLE.md +40 -0
  38. package/skills/dast-zap/references/api_testing_guide.md +475 -0
  39. package/skills/dast-zap/references/authentication_guide.md +431 -0
  40. package/skills/dast-zap/references/false_positive_handling.md +427 -0
  41. package/skills/dast-zap/references/owasp_mapping.md +255 -0
  42. package/skills/dep-sbom-scan/SKILL.md +466 -0
  43. package/skills/deploy-cloudflare/SKILL.md +930 -0
  44. package/skills/deploy-docker/SKILL.md +55 -0
  45. package/skills/deploy-fly/SKILL.md +228 -0
  46. package/skills/deploy-k8s/SKILL.md +108 -0
  47. package/skills/deploy-k8s/assets/logo.png +0 -0
  48. package/skills/deploy-k8s/docs/README.md +29 -0
  49. package/skills/deploy-k8s/docs/SUMMARY.md +56 -0
  50. package/skills/deploy-k8s/docs/advanced/token-efficiency.md +61 -0
  51. package/skills/deploy-k8s/docs/architecture/multi-tenancy.md +96 -0
  52. package/skills/deploy-k8s/docs/architecture/storage-and-state.md +102 -0
  53. package/skills/deploy-k8s/docs/architecture/workload-patterns.md +87 -0
  54. package/skills/deploy-k8s/docs/book.json +16 -0
  55. package/skills/deploy-k8s/docs/community/changelog.md +34 -0
  56. package/skills/deploy-k8s/docs/community/contributing.md +67 -0
  57. package/skills/deploy-k8s/docs/core-concepts/failure-modes.md +153 -0
  58. package/skills/deploy-k8s/docs/core-concepts/philosophy.md +83 -0
  59. package/skills/deploy-k8s/docs/core-concepts/workflow.md +124 -0
  60. package/skills/deploy-k8s/docs/examples/bad-patterns.md +47 -0
  61. package/skills/deploy-k8s/docs/examples/do-dont-checklist.md +37 -0
  62. package/skills/deploy-k8s/docs/examples/good-patterns.md +49 -0
  63. package/skills/deploy-k8s/docs/failure-modes/api-drift.md +104 -0
  64. package/skills/deploy-k8s/docs/failure-modes/fragile-rollouts.md +99 -0
  65. package/skills/deploy-k8s/docs/failure-modes/insecure-workload-defaults.md +80 -0
  66. package/skills/deploy-k8s/docs/failure-modes/network-exposure.md +98 -0
  67. package/skills/deploy-k8s/docs/failure-modes/privilege-sprawl.md +91 -0
  68. package/skills/deploy-k8s/docs/failure-modes/resource-starvation.md +85 -0
  69. package/skills/deploy-k8s/docs/getting-started/installation.md +152 -0
  70. package/skills/deploy-k8s/docs/getting-started/quick-start.md +115 -0
  71. package/skills/deploy-k8s/docs/guides/helm-patterns.md +71 -0
  72. package/skills/deploy-k8s/docs/guides/kustomize-patterns.md +65 -0
  73. package/skills/deploy-k8s/docs/guides/observability.md +67 -0
  74. package/skills/deploy-k8s/docs/guides/security-hardening.md +59 -0
  75. package/skills/deploy-k8s/docs/guides/validation-and-policy.md +66 -0
  76. package/skills/deploy-k8s/docs/integrations/mcp-integration.md +52 -0
  77. package/skills/deploy-k8s/docs/package-lock.json +2892 -0
  78. package/skills/deploy-k8s/docs/package.json +13 -0
  79. package/skills/deploy-k8s/references/api-drift.md +298 -0
  80. package/skills/deploy-k8s/references/conditional/aks-patterns.md +70 -0
  81. package/skills/deploy-k8s/references/conditional/eks-patterns.md +79 -0
  82. package/skills/deploy-k8s/references/conditional/gitops-controllers.md +71 -0
  83. package/skills/deploy-k8s/references/conditional/gke-patterns.md +74 -0
  84. package/skills/deploy-k8s/references/conditional/observability-stacks.md +80 -0
  85. package/skills/deploy-k8s/references/conditional/openshift-patterns.md +67 -0
  86. package/skills/deploy-k8s/references/daemonset-operator-patterns.md +155 -0
  87. package/skills/deploy-k8s/references/deployment-patterns.md +146 -0
  88. package/skills/deploy-k8s/references/do-dont-patterns.md +87 -0
  89. package/skills/deploy-k8s/references/examples-bad.md +282 -0
  90. package/skills/deploy-k8s/references/examples-good.md +440 -0
  91. package/skills/deploy-k8s/references/fragile-rollouts.md +303 -0
  92. package/skills/deploy-k8s/references/helm-patterns.md +203 -0
  93. package/skills/deploy-k8s/references/insecure-workload-defaults.md +300 -0
  94. package/skills/deploy-k8s/references/job-patterns.md +120 -0
  95. package/skills/deploy-k8s/references/kustomize-patterns.md +239 -0
  96. package/skills/deploy-k8s/references/multi-tenancy.md +343 -0
  97. package/skills/deploy-k8s/references/network-exposure.md +481 -0
  98. package/skills/deploy-k8s/references/observability.md +302 -0
  99. package/skills/deploy-k8s/references/privilege-sprawl.md +273 -0
  100. package/skills/deploy-k8s/references/resource-starvation.md +374 -0
  101. package/skills/deploy-k8s/references/security-hardening.md +209 -0
  102. package/skills/deploy-k8s/references/stateful-patterns.md +130 -0
  103. package/skills/deploy-k8s/references/storage-and-state.md +330 -0
  104. package/skills/deploy-k8s/references/validation-and-policy.md +242 -0
  105. package/skills/deploy-railway/SKILL.md +235 -0
  106. package/skills/deploy-railway/references/analyze-db-mongo.md +84 -0
  107. package/skills/deploy-railway/references/analyze-db-mysql.md +254 -0
  108. package/skills/deploy-railway/references/analyze-db-postgres.md +479 -0
  109. package/skills/deploy-railway/references/analyze-db-redis.md +208 -0
  110. package/skills/deploy-railway/references/analyze-db.md +344 -0
  111. package/skills/deploy-railway/references/configure.md +309 -0
  112. package/skills/deploy-railway/references/deploy.md +195 -0
  113. package/skills/deploy-railway/references/operate.md +214 -0
  114. package/skills/deploy-railway/references/request.md +248 -0
  115. package/skills/deploy-railway/references/setup.md +312 -0
  116. package/skills/deploy-railway/scripts/analyze-mongo.py +1549 -0
  117. package/skills/deploy-railway/scripts/analyze-mysql.py +1195 -0
  118. package/skills/deploy-railway/scripts/analyze-postgres.py +3058 -0
  119. package/skills/deploy-railway/scripts/analyze-redis.py +1090 -0
  120. package/skills/deploy-railway/scripts/dal.py +671 -0
  121. package/skills/deploy-railway/scripts/enable-pg-stats.py +170 -0
  122. package/skills/deploy-railway/scripts/pg-extensions.py +370 -0
  123. package/skills/deploy-railway/scripts/railway-api.sh +52 -0
  124. package/skills/deploy-ssh/SKILL.md +91 -0
  125. package/skills/deploy-vercel/SKILL.md +304 -0
  126. package/skills/deploy-vercel/resources/deploy-codex.sh +301 -0
  127. package/skills/deploy-vercel/resources/deploy.sh +301 -0
  128. package/skills/docs-runbooks/SKILL.md +399 -0
  129. package/skills/drive-status-renderer/SKILL.md +62 -0
  130. package/skills/iac-scan/SKILL.md +680 -0
  131. package/skills/iac-scan/assets/.gitkeep +9 -0
  132. package/skills/iac-scan/assets/checkov_config.yaml +94 -0
  133. package/skills/iac-scan/assets/github_actions.yml +199 -0
  134. package/skills/iac-scan/assets/gitlab_ci.yml +218 -0
  135. package/skills/iac-scan/assets/pre_commit_config.yaml +92 -0
  136. package/skills/iac-scan/references/EXAMPLE.md +40 -0
  137. package/skills/iac-scan/references/compliance_mapping.md +237 -0
  138. package/skills/iac-scan/references/custom_policies.md +460 -0
  139. package/skills/iac-scan/references/suppression_guide.md +431 -0
  140. package/skills/incident-briefing/SKILL.md +66 -0
  141. package/skills/incident-triage/SKILL.md +481 -0
  142. package/{LICENSE → skills/mcp-builder/LICENSE.txt} +15 -14
  143. package/skills/mcp-builder/SKILL.md +244 -0
  144. package/skills/mcp-builder/reference/evaluation.md +602 -0
  145. package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  146. package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  147. package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  148. package/skills/mcp-builder/scripts/connections.py +151 -0
  149. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  150. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  151. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  152. package/skills/mobile-pairing/SKILL.md +52 -0
  153. package/skills/ops-sre/SKILL.md +297 -0
  154. package/skills/playwright-qa/LICENSE.txt +201 -0
  155. package/skills/playwright-qa/NOTICE.txt +14 -0
  156. package/skills/playwright-qa/SKILL.md +156 -0
  157. package/skills/playwright-qa/agents/openai.yaml +6 -0
  158. package/skills/playwright-qa/assets/playwright-small.svg +3 -0
  159. package/skills/playwright-qa/assets/playwright.png +0 -0
  160. package/skills/playwright-qa/references/cli.md +116 -0
  161. package/skills/playwright-qa/references/workflows.md +95 -0
  162. package/skills/playwright-qa/scripts/playwright_cli.sh +25 -0
  163. package/skills/release-publish/SKILL.md +85 -0
  164. package/skills/repo-bootstrap/SKILL.md +92 -0
  165. package/skills/repo-bootstrap/assets/example-workflows/validate-agents.yml +89 -0
  166. package/skills/repo-bootstrap/assets/root-thin.md +141 -0
  167. package/skills/repo-bootstrap/assets/root-verbose.md +149 -0
  168. package/skills/repo-bootstrap/assets/scoped/backend-go.md +107 -0
  169. package/skills/repo-bootstrap/assets/scoped/backend-php.md +94 -0
  170. package/skills/repo-bootstrap/assets/scoped/backend-python.md +84 -0
  171. package/skills/repo-bootstrap/assets/scoped/backend-typescript.md +89 -0
  172. package/skills/repo-bootstrap/assets/scoped/claude-code-skill.md +101 -0
  173. package/skills/repo-bootstrap/assets/scoped/cli.md +83 -0
  174. package/skills/repo-bootstrap/assets/scoped/concourse.md +196 -0
  175. package/skills/repo-bootstrap/assets/scoped/ddev.md +68 -0
  176. package/skills/repo-bootstrap/assets/scoped/docker.md +160 -0
  177. package/skills/repo-bootstrap/assets/scoped/documentation.md +98 -0
  178. package/skills/repo-bootstrap/assets/scoped/examples.md +96 -0
  179. package/skills/repo-bootstrap/assets/scoped/frontend-typescript.md +88 -0
  180. package/skills/repo-bootstrap/assets/scoped/github-actions.md +174 -0
  181. package/skills/repo-bootstrap/assets/scoped/gitlab-ci.md +174 -0
  182. package/skills/repo-bootstrap/assets/scoped/oro-bundle.md +209 -0
  183. package/skills/repo-bootstrap/assets/scoped/oro-project.md +170 -0
  184. package/skills/repo-bootstrap/assets/scoped/python-modern.md +170 -0
  185. package/skills/repo-bootstrap/assets/scoped/resources.md +96 -0
  186. package/skills/repo-bootstrap/assets/scoped/skill-repo.md +139 -0
  187. package/skills/repo-bootstrap/assets/scoped/symfony.md +168 -0
  188. package/skills/repo-bootstrap/assets/scoped/testing.md +87 -0
  189. package/skills/repo-bootstrap/assets/scoped/typo3-docs.md +103 -0
  190. package/skills/repo-bootstrap/assets/scoped/typo3-extension.md +133 -0
  191. package/skills/repo-bootstrap/assets/scoped/typo3-project.md +137 -0
  192. package/skills/repo-bootstrap/assets/scoped/typo3-testing.md +80 -0
  193. package/skills/repo-bootstrap/checkpoints.yaml +279 -0
  194. package/skills/repo-bootstrap/evals/evals.json +385 -0
  195. package/skills/repo-bootstrap/references/ai-contribution-guidelines.md +63 -0
  196. package/skills/repo-bootstrap/references/ai-tool-compatibility.md +223 -0
  197. package/skills/repo-bootstrap/references/directory-coverage.md +82 -0
  198. package/skills/repo-bootstrap/references/examples/coding-agent-cli/AGENTS.md +70 -0
  199. package/skills/repo-bootstrap/references/examples/coding-agent-cli/go.mod +3 -0
  200. package/skills/repo-bootstrap/references/examples/coding-agent-cli/scripts-AGENTS.md +389 -0
  201. package/skills/repo-bootstrap/references/examples/express-api-ts/.env.example +13 -0
  202. package/skills/repo-bootstrap/references/examples/express-api-ts/AGENTS.md +91 -0
  203. package/skills/repo-bootstrap/references/examples/express-api-ts/package.json +33 -0
  204. package/skills/repo-bootstrap/references/examples/express-api-ts/pnpm-lock.yaml +3 -0
  205. package/skills/repo-bootstrap/references/examples/express-api-ts/src/AGENTS.md +91 -0
  206. package/skills/repo-bootstrap/references/examples/express-api-ts/src/config.ts +28 -0
  207. package/skills/repo-bootstrap/references/examples/express-api-ts/src/controllers/userController.ts +74 -0
  208. package/skills/repo-bootstrap/references/examples/express-api-ts/src/index.ts +26 -0
  209. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/errorHandler.ts +45 -0
  210. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/requestLogger.ts +18 -0
  211. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/health.ts +18 -0
  212. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/users.ts +13 -0
  213. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/errors.ts +40 -0
  214. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/logger.ts +14 -0
  215. package/skills/repo-bootstrap/references/examples/express-api-ts/tsconfig.json +24 -0
  216. package/skills/repo-bootstrap/references/examples/fastapi-app/.env.example +19 -0
  217. package/skills/repo-bootstrap/references/examples/fastapi-app/AGENTS.md +92 -0
  218. package/skills/repo-bootstrap/references/examples/fastapi-app/pyproject.toml +88 -0
  219. package/skills/repo-bootstrap/references/examples/fastapi-app/src/AGENTS.md +85 -0
  220. package/skills/repo-bootstrap/references/examples/fastapi-app/src/__init__.py +3 -0
  221. package/skills/repo-bootstrap/references/examples/fastapi-app/src/config.py +49 -0
  222. package/skills/repo-bootstrap/references/examples/fastapi-app/src/main.py +66 -0
  223. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/__init__.py +13 -0
  224. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/item.py +43 -0
  225. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/user.py +40 -0
  226. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/__init__.py +5 -0
  227. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/health.py +20 -0
  228. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/items.py +61 -0
  229. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/users.py +55 -0
  230. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/__init__.py +6 -0
  231. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/item_service.py +77 -0
  232. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/user_service.py +69 -0
  233. package/skills/repo-bootstrap/references/examples/fastapi-app/uv.lock +4 -0
  234. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/.scopes +3 -0
  235. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/AGENTS.md +86 -0
  236. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/package.json +20 -0
  237. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/src/App.tsx +5 -0
  238. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/cmd/api/main.go +7 -0
  239. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/go.mod +2 -0
  240. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/main.go +7 -0
  241. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/.scopes +3 -0
  242. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/AGENTS.md +89 -0
  243. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/go.mod +2 -0
  244. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/AGENTS.md +90 -0
  245. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/package.json +17 -0
  246. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/App.tsx +1 -0
  247. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Button.tsx +1 -0
  248. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Footer.tsx +1 -0
  249. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Header.tsx +1 -0
  250. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Sidebar.tsx +1 -0
  251. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/main.go +7 -0
  252. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package-lock.json +0 -0
  253. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package.json +12 -0
  254. package/skills/repo-bootstrap/references/examples/ldap-selfservice/AGENTS.md +70 -0
  255. package/skills/repo-bootstrap/references/examples/ldap-selfservice/go.mod +3 -0
  256. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-AGENTS.md +371 -0
  257. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-web-AGENTS.md +448 -0
  258. package/skills/repo-bootstrap/references/examples/php-with-frontend/.scopes +3 -0
  259. package/skills/repo-bootstrap/references/examples/php-with-frontend/AGENTS.md +91 -0
  260. package/skills/repo-bootstrap/references/examples/php-with-frontend/composer.json +8 -0
  261. package/skills/repo-bootstrap/references/examples/php-with-frontend/package.json +15 -0
  262. package/skills/repo-bootstrap/references/examples/php-with-frontend/pnpm-lock.yaml +0 -0
  263. package/skills/repo-bootstrap/references/examples/php-with-frontend/src/Controller.php +3 -0
  264. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/AGENTS.md +92 -0
  265. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/package.json +26 -0
  266. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/App.tsx +3 -0
  267. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Button.tsx +10 -0
  268. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Footer.tsx +9 -0
  269. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Header.tsx +9 -0
  270. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/main.tsx +3 -0
  271. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/tsconfig.json +13 -0
  272. package/skills/repo-bootstrap/references/examples/pnpm-workspace/AGENTS.md +75 -0
  273. package/skills/repo-bootstrap/references/examples/pnpm-workspace/package.json +7 -0
  274. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/package.json +11 -0
  275. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/src/index.ts +11 -0
  276. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-lock.yaml +42 -0
  277. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-workspace.yaml +2 -0
  278. package/skills/repo-bootstrap/references/examples/simple-ldap-go/AGENTS.md +70 -0
  279. package/skills/repo-bootstrap/references/examples/simple-ldap-go/examples-AGENTS.md +45 -0
  280. package/skills/repo-bootstrap/references/examples/simple-ldap-go/go.mod +3 -0
  281. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/AGENTS.md +70 -0
  282. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md +392 -0
  283. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/composer.json +8 -0
  284. package/skills/repo-bootstrap/references/feedback-memory-schema.md +135 -0
  285. package/skills/repo-bootstrap/references/git-hooks-setup.md +79 -0
  286. package/skills/repo-bootstrap/references/output-structure.md +124 -0
  287. package/skills/repo-bootstrap/references/scripts-guide.md +175 -0
  288. package/skills/repo-bootstrap/references/verification-guide.md +137 -0
  289. package/skills/repo-bootstrap/scripts/analyze-git-history.sh +315 -0
  290. package/skills/repo-bootstrap/scripts/check-freshness.sh +230 -0
  291. package/skills/repo-bootstrap/scripts/detect-golden-samples.sh +161 -0
  292. package/skills/repo-bootstrap/scripts/detect-heuristics.sh +93 -0
  293. package/skills/repo-bootstrap/scripts/detect-project.sh +486 -0
  294. package/skills/repo-bootstrap/scripts/detect-scopes.sh +330 -0
  295. package/skills/repo-bootstrap/scripts/detect-utilities.sh +133 -0
  296. package/skills/repo-bootstrap/scripts/extract-adrs.sh +194 -0
  297. package/skills/repo-bootstrap/scripts/extract-agent-configs.sh +331 -0
  298. package/skills/repo-bootstrap/scripts/extract-architecture-rules.sh +522 -0
  299. package/skills/repo-bootstrap/scripts/extract-ci-commands.sh +385 -0
  300. package/skills/repo-bootstrap/scripts/extract-ci-rules.sh +384 -0
  301. package/skills/repo-bootstrap/scripts/extract-commands.sh +358 -0
  302. package/skills/repo-bootstrap/scripts/extract-documentation.sh +308 -0
  303. package/skills/repo-bootstrap/scripts/extract-github-rulesets.sh +96 -0
  304. package/skills/repo-bootstrap/scripts/extract-github-settings.sh +88 -0
  305. package/skills/repo-bootstrap/scripts/extract-ide-settings.sh +228 -0
  306. package/skills/repo-bootstrap/scripts/extract-platform-files.sh +290 -0
  307. package/skills/repo-bootstrap/scripts/extract-quality-configs.sh +442 -0
  308. package/skills/repo-bootstrap/scripts/generate-agents.sh +2424 -0
  309. package/skills/repo-bootstrap/scripts/generate-file-map.sh +153 -0
  310. package/skills/repo-bootstrap/scripts/lib/config-root.sh +211 -0
  311. package/skills/repo-bootstrap/scripts/lib/summary.sh +244 -0
  312. package/skills/repo-bootstrap/scripts/lib/template.sh +397 -0
  313. package/skills/repo-bootstrap/scripts/validate-structure.sh +324 -0
  314. package/skills/repo-bootstrap/scripts/verify-commands.sh +615 -0
  315. package/skills/repo-bootstrap/scripts/verify-content.sh +302 -0
  316. package/skills/schema-api-contracts/SKILL.md +56 -0
  317. package/skills/secret-hygiene/SKILL.md +511 -0
  318. package/skills/secret-hygiene/assets/.gitkeep +9 -0
  319. package/skills/secret-hygiene/assets/config-balanced.toml +81 -0
  320. package/skills/secret-hygiene/assets/config-custom.toml +178 -0
  321. package/skills/secret-hygiene/assets/config-strict.toml +48 -0
  322. package/skills/secret-hygiene/assets/github-action.yml +181 -0
  323. package/skills/secret-hygiene/assets/gitlab-ci.yml +257 -0
  324. package/skills/secret-hygiene/assets/precommit-config.yaml +70 -0
  325. package/skills/secret-hygiene/references/EXAMPLE.md +40 -0
  326. package/skills/secret-hygiene/references/compliance_mapping.md +538 -0
  327. package/skills/secret-hygiene/references/detection_rules.md +276 -0
  328. package/skills/secret-hygiene/references/false_positives.md +598 -0
  329. package/skills/secret-hygiene/references/remediation_guide.md +530 -0
  330. package/skills/stack-selector/SKILL.md +56 -0
  331. package/skills/telegram-control/SKILL.md +110 -0
  332. package/skills/telegram-control/references/architecture.md +184 -0
  333. package/skills/telegram-control/references/convex.md +173 -0
  334. package/skills/telegram-control/references/error_handling.md +212 -0
  335. package/skills/telegram-control/references/initial_setup.md +165 -0
  336. package/skills/telegram-control/references/telegram_api.md +156 -0
  337. package/skills/telegram-control/scripts/cancel_message.ts +53 -0
  338. package/skills/telegram-control/scripts/list_scheduled.ts +103 -0
  339. package/skills/telegram-control/scripts/logger.ts +121 -0
  340. package/skills/telegram-control/scripts/proxy-util.ts +11 -0
  341. package/skills/telegram-control/scripts/schedule_message.ts +216 -0
  342. package/skills/telegram-control/scripts/send_message.ts +115 -0
  343. package/skills/telegram-control/scripts/setup.ts +185 -0
  344. package/skills/telegram-control/scripts/types.ts +75 -0
  345. package/skills/telegram-control/scripts/view_history.ts +74 -0
  346. package/skills/test-strategy/SKILL.md +352 -0
  347. package/skills/threat-model/SKILL.md +303 -0
  348. package/skills/threat-model/examples/example-output.md +196 -0
  349. package/skills/threat-model/template.md +96 -0
  350. package/skills/ts-lint/SKILL.md +80 -0
  351. package/skills/ui-flow/SKILL.md +668 -0
  352. package/skills/voice-command-router/SKILL.md +51 -0
  353. package/skills/widget-live-activity-sync/SKILL.md +66 -0
@@ -0,0 +1,397 @@
1
+ #!/usr/bin/env bash
2
+ # Template rendering helper functions
3
+
4
+ # Remove sections that are entirely empty (only header + whitespace/empty tables)
5
+ # A section is: ## Header followed by content until next ## or EOF
6
+ # Empty means: only whitespace, empty table headers (2 rows only), or empty code blocks
7
+ remove_empty_sections() {
8
+ local content="$1"
9
+
10
+ # Use awk to process sections
11
+ echo "$content" | awk '
12
+ BEGIN {
13
+ section_header = ""
14
+ section_body = ""
15
+ preamble = ""
16
+ in_section = 0
17
+ }
18
+
19
+ # Match section headers (## Something)
20
+ /^## / {
21
+ # Flush previous section if it had real content
22
+ if (in_section) {
23
+ if (has_content(section_body)) {
24
+ print section_header
25
+ printf "%s", section_body
26
+ }
27
+ } else {
28
+ # Print any preamble before first section
29
+ printf "%s", preamble
30
+ }
31
+
32
+ section_header = $0
33
+ section_body = ""
34
+ in_section = 1
35
+ next
36
+ }
37
+
38
+ # Accumulate content
39
+ {
40
+ if (in_section) {
41
+ section_body = section_body $0 "\n"
42
+ } else {
43
+ preamble = preamble $0 "\n"
44
+ }
45
+ }
46
+
47
+ END {
48
+ # Flush last section
49
+ if (in_section && has_content(section_body)) {
50
+ print section_header
51
+ printf "%s", section_body
52
+ }
53
+ }
54
+
55
+ # Check if body has real content (not just empty structural elements)
56
+ function has_content(body, stripped, table_rows, n, i, data_rows) {
57
+ stripped = body
58
+
59
+ # Remove HTML comments
60
+ gsub(/<!--[^>]*-->/, "", stripped)
61
+
62
+ # Count table rows - if exactly 2 (header + divider), table is empty
63
+ # Split by newlines and count lines starting with |
64
+ n = split(stripped, lines, "\n")
65
+ table_rows = 0
66
+ data_rows = 0
67
+ for (i = 1; i <= n; i++) {
68
+ if (lines[i] ~ /^\|/) {
69
+ table_rows++
70
+ # Data row = table row that is NOT a header divider (|---|)
71
+ if (lines[i] !~ /^\|[-:| ]+\|$/) {
72
+ # Also not just the header row if we are still in first 2
73
+ if (table_rows > 2) {
74
+ data_rows++
75
+ }
76
+ }
77
+ }
78
+ }
79
+
80
+ # If we have a table with more than 2 rows, it has data
81
+ if (table_rows > 2) {
82
+ return 1
83
+ }
84
+
85
+ # Remove tables that are just header+divider (2 rows)
86
+ # Pattern: | ... |\n|---...|\n
87
+ gsub(/\|[^|\n]+(\|[^|\n]+)*\|\n\|[-:| ]+\|\n?/, "", stripped)
88
+
89
+ # Remove empty code blocks (``` followed by optional whitespace and ```)
90
+ gsub(/```[^\n]*\n[ \t]*\n?```/, "", stripped)
91
+ # Remove standalone code block markers
92
+ gsub(/```[a-z]*\n?/, "", stripped)
93
+
94
+ # Remove bullet points that are just placeholder markers or empty
95
+ gsub(/^[ \t]*[-*][ \t]*\n/, "", stripped)
96
+
97
+ # Remove lines that say "No scoped AGENTS.md files yet" or similar placeholder text
98
+ gsub(/- \(No scoped [^)]+\)/, "", stripped)
99
+ gsub(/- No known [^\n]+/, "", stripped)
100
+
101
+ # Check if anything substantive remains
102
+ gsub(/[ \t\n]/, "", stripped)
103
+
104
+ return length(stripped) > 0
105
+ }
106
+ '
107
+ }
108
+
109
+ # Render template with placeholder replacement
110
+ # Supports multi-line values using bash string replacement
111
+ render_template() {
112
+ local template_file="$1"
113
+ local output_file="$2"
114
+ local -n template_vars=$3
115
+
116
+ local content
117
+ content=$(cat "$template_file")
118
+
119
+ # Replace all placeholders using bash parameter expansion
120
+ # This handles multi-line values correctly
121
+ for key in "${!template_vars[@]}"; do
122
+ local value="${template_vars[$key]}"
123
+ content="${content//"{{$key}}"/$value}"
124
+ done
125
+
126
+ # Handle remaining unfilled placeholders
127
+ # Delete table rows containing unresolved placeholders
128
+ content=$(echo "$content" | sed '/^|.*{{[A-Z_]*}}.*|$/d')
129
+
130
+ # Delete bullet points with only unresolved placeholders
131
+ content=$(echo "$content" | sed '/^[[:space:]]*[-*][[:space:]]*{{[A-Z_][A-Z0-9_]*}}[[:space:]]*$/d')
132
+
133
+ # Delete lines that are ONLY a placeholder (prevents blank lines in tables)
134
+ content=$(echo "$content" | sed '/^{{[A-Z_][A-Z0-9_]*}}$/d')
135
+ # Also handle placeholders with leading/trailing whitespace
136
+ content=$(echo "$content" | sed '/^[[:space:]]*{{[A-Z_][A-Z0-9_]*}}[[:space:]]*$/d')
137
+
138
+ # Remove any remaining inline placeholders (better than "(not configured)" noise)
139
+ content=$(echo "$content" | sed 's/{{[A-Z_][A-Z0-9_]*}}//g')
140
+
141
+ # Remove empty lines that appear after table rows but before non-table content
142
+ # This fixes broken tables when placeholders were replaced with empty content
143
+ content=$(echo "$content" | awk '
144
+ /^\|.*\|$/ {
145
+ # Print any pending empty lines first if we are continuing a table
146
+ if (prev_was_table && pending_empty) {
147
+ # Skip the pending empty - it was between table rows with no data
148
+ }
149
+ print
150
+ prev_was_table=1
151
+ pending_empty=0
152
+ next
153
+ }
154
+ /^[[:space:]]*$/ {
155
+ if (prev_was_table) {
156
+ pending_empty=1 # Hold empty line, might be inside table
157
+ } else {
158
+ print # Normal empty line outside table
159
+ }
160
+ next
161
+ }
162
+ {
163
+ # Non-table line - do not print pending empty from table section
164
+ pending_empty=0
165
+ prev_was_table=0
166
+ print
167
+ }
168
+ ')
169
+
170
+ # Clean up multiple consecutive empty lines
171
+ content=$(echo "$content" | cat -s)
172
+
173
+ # Remove empty sections (only header + whitespace/empty tables)
174
+ content=$(remove_empty_sections "$content")
175
+
176
+ # Final cleanup of multiple consecutive empty lines after section removal
177
+ content=$(echo "$content" | cat -s)
178
+
179
+ # Write output
180
+ printf '%s\n' "$content" > "$output_file"
181
+ }
182
+
183
+ # Validate rendered content has no remaining placeholders
184
+ # Returns 0 if valid, 1 if placeholders found
185
+ validate_no_placeholders() {
186
+ local file="$1"
187
+ local strict="${2:-false}"
188
+
189
+ if grep -qE '\{\{[A-Z][A-Z0-9_]*\}\}' "$file"; then
190
+ local placeholders
191
+ placeholders=$(grep -oE '\{\{[A-Z][A-Z0-9_]*\}\}' "$file" | sort -u | tr '\n' ' ')
192
+
193
+ if [ "$strict" = "true" ]; then
194
+ echo "[ERROR] Unresolved placeholders in $file: $placeholders" >&2
195
+ return 1
196
+ else
197
+ echo "[WARN] Unresolved placeholders in $file: $placeholders" >&2
198
+ return 0
199
+ fi
200
+ fi
201
+ return 0
202
+ }
203
+
204
+ # Generate timestamp
205
+ get_timestamp() {
206
+ date +%Y-%m-%d
207
+ }
208
+
209
+ # Build scope index for root template
210
+ build_scope_index() {
211
+ local scopes_json="$1"
212
+ local index=""
213
+
214
+ local count=$(echo "$scopes_json" | jq '.scopes | length')
215
+ if [ "$count" -eq 0 ]; then
216
+ echo "- (No scoped AGENTS.md files yet)"
217
+ return
218
+ fi
219
+
220
+ while read -r scope; do
221
+ local path=$(echo "$scope" | jq -r '.path')
222
+ local type=$(echo "$scope" | jq -r '.type')
223
+ local description=$(get_scope_description "$type")
224
+
225
+ index="$index- \`./$path/AGENTS.md\` — $description\n"
226
+ done < <(echo "$scopes_json" | jq -c '.scopes[]')
227
+
228
+ echo -e "$index"
229
+ }
230
+
231
+ # Get description for scope type
232
+ get_scope_description() {
233
+ local type="$1"
234
+
235
+ case "$type" in
236
+ "backend-go") echo "Backend services (Go)" ;;
237
+ "backend-php") echo "Backend services (PHP)" ;;
238
+ "backend-typescript") echo "Backend services (TypeScript/Node.js)" ;;
239
+ "backend-python") echo "Backend services (Python)" ;;
240
+ "frontend-typescript") echo "Frontend application (TypeScript/React/Vue)" ;;
241
+ "cli") echo "Command-line interface tools and entry points" ;;
242
+ "testing") echo "Test suites, fixtures, and testing utilities" ;;
243
+ "documentation") echo "Project documentation, guides, and reference materials" ;;
244
+ "examples") echo "Example applications, usage patterns, and sample code" ;;
245
+ "resources") echo "Static resources, assets, templates, and configuration files" ;;
246
+ "docker") echo "Container/Docker configuration for building and deploying images" ;;
247
+ "claude-code-skill") echo "Claude Code skill/plugin providing AI agent capabilities" ;;
248
+ "typo3-extension") echo "TYPO3 extension following TYPO3 CGL and PSR-12" ;;
249
+ "typo3-project") echo "TYPO3 project installation with site configuration" ;;
250
+ "oro-bundle") echo "Oro bundle following Oro Architecture and Symfony best practices" ;;
251
+ "oro-project") echo "Oro application with platform configuration and bundles" ;;
252
+ "symfony") echo "Symfony application following Symfony best practices" ;;
253
+ "github-actions") echo "GitHub Actions workflows and CI/CD automation" ;;
254
+ "gitlab-ci") echo "GitLab CI/CD pipeline configuration" ;;
255
+ "concourse") echo "Concourse CI pipeline and task definitions" ;;
256
+ *) echo "$type" ;;
257
+ esac
258
+ }
259
+
260
+ # Get language-specific conventions text
261
+ get_language_conventions() {
262
+ local language="$1"
263
+ local version="$2"
264
+
265
+ case "$language" in
266
+ "go")
267
+ echo "- Follow Go $version conventions and idioms"
268
+ ;;
269
+ "php")
270
+ echo "- Follow PSR-12 coding standards and PHP $version features"
271
+ ;;
272
+ "typescript")
273
+ echo "- Use TypeScript strict mode with proper type annotations"
274
+ ;;
275
+ "python")
276
+ echo "- Follow PEP 8 style guide and Python $version features"
277
+ ;;
278
+ *)
279
+ echo ""
280
+ ;;
281
+ esac
282
+ }
283
+
284
+ # Format command with fallback text
285
+ format_command() {
286
+ local cmd="$1"
287
+ local fallback="$2"
288
+
289
+ if [ -n "$cmd" ] && [ "$cmd" != "null" ]; then
290
+ echo "$cmd"
291
+ else
292
+ echo "$fallback"
293
+ fi
294
+ }
295
+
296
+ # Check if file has generated section markers
297
+ has_generated_markers() {
298
+ local file="$1"
299
+ grep -q 'AGENTS-GENERATED:START' "$file" 2>/dev/null
300
+ }
301
+
302
+ # Extract section names from file
303
+ get_section_names() {
304
+ local file="$1"
305
+ grep -oE 'AGENTS-GENERATED:START [a-z0-9-]+' "$file" 2>/dev/null | sed 's/AGENTS-GENERATED:START //' | sort -u
306
+ }
307
+
308
+ # Extract content between markers for a section
309
+ get_section_content() {
310
+ local file="$1"
311
+ local section="$2"
312
+
313
+ sed -n "/AGENTS-GENERATED:START $section/,/AGENTS-GENERATED:END $section/p" "$file" 2>/dev/null | \
314
+ sed '1d;$d' # Remove the marker lines themselves
315
+ }
316
+
317
+ # Update only generated sections in an existing file
318
+ # Preserves all content outside markers
319
+ update_generated_sections() {
320
+ local template_file="$1"
321
+ local existing_file="$2"
322
+ local output_file="$3"
323
+ local -n update_vars=$4
324
+
325
+ # First render the template to get new content
326
+ local temp_rendered
327
+ temp_rendered=$(mktemp)
328
+ render_template "$template_file" "$temp_rendered" update_vars
329
+
330
+ # If existing file doesn't have markers, just overwrite
331
+ if ! has_generated_markers "$existing_file"; then
332
+ mv "$temp_rendered" "$output_file"
333
+ return 0
334
+ fi
335
+
336
+ # Get all section names from the rendered template
337
+ local sections
338
+ sections=$(get_section_names "$temp_rendered")
339
+
340
+ # Start with the existing file content
341
+ local result
342
+ result=$(cat "$existing_file")
343
+
344
+ # Replace each generated section
345
+ for section in $sections; do
346
+ local new_content
347
+ new_content=$(get_section_content "$temp_rendered" "$section")
348
+
349
+ if [ -n "$new_content" ]; then
350
+ # Create a sed-safe version of the new content
351
+ # Use awk for multi-line replacement
352
+ result=$(echo "$result" | awk -v section="$section" -v newcontent="$new_content" '
353
+ BEGIN { in_section = 0 }
354
+ /AGENTS-GENERATED:START / && $0 ~ section {
355
+ print
356
+ in_section = 1
357
+ next
358
+ }
359
+ /AGENTS-GENERATED:END / && $0 ~ section {
360
+ print newcontent
361
+ print
362
+ in_section = 0
363
+ next
364
+ }
365
+ !in_section { print }
366
+ ')
367
+ fi
368
+ done
369
+
370
+ # Update timestamp
371
+ local today
372
+ today=$(date +%Y-%m-%d)
373
+ result=$(echo "$result" | sed "s/Last updated: [0-9-]*/Last updated: $today/")
374
+
375
+ # Write result
376
+ echo "$result" > "$output_file"
377
+
378
+ # Clean up
379
+ rm -f "$temp_rendered"
380
+ }
381
+
382
+ # Render template - respects update mode
383
+ # If update_mode=true and file exists with markers, only updates generated sections
384
+ render_template_smart() {
385
+ local template_file="$1"
386
+ local output_file="$2"
387
+ local -n smart_vars=$3
388
+ local update_mode="${4:-false}"
389
+
390
+ if [ "$update_mode" = "true" ] && [ -f "$output_file" ] && has_generated_markers "$output_file"; then
391
+ # Update mode - preserve human edits
392
+ update_generated_sections "$template_file" "$output_file" "$output_file" smart_vars
393
+ else
394
+ # Normal mode - full render
395
+ render_template "$template_file" "$output_file" smart_vars
396
+ fi
397
+ }