Install
openclaw skills install vibe-coding-cnAI 团队协作,自动生成完整项目。5 Agent + SPEC.md + Agent 投票审批 + 需求追溯。必须在 OpenClaw 环境中使用。
openclaw skills install vibe-coding-cnAI 团队协作,自动生成完整项目。通过自然语言描述需求,自动生成完整的项目代码。
作为 Orchestrator,你需要:
重要决策需要多 Agent 投票:
// 架构设计评审投票
const reviews = await reviewWithVote('architecture', architecture, ['developer', 'tester']);
// 投票结果
reviews.forEach(r => {
console.log(`${r.role}: ${r.vote} (${r.quality.score}/100) - ${r.reason}`);
});
const voteResult = countVotes(reviews);
console.log(`📊 投票结果:${voteResult.yes} 赞成 vs ${voteResult.no} 反对`);
// 决策
if (voteResult.no >= 2) {
// 2 票反对,要求重新设计
await redesign(architecture);
} else {
// 通过
continue();
}
投票规则:
run(requirement) 开始项目生成// 检查每个 Agent 的输出质量
if (quality.score < 70) {
// 质量不足,要求重新生成
await run(requirement, { parentVersion: 'v1.0' });
}
// AI 助手作为 Orchestrator 的示例
const { run } = require('vibe-coding-cn');
// 1. 启动项目
console.log('🎨 开始生成项目...');
const result = await run('做个个税计算器', {
onProgress: (phase, data) => {
console.log(`[${phase}] ${data.status}`);
}
});
// 2. 检查质量
if (result.files.length < 5) {
console.log('⚠️ 生成文件不足,重新生成...');
await run('做个更完整的个税计算器', {
projectId: result.projectId,
parentVersion: result.version
});
}
// 3. 汇报结果
console.log(`✅ 完成!生成 ${result.files.length} 个文件`);
不同任务使用不同模型,优化成本和性能:
| Agent | 模型 | Thinking | 理由 |
|---|---|---|---|
| Analyst | qwen3.5-plus | medium | 需求分析需要理解能力 |
| Architect | qwen3.5-plus | high | 架构设计需要深度思考 |
| Developer | qwen3-coder-next | medium | 代码实现需要编码专长 |
| Tester | glm-4 | low | 测试用例相对简单 |
效果: 成本降低 30%,性能提升 33%
每个阶段自动检查输出质量:
| 阶段 | 检查项 | 通过标准 |
|---|---|---|
| 需求分析 | 功能数量 | ≥3 个 |
| 用户故事 | ≥2 个(GWT 格式) | |
| 架构设计 | 技术选型 | 有理由说明 |
| 模块设计 | ≥3 个模块 | |
| 代码实现 | 代码注释 | JSDoc 风格 |
| 错误处理 | 有输入验证 | |
| 测试编写 | 功能测试 | ≥5 个用例 |
| 边界测试 | ≥3 个用例 |
每阶段完成后自动汇报进度,用户可以随时了解执行状态。
// AI 助手作为 Orchestrator
const { run } = require('vibe-coding-cn');
console.log('🎨 收到需求:做个个税计算器');
console.log('📋 启动 5 Agent 协作流程...\n');
try {
const result = await run('做个个税计算器', {
onProgress: (phase, data) => {
// 实时汇报进度
console.log(`📊 [${phase.replace('_', ' ')}] ${data.message}`);
}
});
// 验收检查
console.log('\n✅ 项目生成完成!');
console.log(`📁 项目 ID: ${result.projectId}`);
console.log(`📁 版本:${result.version}`);
console.log(`📁 文件数:${result.files.length}`);
if (result.files.length >= 5) {
console.log('✅ 质量检查通过');
} else {
console.log('⚠️ 文件数量不足,建议增量更新');
}
} catch (error) {
console.error('❌ 生成失败:', error.message);
// 决定重试或放弃
}
// 用户反馈:"想要更专业的风格"
console.log('🔄 收到用户反馈:想要更专业的风格');
console.log('📊 分析变更...');
const { IncrementalUpdater } = require('vibe-coding-cn');
const updater = new IncrementalUpdater({ conservatism: 'balanced' });
const plan = await updater.analyzeChanges(
'做个个税计算器',
'做个更专业的个税计算器',
oldVersion,
llmCallback
);
console.log(updater.formatConfirmationMessage(plan));
// 显示变更计划,等待用户确认
// 用户确认后执行
const v2 = await run('做个更专业的个税计算器', {
projectId: v1.projectId,
parentVersion: v1.version
});
console.log(`✅ 增量更新完成!新版本:${v2.version}`);
// 检查质量评分
if (quality.score < 70) {
console.log(`⚠️ 质量评分 ${quality.score}/100,低于标准 (70 分)`);
console.log('📝 问题清单:');
quality.issues.forEach(issue => console.log(` - ${issue}`));
// 决策:重试 or 继续?
const retry = confirm('是否重新生成?');
if (retry) {
console.log('🔄 重新生成中...');
// 传入修改意见
await run(requirement, {
llmCallback: async (prompt) => {
return await sessions_spawn({
task: `请改进以下问题:\n${quality.issues.join('\n')}\n\n${prompt}`
});
}
});
} else {
console.log('⏭️ 跳过,继续后续流程');
}
}
// 查看版本历史
const { VersionManager } = require('vibe-coding-cn');
const vm = new VersionManager('./output');
const project = await vm.loadOrCreateProject(projectId, '');
console.log('📚 版本历史:');
project.getVersions().forEach(v => {
const marker = v.version === project.currentVersion ? '← 当前' : '';
console.log(` ${v.version}: ${v.requirement} ${marker}`);
});
// 版本对比
const diff = await vm.compareVersions(projectId, 'v1.0', 'v2.0');
console.log('\n📊 版本对比:');
console.log(` 新增文件:${diff.filesChanged.added.length}`);
console.log(` 修改文件:${diff.filesChanged.modified.length}`);
// 版本回退
const confirmRevert = confirm('是否回退到 v1.0?');
if (confirmRevert) {
const newVersion = await vm.revertToVersion(projectId, 'v1.0');
console.log(`✅ 已回退到 ${newVersion}(内容是 v1.0 的副本)`);
}
在 OpenClaw 中直接调用:
// 通过 sessions_spawn 调用
sessions_spawn({
runtime: "subagent",
task: "用 vibe-coding 做一个个税计算器",
cwd: "~/.openclaw/workspace/skills/vibe-coding-cn"
})
或者在对话中直接说:
用 vibe-coding 做一个打字游戏
优点:
安装后使用:
# 全局安装(首次使用)
cd ~/.openclaw/workspace/skills/vibe-coding-cn
npm install -g .
# 使用
vibe-coding "做一个个税计算器"
vibe-coding "做一个打字游戏"
vibe-coding "做一个待办事项应用"
vibe-coding "做一个客户画像功能"
或者临时执行:
node ~/.openclaw/workspace/skills/vibe-coding-cn/index.js "做一个个税计算器"
优点:
启动开发服务器:
cd ~/.openclaw/workspace/skills/vibe-coding-cn
npm start # 或者 node server.js
访问界面:
功能:
注意:UI 仅用于监控,不控制执行流程。执行仍通过方式一或方式二启动。
1. Phase 1: 需求分析 (30 秒)
→ docs/requirements.md
2. Phase 2: 架构设计 (90 秒)
→ docs/architecture.md
3. Phase 3: 代码实现 (90 秒)
→ index.html, app.js, ...
4. Phase 4: 测试编写 (30 秒)
→ tests/test-cases.md
5. Phase 5: 整合验收
→ docs/vibe-report.md
实时进度:
output/{项目名}/
├── docs/
│ ├── requirements.md # 需求文档
│ ├── architecture.md # 架构设计
│ └── vibe-report.md # 总结报告
├── index.html # 主页面
├── app.js # 应用逻辑
└── tests/
└── test-cases.md # 测试用例
需求: "做一个个税计算器"
结果:
需求: "做一个打字游戏"
结果:
需求: "做一个待办事项应用"
结果:
需求: "做一个个客户画像功能"
结果:
sessions_spawn 权限output/ 目录npm install -g . 全局安装node server.js解决: 检查网络连接,确认 AI 模型 API 可访问
解决: 查看错误信息,重新生成或手动修复
解决: 提供更详细的需求描述,包含具体功能和技术栈要求
MIT License
欢迎提交 Issue 和 Pull Request!