用途
use-railway 是一个围绕 Railway CLI 的技能,用于在持续的平台运维中回答与 Railway 命令相关的问题。它的核心定位是路由层:针对 agent 遇到的每个 Railway 问题,挑选正确的参考文档、正确的命令以及正确的作用域(本地已安装二进制 vs 上游文档)。它强调“从证据出发,而非凭记忆”,即依据本机实际可调用的 CLI 帮助信息来回答。
主要能力
- 为字面量 railway <子命令> 提供正确的标志、别名或嵌套形式。
- 在近似命令之间做选择:up 与 deploy、redeploy 与 restart、delete 与 unlink、connect 与 ssh、run 与 shell 与 dev。
- 覆盖读取日志、检查部署状态、扩缩容服务、编辑变量、绑定域名、打开数据库 shell 等操作。
- 解析粘贴的 Railway 仪表盘 URL,或回答“当前链接到哪个项目/服务/环境”。
- 处理版本漂移:当文档显示本地二进制没有的命令,或用户提到“latest”“current”“today”时进行核对。
- 涉及 Railway functions、volumes,以及已安装 CLI 的 shell 补全输出。
- 基于 CLI 访问进行第一方 Railway 数据库分析(Postgres、MySQL、Redis、Mongo)。
使用方式
该技能以参考文档优先,按需加载最小参考集,避免加载完整命令参考,除非需要标志或别名。工作流为:先确定作用域(本地已安装 CLI、上游 Railway 来源,或两者),在版本漂移可能重要且有 shell 时运行 railway --version,然后按决策分流选择参考文件,最后按输出契约作答。
输出契约的顺序为:作用域行 → 最佳命令或路由的下一步 → 重要标志/别名/嵌套子命令/可能取值 → 近似命令区分 → 版本漂移说明(仅在实质性影响答案时)。
决策分流示例:up 与 deploy、redeploy 与 restart、rollback、down 读 deployments-and-releases;link 与 init、delete 与 unlink、add、open、auth/context、docs、completion、upgrade 读 context-projects-and-linking;run 与 shell 与 dev、dev configure、dev clean、本地变量注入读 local-development-and-shells;status、logs、connect 与 ssh、服务级路由读 observability-and-access;environment、variable、domain、scale、service scale 读 configuration-networking-and-scaling;Functions 或 volumes 读 functions-and-volumes;意图优先的“该用哪个命令”读 common-workflows;精确标志、别名、嵌套子命令、可能取值读 railway-cli-command-reference;原始帮助措辞、示例或格式证明读 railway-cli-live-help-snapshot;仪表盘 URL 解析、资源模型、安全预检读 resource-model-and-preflight;第一方 runbook 分别读 operations 下的 setup、deploy、configure、operate;官方文档端点、社区搜索、GraphQL 缺口、模板发现读 docs-and-api/request;数据库分析按引擎选择 analyze-db 系列文件;版本漂移读 version-drift。
刷新本地快照:在 railway 升级后,从该技能的内容目录运行 node scripts/extract-railway-cli-help.mjs 和 railway --version,以重新生成 railway-cli-command-reference.md、railway-cli-live-help-snapshot.md 和 railway-cli-command-tree.json。
适用场景
适用于用户输入或粘贴字面量 railway <子命令> 并想要正确标志、别名或嵌套形式;需要在近似命令之间做选择;正在读取日志、检查部署状态、扩缩容、编辑变量、绑定域名或打开数据库 shell;粘贴了 Railway 仪表盘 URL 或询问当前链接状态;文档显示本地二进制没有的命令或用户提到“latest/current/today”;问题涉及 functions、volumes 或 shell 补全输出;以及需要基于 CLI 访问的第一方 Railway 数据库分析。
限制
不适用于编写 make prod / make deploy 目标或包装 Railway 命令的 Makefile 控制平面(应使用 init-makefiles);不适用于纯 Railway 仪表盘、GraphQL API 或 REST API 且无 CLI 决策的情况;不适用于通用 shell、Git 或容器构建技能即可回答且无 Railway 特定上下文的问题;不适用于没有已安装 railway 二进制的基础设施架构规划。
不可协商的规则包括:本地快照是已安装二进制的真相;上游文档是上下文而非证据;绝不凭记忆猜测标志、别名、可能取值或嵌套子命令;默认只读,不运行变更类命令(up、redeploy、restart、down、delete、unlink、variable set、domain add、scale),除非用户明确要求操作;不混淆近似命令;显式标识符优先于链接目录;版本漂移门控。
护栏包括:不把 railway deploy 与 railway up 视为同义(up 发布本地代码,deploy 配置模板);不把 delete 与 unlink 视为同义(delete 销毁资源,unlink 仅解除本地链接);不把 redeploy 与 restart 视为同义(redeploy 重新构建,restart 重启运行中的容器);不把 connect 与 ssh 视为同义(connect 打开数据库 shell,ssh 打开服务 shell);不把仅上游存在的命令当作本地可用而不明确说明;用户问 CLI 时不默认给仪表盘说明;问题涉及已安装二进制精确表面时不让上游 runbook 覆盖本地提取的 CLI;不信任链接目录胜过显式仪表盘 URL 或显式 --project / --environment / --service 标志;不擅自变更 Railway 资源;不在此编写 Makefile 部署目标。