@arthai/agents 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/README.md +123 -0
  2. package/VERSION +1 -0
  3. package/agents/ai-consultant.md +999 -0
  4. package/agents/architect.md +174 -0
  5. package/agents/code-reviewer.md +115 -0
  6. package/agents/competitive-analyst.md +688 -0
  7. package/agents/content-strategist.md +607 -0
  8. package/agents/design-studio-create.md +304 -0
  9. package/agents/design-studio-critique.md +258 -0
  10. package/agents/design-studio-think.md +79 -0
  11. package/agents/domain-hunter.md +519 -0
  12. package/agents/explore-light.md +52 -0
  13. package/agents/frontend.md +261 -0
  14. package/agents/gtm-expert.md +811 -0
  15. package/agents/meeting-prep.md +318 -0
  16. package/agents/ops.md +149 -0
  17. package/agents/product-manager.md +563 -0
  18. package/agents/python-backend.md +286 -0
  19. package/agents/qa-baseline-updater.md +45 -0
  20. package/agents/qa-challenger.md +97 -0
  21. package/agents/qa-domain.md +145 -0
  22. package/agents/qa-e2e.md +184 -0
  23. package/agents/qa-test-promoter.md +97 -0
  24. package/agents/qa.md +226 -0
  25. package/agents/setup.md +134 -0
  26. package/agents/sre.md +165 -0
  27. package/agents/stakeholder-reporter.md +94 -0
  28. package/agents/user-researcher.md +602 -0
  29. package/bin/cli.js +322 -0
  30. package/bundles/canvas.json +16 -0
  31. package/bundles/compass.json +16 -0
  32. package/bundles/counsel.json +31 -0
  33. package/bundles/cruise.json +11 -0
  34. package/bundles/forge.json +26 -0
  35. package/bundles/prime.json +10 -0
  36. package/bundles/prism.json +23 -0
  37. package/bundles/scalpel.json +17 -0
  38. package/bundles/sentinel.json +19 -0
  39. package/bundles/shield.json +14 -0
  40. package/bundles/spark.json +19 -0
  41. package/compiler.sh +305 -0
  42. package/dist/plugins/canvas/.claude-plugin/plugin.json +6 -0
  43. package/dist/plugins/canvas/agents/design-studio-create.md +304 -0
  44. package/dist/plugins/canvas/agents/design-studio-critique.md +258 -0
  45. package/dist/plugins/canvas/agents/design-studio-think.md +79 -0
  46. package/dist/plugins/canvas/agents/frontend.md +261 -0
  47. package/dist/plugins/canvas/skills/planning/SKILL.md +436 -0
  48. package/dist/plugins/compass/.claude-plugin/plugin.json +6 -0
  49. package/dist/plugins/compass/agents/content-strategist.md +607 -0
  50. package/dist/plugins/compass/agents/gtm-expert.md +811 -0
  51. package/dist/plugins/compass/agents/product-manager.md +563 -0
  52. package/dist/plugins/compass/agents/user-researcher.md +602 -0
  53. package/dist/plugins/compass/skills/planning/SKILL.md +436 -0
  54. package/dist/plugins/counsel/.claude-plugin/plugin.json +6 -0
  55. package/dist/plugins/counsel/agents/ai-consultant.md +999 -0
  56. package/dist/plugins/counsel/agents/competitive-analyst.md +688 -0
  57. package/dist/plugins/counsel/agents/meeting-prep.md +318 -0
  58. package/dist/plugins/counsel/agents/stakeholder-reporter.md +94 -0
  59. package/dist/plugins/counsel/hooks/check-deliverable.sh +65 -0
  60. package/dist/plugins/counsel/hooks/ensure-client-dir.sh +59 -0
  61. package/dist/plugins/counsel/hooks/hooks.json +28 -0
  62. package/dist/plugins/counsel/skills/client-discovery/SKILL.md +266 -0
  63. package/dist/plugins/counsel/skills/consulting/SKILL.md +282 -0
  64. package/dist/plugins/counsel/skills/deliverable-builder/SKILL.md +928 -0
  65. package/dist/plugins/counsel/skills/engagement-tracker/SKILL.md +380 -0
  66. package/dist/plugins/counsel/skills/market-research/SKILL.md +300 -0
  67. package/dist/plugins/counsel/skills/opportunity-map/SKILL.md +307 -0
  68. package/dist/plugins/counsel/skills/pitch-generator/SKILL.md +378 -0
  69. package/dist/plugins/counsel/skills/roi-calculator/SKILL.md +469 -0
  70. package/dist/plugins/counsel/skills/share/SKILL.md +211 -0
  71. package/dist/plugins/counsel/skills/solution-architect/SKILL.md +566 -0
  72. package/dist/plugins/counsel/skills/templates/SKILL.md +194 -0
  73. package/dist/plugins/counsel/skills/welcome/SKILL.md +136 -0
  74. package/dist/plugins/counsel/skills/wizard/SKILL.md +411 -0
  75. package/dist/plugins/cruise/.claude-plugin/plugin.json +6 -0
  76. package/dist/plugins/cruise/skills/autopilot/SKILL.md +425 -0
  77. package/dist/plugins/forge/.claude-plugin/plugin.json +6 -0
  78. package/dist/plugins/forge/agents/architect.md +174 -0
  79. package/dist/plugins/forge/agents/code-reviewer.md +115 -0
  80. package/dist/plugins/forge/agents/frontend.md +261 -0
  81. package/dist/plugins/forge/agents/product-manager.md +563 -0
  82. package/dist/plugins/forge/agents/python-backend.md +286 -0
  83. package/dist/plugins/forge/agents/qa.md +226 -0
  84. package/dist/plugins/forge/hooks/hooks.json +28 -0
  85. package/dist/plugins/forge/hooks/post-test-summary.sh +115 -0
  86. package/dist/plugins/forge/hooks/triage-router.sh +740 -0
  87. package/dist/plugins/forge/skills/implement/SKILL.md +532 -0
  88. package/dist/plugins/forge/skills/planning/SKILL.md +436 -0
  89. package/dist/plugins/forge/skills/pr/SKILL.md +275 -0
  90. package/dist/plugins/forge/skills/precheck/SKILL.md +159 -0
  91. package/dist/plugins/forge/skills/qa/SKILL.md +127 -0
  92. package/dist/plugins/forge/skills/review-pr/SKILL.md +367 -0
  93. package/dist/plugins/prime/.claude-plugin/plugin.json +6 -0
  94. package/dist/plugins/prime/agents/ai-consultant.md +999 -0
  95. package/dist/plugins/prime/agents/architect.md +174 -0
  96. package/dist/plugins/prime/agents/code-reviewer.md +115 -0
  97. package/dist/plugins/prime/agents/competitive-analyst.md +688 -0
  98. package/dist/plugins/prime/agents/content-strategist.md +607 -0
  99. package/dist/plugins/prime/agents/design-studio-create.md +304 -0
  100. package/dist/plugins/prime/agents/design-studio-critique.md +258 -0
  101. package/dist/plugins/prime/agents/design-studio-think.md +79 -0
  102. package/dist/plugins/prime/agents/explore-light.md +52 -0
  103. package/dist/plugins/prime/agents/frontend.md +261 -0
  104. package/dist/plugins/prime/agents/gtm-expert.md +811 -0
  105. package/dist/plugins/prime/agents/meeting-prep.md +318 -0
  106. package/dist/plugins/prime/agents/ops.md +149 -0
  107. package/dist/plugins/prime/agents/product-manager.md +563 -0
  108. package/dist/plugins/prime/agents/python-backend.md +286 -0
  109. package/dist/plugins/prime/agents/qa-baseline-updater.md +45 -0
  110. package/dist/plugins/prime/agents/qa-challenger.md +97 -0
  111. package/dist/plugins/prime/agents/qa-domain.md +145 -0
  112. package/dist/plugins/prime/agents/qa-e2e.md +184 -0
  113. package/dist/plugins/prime/agents/qa-test-promoter.md +97 -0
  114. package/dist/plugins/prime/agents/qa.md +226 -0
  115. package/dist/plugins/prime/agents/setup.md +134 -0
  116. package/dist/plugins/prime/agents/sre.md +165 -0
  117. package/dist/plugins/prime/agents/stakeholder-reporter.md +94 -0
  118. package/dist/plugins/prime/agents/user-researcher.md +602 -0
  119. package/dist/plugins/prime/hooks/check-deliverable.sh +65 -0
  120. package/dist/plugins/prime/hooks/ensure-client-dir.sh +59 -0
  121. package/dist/plugins/prime/hooks/hooks.json +184 -0
  122. package/dist/plugins/prime/hooks/post-deploy-health.sh +83 -0
  123. package/dist/plugins/prime/hooks/post-diff-test-compare.sh +125 -0
  124. package/dist/plugins/prime/hooks/post-edit-lint.sh +92 -0
  125. package/dist/plugins/prime/hooks/post-git-state.sh +54 -0
  126. package/dist/plugins/prime/hooks/post-merge-cleanup.sh +101 -0
  127. package/dist/plugins/prime/hooks/post-test-summary.sh +115 -0
  128. package/dist/plugins/prime/hooks/pre-bash-guard.sh +142 -0
  129. package/dist/plugins/prime/hooks/pre-edit-guard.sh +121 -0
  130. package/dist/plugins/prime/hooks/pre-task-context.sh +113 -0
  131. package/dist/plugins/prime/hooks/session-bootstrap.sh +379 -0
  132. package/dist/plugins/prime/hooks/session-end.sh +107 -0
  133. package/dist/plugins/prime/hooks/session-summary.sh +97 -0
  134. package/dist/plugins/prime/hooks/sync-agents.sh +269 -0
  135. package/dist/plugins/prime/hooks/triage-router.sh +740 -0
  136. package/dist/plugins/prime/skills/arth/SKILL.md +165 -0
  137. package/dist/plugins/prime/skills/autopilot/SKILL.md +425 -0
  138. package/dist/plugins/prime/skills/calibrate/SKILL.md +1807 -0
  139. package/dist/plugins/prime/skills/ci-fix/SKILL.md +293 -0
  140. package/dist/plugins/prime/skills/client-discovery/SKILL.md +266 -0
  141. package/dist/plugins/prime/skills/consulting/SKILL.md +282 -0
  142. package/dist/plugins/prime/skills/custom-domain/SKILL.md +261 -0
  143. package/dist/plugins/prime/skills/deliverable-builder/SKILL.md +928 -0
  144. package/dist/plugins/prime/skills/discord-ops/SKILL.md +125 -0
  145. package/dist/plugins/prime/skills/engagement-tracker/SKILL.md +380 -0
  146. package/dist/plugins/prime/skills/explore.md +43 -0
  147. package/dist/plugins/prime/skills/fix/SKILL.md +1058 -0
  148. package/dist/plugins/prime/skills/implement/SKILL.md +532 -0
  149. package/dist/plugins/prime/skills/incident/SKILL.md +910 -0
  150. package/dist/plugins/prime/skills/issue/SKILL.md +134 -0
  151. package/dist/plugins/prime/skills/market-research/SKILL.md +300 -0
  152. package/dist/plugins/prime/skills/onboard/SKILL.md +344 -0
  153. package/dist/plugins/prime/skills/opportunity-map/SKILL.md +307 -0
  154. package/dist/plugins/prime/skills/pitch-generator/SKILL.md +378 -0
  155. package/dist/plugins/prime/skills/planning/SKILL.md +436 -0
  156. package/dist/plugins/prime/skills/pr/SKILL.md +275 -0
  157. package/dist/plugins/prime/skills/precheck/SKILL.md +159 -0
  158. package/dist/plugins/prime/skills/qa/SKILL.md +127 -0
  159. package/dist/plugins/prime/skills/qa-incident/SKILL.md +54 -0
  160. package/dist/plugins/prime/skills/qa-learn/SKILL.md +47 -0
  161. package/dist/plugins/prime/skills/restart/SKILL.md +70 -0
  162. package/dist/plugins/prime/skills/review-pr/SKILL.md +367 -0
  163. package/dist/plugins/prime/skills/roi-calculator/SKILL.md +469 -0
  164. package/dist/plugins/prime/skills/scan/SKILL.md +232 -0
  165. package/dist/plugins/prime/skills/setup/SKILL.md +691 -0
  166. package/dist/plugins/prime/skills/share/SKILL.md +211 -0
  167. package/dist/plugins/prime/skills/solution-architect/SKILL.md +566 -0
  168. package/dist/plugins/prime/skills/sre/SKILL.md +362 -0
  169. package/dist/plugins/prime/skills/sync/SKILL.md +188 -0
  170. package/dist/plugins/prime/skills/templates/SKILL.md +194 -0
  171. package/dist/plugins/prime/skills/welcome/SKILL.md +136 -0
  172. package/dist/plugins/prime/skills/wizard/SKILL.md +411 -0
  173. package/dist/plugins/prism/.claude-plugin/plugin.json +6 -0
  174. package/dist/plugins/prism/agents/qa-baseline-updater.md +45 -0
  175. package/dist/plugins/prism/agents/qa-challenger.md +97 -0
  176. package/dist/plugins/prism/agents/qa-domain.md +145 -0
  177. package/dist/plugins/prism/agents/qa-e2e.md +184 -0
  178. package/dist/plugins/prism/agents/qa-test-promoter.md +97 -0
  179. package/dist/plugins/prism/agents/qa.md +226 -0
  180. package/dist/plugins/prism/hooks/hooks.json +26 -0
  181. package/dist/plugins/prism/hooks/post-diff-test-compare.sh +125 -0
  182. package/dist/plugins/prism/hooks/post-test-summary.sh +115 -0
  183. package/dist/plugins/prism/skills/qa/SKILL.md +127 -0
  184. package/dist/plugins/prism/skills/qa-incident/SKILL.md +54 -0
  185. package/dist/plugins/prism/skills/qa-learn/SKILL.md +47 -0
  186. package/dist/plugins/scalpel/.claude-plugin/plugin.json +6 -0
  187. package/dist/plugins/scalpel/agents/code-reviewer.md +115 -0
  188. package/dist/plugins/scalpel/hooks/hooks.json +26 -0
  189. package/dist/plugins/scalpel/hooks/pre-edit-guard.sh +121 -0
  190. package/dist/plugins/scalpel/skills/ci-fix/SKILL.md +293 -0
  191. package/dist/plugins/scalpel/skills/fix/SKILL.md +1058 -0
  192. package/dist/plugins/scalpel/skills/issue/SKILL.md +134 -0
  193. package/dist/plugins/sentinel/.claude-plugin/plugin.json +6 -0
  194. package/dist/plugins/sentinel/agents/ops.md +149 -0
  195. package/dist/plugins/sentinel/agents/sre.md +165 -0
  196. package/dist/plugins/sentinel/hooks/hooks.json +26 -0
  197. package/dist/plugins/sentinel/hooks/post-deploy-health.sh +83 -0
  198. package/dist/plugins/sentinel/hooks/post-git-state.sh +54 -0
  199. package/dist/plugins/sentinel/skills/incident/SKILL.md +910 -0
  200. package/dist/plugins/sentinel/skills/restart/SKILL.md +70 -0
  201. package/dist/plugins/sentinel/skills/sre/SKILL.md +362 -0
  202. package/dist/plugins/shield/.claude-plugin/plugin.json +6 -0
  203. package/dist/plugins/shield/hooks/hooks.json +60 -0
  204. package/dist/plugins/shield/hooks/pre-bash-guard.sh +142 -0
  205. package/dist/plugins/shield/hooks/pre-edit-guard.sh +121 -0
  206. package/dist/plugins/shield/hooks/session-bootstrap.sh +379 -0
  207. package/dist/plugins/shield/hooks/triage-router.sh +740 -0
  208. package/dist/plugins/spark/.claude-plugin/plugin.json +6 -0
  209. package/dist/plugins/spark/agents/explore-light.md +52 -0
  210. package/dist/plugins/spark/agents/setup.md +134 -0
  211. package/dist/plugins/spark/hooks/hooks.json +16 -0
  212. package/dist/plugins/spark/hooks/session-bootstrap.sh +379 -0
  213. package/dist/plugins/spark/skills/calibrate/SKILL.md +1807 -0
  214. package/dist/plugins/spark/skills/onboard/SKILL.md +344 -0
  215. package/dist/plugins/spark/skills/scan/SKILL.md +232 -0
  216. package/dist/plugins/spark/skills/setup/SKILL.md +691 -0
  217. package/hook-defs.json +104 -0
  218. package/hooks/check-deliverable.sh +65 -0
  219. package/hooks/ensure-client-dir.sh +59 -0
  220. package/hooks/hooks.json +16 -0
  221. package/hooks/post-deploy-health.sh +83 -0
  222. package/hooks/post-diff-test-compare.sh +125 -0
  223. package/hooks/post-edit-lint.sh +92 -0
  224. package/hooks/post-git-state.sh +54 -0
  225. package/hooks/post-merge-cleanup.sh +101 -0
  226. package/hooks/post-test-summary.sh +115 -0
  227. package/hooks/pre-bash-guard.sh +142 -0
  228. package/hooks/pre-edit-guard.sh +121 -0
  229. package/hooks/pre-task-context.sh +113 -0
  230. package/hooks/session-bootstrap.sh +379 -0
  231. package/hooks/session-end.sh +107 -0
  232. package/hooks/session-start.sh +46 -0
  233. package/hooks/session-summary.sh +97 -0
  234. package/hooks/sync-agents.sh +269 -0
  235. package/hooks/triage-router.sh +740 -0
  236. package/install.sh +3185 -0
  237. package/package.json +40 -0
  238. package/portable.manifest +112 -0
  239. package/skills/arth/SKILL.md +165 -0
  240. package/skills/autopilot/SKILL.md +425 -0
  241. package/skills/calibrate/SKILL.md +1807 -0
  242. package/skills/ci-fix/SKILL.md +293 -0
  243. package/skills/client-discovery/SKILL.md +266 -0
  244. package/skills/consulting/SKILL.md +282 -0
  245. package/skills/continue/SKILL.md +174 -0
  246. package/skills/custom-domain/SKILL.md +261 -0
  247. package/skills/deliverable-builder/SKILL.md +928 -0
  248. package/skills/discord-ops/SKILL.md +125 -0
  249. package/skills/engagement-tracker/SKILL.md +380 -0
  250. package/skills/explore.md +43 -0
  251. package/skills/fix/SKILL.md +1058 -0
  252. package/skills/implement/SKILL.md +532 -0
  253. package/skills/incident/SKILL.md +910 -0
  254. package/skills/issue/SKILL.md +134 -0
  255. package/skills/market-research/SKILL.md +300 -0
  256. package/skills/onboard/SKILL.md +344 -0
  257. package/skills/opportunity-map/SKILL.md +307 -0
  258. package/skills/pitch-generator/SKILL.md +378 -0
  259. package/skills/planning/SKILL.md +436 -0
  260. package/skills/pr/SKILL.md +275 -0
  261. package/skills/precheck/SKILL.md +159 -0
  262. package/skills/qa/SKILL.md +127 -0
  263. package/skills/qa-incident/SKILL.md +54 -0
  264. package/skills/qa-learn/SKILL.md +47 -0
  265. package/skills/railway/central-station/SKILL.md +226 -0
  266. package/skills/railway/central-station/references/environment-config.md +183 -0
  267. package/skills/railway/central-station/references/monorepo.md +216 -0
  268. package/skills/railway/central-station/references/railpack.md +257 -0
  269. package/skills/railway/central-station/references/variables.md +170 -0
  270. package/skills/railway/database/SKILL.md +284 -0
  271. package/skills/railway/database/references/environment-config.md +183 -0
  272. package/skills/railway/database/references/monorepo.md +216 -0
  273. package/skills/railway/database/references/railpack.md +257 -0
  274. package/skills/railway/database/references/variables.md +170 -0
  275. package/skills/railway/database/scripts/railway-api.sh +41 -0
  276. package/skills/railway/deploy/SKILL.md +128 -0
  277. package/skills/railway/deploy/references/environment-config.md +183 -0
  278. package/skills/railway/deploy/references/monorepo.md +216 -0
  279. package/skills/railway/deploy/references/railpack.md +257 -0
  280. package/skills/railway/deploy/references/variables.md +170 -0
  281. package/skills/railway/deployment/SKILL.md +222 -0
  282. package/skills/railway/deployment/references/environment-config.md +183 -0
  283. package/skills/railway/deployment/references/monorepo.md +216 -0
  284. package/skills/railway/deployment/references/railpack.md +257 -0
  285. package/skills/railway/deployment/references/variables.md +170 -0
  286. package/skills/railway/domain/SKILL.md +137 -0
  287. package/skills/railway/domain/references/environment-config.md +183 -0
  288. package/skills/railway/domain/references/monorepo.md +216 -0
  289. package/skills/railway/domain/references/railpack.md +257 -0
  290. package/skills/railway/domain/references/variables.md +170 -0
  291. package/skills/railway/environment/SKILL.md +266 -0
  292. package/skills/railway/environment/references/environment-config.md +183 -0
  293. package/skills/railway/environment/references/monorepo.md +216 -0
  294. package/skills/railway/environment/references/railpack.md +257 -0
  295. package/skills/railway/environment/references/variables.md +170 -0
  296. package/skills/railway/metrics/SKILL.md +211 -0
  297. package/skills/railway/metrics/references/environment-config.md +183 -0
  298. package/skills/railway/metrics/references/monorepo.md +216 -0
  299. package/skills/railway/metrics/references/railpack.md +257 -0
  300. package/skills/railway/metrics/references/variables.md +170 -0
  301. package/skills/railway/metrics/scripts/railway-api.sh +41 -0
  302. package/skills/railway/new/SKILL.md +489 -0
  303. package/skills/railway/new/references/environment-config.md +183 -0
  304. package/skills/railway/new/references/monorepo.md +216 -0
  305. package/skills/railway/new/references/railpack.md +257 -0
  306. package/skills/railway/new/references/variables.md +170 -0
  307. package/skills/railway/projects/SKILL.md +142 -0
  308. package/skills/railway/projects/references/environment-config.md +183 -0
  309. package/skills/railway/projects/references/monorepo.md +216 -0
  310. package/skills/railway/projects/references/railpack.md +257 -0
  311. package/skills/railway/projects/references/variables.md +170 -0
  312. package/skills/railway/projects/scripts/railway-api.sh +41 -0
  313. package/skills/railway/railway-docs/SKILL.md +47 -0
  314. package/skills/railway/railway-docs/references/environment-config.md +183 -0
  315. package/skills/railway/railway-docs/references/monorepo.md +216 -0
  316. package/skills/railway/railway-docs/references/railpack.md +257 -0
  317. package/skills/railway/railway-docs/references/variables.md +170 -0
  318. package/skills/railway/service/SKILL.md +249 -0
  319. package/skills/railway/service/references/environment-config.md +183 -0
  320. package/skills/railway/service/references/monorepo.md +216 -0
  321. package/skills/railway/service/references/railpack.md +257 -0
  322. package/skills/railway/service/references/variables.md +170 -0
  323. package/skills/railway/service/scripts/railway-api.sh +41 -0
  324. package/skills/railway/status/SKILL.md +91 -0
  325. package/skills/railway/status/references/environment-config.md +183 -0
  326. package/skills/railway/status/references/monorepo.md +216 -0
  327. package/skills/railway/status/references/railpack.md +257 -0
  328. package/skills/railway/status/references/variables.md +170 -0
  329. package/skills/railway/templates/SKILL.md +275 -0
  330. package/skills/railway/templates/references/environment-config.md +183 -0
  331. package/skills/railway/templates/references/monorepo.md +216 -0
  332. package/skills/railway/templates/references/railpack.md +257 -0
  333. package/skills/railway/templates/references/variables.md +170 -0
  334. package/skills/railway/templates/scripts/railway-api.sh +41 -0
  335. package/skills/restart/SKILL.md +70 -0
  336. package/skills/review-pr/SKILL.md +367 -0
  337. package/skills/roi-calculator/SKILL.md +469 -0
  338. package/skills/scan/SKILL.md +232 -0
  339. package/skills/setup/SKILL.md +691 -0
  340. package/skills/share/SKILL.md +211 -0
  341. package/skills/solution-architect/SKILL.md +566 -0
  342. package/skills/sre/SKILL.md +362 -0
  343. package/skills/superpowers/brainstorming/SKILL.md +96 -0
  344. package/skills/superpowers/dispatching-parallel-agents/SKILL.md +180 -0
  345. package/skills/superpowers/executing-plans/SKILL.md +84 -0
  346. package/skills/superpowers/finishing-a-development-branch/SKILL.md +200 -0
  347. package/skills/superpowers/receiving-code-review/SKILL.md +213 -0
  348. package/skills/superpowers/requesting-code-review/SKILL.md +105 -0
  349. package/skills/superpowers/requesting-code-review/code-reviewer.md +146 -0
  350. package/skills/superpowers/subagent-driven-development/SKILL.md +242 -0
  351. package/skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  352. package/skills/superpowers/subagent-driven-development/implementer-prompt.md +78 -0
  353. package/skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  354. package/skills/superpowers/systematic-debugging/CREATION-LOG.md +119 -0
  355. package/skills/superpowers/systematic-debugging/SKILL.md +296 -0
  356. package/skills/superpowers/systematic-debugging/condition-based-waiting-example.ts +158 -0
  357. package/skills/superpowers/systematic-debugging/condition-based-waiting.md +115 -0
  358. package/skills/superpowers/systematic-debugging/defense-in-depth.md +122 -0
  359. package/skills/superpowers/systematic-debugging/find-polluter.sh +63 -0
  360. package/skills/superpowers/systematic-debugging/root-cause-tracing.md +169 -0
  361. package/skills/superpowers/systematic-debugging/test-academic.md +14 -0
  362. package/skills/superpowers/systematic-debugging/test-pressure-1.md +58 -0
  363. package/skills/superpowers/systematic-debugging/test-pressure-2.md +68 -0
  364. package/skills/superpowers/systematic-debugging/test-pressure-3.md +69 -0
  365. package/skills/superpowers/test-driven-development/SKILL.md +371 -0
  366. package/skills/superpowers/test-driven-development/testing-anti-patterns.md +299 -0
  367. package/skills/superpowers/using-git-worktrees/SKILL.md +218 -0
  368. package/skills/superpowers/using-superpowers/SKILL.md +95 -0
  369. package/skills/superpowers/verification-before-completion/SKILL.md +139 -0
  370. package/skills/superpowers/writing-plans/SKILL.md +116 -0
  371. package/skills/superpowers/writing-skills/SKILL.md +655 -0
  372. package/skills/superpowers/writing-skills/anthropic-best-practices.md +1150 -0
  373. package/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  374. package/skills/superpowers/writing-skills/graphviz-conventions.dot +172 -0
  375. package/skills/superpowers/writing-skills/persuasion-principles.md +187 -0
  376. package/skills/superpowers/writing-skills/render-graphs.js +168 -0
  377. package/skills/superpowers/writing-skills/testing-skills-with-subagents.md +384 -0
  378. package/skills/sync/SKILL.md +188 -0
  379. package/skills/templates/SKILL.md +194 -0
  380. package/skills/welcome/SKILL.md +136 -0
  381. package/skills/wizard/SKILL.md +411 -0
  382. package/templates/CLAUDE.md.managed-block +123 -0
  383. package/templates/CLAUDE.md.template +111 -0
  384. package/templates/consulting/engagement-tracker-template.md +181 -0
  385. package/templates/consulting/executive-summary-template.md +83 -0
  386. package/templates/consulting/maturity-assessment-template.md +182 -0
  387. package/templates/consulting/proposal-template.md +209 -0
  388. package/templates/consulting/roi-model-template.md +139 -0
  389. package/templates/consulting/solution-architecture-template.md +313 -0
  390. package/templates/settings.json +130 -0
