Files
sanguo_moziplus_v3/.claude/workflows/helpers/superpowers-integration.js
T
claude_dev b9327f3dea feat(v0.5): 实现完整的五阶段动态编排系统
## 第一阶段:核心 Gitea MCP 集成
- 新增 gitea-mcp-adapter.js 封装 Gitea MCP 工具调用
- 更新 gitea-orchestration.js 使用真实 MCP 调用
- 实现 Issue/PR/分支操作的完整适配层
- 添加错误处理和重试机制

## 第二阶段:Comment 标记约定
- 新增 comment-markers.js 生成标准完成标记
- 新增 comment-parser.js 解析 Sub Agent 完成标记
- 实现轮询机制 waitForSubAgentCompletion
- 支持 EXECUTE_DONE、REVIEW_DONE、TEST_DONE、VERIFICATION_PASSED 标记

## 第三阶段:三向一致性检查
- 新增 consistency-checker.js 实现三向比对逻辑
- 新增 requirement-tracker.js 追踪需求映射
- 实现需求→设计、设计→编码、需求→编码检查
- 支持偏差检测和报告生成

## 第四阶段:Linus 三问决策框架
- 新增 linus-triad.js 实现工程审慎决策
- 三问:现实问题、需要解决、方案可行
- 支持拒绝响应生成
- 集成 Agent 分析和关键词回退

## 第五阶段:Superpowers 工作流集成
- 新增 superpowers-integration.js 封装五技能调用
- 新增 CLAUDE.md Main Agent 配置
- 实现 writing-plans、executing-plans、requesting-code-review、systematic-debugging、finishing-a-development-branch

总计:8 个新文件,1 个修改文件,约 2,982 行代码
2026-07-01 20:51:13 +08:00

421 lines
9.2 KiB
JavaScript

