目标状态
- /topic:唯一生成/部署入口。
- /status / /links:统一走“先查状态再回答”。
- 裸 topic/token:视为状态查询触发词,而不是生成请求。
- 为什么失败 / 为什么 404 / 为什么没回:先查最近日志或 reply-meta,再做证据化解释。
这不是一句命名建议,而是一条路由纪律:/topic 负责生成与部署;/status、/links 和裸 topic/token 只做状态查询,不再混流。
/status、/links、裸 topic/token 时,先提取第一个 kebab-case token 作为 TOPIC。WEB_SHIP_TOPIC='<TOPIC>' bash scripts/ship-links.sh/topic 的回复顺序固定:结果 → 证据 → 下一步。入口分工清楚后,群里不会再因为“查链接”和“重新部署”混在一起而出现误触发、误解释、误 404。
失败不是一句口头判断,而是一个带证据的状态结论。优先读取最近 ship log 或 reply-meta,再说明是哪一步没产出。
这里只有系统维护消息才允许静默。真实用户的 deploy/status 消息,一律必须给可见回复。
/topic → 生成 / 更新 / 部署
/status TOPIC → 查询这个 topic 当前可打开的链接
/links TOPIC → 输出这个 topic 的版本页、latest、history
TOPIC token=... → 按状态查询处理,不进入生成链路
为什么失败 / 为什么 404 / 为什么没回
→ 先读最近 ship log / reply-meta,再做证据化解释