verify-solution

Verifies competitive programming problem solvability and produces reference solutions with correctness proofs.

1|Updated Jul 17, 2026
One-click install
npx skills add https://github.com/vaskoyudha/agent-skills-problem-gen --skill verify-solution-vaskoyudha
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: verify-solution
Source: https://github.com/vaskoyudha/agent-skills-problem-gen/tree/main/.qwen/skills/verify-solution
Command: npx skills add https://github.com/vaskoyudha/agent-skills-problem-gen --skill verify-solution-vaskoyudha

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Broken or ambiguous competitive programming problems waste downstream effort on test generation, reviews, and editorials. This Skill acts as a quality gate that solves a problem draft first, proving solvability before any further pipeline work proceeds. ## Core Features & Use Cases - Solvability Gate: Outputs a structured solution.json with a success verdict or a SOLVABILITY_FAILURE with a specific, actionable failure reason that routes the draft back for revision. - Verified Reference Solution: Produces language-agnostic pseudocode, step-by-step time and space complexity derivations, and a formal correctness proof using one of five techniques (loop invariant, exchange argument, induction, monotonicity, greedy stays ahead). - Adversarial Support Artifacts: Generates a brute-force solution for cross-verification and a list of common wrong approaches with concrete counterexamples for test design. - Use Case: Given a problem_draft.json describing a binary-search-on-answer task with N up to 10^5, verify the constraints match the required O(N log N) complexity, prove correctness via monotonicity, and flag any sample-statement contradictions before tests are written. ## Quick Start Verify the solvability of the problem in problem_draft.json and produce a reference solution with a correctness proof and complexity analysis.

Frequently Asked Questions about verify-solution

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I verify a competitive programming problem is solvable?▼

Solve the problem yourself by writing language-agnostic pseudocode, deriving time and space complexity against the constraints, and proving correctness with a formal technique. If you cannot produce correct pseudocode, declare the problem unsolvable with a specific failure reason.

How to write a correctness proof for a programming problem solution?▼

Choose one of five techniques based on the solution type: loop invariant for iterative code, exchange argument for greedy optimality, induction for recursive or DP solutions, monotonicity for binary search on answer, and greedy stays ahead for greedy comparisons. Reference your pseudocode's variables and steps explicitly.

What makes a programming problem statement broken or unsolvable?▼

A problem is broken when constraints are contradictory, required conditions are impossible, the statement has unresolvable ambiguity, samples contradict the statement, or impossible cases lack an output specification. Each issue should be reported with the flawed section and a suggested fix.

How do I check if solution complexity fits problem constraints?▼

Derive the complexity step by step from the pseudocode, then compare operation counts against the limits. For example, N up to 10^5 with a 2-second limit allows roughly 3x10^7 operations, requiring O(N log N) or better.

Why generate a brute-force solution alongside the optimal one?▼

A brute-force solution that is obviously correct but too slow provides independent cross-verification of the reference solution's outputs. It must use a genuinely different approach so disagreements reveal real bugs rather than shared mistakes.