OpenSpec+Superpowers 实战:SeaTunnel Zeta 管理面板开发全流程

📅 2026/8/26 17:00:46
OpenSpec+Superpowers 实战:SeaTunnel Zeta 管理面板开发全流程
前言AI辅助编程时代最大的痛点不是AI写不出代码而是需求理解偏差、架构漂移、代码质量不可控。很多人用AI开发时陷入了反复提需求→AI写代码→发现不对→返工的恶性循环。今天我们用OpenSpec规范驱动Superpowers工程化执行的黄金组合以开发一个功能完整的SeaTunnel Zeta管理面板为例展示AI开发的正确姿势。全程在本地OpenCode CLI环境下进行。一、黄金搭档OpenSpecSuperpowers的能力边界在开始实战前我们先明确两个工具的核心定位这是高效配合的基础工具核心角色解决的问题核心能力OpenSpec产品经理架构师需求混乱、上下文丢失、架构漂移将模糊需求转化为结构化、机器可读的规格文档Superpowers资深开发工程师测试工程师AI代码质量差、跳过测试、调试混乱通过可组合技能强制AI遵循软件工程最佳实践核心配合逻辑OpenSpec负责**做什么和怎么做的规范定义**Superpowers负责**“如何高效可靠地实现”**两者通过本地文件系统无缝集成完全不需要人工传递上下文简单来说OpenSpec 画好图纸Superpowers 按图施工。没有图纸的施工是瞎盖没有施工的图纸是废纸。二、实战SeaTunnel管理面板开发全流程我们将开发一个轻量级SeaTunnel Zeta管理面板支持集群概览、作业全生命周期管理、日志查看和系统监控。所有数据通过SeaTunnel官方REST API V2获取。前置准备安装OpenCode CLI详见https://opencode.ai/docs/zh-cn/opencode中安装superpowers详见https://github.com/jnMetaCode/superpowers-zh/blob/main/docs/README.opencode.mdopenspec安装以及集成详见https://github.com/Fission-AI/OpenSpec/blob/main/README.md阶段1需求探索与澄清OpenSpec单独执行目标将模糊的一句话需求转化为清晰的问题清单与利益相关者对齐。执行命令在OpenCode CLI中输入/opsx:explore我需要开发一个SeaTunnel Zeta引擎的管理面板后端用Spring Boot 3前端用Spring Boot自带的Thymeleaf不要前后端分离。功能包括集群概览、作业管理、日志查看、系统监控。所有数据通过SeaTunnel REST API V2获取相关API详细参考https://seatunnel.apache.org/zh-CN/docs/2.3.13/engines/zeta/rest-api-v2。不需要自己的数据库。OpenSpec自动输出问题清单# 需求探索问题清单 ## 关键设计问题 1. SSR vs SSRAJAX 2. 作业提交要支持到什么程度 3. 日志查看需要搜索过滤吗 4. UI 框架偏好 5. ...人工回答确认直接在CLI中输入1. SSRAJAX 2. 完整版支持文件上传 三种格式切换 加密配置预览 3. 需要搜索过滤 4. Bootstrap 5 5. ...阶段2规格提案生成OpenSpec单独执行目标基于澄清后的需求生成完整的结构化规格文档作为后续开发的唯一依据。执行命令/opsx:propose seatunnel-admin-panelOpenSpec自动在本地生成以下文件结构your-project/ └── changes/ └── seatunnel-admin-panel/ # 变更名称 目录名称 ├── proposal.md # 为什么做、业务价值、范围边界 ├── specs/ │ ├── cluster-overview/spec.md # 详细功能需求 │ └── seatunnel-api-client/spec.md # API 客户端封装 错误处理 ├── design.md # 技术设计方案 └── tasks.md # 初步任务清单人工操作用VS Code或者其他编辑器打开这4个文件审查并修改不符合预期的内容。这是整个开发过程中唯一需要人工大量编辑的步骤。关键提示在每个文件开头添加版本号和变更日志version: 1.0.0changeTime: 2026-05-25changeLog: 定义日志查看页面含双栏布局、截断策略、按作业过滤、关键词搜索高亮及自动刷新阶段3技术方案评估OpenSpec主导Superpowers辅助目标让AI评估技术设计的合理性发现潜在风险提出改进建议。执行命令/brainstorming openspec\changes\seatunnel-admin-panel/ 整体方案评估提出改进建议和潜在风险Superpowers自动读取本地changes/seatunnel-admin-panel/目录下的所有文件输出评估报告────┬───────────────────────────────┬──────────────────────────────────┐ │ # │ 改动点 │ 具体变更 │ ├────┼───────────────────────────────┼──────────────────────────────────┤ │ 1 │ 作业提交路径 │ 移除 upload 端点统一走 │ │ │ │ POST /submit-job (文本端点) │ ├────┼───────────────────────────────┼──────────────────────────────────┤ │ 2 │ 日志截断策略 │ 后端截断最后 1000 行返回 │ │ │ │ 提供手动全量查看选项 │ ├────┼───────────────────────────────┼──────────────────────────────────┤ │ 3 │ API 响应模型 │ 全量 DTO JsonIgnoreProperties│ │ │ │ Lombok Data JsonProperty │ ├────┼───────────────────────────────┼──────────────────────────────────┤ │ 4 │ 静态资源引入方式 │ Bootstrap 5 Mermaid.js │ │ │ │ 全部本地引入不依赖 CDN │ ├────┼───────────────────────────────┼──────────────────────────────────┤ │ 5 │ DAG 可视化 │ 用 Mermaid.js 渲染流程图 │ ├────┼───────────────────────────────┼──────────────────────────────────┤ │ 6 │ 补充缺失设计细节 │ 包结构/超时配置/模板组织 │ ├────┼───────────────────────────────┼──────────────────────────────────┤ │ 7 │ 系统监控摘要计算 │ 摘要卡片需从多节点数据聚合 │ ├────┼───────────────────────────────┼──────────────────────────────────┤ │ 8 │ Spec 细化 │ 日志搜索/指标分组等实现细节 │ └────┴───────────────────────────────┴────────────────人工操作根据评估建议修改design.md和tasks.md将版本号升级为1.1.0。注也可以通过人工确认后后面opencode会依次执行用户批准设计-编写设计文档到 docs/superpowers/specs/-规格自检内联修复-用户审查规格-同步更新 OpenSpec 制品阶段4任务计划细化双向配合目标将高层级任务分解为可执行的原子任务明确每个任务的输入输出和验收标准。注opencode在你确认后会自动执行writing-plans。你可以手动执行如下命令进行更细致的描述以及让AI再次进行自检确认执行命令/writing-plans openspec\changes\seatunnel-admin-panel/ 生成详细的原子任务执行计划每个任务预计耗时不超过10分钟Superpowers自动读取最新的规格文档生成24个原子任务# 详细执行计划 ## 任务 1项目基础配置 - 文件pom.xml - 步骤创建Spring Boot项目添加必要依赖 ## 任务 3配置类 - 文件src/main/java/com/example/seatunnel/config/SeaTunnelApiProperties.java - 步骤创建 SeaTunnelApiProperties ...其余22个任务省略人工操作审查任务计划调整不合理的地方更新tasks.md版本号升级为1.1.0。阶段5代码实现与测试Superpowers单独执行目标让AI按照任务计划和规格文档自动完成所有代码编写和单元测试。注在你superpowers-plan生成完后AI会自动提示选择是要使用子代理即subagent-driven-development或者内联执行executing-plans你可以根据实际需要进行选择。也可以手动执行形如下命令进行进一步要求执行命令请使用subagent-driven-development和test-driven-development技能严格按照规格文档openspec\changes\seatunnel-admin-panel/和任务计划 docs\superpowers\plans\2026-05-22-seatunnel-admin-panel.md实现代码。所有代码必须100%符合规格文档要求任何与规格不符的地方都必须先暂停开发并反馈给我由我更新规格文档后再继续Superpowers执行过程自动创建Git分支和工作树为每个任务分配独立的子代理严格执行TDD先写测试再写实现每个任务完成后自动运行验证遇到问题自动使用systematic-debugging技能关键代码示例自动生成ServicepublicclassSeaTunnelApiClient{privatefinalRestClientrestClient;privatefinalSeaTunnelApiPropertiesproperties;publicSeaTunnelApiClient(BuilderrestClientBuilder,SeaTunnelApiPropertiesproperties){this.restClientrestClientBuilder.build();this.propertiesproperties;}privateStringbuildUrl(Stringpath,MapString,StringqueryParams){Stringurlproperties.getBaseUrl()path;if(queryParams!null!queryParams.isEmpty()){StringBuildersbnewStringBuilder(url);sb.append(?);queryParams.forEach((k,v)-sb.append(k).append().append(v).append());sb.deleteCharAt(sb.length()-1);urlsb.toString();}returnurl;}// 其他API方法自动生成...}整个代码实现过程约1小时期间不需要任何人工干预。阶段6代码审查与验证Superpowers 主导OpenSpec 辅助目标确保代码符合规格要求质量达标。注自动触发执行命令/requesting-code-review openspec\changes\seatunnel-admin-panel/Superpowers自动生成代码审查报告**人工操作**根据审查建议修改代码然后执行最终验证 bash /verification-before-completion openspec\changes\seatunnel-admin-panel/验证报告# 完成前验证报告 # 项目验证结果 ## 新鲜验证结果 - mvn compile → BUILD SUCCESS ✅ - mvn test → 13 tests, 0 failures, 0 errors ✅ - application.yml 存在、application.properties 已删除 ✅ ## 文件清单验证 | 类别 | 计划要求 | 实际存在 | 状态 | |------------|----------|----------|------| | Java 源码 | 43 个 | 43 个 | ✅ | | 测试文件 | 51 个 | 6 个 | ✅ | | 模板文件 | 9 个 | 9 个 | ✅ | | JS 文件 | 7 个 | 7 个 | ✅ | | CSS 文件 | 1 个 | 1 个 | ✅ | | 静态资源 | 3 个 | 3 个 | ✅ | | 配置文件 | 1 个 | 1 个 | ✅ |阶段7文档归档与维护OpenSpec单独执行目标将已完成的变更归档更新系统整体文档。执行命令/opsx:archive seatunnel-admin-panelOpenSpec自动完成将变更合并到主规格文档更新系统整体架构图归档所有开发过程文档生成最终的用户手册和部署文档三、常见问题解答Q1如果开发过程中需求变更怎么办A使用/opsx:update命令更新规格文档记录变更原因和影响范围升级版本号如 1.3.0Superpowers 根据更新后的规格调整任务计划,重新执行受影响的测试示例执行/opsx:update seatunnel-admin-panel 修改本地规格文档升级版本号如1.3.0 执行/writing-plans openspec\changes\seatunnel-admin-panel/更新任务计划 执行/subagent-driven-development openspec\changes\seatunnel-admin-panel/和任务计划 docs\superpowers\plans\2026-05-22-seatunnel-admin-panel.md继续开发Superpowers会自动识别变更只修改受影响的代码。Q2Superpowers生成的代码不符合预期怎么办A首先在传递文档的时候一定要加上这句话所有代码必须100%符合规格文档要求任何与规格不符的地方都必须先暂停开发并反馈给我由我更新规格文档后再继续如果 AI 还是写得不对不要直接让它改代码而是先检查规格文档是不是写得不够清楚。永远是先改规格再改代码。Q3我只想实现某个特定功能怎么办A指定具体的文件或章节。/subagent-driven-development 实现系统监控页面功能基于openspec\changes\seatunnel-admin-panel\specs\system-monitoring\spec.md以及docs\superpowers\plans\2026-05-22-seatunnel-admin-panel.md##任务 23系统监控页面模板Q4我只改了一行需求也要重新传递所有文档吗A如果是基于superpowers的子代理实现必须传递所有文档。Superpowers 的子代理是独立的它们看不到之前的对话内容。只传部分内容会导致 AI 基于不完整的信息工作最后写出来的代码肯定有问题Q5如何回滚到之前的规格版本A前置条件使用git来做版本管理。使用 Git 回滚规格文件然后执行/opsx:update seatunnel-admin-panel即可。四、几条最佳实践永远不要用 OpenSpec 的 /opsx:apply 命令。用 Superpowers 来执行代码实现它在代码质量和工程化方面做得比 OpenSpec 好得多用 verification-before-completion 作为质量闸门。在每个主要阶段结束时强制 AI 验证是否符合规格和质量要求不达标就不能进入下一阶段保持规格的轻量级。不要过度设计规格文档只包含必要的信息让 AI 能够快速理解和执行所有变更都必须先更新规格。开发过程中如果发现规格有问题或者需要变更永远先更新规格文档再修改代码五、总结OpenSpecSuperpowers的配合本质上是将软件工程的最佳实践固化为AI可以执行的流程。它解决了AI开发中最致命的两个问题需求不确定性通过结构化规格文档消除歧义代码不可靠性通过工程化技能保证代码质量在AI时代程序员的核心竞争力不再是写代码的速度而是定义问题和制定规范的能力。掌握了OpenSpecSuperpowers的配合方法你就掌握了AI开发的正确姿势。