From 5e1b1c26a17050918642d04aa726e1dd481d96bd Mon Sep 17 00:00:00 2001 From: yourname Date: Wed, 8 Apr 2026 01:28:00 +0000 Subject: [PATCH 1/2] =?UTF-8?q?fix(skill):=20=E6=B7=BB=E5=8A=A0=20project-?= =?UTF-8?q?slug=20=E6=8E=A8=E5=AF=BC=E8=A7=84=E5=88=99=EF=BC=8C=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E5=9F=9F=E5=90=8D=E9=85=8D=E7=BD=AE=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit phase-00-setup.md 新增 slug 推导规则: 取项目根目录名(basename of pwd)+ `-group` 后缀, 禁止从项目描述或 PRD 内容猜测。 根因:setup 阶段因缺少推导规则,AI 猜测 slug 为 map-collector 而非正确的 231-251-template-6-group,导致 NPM 域名配置错误。 Co-Authored-By: Claude Opus 4.6 --- .claude/skills/d8d-dev/phase-00-setup.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.claude/skills/d8d-dev/phase-00-setup.md b/.claude/skills/d8d-dev/phase-00-setup.md index 31712c5..58768bd 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` 逐个查询更可靠 -- 2.49.1 From 8aaef771973990f622900fede52c4fb1947855fe Mon Sep 17 00:00:00 2001 From: yourname Date: Wed, 8 Apr 2026 01:42:58 +0000 Subject: [PATCH 2/2] =?UTF-8?q?fix(skill):=20WebSocket=20=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=8B=AC=E7=AB=8B=E4=B8=BA=E5=BF=85=E6=A3=80=E6=AD=A5?= =?UTF-8?q?=E9=AA=A4=EF=BC=8C=E9=98=B2=E6=AD=A2=E5=B7=B2=E6=9C=89=E5=9F=9F?= =?UTF-8?q?=E5=90=8D=E8=B7=B3=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因:WebSocket 配置写在"创建缺失域名"的子步骤中,已有域名时被跳过。 修复:将 WebSocket 检查(block_exploits + allow_websocket_upgrade)独立为 对所有 proxy hosts 的必检步骤,提供 NPM API fallback 方案。 Co-Authored-By: Claude Opus 4.6 --- .claude/skills/d8d-dev/phase-00-setup.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.claude/skills/d8d-dev/phase-00-setup.md b/.claude/skills/d8d-dev/phase-00-setup.md index 58768bd..13d0ad4 100644 --- a/.claude/skills/d8d-dev/phase-00-setup.md +++ b/.claude/skills/d8d-dev/phase-00-setup.md @@ -82,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 -- 2.49.1