---
name: deploy-prototypes
description: 自动扫描 prototypes 目录，按手机/电脑分类生成入口页，并增量部署到云端 nginx 服务器。
metadata:
  type: skill
---

# Deploy Prototypes

## 触发

用户说以下任意一种表达时激活：

- "部署原型"
- "发布原型"
- "更新线上原型"
- "同步原型"
- "把原型发到服务器"
- "原型上线"

## 执行流程

1. **检查前置条件**
   - 确认当前项目存在 `package.json` 且包含 `"deploy": "node deploy/sync.js"` 脚本
   - 确认 `deploy/config.json` 存在（含服务器连接信息）
   - 如果不满足，告诉用户缺失项，不继续执行

2. **执行部署**
   - 在项目根目录运行：`npm run deploy`
   - 等待脚本完成

3. **报告结果**
   - 输出上传文件数、跳过文件数
   - 输出访问地址
   - 如果失败，输出错误日志

4. **联动需求决策索引（成功后执行）**
   部署成功后，检查本次涉及的原型是否已登记进决策索引：
   - 运行 `node scripts/generate-requirements-index.js`，查看输出末尾的「未登记原型」列表。
   - 若本次部署的原型出现在列表中，说明它是**首次部署的新需求**（创建路径 B），提示用户：
     > 「检测到新原型 `<feature-slug>` 尚无决策索引，是否创建？（运行 `node scripts/create-requirement-decision.js <feature-slug>`）」
   - 若已有索引但方案演进表缺少本次新版本，提示用户人工补一行「关键改动」。
   - 用户确认创建后，引导其补全「问题定义」与「关键改动 / 推翻的假设」。

5. **更新 Obsidian 长期记忆库（成功后执行）**
   部署成功后，把本次部署沉淀的经验回写 Obsidian：
   - 工作流：如果部署流程顺利或有改进 → 更新 `E:/Obsidian/06 - 长期记忆库/工作流/原型部署流程.md`（记录部署成功率、耗时、踩坑）
   - 规划：新需求首次部署 → 更新 `E:/Obsidian/06 - 长期记忆库/规划/<主题>.md`（标记需求进入开发/验证阶段）

   > 触发逻辑详见 `docs/superpowers/specs/2026-07-15-requirement-decision-index-design.md` 第四节（创建路径 B：先原型后 PRD）。

## 注意事项

- 此 skill 只负责触发同步脚本，不修改 HTML 内容
- 新增/修改原型文件放入 `prototypes/YYYY-MM/` 文件夹（如 `prototypes/2026-06/`），同步时会递归扫描并自动处理
- 分类规则：`prototypes/**/*.html` 中 `<meta name="prototype-category" content="mobile">` 归为手机端，否则默认电脑端
- 首页按原型所在月份文件夹（如 `2026-06`）归档展示，无月份文件夹则按文件修改时间归档
