mode-switchlisted
Install: claude install-skill wxxzy/Claude-Code-Software-Studios
# 技能:模式切换 (/mode-switch)
**执行代理**: `delivery-manager`
---
## 概述 (Summary)
USDS v2 引入双模态架构。本技能负责:
1. 初始化项目模式声明 (`.usds-mode` 文件)
2. 在 Vibe Mode ↔ Studio Mode 之间切换
3. 处理混合模式 (`hybrid`) 的规则冲突
---
## 模式定义 (Mode Definitions)
| 模式 | 适用场景 | 主导规则 | 主要目录 |
|---|---|---|---|
| `vibe` | 探索、原型、个人玩具、demo | `vibe-mode.md` 宽松 | `sandbox/**` |
| `studio` | 生产、团队协作、长期维护 | `global-standards.md` 严格 | `src/**`, `docs/**`, `tests/**` |
| `hybrid` | 一个仓库同时容纳两种 | 按目录分派 | 两者共存 |
---
## 工作流 (Workflow)
### 场景 A:首次初始化
1. 检查项目根是否有 `.usds-mode` 文件
2. 若无,用 `ask_user` 询问:
- **推荐推断**: 根据用户最近的语言习惯自动推荐
- 出现"原型 / 试试 / 玩具 / demo / 快速" → 推荐 `vibe`
- 出现"生产 / 团队 / 上线 / 严肃 / 客户" → 推荐 `studio`
- 提供三选项:[vibe] [studio] [hybrid]
3. 写入 `.usds-mode`,格式:
```
mode: <vibe|studio|hybrid>
created: <date>
last_switched: <date>
reason: <一句话>
```
### 场景 B:从 vibe 切到 studio
1. 检查 `sandbox/` 下是否有未晋升的原型
2. 若有,提示:
- "以下原型未晋升,切换后仍可运行但不再被主流程管理:"
- 列出所有 `sandbox/<name>/`
- [继续切换] [先晋升] [取消]
3. 更新 `.usds-mode` 并追加 `last_switched` 时间
### 场景 C:从 studio 切到 vibe
1. **警告**: "Studio Mode 下的 src/ 代码不会因切换而失去规则约束"
2. 确认后更新 `.usds-mode`
3. 提示:新的探索性代码请放到 `sandbox/`
### 场景 D:切换到 hybrid
1. 明确规则分派:
- `src/**` / `docs/**` / `tests/**` → Studio 规则
- `sandbox/**` → Vibe 规则
2. 更新 `.usds-mode`
3. 在 `CLAUDE.md` 中追加双模态说明
---
## 成功门控 (Success Gate)
- `.usds-mode` 文件存在且格式正确
- `CLAUDE.md` 中的模式声明与 `.usds-mode` 一致
- 未晋升的 sandbox 原型有明确处置决策
---
## 输出约束 (Output Budget)
**[强制]** 完成后返回主上下文只输出:
```
模式