@@ -0,0 +1,257 @@
1
+ # Railpack Reference
2
+
3
+ Railpack is Railway's default builder. Zero-config for most projects.
4
+
5
+ Full docs: https://railpack.com/llms.txt
6
+
7
+ ## Detection
8
+
9
+ Railpack analyzes source code to detect language, framework, and build requirements automatically.
10
+
11
+ Supported: Node, Python, Go, PHP, Java, Ruby, Rust, Elixir, Gleam, Deno, C/C++, static files.
12
+
13
+ ## Static Sites
14
+
15
+ ### Detection Patterns
16
+
17
+ Railpack serves static files via Caddy when it detects:
18
+ 1. `Staticfile` in root (can specify `root: dist`)
19
+ 2. `index.html` in root
20
+ 3. `public/` directory
21
+ 4. `RAILPACK_STATIC_FILE_ROOT` env var set
22
+
23
+ ### Root Directory Priority
24
+
25
+ 1. `RAILPACK_STATIC_FILE_ROOT` env var
26
+ 2. `root` in `Staticfile`
27
+ 3. `public/` directory
28
+ 4. Current directory (if index.html exists)
29
+
30
+ ### Common Patterns
31
+
32
+ Railpack auto-detects common static build outputs. Only set `RAILPACK_STATIC_FILE_ROOT` for non-standard output directories.
33
+
34
+ | Framework | Build Output | Config Needed |
35
+ |-----------|--------------|---------------|
36
+ | Plain HTML | root | None (auto-detected) |
37
+ | Vite | dist | None (auto-detected) |
38
+ | Astro (static) | dist | None (auto-detected) |
39
+ | Create React App | build | None (auto-detected) |
40
+ | Angular | dist/<project> | `RAILPACK_STATIC_FILE_ROOT=dist/<project>` (non-standard path) |
41
+ | Custom output | varies | Set if output dir is non-standard |
42
+
43
+ ### Custom Caddyfile
44
+
45
+ Put a `Caddyfile` in project root to override default serving behavior.
46
+
47
+ ## Node.js
48
+
49
+ ### Detection
50
+ - `package.json` in root
51
+
52
+ ### Version Priority
53
+ 1. `RAILPACK_NODE_VERSION` env var
54
+ 2. `engines.node` in package.json
55
+ 3. `.nvmrc` or `.node-version`
56
+ 4. Default: Node 22
57
+
58
+ ### Package Manager Detection
59
+ 1. `packageManager` field in package.json (enables Corepack)
60
+ 2. Lock file: `pnpm-lock.yaml`, `bun.lockb`, `yarn.lock`
61
+ 3. Default: npm
62
+
63
+ ### Build Command
64
+ Auto-detected from package.json `scripts.build`. Override via `buildCommand` in service settings.
65
+
66
+ ### Start Command
67
+ Auto-detected:
68
+ 1. `scripts.start` in package.json
69
+ 2. `main` field in package.json
70
+ 3. `index.js` or `index.ts` in root
71
+
72
+ Override via `startCommand` in service settings.
73
+
74
+ ### Framework Detection
75
+
76
+ | Framework | Detection | Notes |
77
+ |-----------|-----------|-------|
78
+ | Next.js | `next` in dependencies | Caches `.next/cache` |
79
+ | Vite | `vite` in devDependencies | Static or SSR mode |
80
+ | Astro | `astro` in dependencies | Caches `.astro` |
81
+ | Nuxt | `nuxt` in dependencies | Auto start command |
82
+ | Remix | `@remix-run/*` in deps | - |
83
+
84
+ ### Static Site Mode (SPA)
85
+
86
+ For frameworks like Vite, CRA, Astro (static), Angular:
87
+ - Railpack builds then serves via Caddy
88
+ - Set `RAILPACK_SPA_OUTPUT_DIR` if output isn't `dist`
89
+
90
+ ## Python
91
+
92
+ ### Detection
93
+ - `requirements.txt`, `pyproject.toml`, `Pipfile`, or `uv.lock`
94
+
95
+ ### Version Priority
96
+ 1. `RAILPACK_PYTHON_VERSION` env var
97
+ 2. `.python-version` file
98
+ 3. `requires-python` in pyproject.toml
99
+ 4. Default: Python 3.12
100
+
101
+ ### WSGI/ASGI Auto-Config
102
+
103
+ | Framework | Start Command |
104
+ |-----------|---------------|
105
+ | Django | `gunicorn <project>.wsgi` |
106
+ | FastAPI | `uvicorn main:app --host 0.0.0.0` |
107
+ | Flask | `gunicorn app:app` |
108
+
109
+ Override via `startCommand` in service settings.
110
+
111
+ ## Go
112
+
113
+ ### Detection
114
+ - `go.mod` in root
115
+
116
+ ### Build
117
+ Compiles to binary automatically. For `cmd/` structure, set binary name or use `RAILPACK_GO_BIN`.
118
+
119
+ ## Rust
120
+
121
+ ### Detection
122
+ - `Cargo.toml` in root
123
+
124
+ ### Build
125
+ Release build by default. Binary auto-detected from Cargo.toml.
126
+
127
+ ## Configuration
128
+
129
+ ### Preferred: Service Settings
130
+
131
+ Use `environment` skill to set:
132
+ - `buildCommand` - Custom build command
133
+ - `startCommand` - Custom start command
134
+
135
+ These are stored in Railway and don't pollute your codebase.
136
+
137
+ ### Environment Variables
138
+
139
+ | Variable | Purpose |
140
+ |----------|---------|
141
+ | `RAILPACK_STATIC_FILE_ROOT` | Static file serving directory |
142
+ | `RAILPACK_SPA_OUTPUT_DIR` | SPA build output (defaults to `dist`) |
143
+ | `RAILPACK_NODE_VERSION` | Node.js version |
144
+ | `RAILPACK_PYTHON_VERSION` | Python version |
145
+ | `RAILPACK_GO_BIN` | Go binary name |
146
+ | `RAILPACK_PACKAGES` | Additional Mise packages (`pkg@version`) |
147
+ | `RAILPACK_BUILD_APT_PACKAGES` | System packages for build |
148
+ | `RAILPACK_DEPLOY_APT_PACKAGES` | System packages for runtime |
149
+
150
+ ### railpack.json
151
+
152
+ Advanced config for custom build steps:
153
+
154
+ ```json
155
+ {
156
+ "$schema": "https://schema.railpack.com",
157
+ "packages": {
158
+ "ffmpeg": "latest"
159
+ },
160
+ "deploy": {
161
+ "aptPackages": ["libmagic1"]
162
+ }
163
+ }
164
+ ```
165
+
166
+ ### railway.toml
167
+
168
+ Alternative config format:
169
+
170
+ ```toml
171
+ [build]
172
+ builder = "RAILPACK"
173
+ buildCommand = "npm run build"
174
+
175
+ [deploy]
176
+ startCommand = "npm start"
177
+ ```
178
+
179
+ ## Minimal Project Scaffolding
180
+
181
+ When no code exists, suggest these patterns:
182
+
183
+ ### Static HTML
184
+ ```html
185
+ <!DOCTYPE html>
186
+ <html lang="en">
187
+ <head>
188
+ <meta charset="UTF-8">
189
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
190
+ <title>My Site</title>
191
+ </head>
192
+ <body>
193
+ <h1>Hello Railway</h1>
194
+ </body>
195
+ </html>
196
+ ```
197
+
198
+ ### Vite React
199
+ ```bash
200
+ npm create vite@latest . -- --template react
201
+ ```
202
+
203
+ ### Astro
204
+ ```bash
205
+ npm create astro@latest
206
+ ```
207
+
208
+ ### Python FastAPI
209
+ ```python
210
+ # main.py
211
+ from fastapi import FastAPI
212
+ app = FastAPI()
213
+
214
+ @app.get("/")
215
+ def root():
216
+ return {"message": "Hello Railway"}
217
+ ```
218
+
219
+ ```txt
220
+ # requirements.txt
221
+ fastapi
222
+ uvicorn
223
+ ```
224
+
225
+ ### Go HTTP Server
226
+ ```go
227
+ // main.go
228
+ package main
229
+
230
+ import (
231
+ "fmt"
232
+ "net/http"
233
+ "os"
234
+ )
235
+
236
+ func main() {
237
+ port := os.Getenv("PORT")
238
+ if port == "" {
239
+ port = "8080"
240
+ }
241
+ http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
242
+ fmt.Fprintf(w, "Hello Railway")
243
+ })
244
+ http.ListenAndServe(":"+port, nil)
245
+ }
246
+ ```
247
+
248
+ ## Troubleshooting
249
+
250
+ | Issue | Solution |
251
+ |-------|----------|
252
+ | Static site 404s | Check output dir - set `RAILPACK_STATIC_FILE_ROOT` if non-standard |
253
+ | Wrong build command | Use `environment` skill to set `buildCommand` |
254
+ | Wrong start command | Use `environment` skill to set `startCommand` |
255
+ | Missing system package | Add to `RAILPACK_BUILD_APT_PACKAGES` or `RAILPACK_DEPLOY_APT_PACKAGES` |
256
+ | Wrong Node version | Set `RAILPACK_NODE_VERSION` or add `.nvmrc` |
257
+ | Wrong Python version | Set `RAILPACK_PYTHON_VERSION` or add `.python-version` |
@@ -0,0 +1,170 @@
1
+ # Variables Reference
2
+
3
+ Variables in Railway support references to other services, shared variables, and Railway-provided values.
4
+
5
+ ## Template Syntax
6
+
7
+ ```
8
+ ${{NAMESPACE.VAR}}
9
+ ```
10
+
11
+ | Namespace | Description |
12
+ |-----------|-------------|
13
+ | `shared` | Shared variables (project-wide) |
14
+ | `<serviceName>` | Variables from another service (case-sensitive) |
15
+
16
+ ## Examples
17
+
18
+ **Reference shared variable:**
19
+ ```json
20
+ { "value": "${{shared.DOMAIN}}" }
21
+ ```
22
+
23
+ **Reference another service's variable:**
24
+ ```json
25
+ { "value": "${{api.API_KEY}}" }
26
+ ```
27
+
28
+ **Combine with text:**
29
+ ```json
30
+ { "value": "https://${{shared.DOMAIN}}/api" }
31
+ ```
32
+
33
+ ## Railway-Provided Variables
34
+
35
+ Railway injects these into every service automatically.
36
+
37
+ ### Networking
38
+ | Variable | Description | Example | Availability |
39
+ |----------|-------------|---------|--------------|
40
+ | `RAILWAY_PUBLIC_DOMAIN` | Public domain | `myapp.up.railway.app` | Only if service has a domain |
41
+ | `RAILWAY_PRIVATE_DOMAIN` | Private DNS (internal only) | `myapp.railway.internal` | Always |
42
+ | `RAILWAY_TCP_PROXY_DOMAIN` | TCP proxy domain | `roundhouse.proxy.rlwy.net` | Only if TCP proxy enabled |
43
+ | `RAILWAY_TCP_PROXY_PORT` | TCP proxy port | `11105` | Only if TCP proxy enabled |
44
+
45
+ **Note:** `RAILWAY_PUBLIC_DOMAIN` is only available if the service has a domain configured.
46
+ Check the service's environment config to verify a domain exists before referencing it.
47
+
48
+ ### Context
49
+ | Variable | Description |
50
+ |----------|-------------|
51
+ | `RAILWAY_PROJECT_ID` | Project ID |
52
+ | `RAILWAY_PROJECT_NAME` | Project name |
53
+ | `RAILWAY_ENVIRONMENT_ID` | Environment ID |
54
+ | `RAILWAY_ENVIRONMENT_NAME` | Environment name |
55
+ | `RAILWAY_SERVICE_ID` | Service ID |
56
+ | `RAILWAY_SERVICE_NAME` | Service name |
57
+ | `RAILWAY_DEPLOYMENT_ID` | Deployment ID |
58
+ | `RAILWAY_REPLICA_ID` | Replica ID |
59
+ | `RAILWAY_REPLICA_REGION` | Region (e.g., `us-west2`) |
60
+
61
+ ### Volume (if attached)
62
+ | Variable | Description |
63
+ |----------|-------------|
64
+ | `RAILWAY_VOLUME_NAME` | Volume name |
65
+ | `RAILWAY_VOLUME_MOUNT_PATH` | Mount path |
66
+
67
+ ### Git (if deployed from GitHub)
68
+ | Variable | Description |
69
+ |----------|-------------|
70
+ | `RAILWAY_GIT_COMMIT_SHA` | Commit SHA |
71
+ | `RAILWAY_GIT_BRANCH` | Branch name |
72
+ | `RAILWAY_GIT_REPO_NAME` | Repository name |
73
+ | `RAILWAY_GIT_REPO_OWNER` | Repository owner |
74
+ | `RAILWAY_GIT_AUTHOR` | Commit author |
75
+ | `RAILWAY_GIT_COMMIT_MESSAGE` | Commit message |
76
+
77
+ ## Wiring Services Together
78
+
79
+ ### Frontend → Backend (public network)
80
+ Use when: Browser makes requests to API (browser can't access private network)
81
+
82
+ ```json
83
+ {
84
+ "services": {
85
+ "<frontendId>": {
86
+ "variables": {
87
+ "API_URL": { "value": "https://${{backend.RAILWAY_PUBLIC_DOMAIN}}" }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ ```
93
+
94
+ ### Service → Database (private network)
95
+ Use when: Backend connects to database (faster, no egress cost, more secure)
96
+
97
+ Railway databases auto-generate connection URL variables. Use the private versions:
98
+
99
+ | Database | Variable Reference |
100
+ |----------|-------------------|
101
+ | Postgres | `${{Postgres.DATABASE_URL}}` |
102
+ | MySQL | `${{MySQL.DATABASE_URL}}` |
103
+ | Redis | `${{Redis.REDIS_URL}}` |
104
+ | Mongo | `${{Mongo.MONGO_URL}}` |
105
+
106
+ **Postgres/MySQL example:**
107
+ ```json
108
+ {
109
+ "services": {
110
+ "<apiId>": {
111
+ "variables": {
112
+ "DATABASE_URL": { "value": "${{Postgres.DATABASE_URL}}" }
113
+ }
114
+ }
115
+ }
116
+ }
117
+ ```
118
+
119
+ **Redis example:**
120
+ ```json
121
+ {
122
+ "services": {
123
+ "<apiId>": {
124
+ "variables": {
125
+ "REDIS_URL": { "value": "${{Redis.REDIS_URL}}" }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ ```
131
+
132
+ **Mongo example:**
133
+ ```json
134
+ {
135
+ "services": {
136
+ "<apiId>": {
137
+ "variables": {
138
+ "MONGO_URL": { "value": "${{Mongo.MONGO_URL}}" }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ ```
144
+
145
+ **Note:** Service names are case-sensitive. Match the exact name from your project (e.g., "Postgres", "Redis").
146
+
147
+ ### Service → Service (private network)
148
+ Use when: Microservices communicate internally
149
+
150
+ ```json
151
+ {
152
+ "services": {
153
+ "<workerServiceId>": {
154
+ "variables": {
155
+ "API_INTERNAL_URL": { "value": "http://${{api.RAILWAY_PRIVATE_DOMAIN}}:${{api.PORT}}" }
156
+ }
157
+ }
158
+ }
159
+ }
160
+ ```
161
+
162
+ ## When to Use Public vs Private
163
+
164
+ | Use Case | Domain | Reason |
165
+ |----------|--------|--------|
166
+ | Browser → API | Public | Browser can't access private network |
167
+ | Service → Service | Private | Faster, no egress, more secure |
168
+ | Service → Database | Private | Databases should never be public |
169
+ | External webhook → Service | Public | External services need public access |
170
+ | Cron job → API | Private | Internal communication |
@@ -0,0 +1,284 @@
1
+ ---
2
+ name: database
3
+ description: This skill should be used when the user wants to add a database (Postgres, Redis, MySQL, MongoDB), says "add postgres", "add redis", "add database", "connect to database", or "wire up the database". For other templates (Ghost, Strapi, n8n, etc.), use the templates skill.
4
+ allowed-tools: Bash(railway:*)
5
+ ---
6
+
7
+ # Database
8
+
9
+ Add official Railway database services. These are maintained templates with pre-configured volumes, networking, and connection variables.
10
+
11
+ For non-database templates, see the `templates` skill.
12
+
13
+ ## When to Use
14
+
15
+ - User asks to "add a database", "add Postgres", "add Redis", etc.
16
+ - User needs a database for their application
17
+ - User asks about connecting to a database
18
+ - User says "add postgres and connect to my server"
19
+ - User says "wire up the database"
20
+
21
+ ## Decision Flow
22
+
23
+ **ALWAYS check for existing databases FIRST before creating.**
24
+
25
+ ```
26
+ User mentions database
27
+
28
+ Check existing DBs first
29
+ (query env config for source.image)
30
+
31
+ ┌────┴────┐
32
+ Exists Doesn't exist
33
+ │ │
34
+ │ Create database
35
+ │ (CLI or API)
36
+ │ │
37
+ │ Wait for deployment
38
+ │ │
39
+ └─────┬─────┘
40
+
41
+ User wants to
42
+ connect service?
43
+
44
+ ┌─────┴─────┐
45
+ Yes No
46
+ │ │
47
+ Wire vars Done +
48
+ via env suggest wiring
49
+ skill
50
+ ```
51
+
52
+ ## Check for Existing Databases
53
+
54
+ Before creating a database, check if one already exists.
55
+
56
+ For full environment config structure, see [environment-config.md](references/environment-config.md).
57
+
58
+ ```bash
59
+ railway status --json
60
+ ```
61
+
62
+ Then query environment config and check `source.image` for each service:
63
+
64
+ ```graphql
65
+ query environmentConfig($environmentId: String!) {
66
+ environment(id: $environmentId) {
67
+ config(decryptVariables: false)
68
+ }
69
+ }
70
+ ```
71
+
72
+ The `config.services` object contains each service's configuration. Check `source.image` for:
73
+
74
+ - `ghcr.io/railway/postgres*` or `postgres:*` → Postgres
75
+ - `ghcr.io/railway/redis*` or `redis:*` → Redis
76
+ - `ghcr.io/railway/mysql*` or `mysql:*` → MySQL
77
+ - `ghcr.io/railway/mongo*` or `mongo:*` → MongoDB
78
+
79
+ ## Available Databases
80
+
81
+ | Database | Template Code |
82
+ |----------|---------------|
83
+ | PostgreSQL | `postgres` |
84
+ | Redis | `redis` |
85
+ | MySQL | `mysql` |
86
+ | MongoDB | `mongodb` |
87
+
88
+ ## Prerequisites
89
+
90
+ Get project context:
91
+ ```bash
92
+ railway status --json
93
+ ```
94
+
95
+ Extract:
96
+ - `id` - project ID
97
+ - `environments.edges[0].node.id` - environment ID
98
+
99
+ Get workspace ID (not in status output):
100
+ ```bash
101
+ bash <<'SCRIPT'
102
+ scripts/railway-api.sh \
103
+ 'query getWorkspace($projectId: String!) {
104
+ project(id: $projectId) { workspaceId }
105
+ }' \
106
+ '{"projectId": "PROJECT_ID"}'
107
+ SCRIPT
108
+ ```
109
+
110
+ ## Adding a Database
111
+
112
+ ### Step 1: Fetch Template
113
+
114
+ ```bash
115
+ bash <<'SCRIPT'
116
+ scripts/railway-api.sh \
117
+ 'query template($code: String!) {
118
+ template(code: $code) {
119
+ id
120
+ name
121
+ serializedConfig
122
+ }
123
+ }' \
124
+ '{"code": "postgres"}'
125
+ SCRIPT
126
+ ```
127
+
128
+ This returns the template's `id` and `serializedConfig` needed for deployment.
129
+
130
+ ### Step 2: Deploy Template
131
+
132
+ ```bash
133
+ bash <<'SCRIPT'
134
+ scripts/railway-api.sh \
135
+ 'mutation deployTemplate($input: TemplateDeployV2Input!) {
136
+ templateDeployV2(input: $input) {
137
+ projectId
138
+ workflowId
139
+ }
140
+ }' \
141
+ '{
142
+ "input": {
143
+ "templateId": "TEMPLATE_ID",
144
+ "serializedConfig": SERIALIZED_CONFIG,
145
+ "projectId": "PROJECT_ID",
146
+ "environmentId": "ENVIRONMENT_ID",
147
+ "workspaceId": "WORKSPACE_ID"
148
+ }
149
+ }'
150
+ SCRIPT
151
+ ```
152
+
153
+ **Important:** `serializedConfig` is the exact object from the template query, not a string.
154
+
155
+ ## Connecting to the Database
156
+
157
+ After deployment, other services connect using reference variables.
158
+
159
+ For complete variable reference syntax and wiring patterns, see [variables.md](references/variables.md).
160
+
161
+ ### Backend Services (Server-side)
162
+
163
+ Use the private/internal URL for server-to-server communication:
164
+
165
+ | Database | Variable Reference |
166
+ |----------|-------------------|
167
+ | PostgreSQL | `${{Postgres.DATABASE_URL}}` |
168
+ | Redis | `${{Redis.REDIS_URL}}` |
169
+ | MySQL | `${{MySQL.MYSQL_URL}}` |
170
+ | MongoDB | `${{MongoDB.MONGO_URL}}` |
171
+
172
+ ### Frontend Applications
173
+
174
+ **Important:** Frontends run in the user's browser and cannot access Railway's private network. They must use public URLs or go through a backend API.
175
+
176
+ For direct database access from frontend (not recommended):
177
+ - Use the public URL variables (e.g., `${{MongoDB.MONGO_PUBLIC_URL}}`)
178
+ - Requires TCP proxy to be enabled
179
+
180
+ Better pattern: Frontend → Backend API → Database
181
+
182
+ ## Example: Add PostgreSQL
183
+
184
+ ```bash
185
+ bash <<'SCRIPT'
186
+ # 1. Get context
187
+ railway status --json
188
+ # Extract project.id and environment.id
189
+
190
+ # 2. Get workspace ID
191
+ scripts/railway-api.sh \
192
+ 'query { project(id: "proj-id") { workspaceId } }' '{}'
193
+
194
+ # 3. Fetch Postgres template
195
+ scripts/railway-api.sh \
196
+ 'query { template(code: "postgres") { id serializedConfig } }' '{}'
197
+
198
+ # 4. Deploy template
199
+ scripts/railway-api.sh \
200
+ 'mutation deploy($input: TemplateDeployV2Input!) {
201
+ templateDeployV2(input: $input) { projectId workflowId }
202
+ }' \
203
+ '{"input": {"templateId": "...", "serializedConfig": {...}, "projectId": "...", "environmentId": "...", "workspaceId": "..."}}'
204
+ SCRIPT
205
+ ```
206
+
207
+ ### Then Connect From Another Service
208
+
209
+ Use `environment` skill to add the variable reference:
210
+
211
+ ```json
212
+ {
213
+ "services": {
214
+ "<backend-service-id>": {
215
+ "variables": {
216
+ "DATABASE_URL": { "value": "${{Postgres.DATABASE_URL}}" }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ ```
222
+
223
+ ## Response
224
+
225
+ Successful deployment returns:
226
+ ```json
227
+ {
228
+ "data": {
229
+ "templateDeployV2": {
230
+ "projectId": "e63baedb-e308-49e9-8c06-c25336f861c7",
231
+ "workflowId": "deployTemplate/project/e63baedb-e308-49e9-8c06-c25336f861c7/xxx"
232
+ }
233
+ }
234
+ }
235
+ ```
236
+
237
+ ## What Gets Created
238
+
239
+ Each database template creates:
240
+ - A service with the database image
241
+ - A volume for data persistence
242
+ - Environment variables for connection strings
243
+ - TCP proxy for external access (where applicable)
244
+
245
+ ## Error Handling
246
+
247
+ | Error | Cause | Solution |
248
+ |-------|-------|----------|
249
+ | Template not found | Invalid template code | Use: `postgres`, `redis`, `mysql`, `mongodb` |
250
+ | Permission denied | User lacks access | Need DEVELOPER role or higher |
251
+ | Project not found | Invalid project ID | Run `railway status --json` for correct ID |
252
+
253
+ ## Example Workflows
254
+
255
+ ### "add postgres and connect to the server"
256
+
257
+ 1. Check existing DBs via env config query
258
+ 2. If postgres exists: Skip to step 5
259
+ 3. If not exists: Deploy postgres template (fetch template → deploy)
260
+ 4. Wait for deployment to complete
261
+ 5. Identify target service (ask if multiple, or use linked service)
262
+ 6. Use `environment` skill to stage: `DATABASE_URL: { "value": "${{Postgres.DATABASE_URL}}" }`
263
+ 7. Apply changes
264
+
265
+ ### "add postgres"
266
+
267
+ 1. Check existing DBs via env config query
268
+ 2. If exists: "Postgres already exists in this project"
269
+ 3. If not exists: Deploy postgres template
270
+ 4. Inform user: "Postgres created. Connect a service with: `DATABASE_URL=${{Postgres.DATABASE_URL}}`"
271
+
272
+ ### "connect the server to redis"
273
+
274
+ 1. Check existing DBs via env config query
275
+ 2. If redis exists: Wire up REDIS_URL via environment skill → apply
276
+ 3. If no redis: Ask "No Redis found. Create one?"
277
+ - Deploy redis template
278
+ - Wire REDIS_URL → apply
279
+
280
+ ## Composability
281
+
282
+ - **Connect services**: Use `environment` skill to add variable references
283
+ - **View database service**: Use `service` skill
284
+ - **Check logs**: Use `deployment` skill