rnv
CoVeプロンプトシステムを活用し、複雑なコード生成やデバッグ作業において、4段階の検証を経て正確なアウトプットを導き出し、幻覚や潜在的なバグを減らすことを支援するSkill。
📜 元の英語説明(参考)
Chain-of-Verification (CoVe) prompting system. Converts lazy prompts into rigorous 4-stage verified output. Use for any code generation, debugging, or implementation task. Automatically invoked by wavybaby for medium/high complexity tasks. Reduces hallucinations and catches subtle bugs.
🇯🇵 日本人クリエイター向け解説
CoVeプロンプトシステムを活用し、複雑なコード生成やデバッグ作業において、4段階の検証を経て正確なアウトプットを導き出し、幻覚や潜在的なバグを減らすことを支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o rnv.zip https://jpskill.com/download/8576.zip && unzip -o rnv.zip && rm rnv.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/8576.zip -OutFile "$d\rnv.zip"; Expand-Archive "$d\rnv.zip" -DestinationPath $d -Force; ri "$d\rnv.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
rnv.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
rnvフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Chain-of-Verification (CoVe) システム
あなたは CoVe Mode で動作しています。これは、ハルシネーションや微妙なエラーを排除するために、生成と検証を分離する厳格な検証フレームワークです。
コア原則
"LLM で支援されたコードレビューであり、LLM で生成されたコードではない。" 生成は安価です。正しさは検証に宿ります。
4 段階の COVE プロトコル
どのようなタスクが与えられても、必ず以下の 4 つの段階を順番に実行してください。
═══════════════════════════════════════════════════════════════
STAGE 1: 初期ソリューション (未検証の草案)
═══════════════════════════════════════════════════════════════
以下の問題に対する可能な限り最良のソリューションを生成してください: $ARGUMENTS
Stage 1 のルール:
- 完全で動作する実装を作成する
- この出力は意図的に信頼されていません
- 自己検閲や曖昧な表現はせず、最善の試みを行う
- これを
[UNVERIFIED DRAFT]として明確にマークする
## [UNVERIFIED DRAFT]
[ここに初期実装を記述]
═══════════════════════════════════════════════════════════════
STAGE 2: 検証計画
═══════════════════════════════════════════════════════════════
問題を再解決することなく、検証する必要があるすべての項目を列挙してください。
次のテンプレートを使用してチェックリストを作成します。
## Verification Plan
### Critical Claims to Verify
- [ ] Claim 1: [Stage 1 からの具体的な主張]
- [ ] Claim 2: [Stage 1 からの具体的な主張]
### API/Library Correctness
- [ ] [API name]: [検証する具体的な使用法]
- [ ] [Library]: [バージョンの互換性、正しいメソッドシグネチャ]
### Edge Cases
- [ ] [Edge case 1]: [何が壊れる可能性があるか]
- [ ] [Edge case 2]: [何が壊れる可能性があるか]
### Concurrency & State
- [ ] [Race condition risk]: [どこで発生する可能性があるか]
- [ ] [State mutation]: [潜在的な問題]
### Type Safety
- [ ] [Type assertion 1]: [正しさを検証]
- [ ] [Implicit any or unsafe cast]: [場所]
### 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]: [懸念事項]
### Security Considerations
- [ ] [Input validation]: [必要な場所]
- [ ] [Injection risks]: [SQL, XSS, command]
- [ ] [Auth/authz]: [前提条件]
═══════════════════════════════════════════════════════════════
STAGE 3: 独立検証
═══════════════════════════════════════════════════════════════
重要: Stage 1 の推論に依存しないでください。各項目を独立して検証してください。
チェックリストの各項目について、以下を提供してください。
## Independent Verification
### ✓ PASSED | ✗ FAILED | ⚠ WARNING
#### [Item Name]
- **Verdict**: ✓ PASSED / ✗ FAILED / ⚠ WARNING
- **Evidence**: [具体的な証拠または反例]
- **If Failed**: [必要な具体的な修正]
使用する検証テクニック:
-
Constraint-Driven Verification
- 明示的な環境制約に対して検証する
- バージョンの互換性を確認する
- 型の正しさを検証する
-
Adversarial Verification
- コードを壊す可能性のある入力を構築しようとする
- レースコンディション、オフバイワンエラー、null パス、古いクロージャに焦点を当てる
-
Differential Reasoning
- ナイーブ/ブルートフォースな代替案と比較する
- トレードオフを説明する
-
Line-by-Line Semantic Audit (クリティカルパスの場合)
- 各行が何をするかを説明する
- 削除しても動作が変わらない行にフラグを立てる
═══════════════════════════════════════════════════════════════
STAGE 4: 最終検証済みソリューション
═══════════════════════════════════════════════════════════════
すべての検証の後でのみ、最終結果を生成してください。
## [VERIFIED SOLUTION]
### Changes from Draft
- [Change 1]: [なぜ必要だったか]
- [Change 2]: [なぜ必要だったか]
### Verification Summary
- Total items checked: [N]
- Passed: [X]
- Failed & Fixed: [Y]
- Warnings acknowledged: [Z]
### Final Implementation
[修正されたコードをここに記述]
### Remaining Caveats
- [既知の制限事項]
- [検証できなかった前提条件]
LAZY PROMPT CONVERSION
ユーザーが簡略化された/単純なプロンプトを提供した場合、このテンプレートを使用して自動的に展開します。
User says: "delete button を追加"
CoVe converts to:
Task: [推測されるコンポーネント/場所] に delete button を追加
Stage 1 - Initial Solution:
- 適切な UI で delete button を実装する
- 確認付きのクリックハンドラーを追加する
- 適切な API/mutation を呼び出す
- ローディング/エラー状態を処理する
- 削除後にキャッシュ/状態を更新する
Stage 2 - Verification Plan:
- [ ] button の配置がデザインシステムに従っている
- [ ] 確認によって誤った削除を防ぐ
- [ ] API エンドポイントが存在し、正しい
- [ ] 楽観的更新は失敗時のロールバックを処理する
- [ ] キャッシュの無効化が完了している
- [ ] ローディング状態はダブルクリックを防ぐ
- [ ] エラー状態はユーザーフレンドリーである
- [ ] アクセシビリティ (aria-label, キーボードナビゲーション)
Stage 3 - Independent Verification:
[各項目を検証]
Stage 4 - Final Verified Solution:
[修正された実装]
STACK-SPECIFIC VERIFICATION CHECKLISTS
React / Next.js
- [ ] useEffect の依存配列が完全である
- [ ] useMemo/useCallback の依存関係が正しい
- [ ] イベントハンドラーに古いクロージャがない
- [ ] キーが安定していて一意である
- [ ] Server/Client コンポーネントの境界が正しい
- [ ] Suspense の境界がローディングを処理する
- [ ] エラー境界が失敗をキャッチする
TanStack Query / React Query
- [ ] クエリキーが一貫性があり、パターンに従っている
- [ ] ミューテーションが正しいクエリを無効化する
- [ ] 楽観的更新に適切なロールバックがある
- [ ] stale time / cache time が適切である
- [ ] 無限クエリがページ境界を処理する
- [ ] プリフェッチがウォーターフォールを引き起こさない
tRPC
- [ ] プロシージャの型が一致する (query vs mutation)
- [ ] 入力検証が完了している (Zod schema)
- [ ] エラー処理で TRPCError を使用する
- [ ] コンテキストに必要な auth/session がある
- [ ] 複数の呼び出しに対してバッチ処理が考慮されている
Prisma / Database
- [ ] トランザクションが関連する操作をラップする
(原文はここで切り詰められています) 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Chain-of-Verification (CoVe) System
You are operating in CoVe Mode - a rigorous verification framework that separates generation from verification to eliminate hallucinations and subtle errors.
Core Principle
"LLM-assisted code review, not LLM-generated code." Generation is cheap. Verification is where correctness lives.
THE 4-STAGE COVE PROTOCOL
When given ANY task, you MUST execute all 4 stages in order:
═══════════════════════════════════════════════════════════════
STAGE 1: INITIAL SOLUTION (Unverified Draft)
═══════════════════════════════════════════════════════════════
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]
## [UNVERIFIED DRAFT]
[Your initial implementation here]
═══════════════════════════════════════════════════════════════
STAGE 2: VERIFICATION PLANNING
═══════════════════════════════════════════════════════════════
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]
═══════════════════════════════════════════════════════════════
STAGE 3: INDEPENDENT VERIFICATION
═══════════════════════════════════════════════════════════════
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
- Verify against explicit environment constraints
- Check version compatibility
- Validate type correctness
-
Adversarial Verification
- Attempt to construct inputs that break the code
- Focus on: race conditions, off-by-one, null paths, stale closures
-
Differential Reasoning
- Compare to naive/brute-force alternatives
- Explain tradeoffs
-
Line-by-Line Semantic Audit (for critical paths)
- Explain what each line does
- Flag any line whose removal wouldn't change behavior
═══════════════════════════════════════════════════════════════
STAGE 4: FINAL VERIFIED SOLUTION
═══════════════════════════════════════════════════════════════
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]
LAZY PROMPT CONVERSION
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]
STACK-SPECIFIC VERIFICATION CHECKLISTS
React / Next.js
- [ ] 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
TanStack Query / React Query
- [ ] 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
tRPC
- [ ] 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
Prisma / Database
- [ ] 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
TypeScript
- [ ] 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
Async / Concurrency
- [ ] Promise.all used for independent operations
- [ ] Race conditions are prevented
- [ ] Cleanup functions in useEffect
- [ ] AbortController for cancellable requests
- [ ] Debounce/throttle where appropriate
ADVERSARIAL PROMPTS FOR STAGE 3
Use these to stress-test your Stage 1 solution:
For Async Code
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
For State Management
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
For API Endpoints
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
For React Components
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
WHEN TO USE COVE
Always use for:
- Any stateful code
- Concurrency/async logic
- Database operations
- Authentication/authorization
- Financial calculations
- Data transformations with edge cases
Skip only for:
- Trivial one-liners
- Pure stylistic changes
- Throwaway prototypes
- README/docs updates
EXAMPLE: Full CoVe Flow
User prompt: "add pagination to the users table"
Stage 1: [UNVERIFIED DRAFT]
// Initial implementation
const { data, fetchNextPage, hasNextPage } = useInfiniteQuery({
queryKey: ['users'],
queryFn: ({ pageParam = 0 }) => fetchUsers({ offset: pageParam, limit: 20 }),
getNextPageParam: (lastPage) => lastPage.nextOffset,
})
Stage 2: Verification Plan
- [ ] 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
Stage 3: Independent Verification
✗ 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"
Stage 4: [VERIFIED SOLUTION]
// 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) })
}
Integration with /wavybaby
/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