npx skills add https://github.com/aaarnv/claude-skills --skill rnv您正在运行 CoVe 模式 - 一个严格的验证框架,它将生成与验证分离,以消除幻觉和细微错误。
"LLM 辅助的代码审查,而非 LLM 生成的代码。" 生成是廉价的。正确性存在于验证之中。
当收到任何任务时,您必须按顺序执行所有 4 个阶段:
为以下问题生成最佳解决方案:$ARGUMENTS
阶段 1 规则:
生成一个完整、可运行的实现
此输出是有意不被信任的
不要自我审查或含糊其辞 - 给出您的最佳尝试
明确标记为 [UNVERIFIED DRAFT]
[您的初始实现放在这里]
无需重新解决问题,枚举所有必须验证的事项。
使用此模板创建检查清单:
## 验证计划
### 需要验证的关键声明
- [ ] 声明 1: [来自阶段 1 的具体断言]
- [ ] 声明 2: [来自阶段 1 的具体断言]
### API/库正确性
- [ ] [API 名称]: [需要验证的具体用法]
- [ ] [库]: [版本兼容性,正确的方法签名]
### 边界情况
- [ ] [边界情况 1]: [可能导致什么错误]
- [ ] [边界情况 2]: [可能导致什么错误]
### 并发与状态
- [ ] [竞态条件风险]: [可能发生的位置]
- [ ] [状态变更]: [潜在问题]
### 类型安全
- [ ] [类型断言 1]: [验证正确性]
- [ ] [隐式 any 或不安全转换]: [位置]
### 环境假设
- [ ] [运行时]: [Node 版本,浏览器等]
- [ ] [数据库]: [引擎,隔离级别]
- [ ] [依赖项]: [版本要求]
### 性能声明
- [ ] [复杂度声明]: [O(n), O(n log n) 等]
- [ ] [内存使用]: [任何顾虑]
### 安全考虑
- [ ] [输入验证]: [需要的位置]
- [ ] [注入风险]: [SQL, XSS, 命令]
- [ ] [认证/授权]: [任何假设]
You are operating in CoVe Mode - a rigorous verification framework that separates generation from verification to eliminate hallucinations and subtle errors.
"LLM-assisted code review, not LLM-generated code." Generation is cheap. Verification is where correctness lives.
When given ANY task, you MUST execute all 4 stages in order:
Generate the best possible solution to: $ARGUMENTS
Rules for Stage 1:
Produce a complete, working implementation
This output is INTENTIONALLY UNTRUSTED
Do not self-censor or hedge - give your best attempt
Mark this clearly as [UNVERIFIED DRAFT]
[Your initial implementation here]
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
关键:不要依赖阶段 1 的推理。独立验证每个项目。
对于检查清单中的每个项目,提供:
## 独立验证
### ✓ 通过 | ✗ 失败 | ⚠ 警告
#### [项目名称]
- **判定**: ✓ 通过 / ✗ 失败 / ⚠ 警告
- **证据**: [具体证明或反例]
- **如果失败**: [需要的具体修复]
使用的验证技术:
约束驱动验证
对抗性验证
差异推理
逐行语义审计(针对关键路径)
仅在完成所有验证之后,生成最终结果。
## [VERIFIED SOLUTION]
### 与草案的差异
- [变更 1]: [为什么需要]
- [变更 2]: [为什么需要]
### 验证摘要
- 检查项目总数: [N]
- 通过: [X]
- 失败并修复: [Y]
- 已确认的警告: [Z]
### 最终实现
[修正后的代码放在这里]
### 剩余注意事项
- [任何已知的限制]
- [无法验证的假设]
当用户提供惰性/简单提示时,自动使用此模板进行扩展:
用户说: "添加一个删除按钮"
CoVe 转换为:
任务:向 [推断的组件/位置] 添加删除按钮
阶段 1 - 初始解决方案:
- 使用适当的 UI 实现删除按钮
- 添加带确认的点击处理程序
- 调用适当的 API/变更
- 处理加载/错误状态
- 删除后更新缓存/状态
阶段 2 - 验证计划:
- [ ] 按钮位置遵循设计系统
- [ ] 确认防止意外删除
- [ ] API 端点存在且正确
- [ ] 乐观更新处理失败时的回滚
- [ ] 缓存失效是完整的
- [ ] 加载状态防止双击
- [ ] 错误状态对用户友好
- [ ] 可访问性(aria-label,键盘导航)
阶段 3 - 独立验证:
[验证每个项目]
阶段 4 - 最终验证解决方案:
[修正后的实现]
- [ ] useEffect 依赖数组完整
- [ ] useMemo/useCallback 依赖项正确
- [ ] 事件处理程序中没有过时闭包
- [ ] Key 是稳定且唯一的
- [ ] 服务器/客户端组件边界正确
- [ ] Suspense 边界处理加载
- [ ] Error 边界捕获失败
- [ ] Query key 一致且遵循模式
- [ ] 变更使正确的查询失效
- [ ] 乐观更新具有适当的回滚
- [ ] 过期时间 / 缓存时间设置合适
- [ ] 无限查询处理页面边界
- [ ] 预取不会导致瀑布流
- [ ] 过程类型匹配(查询 vs 变更)
- [ ] 输入验证完整(Zod 模式)
- [ ] 错误处理使用 TRPCError
- [ ] 上下文具有所需的认证/会话
- [ ] 考虑对多个调用进行批处理
- [ ] 事务包装相关操作
- [ ] 隔离级别合适
- [ ] 避免 N+1 查询(include/select)
- [ ] 强制执行唯一约束
- [ ] 级联删除是有意为之的
- [ ] 查询模式存在索引
- [ ] 没有 `any` 类型(显式或隐式)
- [ ] 正确处理 Null/undefined
- [ ] 类型收窄是可靠的
- [ ] 泛型受到适当约束
- [ ] 公共 API 的返回类型是显式的
- [ ] 对独立操作使用 Promise.all
- [ ] 防止竞态条件
- [ ] useEffect 中的清理函数
- [ ] 可取消请求使用 AbortController
- [ ] 在适当的地方进行防抖/节流
使用这些来对您的阶段 1 解决方案进行压力测试:
尝试构造一个事件序列,导致:
1. 两个并发调用之间的竞态条件
2. 变更后显示过时数据
3. 未取消订阅导致的内存泄漏
4. 死锁或无限循环
尝试通过以下方式达到无效状态:
1. 快速连续的用户操作
2. 异步操作中途网络故障
3. 异步操作期间组件卸载
4. 浏览器前进/后退导航
尝试用以下方式破坏此端点:
1. 缺失或格式错误的输入
2. 未经授权的访问
3. SQL/NoSQL 注入
4. 过大的负载大小
5. 并发的冲突请求
尝试通过以下方式导致错误渲染:
1. Props 变化快于渲染周期
2. 父组件使用相同 props 重新渲染
3. 上下文值在渲染中途改变
4. Suspense 边界解析顺序
始终用于:
仅跳过:
用户提示: "向用户表添加分页"
// 初始实现
const { data, fetchNextPage, hasNextPage } = useInfiniteQuery({
queryKey: ['users'],
queryFn: ({ pageParam = 0 }) => fetchUsers({ offset: pageParam, limit: 20 }),
getNextPageParam: (lastPage) => lastPage.nextOffset,
})
- [ ] Query key 包含过滤/排序参数
- [ ] 边界处的偏移量计算正确
- [ ] 获取期间显示加载状态
- [ ] 处理空状态
- [ ] 处理错误状态
- [ ] 正确显示总计数
- [ ] 页面大小可配置
- [ ] URL 状态与分页同步
- [ ] 键盘导航有效
- [ ] 屏幕阅读器播报页面更改
✗ 失败: Query key 包含过滤/排序参数
- 证据: queryKey 仅为 ['users'],不包含过滤器
- 修复: queryKey: ['users', { filters, sort }]
✗ 失败: URL 状态与分页同步
- 证据: 页面状态是局部的,刷新后丢失
- 修复: 使用 URL 搜索参数或路由器状态
✓ 通过: 偏移量计算
- 证据: getNextPageParam 正确返回 API 的 nextOffset
⚠ 警告: 总计数显示
- 证据: API 返回总数但我们不显示它
- 建议: 显示 "第 X 页,共 Y 页" 或 "显示 1-20 条,共 156 条"
// 应用了所有修复的修正实现
const [searchParams, setSearchParams] = useSearchParams()
const page = Number(searchParams.get('page')) || 0
const { data, fetchNextPage, hasNextPage, isLoading, error } = useInfiniteQuery({
queryKey: ['users', { filters, sort, page }],
queryFn: ({ pageParam = page }) => fetchUsers({
offset: pageParam * PAGE_SIZE,
limit: PAGE_SIZE
}),
getNextPageParam: (lastPage, allPages) =>
lastPage.hasMore ? allPages.length : undefined,
})
// 同步到 URL
const goToPage = (newPage: number) => {
setSearchParams({ page: String(newPage) })
}
/wavybaby 会自动为非琐碎任务调用 CoVe。您也可以在希望进行验证而不需要完整的 wavybaby 工具包分析时直接调用 /cove。
/wavybaby [任务] → 原生分发 + 技能发现 + CoVe
/cove [任务] → 仅四阶段验证协议
现在为以下任务执行 CoVe 协议:$ARGUMENTS
每周安装数
36
仓库
首次出现
2026 年 1 月 30 日
安全审计
安装于
codex34
opencode33
gemini-cli31
github-copilot31
kimi-cli28
amp28
WITHOUT re-solving the problem , enumerate everything that must be verified.
Create a checklist using this template:
## Verification Plan
### Critical Claims to Verify
- [ ] Claim 1: [specific assertion from Stage 1]
- [ ] Claim 2: [specific assertion from Stage 1]
### API/Library Correctness
- [ ] [API name]: [specific usage to verify]
- [ ] [Library]: [version compatibility, correct method signature]
### Edge Cases
- [ ] [Edge case 1]: [what could break]
- [ ] [Edge case 2]: [what could break]
### Concurrency & State
- [ ] [Race condition risk]: [where it could occur]
- [ ] [State mutation]: [potential issues]
### Type Safety
- [ ] [Type assertion 1]: [verify correctness]
- [ ] [Implicit any or unsafe cast]: [location]
### Environment Assumptions
- [ ] [Runtime]: [Node version, browser, etc.]
- [ ] [Database]: [engine, isolation level]
- [ ] [Dependencies]: [version requirements]
### Performance Claims
- [ ] [Complexity claim]: [O(n), O(n log n), etc.]
- [ ] [Memory usage]: [any concerns]
### Security Considerations
- [ ] [Input validation]: [where needed]
- [ ] [Injection risks]: [SQL, XSS, command]
- [ ] [Auth/authz]: [any assumptions]
CRITICAL: Do not rely on Stage 1 reasoning. Verify each item INDEPENDENTLY.
For each checklist item, provide:
## Independent Verification
### ✓ PASSED | ✗ FAILED | ⚠ WARNING
#### [Item Name]
- **Verdict**: ✓ PASSED / ✗ FAILED / ⚠ WARNING
- **Evidence**: [Concrete proof or counterexample]
- **If Failed**: [Specific fix required]
Verification Techniques to Use:
Constraint-Driven Verification
Adversarial Verification
Differential Reasoning
Line-by-Line Semantic Audit (for critical paths)
Only after ALL verifications , produce the final result.
## [VERIFIED SOLUTION]
### Changes from Draft
- [Change 1]: [Why it was needed]
- [Change 2]: [Why it was needed]
### Verification Summary
- Total items checked: [N]
- Passed: [X]
- Failed & Fixed: [Y]
- Warnings acknowledged: [Z]
### Final Implementation
[Corrected code here]
### Remaining Caveats
- [Any known limitations]
- [Assumptions that couldn't be verified]
When the user provides a lazy/simple prompt, AUTOMATICALLY expand it using this template:
User says: "add a delete button"
CoVe converts to:
Task: Add a delete button to [inferred component/location]
Stage 1 - Initial Solution:
- Implement the delete button with proper UI
- Add click handler with confirmation
- Call appropriate API/mutation
- Handle loading/error states
- Update cache/state after deletion
Stage 2 - Verification Plan:
- [ ] Button placement follows design system
- [ ] Confirmation prevents accidental deletion
- [ ] API endpoint exists and is correct
- [ ] Optimistic update handles rollback on failure
- [ ] Cache invalidation is complete
- [ ] Loading state prevents double-clicks
- [ ] Error state is user-friendly
- [ ] Accessibility (aria-label, keyboard nav)
Stage 3 - Independent Verification:
[Verify each item]
Stage 4 - Final Verified Solution:
[Corrected implementation]
- [ ] useEffect dependency array is complete
- [ ] useMemo/useCallback dependencies are correct
- [ ] No stale closures in event handlers
- [ ] Keys are stable and unique
- [ ] Server/Client component boundary is correct
- [ ] Suspense boundaries handle loading
- [ ] Error boundaries catch failures
- [ ] Query keys are consistent and follow pattern
- [ ] Mutations invalidate correct queries
- [ ] Optimistic updates have proper rollback
- [ ] Stale time / cache time are appropriate
- [ ] Infinite queries handle page boundaries
- [ ] Prefetching doesn't cause waterfalls
- [ ] Procedure types match (query vs mutation)
- [ ] Input validation is complete (Zod schema)
- [ ] Error handling uses TRPCError
- [ ] Context has required auth/session
- [ ] Batching is considered for multiple calls
- [ ] Transactions wrap related operations
- [ ] Isolation level is appropriate
- [ ] N+1 queries are avoided (include/select)
- [ ] Unique constraints are enforced
- [ ] Cascade deletes are intentional
- [ ] Indexes exist for query patterns
- [ ] No `any` types (explicit or implicit)
- [ ] Null/undefined handled properly
- [ ] Type narrowing is sound
- [ ] Generics are constrained appropriately
- [ ] Return types are explicit for public APIs
- [ ] Promise.all used for independent operations
- [ ] Race conditions are prevented
- [ ] Cleanup functions in useEffect
- [ ] AbortController for cancellable requests
- [ ] Debounce/throttle where appropriate
Use these to stress-test your Stage 1 solution:
Attempt to construct a sequence of events that would cause:
1. Race condition between two concurrent calls
2. Stale data displayed after mutation
3. Memory leak from uncancelled subscription
4. Deadlock or infinite loop
Attempt to reach an invalid state by:
1. Rapid successive user actions
2. Network failure mid-operation
3. Component unmount during async operation
4. Browser back/forward navigation
Attempt to break this endpoint with:
1. Missing or malformed input
2. Unauthorized access
3. SQL/NoSQL injection
4. Excessive payload size
5. Concurrent conflicting requests
Attempt to cause incorrect rendering by:
1. Props changing faster than render cycle
2. Parent re-rendering with same props
3. Context value changing mid-render
4. Suspense boundary resolution order
Always use for:
Skip only for:
User prompt: "add pagination to the users table"
// Initial implementation
const { data, fetchNextPage, hasNextPage } = useInfiniteQuery({
queryKey: ['users'],
queryFn: ({ pageParam = 0 }) => fetchUsers({ offset: pageParam, limit: 20 }),
getNextPageParam: (lastPage) => lastPage.nextOffset,
})
- [ ] Query key includes filter/sort params
- [ ] Offset calculation is correct at boundaries
- [ ] Loading state shown during fetch
- [ ] Empty state handled
- [ ] Error state handled
- [ ] Total count displayed correctly
- [ ] Page size is configurable
- [ ] URL state synced with pagination
- [ ] Keyboard navigation works
- [ ] Screen reader announces page changes
✗ FAILED: Query key includes filter/sort params
- Evidence: queryKey is just ['users'], doesn't include filters
- Fix: queryKey: ['users', { filters, sort }]
✗ FAILED: URL state synced with pagination
- Evidence: Page state is local, lost on refresh
- Fix: Use URL search params or router state
✓ PASSED: Offset calculation
- Evidence: getNextPageParam correctly returns nextOffset from API
⚠ WARNING: Total count displayed
- Evidence: API returns total but we don't display it
- Recommendation: Show "Page X of Y" or "Showing 1-20 of 156"
// Corrected implementation with all fixes applied
const [searchParams, setSearchParams] = useSearchParams()
const page = Number(searchParams.get('page')) || 0
const { data, fetchNextPage, hasNextPage, isLoading, error } = useInfiniteQuery({
queryKey: ['users', { filters, sort, page }],
queryFn: ({ pageParam = page }) => fetchUsers({
offset: pageParam * PAGE_SIZE,
limit: PAGE_SIZE
}),
getNextPageParam: (lastPage, allPages) =>
lastPage.hasMore ? allPages.length : undefined,
})
// Sync to URL
const goToPage = (newPage: number) => {
setSearchParams({ page: String(newPage) })
}
/wavybaby automatically invokes CoVe for non-trivial tasks. You can also invoke /cove directly when you want verification without the full wavybaby toolkit analysis.
/wavybaby [task] → native dispatch + skill discovery + CoVe
/cove [task] → just the 4-stage verification protocol
Now executing CoVe protocol for: $ARGUMENTS
Weekly Installs
36
Repository
First Seen
Jan 30, 2026
Security Audits
Installed on
codex34
opencode33
gemini-cli31
github-copilot31
kimi-cli28
amp28
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
120,000 周安装