@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,530 @@
1
+ # Secret Remediation Guide
2
+
3
+ Comprehensive procedures for remediating exposed secrets detected by Gitleaks.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Immediate Response](#immediate-response)
8
+ - [Remediation Workflow](#remediation-workflow)
9
+ - [Git History Cleanup](#git-history-cleanup)
10
+ - [Cloud Provider Specific](#cloud-provider-specific)
11
+ - [Database Credentials](#database-credentials)
12
+ - [API Keys and Tokens](#api-keys-and-tokens)
13
+ - [Post-Remediation](#post-remediation)
14
+
15
+ ## Immediate Response
16
+
17
+ When secrets are detected, follow this priority order:
18
+
19
+ ### 1. Assess Exposure (0-15 minutes)
20
+
21
+ **Questions to answer immediately:**
22
+ - Is the repository public or private?
23
+ - Has the commit been pushed to remote?
24
+ - How long has the secret been exposed?
25
+ - What systems does this credential access?
26
+
27
+ **Actions:**
28
+ ```bash
29
+ # Check if commit is pushed
30
+ git log origin/main..HEAD # If output, not yet pushed
31
+
32
+ # Check repository visibility
33
+ gh repo view --json visibility
34
+
35
+ # Check commit age
36
+ git log -1 --format="%ar" <commit-sha>
37
+ ```
38
+
39
+ ### 2. Rotate Credentials (0-30 minutes)
40
+
41
+ **CRITICAL**: Rotate the exposed credential immediately, regardless of exposure duration.
42
+
43
+ Priority order:
44
+ 1. **Production credentials** - Immediate rotation
45
+ 2. **Payment/financial systems** - Immediate rotation
46
+ 3. **Customer data access** - Immediate rotation
47
+ 4. **Development/test credentials** - Rotate within 24 hours
48
+
49
+ ### 3. Review Access Logs (30-60 minutes)
50
+
51
+ Check for unauthorized access:
52
+ - Cloud provider audit logs (CloudTrail, Cloud Audit Logs, Activity Log)
53
+ - Application logs showing authentication attempts
54
+ - Database connection logs
55
+ - API usage logs
56
+
57
+ ### 4. Remove from Code (0-24 hours)
58
+
59
+ Remove secret from current code and optionally from git history.
60
+
61
+ ## Remediation Workflow
62
+
63
+ ### Step 1: Rotate the Credential
64
+
65
+ **Before removing from code**, rotate the credential to prevent race conditions.
66
+
67
+ #### Cloud Providers
68
+
69
+ **AWS**:
70
+ ```bash
71
+ # Deactivate compromised key
72
+ aws iam update-access-key \
73
+ --access-key-id AKIA... \
74
+ --status Inactive \
75
+ --user-name username
76
+
77
+ # Create new key
78
+ aws iam create-access-key --user-name username
79
+
80
+ # Delete old key after updating applications
81
+ aws iam delete-access-key \
82
+ --access-key-id AKIA... \
83
+ --user-name username
84
+ ```
85
+
86
+ **GCP**:
87
+ ```bash
88
+ # Delete service account key
89
+ gcloud iam service-accounts keys delete KEY_ID \
90
+ --iam-account=SERVICE_ACCOUNT_EMAIL
91
+
92
+ # Create new key
93
+ gcloud iam service-accounts keys create new-key.json \
94
+ --iam-account=SERVICE_ACCOUNT_EMAIL
95
+ ```
96
+
97
+ **Azure**:
98
+ ```bash
99
+ # Regenerate storage account key
100
+ az storage account keys renew \
101
+ --account-name ACCOUNT_NAME \
102
+ --key primary
103
+
104
+ # List keys to verify
105
+ az storage account keys list \
106
+ --account-name ACCOUNT_NAME
107
+ ```
108
+
109
+ #### API Tokens
110
+
111
+ **GitHub**:
112
+ 1. Navigate to Settings > Developer settings > Personal access tokens
113
+ 2. Find the compromised token (check "Last used" column)
114
+ 3. Click "Delete"
115
+ 4. Generate new token with minimal required scopes
116
+
117
+ **Stripe**:
118
+ 1. Log into Stripe Dashboard
119
+ 2. Navigate to Developers > API keys
120
+ 3. Click "Roll" on the compromised key
121
+ 4. Update all applications with new key
122
+
123
+ **Generic API Key**:
124
+ 1. Access provider's console/dashboard
125
+ 2. Locate API key management
126
+ 3. Revoke/delete compromised key
127
+ 4. Generate new key
128
+ 5. Update applications
129
+ 6. Test connectivity
130
+
131
+ ### Step 2: Remove from Current Code
132
+
133
+ Replace hardcoded secrets with environment variables or secret management:
134
+
135
+ **Before** (insecure):
136
+ ```python
137
+ API_KEY = "sk_live_51ABC123..."
138
+ db_password = "MyP@ssw0rd123"
139
+ ```
140
+
141
+ **After** (secure):
142
+ ```python
143
+ import os
144
+
145
+ API_KEY = os.environ.get("STRIPE_API_KEY")
146
+ if not API_KEY:
147
+ raise ValueError("STRIPE_API_KEY environment variable not set")
148
+
149
+ db_password = os.environ.get("DB_PASSWORD")
150
+ ```
151
+
152
+ **Using secret management**:
153
+ ```python
154
+ from azure.keyvault.secrets import SecretClient
155
+ from azure.identity import DefaultAzureCredential
156
+
157
+ credential = DefaultAzureCredential()
158
+ client = SecretClient(vault_url="https://myvault.vault.azure.net/", credential=credential)
159
+
160
+ db_password = client.get_secret("database-password").value
161
+ ```
162
+
163
+ ### Step 3: Commit the Fix
164
+
165
+ ```bash
166
+ # Add changes
167
+ git add .
168
+
169
+ # Commit with clear message
170
+ git commit -m "refactor: Move API credentials to environment variables
171
+
172
+ - Replace hardcoded Stripe API key with environment variable
173
+ - Replace database password with AWS Secrets Manager reference
174
+ - Add validation for required environment variables
175
+
176
+ Addresses: Secret exposure detected by Gitleaks scan"
177
+
178
+ # Push
179
+ git push origin main
180
+ ```
181
+
182
+ ## Git History Cleanup
183
+
184
+ If secrets are in pushed commits, consider removing from git history.
185
+
186
+ ### Decision Matrix
187
+
188
+ | Scenario | Action | Reason |
189
+ |----------|--------|--------|
190
+ | Public repo, secret exposed | **Mandatory** history rewrite | Secret is public knowledge |
191
+ | Private repo, < 24 hours, < 5 collaborators | **Recommended** history rewrite | Minimal disruption |
192
+ | Private repo, > 1 week, > 10 collaborators | **Optional** - Rotate only | High coordination cost |
193
+ | Production repo with CI/CD | **Coordinate carefully** | May break automation |
194
+
195
+ ### Method 1: git-filter-repo (Recommended)
196
+
197
+ Install:
198
+ ```bash
199
+ pip install git-filter-repo
200
+ ```
201
+
202
+ Remove specific file from all history:
203
+ ```bash
204
+ # Backup first
205
+ git clone --mirror <repo-url> backup-repo.git
206
+
207
+ # Remove file
208
+ git filter-repo --path config/secrets.yaml --invert-paths
209
+
210
+ # Force push
211
+ git push origin --force --all
212
+ ```
213
+
214
+ Remove secrets matching pattern:
215
+ ```bash
216
+ # Use callback for complex filtering
217
+ git filter-repo --replace-text <(echo 'regex:sk_live_[a-zA-Z0-9]{24}==>REDACTED')
218
+ ```
219
+
220
+ ### Method 2: BFG Repo-Cleaner
221
+
222
+ Download:
223
+ ```bash
224
+ # macOS
225
+ brew install bfg
226
+
227
+ # Or download JAR from https://rtyley.github.io/bfg-repo-cleaner/
228
+ ```
229
+
230
+ Remove specific file:
231
+ ```bash
232
+ # Clone mirror
233
+ git clone --mirror <repo-url> repo-mirror.git
234
+ cd repo-mirror.git
235
+
236
+ # Remove file
237
+ bfg --delete-files secrets.env
238
+
239
+ # Clean up
240
+ git reflog expire --expire=now --all
241
+ git gc --prune=now --aggressive
242
+
243
+ # Force push
244
+ git push
245
+ ```
246
+
247
+ Remove secrets by pattern:
248
+ ```bash
249
+ # Create replacements.txt
250
+ echo "PASSWORD1==>***REMOVED***" > replacements.txt
251
+ echo "sk_live_51ABC==>***REMOVED***" >> replacements.txt
252
+
253
+ # Run BFG
254
+ bfg --replace-text replacements.txt repo-mirror.git
255
+ ```
256
+
257
+ ### Method 3: Interactive Rebase (Small Changes)
258
+
259
+ For recent commits not yet widely distributed:
260
+
261
+ ```bash
262
+ # Rebase last N commits
263
+ git rebase -i HEAD~5
264
+
265
+ # In editor, mark commits to 'edit'
266
+ # When stopped at each commit:
267
+ git rm config/secrets.yaml
268
+ git commit --amend --no-edit
269
+ git rebase --continue
270
+
271
+ # Force push
272
+ git push --force-with-lease
273
+ ```
274
+
275
+ ### Post-Rewrite Coordination
276
+
277
+ After rewriting history:
278
+
279
+ 1. **Notify team immediately**:
280
+ ```text
281
+ URGENT: Git history rewritten to remove exposed credentials.
282
+
283
+ Action required for all developers:
284
+ 1. Commit/stash any local changes
285
+ 2. Run: git fetch origin && git reset --hard origin/main
286
+ 3. Delete and re-clone if issues persist
287
+
288
+ Contact security team with questions.
289
+ ```
290
+
291
+ 2. **Update CI/CD**:
292
+ - Invalidate old caches
293
+ - May need to reconfigure webhooks
294
+ - Update any hardcoded commit references
295
+
296
+ 3. **Update branch protection**:
297
+ - May need to temporarily disable
298
+ - Re-enable after force push completes
299
+
300
+ ## Cloud Provider Specific
301
+
302
+ ### AWS
303
+
304
+ **Check for unauthorized access**:
305
+ ```bash
306
+ # List recent API calls for access key
307
+ aws cloudtrail lookup-events \
308
+ --lookup-attributes AttributeKey=Username,AttributeValue=compromised-user \
309
+ --max-results 50 \
310
+ --start-time $(date -u -d '7 days ago' +%Y-%m-%dT%H:%M:%S)
311
+ ```
312
+
313
+ **Revoke all sessions**:
314
+ ```bash
315
+ # Attach policy to deny all actions
316
+ aws iam put-user-policy \
317
+ --user-name compromised-user \
318
+ --policy-name DenyAll \
319
+ --policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Deny","Action":"*","Resource":"*"}]}'
320
+ ```
321
+
322
+ ### GCP
323
+
324
+ **Check audit logs**:
325
+ ```bash
326
+ gcloud logging read "protoPayload.authenticationInfo.principalEmail=SERVICE_ACCOUNT_EMAIL" \
327
+ --limit 100 \
328
+ --format json
329
+ ```
330
+
331
+ **Disable service account**:
332
+ ```bash
333
+ gcloud iam service-accounts disable SERVICE_ACCOUNT_EMAIL
334
+ ```
335
+
336
+ ### Azure
337
+
338
+ **Review activity logs**:
339
+ ```bash
340
+ az monitor activity-log list \
341
+ --start-time 2024-01-01T00:00:00Z \
342
+ --resource-id /subscriptions/SUBSCRIPTION_ID
343
+ ```
344
+
345
+ **Revoke access**:
346
+ ```bash
347
+ # Regenerate keys
348
+ az storage account keys renew \
349
+ --account-name STORAGE_ACCOUNT \
350
+ --key primary
351
+ ```
352
+
353
+ ## Database Credentials
354
+
355
+ ### PostgreSQL
356
+
357
+ ```sql
358
+ -- Change password
359
+ ALTER USER app_user WITH PASSWORD 'new_secure_password';
360
+
361
+ -- View recent connections
362
+ SELECT datname, usename, client_addr, backend_start
363
+ FROM pg_stat_activity
364
+ WHERE usename = 'app_user'
365
+ ORDER BY backend_start DESC;
366
+
367
+ -- Kill active connections (if suspicious)
368
+ SELECT pg_terminate_backend(pid)
369
+ FROM pg_stat_activity
370
+ WHERE usename = 'app_user' AND client_addr != 'trusted_ip';
371
+ ```
372
+
373
+ ### MySQL
374
+
375
+ ```sql
376
+ -- Change password
377
+ ALTER USER 'app_user'@'%' IDENTIFIED BY 'new_secure_password';
378
+ FLUSH PRIVILEGES;
379
+
380
+ -- View recent connections
381
+ SELECT * FROM information_schema.PROCESSLIST
382
+ WHERE USER = 'app_user';
383
+
384
+ -- Kill connections
385
+ KILL CONNECTION process_id;
386
+ ```
387
+
388
+ ### MongoDB
389
+
390
+ ```javascript
391
+ // Change password
392
+ use admin
393
+ db.changeUserPassword("app_user", "new_secure_password")
394
+
395
+ // View recent operations
396
+ db.currentOp({ "active": true })
397
+
398
+ // Kill operation
399
+ db.killOp(opid)
400
+ ```
401
+
402
+ ## API Keys and Tokens
403
+
404
+ ### GitHub
405
+
406
+ **Audit unauthorized access**:
407
+ ```bash
408
+ # List recent events for token
409
+ gh api /users/{username}/events/public | jq '.[] | {type, repo: .repo.name, created_at}'
410
+ ```
411
+
412
+ **Revoke all tokens** (if compromised account):
413
+ 1. Settings > Developer settings > Personal access tokens
414
+ 2. Select all tokens
415
+ 3. Click "Delete"
416
+
417
+ ### Slack
418
+
419
+ **Check workspace audit logs**:
420
+ 1. Go to workspace settings (admin required)
421
+ 2. Navigate to Logs > Audit Logs
422
+ 3. Filter by token usage
423
+
424
+ **Regenerate token**:
425
+ 1. Go to api.slack.com/apps
426
+ 2. Select your app
427
+ 3. Navigate to OAuth & Permissions
428
+ 4. Click "Regenerate" on token
429
+
430
+ ## Post-Remediation
431
+
432
+ ### 1. Implement Prevention
433
+
434
+ **Pre-commit hooks**:
435
+ ```bash
436
+ # Install Gitleaks pre-commit hook
437
+ cd /path/to/repo
438
+ cat << 'EOF' > .git/hooks/pre-commit
439
+ #!/bin/sh
440
+ gitleaks protect --verbose --redact --staged
441
+ EOF
442
+ chmod +x .git/hooks/pre-commit
443
+ ```
444
+
445
+ **CI/CD checks**:
446
+ ```yaml
447
+ # .github/workflows/secrets-scan.yml
448
+ name: Secret Scanning
449
+ on: [push, pull_request]
450
+ jobs:
451
+ scan:
452
+ runs-on: ubuntu-latest
453
+ steps:
454
+ - uses: actions/checkout@v3
455
+ with:
456
+ fetch-depth: 0
457
+ - uses: gitleaks/gitleaks-action@v2
458
+ env:
459
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
460
+ ```
461
+
462
+ ### 2. Update Secret Management
463
+
464
+ Migrate to proper secret management:
465
+
466
+ **Environment variables** (minimal):
467
+ ```bash
468
+ # .env (never commit!)
469
+ DATABASE_URL=postgresql://user:pass@host:5432/db
470
+ API_KEY=sk_live_...
471
+
472
+ # .gitignore
473
+ .env
474
+ .env.local
475
+ ```
476
+
477
+ **Secret management services**:
478
+ - AWS: Secrets Manager, Systems Manager Parameter Store
479
+ - GCP: Secret Manager
480
+ - Azure: Key Vault
481
+ - HashiCorp: Vault
482
+ - Kubernetes: Secrets
483
+
484
+ ### 3. Document Incident
485
+
486
+ Create incident report including:
487
+ - **Timeline**: When secret was committed, detected, remediated
488
+ - **Exposure**: Duration, repository visibility, access scope
489
+ - **Impact**: Systems accessed, data at risk, unauthorized activity
490
+ - **Response**: Rotation completed, logs reviewed, history cleaned
491
+ - **Prevention**: Controls implemented to prevent recurrence
492
+
493
+ ### 4. Team Training
494
+
495
+ Conduct training on:
496
+ - Using environment variables and secret management
497
+ - Pre-commit hooks and local scanning
498
+ - Recognizing secrets in code review
499
+ - Incident response procedures
500
+
501
+ ### 5. Compliance Notifications
502
+
503
+ If required by regulations:
504
+ - **GDPR**: Notify supervisory authority within 72 hours if personal data at risk
505
+ - **PCI-DSS**: Notify card brands and processor if payment data affected
506
+ - **SOC2**: Document in compliance report, may trigger audit
507
+ - **HIPAA**: Notify covered entities if PHI exposed
508
+
509
+ ## Prevention Checklist
510
+
511
+ - [ ] Credential rotated and old credential deactivated
512
+ - [ ] Access logs reviewed for unauthorized activity
513
+ - [ ] Secret removed from current code
514
+ - [ ] Git history cleaned (if applicable)
515
+ - [ ] Team notified of credential change
516
+ - [ ] Applications updated with new credential
517
+ - [ ] Pre-commit hooks installed
518
+ - [ ] CI/CD secret scanning enabled
519
+ - [ ] Secret management solution implemented
520
+ - [ ] Incident documented
521
+ - [ ] Compliance notifications sent (if required)
522
+ - [ ] Team training scheduled
523
+
524
+ ## Emergency Contacts
525
+
526
+ Maintain contact list for rapid response:
527
+ - **Security Team**: security@company.com
528
+ - **DevOps On-Call**: devops-oncall@company.com
529
+ - **Cloud Provider Support**: Account-specific
530
+ - **Compliance Officer**: compliance@company.com
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: stack-selector
3
+ description: Map an ArchitectureDoc to concrete runtime, framework, database, queue/scheduler, and deployment target. Bias toward boring, popular, well-supported choices. Anti-pattern check on every selection.
4
+ triggers: [synapta stack, stack selection, framework choice, runtime, database choice]
5
+ network: off
6
+ tools: []
7
+ source:
8
+ origin: authored-by-synapta
9
+ reason: "Existing community skills are framework cheerleaders, not multi-axis selectors."
10
+ citation_patterns:
11
+ - "Choose Boring Technology — Dan McKinley"
12
+ - "Twelve-Factor App"
13
+ ---
14
+
15
+ # Stack Selector
16
+
17
+ Choose technologies the project will actually depend on. Bias hard toward boring and popular — more docs, easier hiring, fewer 3 AM surprises.
18
+
19
+ ## Axes
20
+
21
+ | Axis | Default candidates | Avoid without justification |
22
+ |---|---|---|
23
+ | **Runtime** | Node 22 LTS, Bun 1.x, Python 3.12, Go 1.23 | bleeding-edge majors, unmaintained runtimes |
24
+ | **Framework** | Next.js (web), Fastify/Hono (API), Django/FastAPI (Python), Gin (Go) | rolled-your-own HTTP, abandoned forks |
25
+ | **Database** | Postgres | NoSQL for relational data; SQLite in distributed deploys |
26
+ | **Queue/Scheduler** | none, then BullMQ / SQS / Temporal / Cron | bespoke queue implementations |
27
+ | **Auth** | external IdP (Auth0, Clerk, Workos, Cognito) | rolled-your-own |
28
+ | **Observability** | OpenTelemetry + a managed backend | grep-the-logs |
29
+ | **Deployment** | one of `deploy-{vercel, fly, railway, cloudflare, docker, k8s, ssh}` adapters | mix-and-match providers across the same plane |
30
+
31
+ ## Process
32
+
33
+ 1. Read `ArchitectureDoc`. Note: tenancy, geo, latency budget, compliance, integrations.
34
+ 2. For each axis, propose the default; if rejecting, write one sentence justifying why.
35
+ 3. Cross-check the proposal against `deploy-*` skills' `preflightFor` to confirm the chosen deployment target supports the chosen runtime/framework.
36
+ 4. Output: `StackSelection` artifact (table + one-sentence justification per axis) and a list of decisions that need ADRs.
37
+
38
+ ## Default rejections (require explicit justification to override)
39
+
40
+ - ORMs: prefer query builders or SQL strings + a thin migration tool over heavy ORM for new projects
41
+ - GraphQL: don't introduce GraphQL unless there are ≥3 distinct clients with different field needs
42
+ - Service mesh: don't introduce until you have ≥5 services actually communicating
43
+ - Custom build tooling: don't write a bundler; use Vite/esbuild/tsup
44
+ - Kubernetes for <3-service projects: use the platform tier instead
45
+
46
+ ## Output shape
47
+
48
+ ```yaml
49
+ runtime: { choice: "Node 22 LTS", reason: "team familiarity + Synapta CLI ecosystem" }
50
+ framework: { choice: "Fastify", reason: "Node, async, plugin model, used by gateway" }
51
+ database: { choice: "Postgres 16", reason: "default; relational data; mature tooling" }
52
+ queue: { choice: "none", reason: "no background work needed at v0" }
53
+ auth: { choice: "Auth0", reason: "SOC2 boundary + existing IdP" }
54
+ observability: { choice: "OpenTelemetry + Grafana Cloud", reason: "OSS protocol + managed backend" }
55
+ deployment: { choice: "Fly.io", reason: "multi-region + persistent storage + secrets via flyctl" }
56
+ ```
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: telegram-control
3
+ synapta_original_name: telegram-reminders
4
+ triggers: [synapta telegram, BYO bot, approval bot, telegram allowlist]
5
+ network: allowlist
6
+ source:
7
+ origin: https://github.com/AlexSKuznetsov/claude-skill-telegram
8
+ path: /
9
+ commit: 06a7b02172c4
10
+ license: see source repo
11
+ adapted: light-touch
12
+ note: "Source skill is reminder-focused; Synapta uses it as a starting pattern for BYO-bot allowlisted command routing. Synapta does NOT use Convex; see Synapta gateway docs for the production wiring."
13
+ description: Send reminders and messages to Telegram with cloud-based scheduling. Use when the user wants to send immediate messages or schedule future reminders to Telegram. Supports text messages, timestamp-based scheduling, recurring reminders, viewing and canceling scheduled messages, and message history.
14
+ ---
15
+
16
+ # Telegram Reminders Skill
17
+
18
+ Send immediate messages and schedule reminders to Telegram with cloud-based scheduling powered by Convex. Your reminders run 24/7 in Convex Cloud with zero infrastructure management.
19
+
20
+ ## Quick Reference
21
+
22
+ IMPORTANT! Always use these commands in order:
23
+
24
+ - Send now: `tsx scripts/send_message.ts [message_text]`
25
+ - Send now with attachment: `tsx scripts/send_message.ts [message_text] /path/to/file.pdf`
26
+ - Schedule: `tsx scripts/schedule_message.ts [time expression] [title] [message_text] [file_path]`
27
+ - Schedule with attachment: `tsx scripts/schedule_message.ts [time expression] [title] [message_text] /path/to/file`
28
+ - List pending: `tsx scripts/list_scheduled.ts`
29
+ - Cancel: `tsx scripts/cancel_message.ts <message_id>`
30
+ - History: `tsx scripts/view_history.ts [limit]`
31
+
32
+ ## Initial Setup
33
+
34
+ **Prerequisites** (user must provide):
35
+
36
+ 1. **Bot Token**: Message [@BotFather](https://t.me/BotFather) → `/newbot` → copy token
37
+ 2. **User ID**: Message [@userinfobot](https://t.me/userinfobot) → copy numeric ID
38
+ 3. **Deploy Key**: [dashboard.convex.dev](https://dashboard.convex.dev) → Create project → Settings → Deploy Keys → Create "Production" key
39
+
40
+ **Setup steps**:
41
+
42
+ ```bash
43
+ # 1. Install dependencies
44
+ cd /mnt/skills/user/telegram-reminders && npm install
45
+
46
+ # 2. Save configuration
47
+ mkdir -p /mnt/user-data/outputs
48
+ cat > /mnt/user-data/outputs/telegram_config.json << 'EOF'
49
+ {
50
+ "botToken": "YOUR_BOT_TOKEN",
51
+ "userId": "YOUR_USER_ID",
52
+ "deployKey": "YOUR_DEPLOY_KEY",
53
+ "setupDate": "CURRENT_DATE"
54
+ }
55
+ EOF
56
+
57
+ # 3. Create .env.local
58
+ cat > .env.local << 'EOF'
59
+ CONVEX_DEPLOY_KEY=YOUR_DEPLOY_KEY
60
+ EOF
61
+
62
+
63
+ # 4. Set environment variables in Convex
64
+ npx convex env set TELEGRAM_BOT_TOKEN "YOUR_BOT_TOKEN"
65
+ npx convex env set TELEGRAM_USER_ID "YOUR_USER_ID"
66
+
67
+ # 5. Deploy to Convex
68
+ npx convex deploy
69
+
70
+ # 6. Test with a message
71
+ tsx scripts/send_message.ts "Setup complete!"
72
+ ```
73
+
74
+ **Critical**: User must start a chat with their bot (search and press "Start") before the bot can send messages.
75
+
76
+ ## Core Operations
77
+
78
+ ### Send Immediate Message
79
+
80
+ **Send text message**:
81
+
82
+ ```bash
83
+ tsx scripts/send_message.ts "Your message text here"
84
+ ```
85
+
86
+ **Example with special characters**:
87
+
88
+ ```bash
89
+ tsx scripts/send_message.ts "Hello! Here's a test message 🚀"
90
+ ```
91
+
92
+ ## Timezone
93
+
94
+ All times use user's configured timezone. The Convex backend stores UTC internally; client scripts handle conversion via chrono-node.
95
+
96
+ ## Limitations
97
+
98
+ - Files sent as documents (not inline images)
99
+ - Maximum file size: 50MB (Telegram limit)
100
+ - Cron granularity: 1 minute minimum
101
+ - No message editing (cancel and reschedule instead)
102
+ - Rate limits: 20 messages/minute per user
103
+
104
+ ## References
105
+
106
+ - [`references/initial_setup.md`](references/initial_setup.md) - Detailed setup process
107
+ - [`references/architecture.md`](references/architecture.md) - System architecture
108
+ - [`references/convex.md`](references/convex.md) - Convex platform details
109
+ - [`references/telegram_api.md`](references/telegram_api.md) - Telegram Bot API
110
+ - [`references/error_handling.md`](references/error_handling.md) - Error resolution guide