关于 fullstack-feature
fullstack-feature 是用于协调跨数据库、API 和 UI 功能开发的技能,带领专门 Agent 经历从需求梳理到交付的七个阶段,并安排并行实现与质量检查。
主要功能
- 01七阶段功能工作流
- 02需求澄清与层级规划
- 03并行处理 API、UI 和状态
- 04按序进行集成
- 05并行测试、安全与无障碍检查
- 06由运行时管理 WRFC 评审
适用场景
- 01开发横跨数据库、API 和 UI 的功能
- 02协调实现、测试与评审
- 03规划并集成应用多层变更
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mgd34msu/ goodvibes-plugin --skill fullstack-feature安装后在 Claude Code 中输入/fullstack-feature确认已加载。
附带文件references/phase-templates.mdscripts/validate-feature-workflow.sh
详细介绍
资源
scripts/
validate-feature-workflow.sh
references/
phase-templates.md
全栈功能编排
此技能定义了跨越技术栈多个层级来实现完整功能的端到端工作流。它通过 7 个不同阶段编排专用 Agent,涵盖从需求澄清到交付的全过程。
何时使用此技能
当用户请求以下内容时,使用 fullstack-feature:
- 需要修改数据库、API 和 UI 的完整功能
- 包含测试和审查的端到端实现
- 涉及多个组件的新用户功能
- 任何描述为“构建 X”“添加 X 功能”“实现 X 能力”的需求
不要在以下情况使用此技能:
- 单层修改(仅 API 或仅 UI)
- Bug 修复(使用 bugfix 或 hotfix 技能)
- 仅代码审查(使用 review-scoring 技能)
- 不涉及新功能的重构
概览
全栈功能工作流包含 7 个阶段:
- 理解 - 澄清需求、加载技能、确定受影响的层级
- 基础(顺序执行)- 数据库架构/迁移、类型生成
- 核心实现(并行执行)- API 端点、UI 组件、状态管理
- 集成(顺序执行)- 将 UI 接入 API、将状态接入 UI、验证数据流
- 质量(并行执行)- 测试、安全检查、无障碍检查
- 审查(由运行时驱动)- 通过运行时
<gv>指令,完成前序阶段中的 WRFC 链 - 提交 + 记录 - 运行时发出
complete指令后触发;执行 git commit、更新记忆/日志并向用户汇报
运行时引擎与 WRFC 链
运行时引擎会自动为每个工作 Agent 创建一个 WRFC(工作-审查-修复-完成)链。当 Agent 完成工作并发出 <gv> 标签时,运行时会:
- 根据配置的
score_threshold评估输出(默认值:goodvibes.json中的 9.5) - 通过系统消息向编排器发出指令
- 由编排器机械地执行这些指令
指令类型:
{"action":"spawn","wid":"wrfc_xxx","type":"reviewer","task":"Review the code..."}
{"action":"spawn","wid":"wrfc_xxx","type":"engineer","task":"Fix the issues..."}
{"action":"complete","wid":"wrfc_xxx"}
{"action":"escalate","wid":"wrfc_xxx","reason":"Max fix attempts reached"}
指令遵循规则(绝对):
- 立即执行:指令一到达就立即执行。绝不推迟、排队或延迟。
- 优先执行:在采取任何其他行动之前执行指令。不得插入工具调用、启动其他 Agent 或先向用户发送消息。
- 自主权终止:WRFC 链收到第一条指令后,编排器不再对该链拥有判断权。只能由指令驱动。
- 运行时优先:运行时工作流逻辑始终优先于编排器的判断。如果指令要求审查,就进行审查;如果要求完成,就完成。
编排器不会手动启动审查者或修复 Agent。这些操作完全由运行时指令触发。
阶段 1:理解
目的
在启动工作 Agent 之前,确保你完全清楚需要构建什么。本阶段可避免因误解而浪费精力。
步骤
-
与用户明确需求:
- 请求的具体功能是什么?
- 用户是谁,他们的目标是什么?
- 验收标准是什么(如何判断任务已完成)?
- 是否有特定限制(性能、无障碍、浏览器支持)?
- 是否有需要遵循或避免的现有模式?
-
确定受影响的层:
- 数据库:新增表/列?迁移?
- API:新增端点?修改现有端点?
- 类型:新增类型定义?
- UI:新增组件?修改现有组件?
- 状态:新增状态管理?
- 测试:单元测试、集成测试、端到端测试?
-
加载相关结果技能:
- 后端:
trpc、prisma、postgresql、clerk、nextauth、graphql、rest-api-design - 前端:
nextjs、react、tailwindcss、shadcn-ui、framer-motion - 协议:
gather-plan-apply、review-scoring、goodvibes-memory
- 后端:
-
检查 goodvibes 记忆:
.goodvibes/memory/decisions.json- 架构选择.goodvibes/memory/patterns.json- 编码模式.goodvibes/memory/failures.json- 需要避免的过往失败
-
制定实现计划:
- 将功能拆分为子任务
- 确定子任务之间的依赖关系
- 估算范围(涉及多少文件/组件)
- 将子任务映射到各阶段(基础、核心、集成)
输出
在第 1 阶段结束时,必须具备:
- 需求文档(位于 memory/current-task.md)
- 受影响层列表(数据库、API、UI、测试)
- 实现计划(拆分后的子任务及其依赖关系)
- 已加载技能(可用的相关结果技能)
特定模式行为
Vibecoding:继续进入第 2 阶段前,先与用户确认。 Justvibes:需求明确时自动继续。(如有歧义,则暂停并请求澄清。)
第 2 阶段:基础(顺序执行)
目的
在构建任何上游代码之前,先建立数据模型和类型基础。这可以确保各层之间的类型安全和一致性。
步骤
-
数据库架构(如有需要):
- 启动数据库 Agent 设计架构
- 创建迁移文件
- 运行迁移(开发环境)
- 验证迁移成功
-
类型生成(如果使用 Prisma/Drizzle 等):
- 运行 ORM 类型生成命令
- 验证类型已生成
- 提交生成的类型(如有必要)
-
共享类型定义(如果不使用 ORM):
- 创建
src/types/[...].ts文件 - 定义实体、DTO、请求/响应类型
- 从 barrel
index.ts导出
- 创建
Agent 指令
数据库 Agent:
协议技能(所有 Agent 必须具备):gather-plan-apply、precision-mastery、error-recovery、goodvibes-memory
- 使用
gather-plan-apply协议 - 遵循现有架构模式(检查 memory/decisions.json)
- 为查询性能添加适当的索引
- 添加外键约束
- 使用时间戳(
createdAt、updatedAt) - 完成前测试迁移
工程师 Agent(类型生成):
协议技能(所有 Agent 必须具备):gather-plan-apply、precision-mastery、error-recovery、goodvibes-memory
- 运行类型生成命令
- 验证类型正确(抽查生成的代码)
- 运行
tsc,确认没有类型错误
明确的完成定义
- 数据库架构已创建,迁移已应用
- 类型已生成并导出
npm run typecheck通过- 所有文件均已提交
特定模式行为
Vibecoding:在此阶段后设置检查点。使用提交信息 checkpoint: foundation - schema and types 提交。
Justvibes:自动继续到第 3 阶段。
第 3 阶段:核心实现(并行)
目的
并行实现 API 和 UI 层的主要功能,从而最大限度地提高吞吐量并减少等待时间。
子阶段
以下子阶段并行执行:
- API 端点(API Agent)
- UI 组件(UI Agent)
- 状态管理(状态 Agent)
Agent 指令
API Agent:
协议技能(所有 Agent 必须具备):gather-plan-apply、precision-mastery、error-recovery、goodvibes-memory
- 按照现有模式实现端点(查看 decisions.json 了解 API 风格)
- 添加输入验证(使用 Zod 或类似工具)
- 添加错误处理
- 添加身份验证/授权检查
- 使用 ORM 访问数据库
- 在适当的级别添加日志记录
- 使用
gather-plan-apply协议
UI Agent:
协议技能(所有 Agent 必须具备):gather-plan-apply、precision-mastery、error-recovery、goodvibes-memory
- 按照现有模式创建组件(查看 decisions.json 了解 UI 库)
- 遵循无障碍最佳实践(ARIA 属性、键盘导航)
- 实现响应式设计
- 添加加载和错误状态
- 优化性能(
useMemo、useCallback) - 使用
gather-plan-apply协议
状态 Agent:
协议技能(所有 Agent 必须具备):gather-plan-apply、precision-mastery、error-recovery、goodvibes-memory
- 按照现有模式实现状态管理(Zustand、Redux 等)
- 定义状态结构和操作
- 为派生状态添加选择器
- 根据需要添加持久化(localStorage、sessionStorage)
- 使用
gather-plan-apply协议
明确的完成定义
- 所有 API 端点均已实现并通过验证
- 所有 UI 组件均已创建
- 已实现状态管理
npm run typecheck通过npm run lint通过- 所有文件均已提交
特定模式行为
Vibecoding:此阶段结束后设立检查点。提交时使用消息 checkpoint: core implementation。
Justvibes:自动进入阶段 4。
阶段 4:集成(顺序执行)
目的
将 UI 连接到 API,将状态接入 UI,并端到端验证数据流。此阶段必须按顺序执行,因为它依赖于阶段 3 的完成。
步骤
-
将 UI 接入 API:
- 在组件中添加 API 客户端调用
- 处理 API 调用期间的加载状态
- 处理 API 返回的错误状态
- 在 UI 中显示 API 响应
-
将状态接入 UI:
- 将状态管理连接到组件
- 使用选择器访问状态
- 根据用户交互分发操作
- 验证状态变化时 UI 是否更新
-
端到端验证:
- 手动测试数据流:UI -> API -> Database -> API -> UI
- 确认加载状态会显示
- 确认失败时会显示错误状态
- 确认成功时会显示成功状态
-
修复集成问题:
- 修复 UI 与 API 之间的类型不匹配问题
- 修复数据映射问题
- 修复状态同步问题
Agent 指令
集成 Agent:
协议技能(所有 Agent 必须具备):gather-plan-apply、precision-mastery、error-recovery、goodvibes-memory
- 阅读 API 和 UI 代码以了解接口
- 在正确的生命周期钩子(
useEffect、事件处理程序)中添加 API 客户端调用 - 确保包含错误处理
- 确保显示加载状态
- 手动测试每个集成点
- 使用
gather-plan-apply协议
明确的完成定义
- UI 组件能够调用 API 端点
- 数据流从 UI -> API -> DB -> API -> UI
- 状态运行正常
- 显示加载状态
- 显示错误状态
npm run typecheck通过- 所有文件均已提交
特定模式行为
Vibecoding:此阶段结束后设立检查点。提交时使用消息 checkpoint: integration。
Justvibes:自动进入阶段 5。
阶段 5:质量(并行执行)
目的
从多个维度验证实现是否符合质量标准。这些检查会并行运行。每个启动的 Agent 都会拥有由运行时引擎管理的独立 WRFC 链。
子阶段
以下子阶段并行运行:
- 测试(Tester Agent)
- 安全检查(Security Agent)
- 无障碍检查(A11y Agent)
Agent 指令
测试 Agent:
所有 Agent 必须具备的协议技能:gather-plan-apply、precision-mastery、error-recovery、goodvibes-memory
- 为 API 端点编写单元测试
- 为 UI 编写组件测试
- 为数据流编写集成测试
- 新代码的覆盖率目标为 >=80%
- 测试正常流程和边缘情况
- 使用
gather-plan-apply协议
安全 Agent:
所有 Agent 必须具备的协议技能:gather-plan-apply、precision-mastery、error-recovery、goodvibes-memory
- 检查所有端点的输入验证
- 检查身份验证/授权检查
- 检查 SQL 注入漏洞
- 检查 XSS 漏洞
- 检查是否暴露机密
- 检查 CORS 配置
- 使用
gather-plan-apply协议
A11y Agent:
所有 Agent 必须具备的协议技能:gather-plan-apply、precision-mastery、error-recovery、goodvibes-memory
- 检查交互元素是否具有 ARIA 属性
- 检查是否支持键盘导航
- 检查颜色对比度(WCAG AA)
- 检查焦点指示器
- 检查图片的替代文本
- 使用
gather-plan-apply协议
明确的完成定义
- 已编写并通过测试
- 已完成安全检查(无严重问题)
- 已完成无障碍检查(无严重问题)
- 所有文件均已提交
特定模式行为
Vibecoding:此阶段完成后设置检查点。使用提交信息 checkpoint: quality checks 进行提交。
Justvibes:自动继续;运行时负责处理审核周期。
阶段 6:审核(由运行时驱动)
目的
通过系统化审核和修复,确保所有代码符合生产标准。运行时引擎通过 <gv> 指令自动管理此阶段。
工作方式
编排器不会手动启动审核者。相反:
- 阶段 2-5 的每个工作 Agent 完成工作并输出一个
<gv>标签 - 运行时引擎评估输出并发出指令:
- 如需审核:
{"action":"spawn","type":"reviewer","task":"..."} - 审核后如需修复:
{"action":"spawn","type":"engineer","task":"Fix: ..."} - 若评分达到
score_threshold(在goodvibes.json中配置):{"action":"complete"} - 若
max_fix_attempts已耗尽:{"action":"escalate","reason":"..."}
- 如需审核:
- 编排器立即按指令执行,不作额外判断
编排器行为
- 收到
spawn指令时:使用提供的任务提示词启动指定 Agent - 收到
complete指令时:将链标记为完成;所有链均完成后继续进入阶段 7 - 收到
escalate指令时:向用户报告升级原因;不要尝试手动修复该链
明确的完成定义
- 所有 WRFC 链均已收到运行时发出的
complete指令 - 没有等待解决升级事项的链
特定模式行为
Vibecoding 和 Justvibes 模式均以相同方式遵循指令。运行时引擎决定审核周期何时结束。本阶段中,除执行指令外,编排器没有特定于模式的行为。
阶段 7:提交 + 记录
目的
当运行时针对阶段 2-5 的所有 WRFC 链发出 complete 指令后,触发此阶段,以提交到 git 并更新项目记忆,从而完成该功能。
步骤
-
创建 git 提交:
- 暂存所有新增/修改的文件
- 编写清晰的提交消息(遵循现有约定)
- 包含
Co-Authored-By: Claude Opus 4.6 <[email protected]> - 提交
-
更新 goodvibes 记忆:
- 将新出现的模式添加到
.goodvibes/memory/patterns.json(如果有) - 将新做出的决策添加到
.goodvibes/memory/decisions.json(如果有) - 使用
goodvibes-memory技能
- 将新出现的模式添加到
-
更新 goodvibes 日志:
- 将功能完成情况记录到
.goodvibes/logs/tasks.jsonl - 包含功能名称、变更的文件和最终评分
- 使用
goodvibes-memory技能
- 将功能完成情况记录到
-
向用户汇报:
- 总结已构建的内容
- 列出创建/修改的文件
- 列出提交 SHA
- 提供后续步骤(如有)
明确的完成定义
- 所有文件均已提交到 git
- 已更新记忆
- 已更新日志
- 已向用户汇报
特定模式的行为
Vibecoding:提交前先向用户确认提交消息。 Justvibes:使用生成的消息自动提交。
特定模式的行为
Vibecoding 模式
Vibecoding 模式采用协作方式。编排器:
- 在第 1 阶段(理解)后确认再继续
- 在第 2、3、4、5 阶段后设置检查点(创建 git 提交)
- 在第 7 阶段最终提交前确认提交消息
- 出现不确定情况时暂停,等待批准
启动 Agent 后,运行时引擎会自动驱动 WRFC 链。无论处于哪种模式,编排器都会机械地执行指令。
检查点提交消息:
checkpoint: foundation - schema and typescheckpoint: core implementationcheckpoint: integrationcheckpoint: quality checks
Justvibes 模式
Justvibes 模式采用自主运行方式。编排器:
- 无需用户输入即可自动推进所有阶段
- 仅在需求含糊或需要做出关键决策时暂停
- 在第 7 阶段自动提交(生成提交消息)
在两种模式下,运行时引擎都会以相同方式管理所有 WRFC 循环。
Agent 编排模式
顺序阶段
第 2、4、7 阶段必须按顺序执行:
- 第 2 阶段(基础):必须在第 3 阶段之前完成,因为 API/UI 代码依赖类型
- 第 4 阶段(集成):必须在第 3 阶段之后执行,因为它会连接 API 和 UI
- 第 7 阶段(提交+日志):必须是最后阶段;所有链收到
complete指令后才会触发
并行阶段
第 3、5 阶段会并行启动多个 Agent:
- 第 3 阶段(核心):API Agent、UI Agent、状态 Agent 并行运行
- 第 5 阶段(质量):测试 Agent、安全 Agent、无障碍 Agent 并行运行
并行阶段中的所有 Agent 都必须收到 complete 指令,才能进入下一阶段。
Agent 通信
Agent 不应直接通信,而应:
- Agent 将结果写入文件系统
- 编排器读取 Agent 的输出
- 编排器将相关信息传递给后续 Agent
与其他协议的集成
Gather-Plan-Apply(GPA)
所有工作 Agent 都必须遵循 GPA 循环:
- 发现:使用
discover工具并行运行 grep、glob 和符号查询 - 规划:确定要创建/修改的文件、操作顺序和可批处理的机会
- 批处理:将操作分组为批量
precision_engine调用 - 循环:假设发生变化时,返回发现阶段
详情请参阅 gather-plan-apply 技能。
Review-Scoring(WRFC)
运行时引擎在启动审查者时会在内部使用 review-scoring 评分标准。编排器不会直接为代码评分。审查阈值在 goodvibes.json 中配置(score_threshold、max_fix_attempts)。
关于审查者 Agent 的职责,请参阅 review-scoring 技能。
Goodvibes 记忆
使用 goodvibes-memory 技能来:
- 在第 1 阶段读取
.goodvibes/memory/{decisions,patterns,failures}.json - 在第 7 阶段写入
.goodvibes/logs/tasks.jsonl - 在第 7 阶段使用新模式/决策更新记忆文件
常见陷阱
过早开始实施
第 1 阶段完成前,不要启动工作 Agent。先明确需求。
并行执行顺序阶段
不要并行执行第 2 阶段和第 3 阶段。第 3 阶段依赖第 2 阶段的类型。
跳过质量阶段
不要跳过第 5 阶段。测试不是可选项。安全性也不是可选项。
手动安排审查者
不要在第 6 阶段手动添加审查者任务。每个工作 Agent 完成时,运行时引擎会自动发出启动审查者的指令。手动安排会绕过运行时的阈值强制机制。
延迟执行指令
不要延迟、重排或跳过 <gv> 指令。收到后立即将其作为首要操作执行。
所有链条完成前提交
在第 7 阶段,所有 WRFC 链都收到 complete 指令之前,不要提交。部分完成不算完成。
忘记更新记忆
不要跳过第 7 阶段的记忆更新。后续 Agent 会依赖这些上下文。
验证
使用 scripts/validate-feature-workflow.sh 验证你的编排是否遵循此工作流。详细模板和示例请参阅 references/phase-templates.md。