Skip to content
Back to skills

Opv Process Verifier

ASecurity

Verify long reasoning chains by combining outcome and process verification through active learning. OPV achieves 83.1 F1 on verification—crucial when both final answers and reasoning paths must be validated with minimal annotation.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
testingpython

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add ADu2021/skillXiv --skill opv-process-verifier --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Opv Process Verifier?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Opv Process Verifier
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/adu2021-opv-process-verifier/badge)](https://www.skillsdirectory.com/skills/adu2021-opv-process-verifier)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: opv-process-verifier
title: "OPV: Outcome-based Process Verifier for Efficient Long Chain-of-Thought Verification"
version: 0.0.2
engine: skillxiv-v0.0.2-claude-opus-4.6
license: MIT
url: https://arxiv.org/abs/2512.10756
keywords: [verification, chain-of-thought, process rewards, reinforcement learning, reasoning validation]
description: "Verify long reasoning chains by combining outcome and process verification through active learning. OPV achieves 83.1 F1 on verification—crucial when both final answers and reasoning paths must be validated with minimal annotation."
---

## Overview

OPV bridges outcome and process verification by summarizing long CoT chains before process verification. Iterative active learning progressively improves verification capability while minimizing annotation costs through targeted uncertainty sampling.

## When to Use

- Verifying long chain-of-thought reasoning
- Limited annotation budget
- Need to check both answers and reasoning quality
- Mathematical and logical problem solving
- Iterative improvement of verification models

## When NOT to Use

- Single-statement verification
- Abundant annotation resources
- Short reasoning chains

## Core Technique

Outcome + process hybrid verification with active learning:

```python
# OPV: Outcome-Process Verification
class OutcomeProcessVerifier:
    def __init__(self):
        self.outcome_model = OutcomeVerifier()
        self.process_model = ProcessVerifier()
        self.active_learner = ActiveLearner()

    def verify_long_cot(self, problem, cot_chain):
        """Hybrid verification for long reasoning."""
        # Stage 1: Outcome verification (fast)
        outcome_valid = self.outcome_model.verify(problem, cot_chain[-1])

        # Stage 2: Summarize long CoT
        summary = self.summarize_cot(cot_chain)

        # Stage 3: Process verification on summary
        process_valid = self.process_model.verify(
            problem,
            summary
        )

        # Combined verdict
        is_valid = outcome_valid and process_valid

        return is_valid

    def summarize_cot(self, cot_chain):
        """Compress long reasoning for process verification."""
        # Extract key reasoning steps
        important_steps = []

        for step in cot_chain:
            if self.is_important_step(step):
                important_steps.append(step)

        # Create summary maintaining logical flow
        summary = self.create_logical_summary(important_steps)

        return summary

    def iterative_active_learning(self, unlabeled_cots, expert_budget=100):
        """Progressively improve verification with targeted labels."""
        labeled_data = []

        for iteration in range(10):
            # Current model predicts on unlabeled
            predictions = self.predict_on_batch(unlabeled_cots)

            # Find uncertain cases
            uncertain_indices = self.active_learner.select_uncertain(
                predictions,
                budget=expert_budget
            )

            # Get expert annotations for uncertain cases
            expert_labels = self.get_expert_labels(
                [unlabeled_cots[i] for i in uncertain_indices]
            )

            # Add to labeled set
            for idx, label in zip(uncertain_indices, expert_labels):
                labeled_data.append((unlabeled_cots[idx], label))

            # Retrain models
            self.retrain_on_labeled_data(labeled_data)

            # Remove from unlabeled
            unlabeled_cots = [
                cot for i, cot in enumerate(unlabeled_cots)
                if i not in uncertain_indices
            ]

        return labeled_data

    def train_with_verifiable_rewards(self, model, problems):
        """RLVR: RL with verifiable rewards."""
        for problem in problems:
            # Generate reasoning with model
            reasoning = model.generate_cot(problem)

            # Verify reasoning
            is_valid = self.verify_long_cot(problem, reasoning)

            # Reward: verification success
            reward = 1.0 if is_valid else 0.0

            # RL update
            model.update_with_reward(reasoning, reward)
```

## Key Results

- 83.1 F1 on verification benchmark
- Improves downstream reasoning (55.2% → 73.3% on AIME)
- Efficient active learning reduces annotation needs

## References

- Original paper: https://arxiv.org/abs/2512.10756
- Focus: Verification of long reasoning chains
- Domain: Chain-of-thought evaluation, reinforcement learning

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.