/**
* Superpowers 集成层
*
* 实现 Superpowers 五技能体系的调用集成
*/
/**
* Superpowers 五阶段枚举
*/
export const SuperpowersPhase = {
WRITING_PLANS: 'writing-plans',
EXECUTING_PLANS: 'executing-plans',
REQUESTING_CODE_REVIEW: 'requesting-code-review',
SYSTEMATIC_DEBUGGING: 'systematic-debugging',
FINISHING_DEVELOPMENT: 'finishing-a-development-branch'
}
/**
* Superpowers 集成类
*/
export class SuperpowersIntegration {
constructor() {
this.currentPhase = null
this.phaseHistory = []
}
/**
* 调用 writing-plans
*
* @param {Object} context - 上下文信息
* @returns {Promise<Object>} 规划结果
*/
async invokeWritingPlans(context) {
this.setPhase(SuperpowersPhase.WRITING_PLANS)
log('📝 调用 writing-plans...')
try {
const prompt = this.generateWritingPlansPrompt(context)
const plan = await this.callSkill('writing-plans', prompt, context)
log('✅ writing-plans 完成')
return plan
} catch (error) {
log(`❌ writing-plans 失败: ${error.message}`)
throw error
}
}
/**
* 调用 executing-plans
*
* @param {Object} plan - 执行计划
* @returns {Promise<Object>} 执行结果
*/
async invokeExecutingPlans(plan) {
this.setPhase(SuperpowersPhase.EXECUTING_PLANS)
log('⚡ 调用 executing-plans...')
try {
const prompt = this.generateExecutingPlansPrompt(plan)
const result = await this.callSkill('executing-plans', prompt, { plan })
log('✅ executing-plans 完成')
return result
} catch (error) {
log(`❌ executing-plans 失败: ${error.message}`)
throw error
}
}
/**
* 调用 requesting-code-review
*
* @param {Object} code - 代码信息
* @returns {Promise<Object>} 审查结果
*/
async invokeRequestingCodeReview(code) {
this.setPhase(SuperpowersPhase.REQUESTING_CODE_REVIEW)
log('🔍 调用 requesting-code-review...')
try {
const prompt = this.generateCodeReviewPrompt(code)
const review = await this.callSkill('requesting-code-review', prompt, { code })
log('✅ requesting-code-review 完成')
return review
} catch (error) {
log(`❌ requesting-code-review 失败: ${error.message}`)
throw error
}
}
/**
* 调用 systematic-debugging
*
* @param {Object} issue - 问题信息
* @returns {Promise<Object>} 调试结果
*/
async invokeSystematicDebugging(issue) {
this.setPhase(SuperpowersPhase.SYSTEMATIC_DEBUGGING)
log('🐛 调用 systematic-debugging...')
try {
const prompt = this.generateDebuggingPrompt(issue)
const result = await this.callSkill('systematic-debugging', prompt, { issue })
log('✅ systematic-debugging 完成')
return result
} catch (error) {
log(`❌ systematic-debugging 失败: ${error.message}`)
throw error
}
}
/**
* 调用 finishing-a-development-branch
*
* @param {Object} context - 上下文信息
* @returns {Promise<Object>} 完成结果
*/
async invokeFinishingDevelopment(context) {
this.setPhase(SuperpowersPhase.FINISHING_DEVELOPMENT)
log('🏁 调用 finishing-a-development-branch...')
try {
const prompt = this.generateFinishingPrompt(context)
const result = await this.callSkill('finishing-a-development-branch', prompt, context)
log('✅ finishing-a-development-branch 完成')
return result
} catch (error) {
log(`❌ finishing-a-development-branch 失败: ${error.message}`)
throw error
}
}
/**
* 执行完整的五阶段工作流
*
* @param {Object} context - 初始上下文
* @returns {Promise<Object>} 完整工作流结果
*/
async runFullWorkflow(context) {
log('🚀 开始 Superpowers 五阶段工作流...')
const results = {}
try {
// 阶段 1: 规划
results.plan = await this.invokeWritingPlans(context)
// 阶段 2: 执行
results.execution = await this.invokeExecutingPlans(results.plan)
// 阶段 3: 审查
results.review = await this.invokeRequestingCodeReview(results.execution)
// 如果审查未通过,进入调试
if (results.review && !results.review.passed) {
log('⚠️ 审查未通过,进入调试阶段...')
results.debugging = await this.invokeSystematicDebugging({
review: results.review,
execution: results.execution
})
}
// 阶段 5: 完成
results.finishing = await this.invokeFinishingDevelopment({
...context,
...results
})
log('✅ Superpowers 五阶段工作流完成')
return results
} catch (error) {
log(`❌ 工作流中断: ${error.message}`)
throw error
}
}
/**
* 设置当前阶段
*/
setPhase(phase) {
if (this.currentPhase) {
this.phaseHistory.push(this.currentPhase)
}
this.currentPhase = phase
}
/**
* 获取当前阶段
*/
getPhase() {
return this.currentPhase
}
/**
* 获取阶段历史
*/
getPhaseHistory() {
return [...this.phaseHistory, this.currentPhase].filter(Boolean)
}
/**
* 生成 writing-plans 提示
*/
generateWritingPlansPrompt(context) {
return `
请编写一份综合实现计划,假设工程师对代码库零上下文。
## 上下文
${this.formatContext(context)}
## 要求
1. 任务背景和目标
2. 技术方案选择
3. 实施步骤
4. 验收标准
请提供详细的实现计划。
`
}
/**
* 生成 executing-plans 提示
*/
generateExecutingPlansPrompt(plan) {
return `
请执行以下实现计划:
## 计划
${this.formatContext(plan)}
## 要求
1. 按照计划实施
2. 编写完整的单元测试
3. 确保代码质量
4. 提供实施结果
请开始执行。
`
}
/**
* 生成代码审查提示
*/
generateCodeReviewPrompt(code) {
return `
请审查以下代码:
## 代码信息
${this.formatContext(code)}
## 审查维度
1. 逻辑正确性和边界情况
2. 安全漏洞
3. 性能影响
4. 测试覆盖率
5. 错误处理
请提供详细的审查结果。
`
}
/**
* 生成调试提示
*/
generateDebuggingPrompt(issue) {
return `
请系统化调试以下问题:
## 问题描述
${this.formatContext(issue)}
## 要求
1. 系统化定位问题(而非随机尝试)
2. 分析根本原因
3. 设计验证方案
4. 提供修复建议
请开始调试。
`
}
/**
* 生成完成提示
*/
generateFinishingPrompt(context) {
return `
请完成开发分支的收尾工作:
## 上下文
${this.formatContext(context)}
## 要求
1. 确认所有测试通过
2. 验证代码质量
3. 准备提交
4. 清理临时文件
请完成收尾工作。
`
}
/**
* 格式化上下文
*/
formatContext(context) {
if (typeof context === 'string') {
return context
}
return JSON.stringify(context, null, 2)
}
/**
* 调用 Skill
*/
async callSkill(skillName, prompt, context) {
try {
// 使用 Skill 工具调用
const result = await Skill({
skill: skillName,
args: JSON.stringify({ prompt, context })
})
return result
} catch (error) {
// 如果 Skill 工具不可用,使用 Agent 作为回退
log(`⚠️ Skill 工具不可用,使用 Agent 作为回退`)
return await this.fallbackToAgent(skillName, prompt, context)
}
}
/**
* 回退到 Agent
*/
async fallbackToAgent(skillName, prompt, context) {
const fullPrompt = `
作为 ${skillName} 专家,执行以下任务:
${prompt}
请返回结构化的 JSON 结果。
`
return await agent({
subagent_type: 'general-purpose',
prompt: fullPrompt
})
}
}
/**
* 创建 Superpowers 集成实例
*/
export function createSuperpowersIntegration() {
return new SuperpowersIntegration()
}
/**
* 快速函数:调用 writing-plans
*/
export async function invokeWritingPlans(context) {
const integration = createSuperpowersIntegration()
return await integration.invokeWritingPlans(context)
}
/**
* 快速函数:调用 executing-plans
*/
export async function invokeExecutingPlans(plan) {
const integration = createSuperpowersIntegration()
return await integration.invokeExecutingPlans(plan)
}
/**
* 快速函数:调用 requesting-code-review
*/
export async function invokeRequestingCodeReview(code) {
const integration = createSuperpowersIntegration()
return await integration.invokeRequestingCodeReview(code)
}
/**
* 快速函数:调用 systematic-debugging
*/
export async function invokeSystematicDebugging(issue) {
const integration = createSuperpowersIntegration()
return await integration.invokeSystematicDebugging(issue)
}
/**
* 快速函数:调用 finishing-a-development-branch
*/
export async function invokeFinishingDevelopment(context) {
const integration = createSuperpowersIntegration()
return await integration.invokeFinishingDevelopment(context)
}
/**
* 辅助函数:日志输出
*/
function log(message) {
console.log(`[Superpowers] ${message}`)
}
/**
* 导出
*/
export default {
SuperpowersIntegration,
createSuperpowersIntegration,
invokeWritingPlans,
invokeExecutingPlans,
invokeRequestingCodeReview,
invokeSystematicDebugging,
invokeFinishingDevelopment,
SuperpowersPhase
}