@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,309 @@
1
+ # Configure
2
+
3
+ Manage environments, variables, service config, domains, and networking.
4
+
5
+ ## Environments
6
+
7
+ ### List and switch
8
+
9
+ ```bash
10
+ railway environment list --json
11
+ railway environment list --ephemeral --json # only PR environments
12
+ railway environment list --no-ephemeral --json # hide PR environments
13
+ railway environment link <environment> # switch active environment
14
+ ```
15
+
16
+ ### Create
17
+
18
+ ```bash
19
+ railway environment new <name>
20
+ railway environment new <name> --duplicate <source-environment> # clone config from existing
21
+ ```
22
+
23
+ Duplicating copies all service configurations and variables from the source environment.
24
+
25
+ ## Variables
26
+
27
+ ### Read, set, and delete
28
+
29
+ ```bash
30
+ railway variable list --service <service> --environment <env> --json
31
+ railway variable set KEY=value --service <service> --environment <env>
32
+ railway variable delete KEY --service <service> --environment <env>
33
+ ```
34
+
35
+ Variable changes trigger a redeployment by default. This is usually the desired behavior, since the service picks up the values on restart. Use `--skip-deploys` only when you plan to redeploy or restart separately.
36
+
37
+ ### Set sensitive values
38
+
39
+ Use stdin for secrets or values that shouldn't appear in shell history:
40
+
41
+ ```bash
42
+ printf "%s" "$SECRET_VALUE" | railway variable set API_KEY --stdin --service <service>
43
+ railway variable set FEATURE_FLAG=true --service <service> --skip-deploys
44
+ railway variable set API_URL=https://api.example.com --project <project-id> --environment <env> --service <service>
45
+ ```
46
+
47
+ ### Template syntax
48
+
49
+ Railway supports interpolation between services and shared variables:
50
+
51
+ ```text
52
+ ${{KEY}} # same-service variable
53
+ ${{shared.API_KEY}} # shared variable
54
+ ${{postgres.DATABASE_URL}} # variable from another service
55
+ ${{api.RAILWAY_PRIVATE_DOMAIN}} # another service's private domain
56
+ ```
57
+
58
+ Wiring example, a frontend connecting to a backend over private networking:
59
+
60
+ ```text
61
+ BACKEND_URL=http://${{api.RAILWAY_PRIVATE_DOMAIN}}:${{api.PORT}}
62
+ ```
63
+
64
+ ### Wiring services together
65
+
66
+ Each managed database creates connection variables automatically. Reference them from other services using template syntax:
67
+
68
+ | Database | Variable reference |
69
+ |---|---|
70
+ | Postgres | `${{Postgres.DATABASE_URL}}` |
71
+ | Redis | `${{Redis.REDIS_URL}}` |
72
+ | MySQL | `${{MySQL.MYSQL_URL}}` |
73
+ | MongoDB | `${{MongoDB.MONGO_URL}}` |
74
+
75
+ Service names in references are case-sensitive and must match the service name exactly as it appears in the project.
76
+
77
+ **Public vs private networking decision:**
78
+
79
+ | Traffic path | Use |
80
+ |---|---|
81
+ | Browser → API | Public domain |
82
+ | Service → Service | Private domain (`RAILWAY_PRIVATE_DOMAIN`) |
83
+ | Service → Database | Private (automatic, uses internal DNS) |
84
+
85
+ **Frontend apps cannot use private networking.** Frontends run in the user's browser, not on Railway's network. They cannot reach `RAILWAY_PRIVATE_DOMAIN` or internal database URLs. Options:
86
+
87
+ 1. **Backend proxy** (recommended): frontend calls a backend API on a public domain, backend connects to the database over the private network.
88
+ 2. **Public database URL**: use the public connection variable (for example, `${{Postgres.DATABASE_PUBLIC_URL}}`). This requires a TCP proxy on the database service and exposes the database to the internet. Use this only for development or low-sensitivity data.
89
+
90
+ ### Railway-provided variables
91
+
92
+ These are set automatically at runtime. Availability depends on resource configuration.
93
+
94
+ **Networking:**
95
+
96
+ | Variable | Available when |
97
+ |---|---|
98
+ | `RAILWAY_PUBLIC_DOMAIN` | Public domain is configured |
99
+ | `RAILWAY_PRIVATE_DOMAIN` | Always (internal DNS for service-to-service traffic) |
100
+ | `RAILWAY_TCP_PROXY_DOMAIN` | TCP proxy is enabled |
101
+ | `RAILWAY_TCP_PROXY_PORT` | TCP proxy is enabled |
102
+
103
+ **Context:**
104
+
105
+ | Variable | Available when |
106
+ |---|---|
107
+ | `RAILWAY_PROJECT_ID` | Always |
108
+ | `RAILWAY_ENVIRONMENT_ID` | Always |
109
+ | `RAILWAY_ENVIRONMENT_NAME` | Always |
110
+ | `RAILWAY_SERVICE_ID` | Always |
111
+ | `RAILWAY_SERVICE_NAME` | Always |
112
+ | `RAILWAY_DEPLOYMENT_ID` | Always |
113
+ | `RAILWAY_REPLICA_ID` | Replicas configured |
114
+ | `RAILWAY_REPLICA_REGION` | Multi-region configured |
115
+
116
+ **Git (present when deployed from a linked repo):**
117
+
118
+ | Variable | Description |
119
+ |---|---|
120
+ | `RAILWAY_GIT_COMMIT_SHA` | Full commit hash of the deployed revision |
121
+ | `RAILWAY_GIT_AUTHOR` | Commit author name |
122
+ | `RAILWAY_GIT_COMMIT_MESSAGE` | First line of the commit message |
123
+ | `RAILWAY_GIT_BRANCH` | Branch that triggered the deploy |
124
+
125
+ **Storage (present when a volume is attached):**
126
+
127
+ | Variable | Description |
128
+ |---|---|
129
+ | `RAILWAY_VOLUME_MOUNT_PATH` | Filesystem path where the volume is mounted |
130
+ | `RAILWAY_VOLUME_NAME` | Name of the attached volume |
131
+
132
+ Sealed variables are write-only. Their values don't appear in CLI output.
133
+
134
+ ## Service config
135
+
136
+ Service configuration controls source, build, deploy, and networking settings. There are two ways to mutate it.
137
+
138
+ ### Dot-path patch
139
+
140
+ For single-field changes:
141
+
142
+ ```bash
143
+ railway environment edit --service-config <service> deploy.startCommand "npm start"
144
+ railway environment edit --service-config <service> build.buildCommand "npm run build"
145
+ railway environment edit --service-config <service> source.rootDirectory "/apps/api"
146
+ railway environment edit --service-config <service> deploy.numReplicas 2
147
+ railway environment edit --project <project-id> --environment production --service-config <service> deploy.startCommand "npm start"
148
+ ```
149
+
150
+ ### JSON patch
151
+
152
+ For multi-field changes or complex structures:
153
+
154
+ ```bash
155
+ railway environment edit --json <<'JSON'
156
+ {"services":{"<service-id>":{"build":{"buildCommand":"npm run build"},"deploy":{"startCommand":"npm start"}}}}
157
+ JSON
158
+ ```
159
+
160
+ Resolve exact service IDs from `railway service list --json` before constructing JSON patches. Using names in the JSON payload doesn't work.
161
+
162
+ ### Stage config changes
163
+
164
+ Stage changes when the user wants to review config before committing it:
165
+
166
+ ```bash
167
+ railway environment edit --service-config <service> build.buildCommand "npm run build" --stage
168
+ railway environment edit --service-config <service> deploy.startCommand "npm start" --message "Set production start command"
169
+ ```
170
+
171
+ Use `--stage` only when the user requests staged config changes. Use regular edits for immediate mutations.
172
+
173
+ ### Config schema (typed paths)
174
+
175
+ Include only keys you're changing. The full shape:
176
+
177
+ **Source**: `source.image` (string), `source.repo` (string), `source.branch` (string), `source.rootDirectory` (string), `source.checkSuites` (boolean), `source.commitSha` (string), `source.autoUpdates.type` (string: `disabled`, `patch`, `minor`)
178
+
179
+ **Build**: `build.builder` (string: `RAILPACK`, `NIXPACKS`, `DOCKERFILE`), `build.buildCommand` (string), `build.dockerfilePath` (string), `build.watchPatterns` (string array), `build.nixpacksConfigPath` (string)
180
+
181
+ **Deploy**: `deploy.startCommand` (string), `deploy.preDeployCommand` (string), `deploy.healthcheckPath` (string), `deploy.healthcheckTimeout` (integer), `deploy.numReplicas` (integer), `deploy.restartPolicyType` (string: `ON_FAILURE`, `ALWAYS`, `NEVER`), `deploy.restartPolicyMaxRetries` (integer), `deploy.sleepApplication` (boolean), `deploy.cronSchedule` (string), `deploy.multiRegionConfig` (object)
182
+
183
+ **Multi-region config** structure for `deploy.multiRegionConfig`:
184
+
185
+ ```json
186
+ { "us-west2": { "numReplicas": 2 }, "europe-west4-drams3a": { "numReplicas": 1 } }
187
+ ```
188
+
189
+ | Region identifier | Location |
190
+ |---|---|
191
+ | `us-west2` | US West (Oregon) |
192
+ | `us-east4-eqdc4a` | US East (Virginia) |
193
+ | `europe-west4-drams3a` | Europe (Netherlands) |
194
+ | `asia-southeast1-eqsg3a` | Asia (Singapore) |
195
+
196
+ Natural language mapping: "add replicas in Europe" → `europe-west4-drams3a`, "US East" → `us-east4-eqdc4a`. When the user doesn't specify a region, query current config first with `railway environment config --json` to see existing region assignments before modifying.
197
+
198
+ **Variables**: `variables.<KEY>.value` (string), `variables.<KEY>.isOptional` (boolean), `variables.<KEY>.isSealed` (boolean). Delete a variable by setting it to `null`.
199
+
200
+ **Lifecycle**: `isDeleted` (boolean) removes the service. `isCreated` (boolean) marks as new. Prefer `railway service delete` for normal service deletion.
201
+
202
+ **Storage**: `volumeMounts.<volume-id>.mountPath` (string), `volumes.<volume-id>.isDeleted` (boolean)
203
+
204
+ **Buckets**: `buckets.<bucket-id>.region` (string: `sjc`, `iad`, `ams`, `sin`), `buckets.<bucket-id>.isCreated` (boolean), `buckets.<bucket-id>.isDeleted` (boolean). Buckets are created at the project level via `railway bucket create` and deployed to environments via config patches. The CLI handles this automatically, so use `railway bucket` commands
205
+
206
+ ### Shared variables and project-level config
207
+
208
+ ```bash
209
+ railway environment edit --json <<'JSON'
210
+ {"sharedVariables":{"API_BASE":{"value":"https://example.com"}}}
211
+ JSON
212
+ ```
213
+
214
+ Shared variables are accessible from any service via `${{shared.KEY}}`.
215
+
216
+ ### Read config
217
+
218
+ Always inspect before mutating. Config patches merge, so you need to know the state to avoid overwriting fields unintentionally:
219
+
220
+ ```bash
221
+ railway environment config --json
222
+ ```
223
+
224
+ Verify after mutation to confirm the change took effect:
225
+
226
+ ```bash
227
+ railway environment config --json
228
+ railway service list --json
229
+ ```
230
+
231
+ ## Domains
232
+
233
+ ### Railway domain
234
+
235
+ One Railway-provided domain per service, generated automatically:
236
+
237
+ ```bash
238
+ railway domain --service <service> --json
239
+ ```
240
+
241
+ ### Custom domain
242
+
243
+ ```bash
244
+ railway domain example.com --service <service> --json
245
+ ```
246
+
247
+ This returns the DNS records you need to configure at your DNS provider. Multiple custom domains per service are supported.
248
+
249
+ ### Target port
250
+
251
+ If the service listens on a non-default port:
252
+
253
+ ```bash
254
+ railway domain example.com --service <service> --port 8080 --json
255
+ ```
256
+
257
+ ### Private networking
258
+
259
+ For service-to-service traffic within a project, use private domain references instead of public URLs. This avoids egress and is faster:
260
+
261
+ ```text
262
+ BACKEND_URL=http://${{api.RAILWAY_PRIVATE_DOMAIN}}:${{api.PORT}}
263
+ ```
264
+
265
+ ### Read current domains
266
+
267
+ Domain configuration lives in `config.services.<service-id>.networking` under `serviceDomains` (Railway-provided) and `customDomains`. Inspect with:
268
+
269
+ ```bash
270
+ railway environment config --json
271
+ ```
272
+
273
+ ### Remove a domain
274
+
275
+ Remove domains via JSON config patch by setting the domain ID to `null`:
276
+
277
+ **Remove a custom domain:**
278
+
279
+ ```bash
280
+ railway environment edit --json <<'JSON'
281
+ {"services":{"<service-id>":{"networking":{"customDomains":{"<domain-id>":null}}}}}
282
+ JSON
283
+ ```
284
+
285
+ **Remove a Railway-provided domain:**
286
+
287
+ ```bash
288
+ railway environment edit --json <<'JSON'
289
+ {"services":{"<service-id>":{"networking":{"serviceDomains":{"<domain-id>":null}}}}}
290
+ JSON
291
+ ```
292
+
293
+ Get the domain IDs from `railway environment config --json` under the service's `networking` object.
294
+
295
+ ## Troubleshoot configuration
296
+
297
+ - **Invalid dot-path**: check field names and types in the config schema section above
298
+ - **Wrong service key in JSON patch**: resolve service IDs from `railway service list --json`
299
+ - **Variable change didn't take effect**: verify with `railway variable list`, changes trigger redeploy by default
300
+ - **Domain returns errors**: verify the service has a healthy deployment and the target port is correct
301
+ - **DNS propagation delay**: custom domains take time to propagate, this is normal
302
+ - **Cloudflare proxy issues**: align SSL/TLS mode per Railway's domain guidance
303
+ - **Private networking failing**: verify the service is listening on the referenced port and that the private domain variable reference is correct
304
+ - **Multi-region patch ignored**: verify region names match the exact identifiers (`us-west2`, `us-east4-eqdc4a`, `europe-west4-drams3a`, `asia-southeast1-eqsg3a`)
305
+
306
+ ## Validated against
307
+
308
+ - Docs: [environment.md](https://docs.railway.com/cli/environment), [variable.md](https://docs.railway.com/cli/variable), [variables.md](https://docs.railway.com/variables), [domains.md](https://docs.railway.com/networking/domains), [public-networking.md](https://docs.railway.com/networking/public-networking), [private-networking.md](https://docs.railway.com/networking/private-networking)
309
+ - CLI source: [environment/mod.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/environment/mod.rs), [environment/edit.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/environment/edit.rs), [variable.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/variable.rs), [domain.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/domain.rs), [controllers/config/patch.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/controllers/config/patch.rs)
@@ -0,0 +1,195 @@
1
+ # Deploy
2
+
3
+ Ship code, manage releases, and configure builds.
4
+
5
+ ## Deploy code
6
+
7
+ ### Standard deploy
8
+
9
+ ```bash
10
+ railway up --detach -m "<release summary>"
11
+ ```
12
+
13
+ `--detach` returns immediately instead of streaming build logs. Without it, the deploy blocks execution until the build finishes. Always include `-m` with a release summary for auditability.
14
+
15
+ ### Watch the build
16
+
17
+ ```bash
18
+ railway up --ci -m "<release summary>"
19
+ ```
20
+
21
+ `--ci` streams build logs and exits when the build completes. Use this when the user wants to see build output or when you need to triage build failures immediately.
22
+
23
+ ### Targeted deploy
24
+
25
+ When multiple services exist, target explicitly:
26
+
27
+ ```bash
28
+ railway up --service <service> --environment <environment> --detach -m "<summary>"
29
+ ```
30
+
31
+ ### Deploy to an unlinked project
32
+
33
+ For CI or cross-project deploys where the directory isn't linked:
34
+
35
+ ```bash
36
+ railway up --project <project-id> --environment <environment> --detach -m "<summary>"
37
+ ```
38
+
39
+ `--project` requires `--environment`. Railway needs both to resolve context.
40
+
41
+ ## Manage releases
42
+
43
+ ### Redeploy and restart
44
+
45
+ ```bash
46
+ railway redeploy --service <service> --yes # redeploy the latest deployment
47
+ railway redeploy --service <service> --from-source --yes # pull latest commit or image
48
+ railway restart --service <service> --yes # restart without rebuilding
49
+ ```
50
+
51
+ Redeploy recreates the latest deployment without uploading local code. Use `--from-source` when the service is linked to a repo or image and you need Railway to pull the latest configured source. Restart only restarts the running container. Use restart when the code hasn't changed but the service needs a fresh process.
52
+
53
+ ### Remove latest deployment
54
+
55
+ ```bash
56
+ railway down --service <service> --yes
57
+ ```
58
+
59
+ This removes the latest successful deployment but doesn't delete the service. To delete a service entirely, use `railway service delete`.
60
+
61
+ ### Delete a service
62
+
63
+ Use service deletion when the user wants to remove the service itself:
64
+
65
+ ```bash
66
+ railway service delete --service <service> --environment <environment> --yes --json
67
+ ```
68
+
69
+ Deleting a service is destructive. Confirm the target service and environment before running it.
70
+
71
+ ## Deployment history and logs
72
+
73
+ ```bash
74
+ railway deployment list --service <service> --limit 20 --json
75
+ railway logs --service <service> --lines 200 --json # runtime logs
76
+ railway logs --service <service> --build --lines 200 --json # build logs
77
+ railway logs --latest --lines 200 --json # latest deployment
78
+ ```
79
+
80
+ In an interactive terminal, `railway logs` streams indefinitely when no bounding flags are given. Always use `--lines`, `--since`, or `--until` to get a bounded fetch for agent workflows.
81
+
82
+ ## Build configuration
83
+
84
+ Railway uses Railpack as the default builder. It detects language and framework from repo contents and assembles a build plan automatically.
85
+
86
+ ### Builder selection
87
+
88
+ Three builder options, set via service config:
89
+
90
+ - **RAILPACK** auto-detects language and framework, builds from source (default)
91
+ - **NIXPACKS** is the legacy builder. Use RAILPACK instead.
92
+ - **DOCKERFILE** uses a Dockerfile you provide
93
+
94
+ ```bash
95
+ railway environment edit --service-config <service> build.builder RAILPACK
96
+ railway environment edit --service-config <service> build.builder DOCKERFILE
97
+ railway environment edit --service-config <service> build.dockerfilePath "docker/Dockerfile.prod"
98
+ ```
99
+
100
+ ### Build and start commands
101
+
102
+ Override when auto-detection gets it wrong:
103
+
104
+ ```bash
105
+ railway environment edit --service-config <service> build.buildCommand "npm run build"
106
+ railway environment edit --service-config <service> deploy.startCommand "npm start"
107
+ ```
108
+
109
+ Common reasons to override: wrong package manager detected, multiple build targets in a monorepo, framework-specific output paths.
110
+
111
+ ### Railpack environment variables
112
+
113
+ Control Railpack behavior by setting these as service variables:
114
+
115
+ | Variable | Purpose |
116
+ |---|---|
117
+ | `RAILPACK_NODE_VERSION` | Pin Node.js version (e.g., `20`, `22.1.0`) |
118
+ | `RAILPACK_PYTHON_VERSION` | Pin Python version (e.g., `3.12`) |
119
+ | `RAILPACK_GO_BIN` | Go binary name to build |
120
+ | `RAILPACK_STATIC_FILE_ROOT` | Directory for static site output (e.g., `dist`, `build`) |
121
+ | `RAILPACK_SPA_OUTPUT_DIR` | SPA output directory with client-side routing support |
122
+ | `RAILPACK_PACKAGES` | Additional system packages for the build |
123
+ | `RAILPACK_BUILD_APT_PACKAGES` | Apt packages available during build only |
124
+ | `RAILPACK_DEPLOY_APT_PACKAGES` | Apt packages available at runtime only |
125
+
126
+ For full Railpack documentation including language-specific detection, config files, and framework support: https://railpack.com/llms.txt
127
+
128
+ ### Static sites
129
+
130
+ Railpack detects static sites from `Staticfile`, `index.html`, or `RAILPACK_STATIC_FILE_ROOT` and serves them with a built-in static file server. If the build outputs to a non-standard directory (for example, `dist/`, `build/`), set `RAILPACK_STATIC_FILE_ROOT` as a variable so Railpack knows where to find the output.
131
+
132
+ ## Monorepo patterns
133
+
134
+ ### Isolated monorepo
135
+
136
+ When services don't share code, isolate each with its own root directory:
137
+
138
+ ```bash
139
+ railway environment edit --service-config <service> source.rootDirectory "/packages/api"
140
+ ```
141
+
142
+ Each service sees only its subdirectory. This approach is clean but breaks if services import from shared packages.
143
+
144
+ ### Shared monorepo
145
+
146
+ When services depend on shared packages or root-level workspace config, keep the full repo context and scope via build/start commands instead:
147
+
148
+ ```bash
149
+ # pnpm workspaces
150
+ railway environment edit --service-config <service> build.buildCommand "pnpm --filter api build"
151
+ railway environment edit --service-config <service> deploy.startCommand "pnpm --filter api start"
152
+
153
+ # yarn workspaces
154
+ railway environment edit --service-config <service> build.buildCommand "yarn workspace api build"
155
+ railway environment edit --service-config <service> deploy.startCommand "yarn workspace api start"
156
+
157
+ # bun workspaces
158
+ railway environment edit --service-config <service> build.buildCommand "bun run --filter api build"
159
+ railway environment edit --service-config <service> deploy.startCommand "bun run --filter api start"
160
+
161
+ # turborepo (works with any package manager)
162
+ railway environment edit --service-config <service> build.buildCommand "npx turbo run build --filter=api"
163
+ railway environment edit --service-config <service> deploy.startCommand "npx turbo run start --filter=api"
164
+ ```
165
+
166
+ Don't set a restrictive `rootDirectory` in this case. The build needs access to the workspace root.
167
+
168
+ ### Watch paths
169
+
170
+ Prevent unrelated package changes from redeploying every service:
171
+
172
+ ```bash
173
+ railway environment edit --service-config <service> build.watchPatterns '["packages/api/**","packages/shared/**"]'
174
+ ```
175
+
176
+ ### Common monorepo pitfalls
177
+
178
+ - **Using `rootDirectory` with shared imports**: if service A imports from `packages/shared/`, setting `rootDirectory: "/packages/a"` hides the shared code. Use the shared monorepo pattern instead.
179
+ - **Forgetting watch paths**: without watch paths, every push redeploys all services, even when only one package changed.
180
+ - **Wrong filter target**: `pnpm --filter api` uses the `name` field in each package's `package.json`, not the directory name. Verify the package name matches.
181
+
182
+ ## Troubleshoot deploys
183
+
184
+ - **No project/service context**: run `railway link` or pass `--project` with `--environment`
185
+ - **Build fails before compile**: check dependency graph, lockfiles, and whether the right builder is selected
186
+ - **Build succeeds but app crashes**: verify start command and required runtime variables
187
+ - **Wrong files in build**: check root directory and watch patterns
188
+ - **`railway down` treated as delete**: `down` only removes the latest deployment. For service deletion, use `railway service delete`
189
+ - **Wrong Node/Python version detected**: set `RAILPACK_NODE_VERSION` or `RAILPACK_PYTHON_VERSION` as a service variable to pin the version
190
+ - **Missing system package at runtime**: add the package to `RAILPACK_DEPLOY_APT_PACKAGES`
191
+
192
+ ## Validated against
193
+
194
+ - Docs: [up.md](https://docs.railway.com/cli/up), [deploying.md](https://docs.railway.com/cli/deploying), [deployment.md](https://docs.railway.com/cli/deployment), [redeploy.md](https://docs.railway.com/cli/redeploy), [service.md](https://docs.railway.com/cli/service), [down.md](https://docs.railway.com/cli/down), [railpack.md](https://docs.railway.com/builds/railpack), [monorepo.md](https://docs.railway.com/deployments/monorepo)
195
+ - CLI source: [up.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/up.rs), [deployment.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/deployment.rs), [down.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/down.rs), [redeploy.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/redeploy.rs), [restart.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/restart.rs), [service.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/service.rs)