{"id":"65817dfe-c76f-45d9-9987-b4c061874385","shortId":"xZNGKY","kind":"skill","title":"railway-tools","tagline":"Use when deploying to Railway, editing railway.toml, railway.json, Procfile, configuring Railway services, databases, workers, environment variables, or troubleshooting Railway deployments.","description":"# Railway Deployment (Flow Tools)\n\n<workflow>\n\n## 🚀 Official Railway Skills (Highly Recommended)\n\nFor full project management, deployment automation, and service orchestration, we highly recommend installing the official Railway agent skills:\n\n- **use-railway**: Master skill for setting up projects, services, and handling deployments.\n\n**Installation:**\n\n```bash\nnpx skills add railwayapp/railway-skills\n```\n\n## Supplemental Patterns\n\nThe patterns below provide additional context for Flow-specific multi-service architectures and serverless constraints.\n\n### Serverless / App Sleeping\n\nRailway's serverless feature puts services to sleep after 10 minutes of no **outbound** traffic.\n\n**When to disable serverless (`sleepApplication: false`):**\n\n- Background workers (Celery, SAQ, RQ, Sidekiq)\n- Queue processors\n- Cron services\n- Any service without an HTTP endpoint\n\n### Multi-Service Architecture (Web + Worker)\n\nFor applications with background task processing, use distinct configuration files (e.g., `railway.app.json` and `railway.worker.json`) to manage different runtime requirements.\n\n</workflow>\n\n<guardrails>\n## Guardrails\n\n- **Disable Serverless for Workers:** Always set `sleepApplication: false` for background worker services.\n- **Use Variable References:** Prefer `${{Service.VARIABLE}}` syntax (e.g., `${{Postgres.DATABASE_URL}}`) instead of hardcoding values.\n- **Dynamic Port Binding:** Never hardcode the port. Always reference `${{PORT}}` for application port injection.\n</guardrails>\n\n<validation>\n## Validation\n\n- **Verify `sleepApplication: false` for Workers:** Ensure any background worker has `sleepApplication` explicitly set to `false`.\n- **Check PORT Dynamic Reference:** Confirm that start commands and environment variables reference `${{PORT}}`.\n</validation>\n\n<example>\n## Multi-Service Worker Example\n\n**Configuration (`railway.worker.json`):**\n\n```json\n{\n  \"service\": {\n    \"name\": \"worker\",\n    \"sleepApplication\": false\n  },\n  \"deploy\": {\n    \"startCommand\": \"python -m saq my_app.tasks.worker --workers 4\"\n  }\n}\n```\n\n</example>","tags":["railway","tools","flow","cofin","agent-skills","ai-agents","beads","claude-code","codex","cursor","developer-tools","gemini-cli"],"capabilities":["skill","source-cofin","skill-railway-tools","topic-agent-skills","topic-ai-agents","topic-beads","topic-claude-code","topic-codex","topic-cursor","topic-developer-tools","topic-gemini-cli","topic-opencode","topic-plugin","topic-slash-commands","topic-spec-driven-development"],"categories":["flow"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cofin/flow/railway-tools","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cofin/flow","source_repo":"https://github.com/cofin/flow","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 11 github stars · SKILL.md body (2,070 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:07:38.964Z","embedding":null,"createdAt":"2026-04-23T13:04:01.105Z","updatedAt":"2026-05-18T19:07:38.964Z","lastSeenAt":"2026-05-18T19:07:38.964Z","tsv":"'10':101 '4':243 'add':68 'addit':76 'agent':49 'alway':159,187 'app':90 'applic':136,191 'architectur':85,132 'autom':38 'background':113,138,164,202 'bash':65 'bind':182 'celeri':115 'check':210 'command':217 'configur':13,143,228 'confirm':214 'constraint':88 'context':77 'cron':121 'databas':16 'deploy':6,23,25,37,63,236 'differ':151 'disabl':109,155 'distinct':142 'dynam':180,212 'e.g':145,173 'edit':9 'endpoint':128 'ensur':200 'environ':18,219 'exampl':227 'explicit':206 'fals':112,162,197,209,235 'featur':95 'file':144 'flow':26,80 'flow-specif':79 'full':34 'guardrail':154 'handl':62 'hardcod':178,184 'high':31,43 'http':127 'inject':193 'instal':45,64 'instead':176 'json':230 'm':239 'manag':36,150 'master':54 'minut':102 'multi':83,130,224 'multi-servic':82,129,223 'my_app.tasks.worker':241 'name':232 'never':183 'npx':66 'offici':28,47 'orchestr':41 'outbound':105 'pattern':71,73 'port':181,186,189,192,211,222 'postgres.database':174 'prefer':170 'process':140 'processor':120 'procfil':12 'project':35,59 'provid':75 'put':96 'python':238 'queue':119 'railway':2,8,14,22,24,29,48,53,92 'railway-tool':1 'railway.app.json':146 'railway.json':11 'railway.toml':10 'railway.worker.json':148,229 'railwayapp/railway-skills':69 'recommend':32,44 'refer':169,188,213,221 'requir':153 'rq':117 'runtim':152 'saq':116,240 'serverless':87,89,94,110,156 'servic':15,40,60,84,97,122,124,131,166,225,231 'service.variable':171 'set':57,160,207 'sidekiq':118 'skill':30,50,55,67 'skill-railway-tools' 'sleep':91,99 'sleepappl':111,161,196,205,234 'source-cofin' 'specif':81 'start':216 'startcommand':237 'supplement':70 'syntax':172 'task':139 'tool':3,27 'topic-agent-skills' 'topic-ai-agents' 'topic-beads' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'topic-opencode' 'topic-plugin' 'topic-slash-commands' 'topic-spec-driven-development' 'traffic':106 'troubleshoot':21 'url':175 'use':4,52,141,167 'use-railway':51 'valid':194 'valu':179 'variabl':19,168,220 'verifi':195 'web':133 'without':125 'worker':17,114,134,158,165,199,203,226,233,242","prices":[{"id":"dca1be17-a39d-49a3-948d-14bca52ad1e5","listingId":"65817dfe-c76f-45d9-9987-b4c061874385","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cofin","category":"flow","install_from":"skills.sh"},"createdAt":"2026-04-23T13:04:01.105Z"}],"sources":[{"listingId":"65817dfe-c76f-45d9-9987-b4c061874385","source":"github","sourceId":"cofin/flow/railway-tools","sourceUrl":"https://github.com/cofin/flow/tree/main/skills/railway-tools","isPrimary":false,"firstSeenAt":"2026-04-23T13:04:01.105Z","lastSeenAt":"2026-05-18T19:07:38.964Z"}],"details":{"listingId":"65817dfe-c76f-45d9-9987-b4c061874385","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cofin","slug":"railway-tools","github":{"repo":"cofin/flow","stars":11,"topics":["agent-skills","ai-agents","beads","claude-code","codex","context-driven-development","cursor","developer-tools","gemini-cli","opencode","plugin","slash-commands","spec-driven-development","subagents","tdd","workflow"],"license":"apache-2.0","html_url":"https://github.com/cofin/flow","pushed_at":"2026-04-27T19:07:26Z","description":"Context-Driven Development toolkit for AI agents — spec-first planning, TDD workflow, and Beads integration.","skill_md_sha":"d89e228493ac87cbd9c4d66c2242884defdb558e","skill_md_path":"skills/railway-tools/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cofin/flow/tree/main/skills/railway-tools"},"layout":"multi","source":"github","category":"flow","frontmatter":{"name":"railway-tools","description":"Use when deploying to Railway, editing railway.toml, railway.json, Procfile, configuring Railway services, databases, workers, environment variables, or troubleshooting Railway deployments."},"skills_sh_url":"https://skills.sh/cofin/flow/railway-tools"},"updatedAt":"2026-05-18T19:07:38.964Z"}}