diff --git a/.claude/skills/d8d-dev/phase-00-setup.md b/.claude/skills/d8d-dev/phase-00-setup.md index 31712c5..13d0ad4 100644 --- a/.claude/skills/d8d-dev/phase-00-setup.md +++ b/.claude/skills/d8d-dev/phase-00-setup.md @@ -68,6 +68,9 @@ - 标记:Epic 0 完成后此文件才可生效(项目目录需先存在) 4.5. **外网域名发现与连通性验证(NPM MCP)** + - project-slug 推导规则:取项目根目录名(basename of pwd),追加 `-group` 后缀 + - 示例:目录 `/mnt/code/231-251-template-6` → slug = `231-251-template-6-group` + - ⛔ 禁止从项目描述或 PRD 内容猜测 slug - 通过 NPM MCP 工具查询已配置的代理主机: - 使用 `get_host_report` 快速确认代理数量 - ⚠️ `list_proxy_hosts` 有已知 bug(locations 字段解析失败),用 `get_proxy_host` 逐个查询更可靠 @@ -79,9 +82,10 @@ ``` - 缺失的域名通过 `create_proxy_host` 创建(⛔ 参数要求见 `reference/platform-nextjs.md` §7 或 `reference/platform-uni-app.md`) - `block_exploits: false`(默认 true 阻断 WebSocket) - - 创建后 `update_proxy_host` 启用 WebSocket Support - SSL 由 K8S ingress 处理,不需要在 NPM 中配置 - - 创建后验证:`get_proxy_host` 确认 `block_exploits: false` 且 `allow_websocket_upgrade: true` + - ⛔ 对每个 proxy host(无论已有还是新建),必须验证并修复(此步骤不可跳过): + - `get_proxy_host` 检查 `block_exploits: false` 且 `allow_websocket_upgrade: true` + - 如不满足 → `update_proxy_host` 修正(MCP 工具不直接支持 allow_websocket_upgrade 时,用 NPM API:`PUT /api/nginx/proxy-hosts/{id}` 传 `{"allow_websocket_upgrade": true}`) - 将外网域名写入 `pipeline-context.md` 的"外网域名"部分 - **E2E 测试优先使用外网域名**,localhost 作为最后 fallback