gnatprove

Guide GNATprove invocations to resolve unproved checks in Ada/SPARK units.

21|1|Updated Apr 1, 2026
One-click install
npx skills add https://github.com/AdaCore/skills --skill gnatprove
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gnatprove
Source: https://github.com/AdaCore/skills/tree/main/gnatprove
Command: npx skills add https://github.com/AdaCore/skills --skill gnatprove

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

The GNATprove skill keeps agents from spinning aimless proof runs by giving them a structured campaign and investigative instructions needed to prove Ada/SPARK units without manual environment assumptions.

Core Features & Use Cases

  • Environment discovery: Detects whether to invoke alr gnatprove or a bare gnatprove, advises when to consult the user, and avoids hardcoded paths.
  • Proof campaign workflow: Guides agents through status files, quick-fix versus full campaign decisions, and subagents focused on individual subprograms.
  • Deep reference library: Links to documents on GNATprove output, contracts, loops, ghost code, and refactoring so agents can learn the reasoning behind every recommendation.
  • Use Case: When tackling SPARK code that fails at multiple points, the skill orchestrates subagent runs, proof-status.md updates, and strategic review to safely close the campaign.

Quick Start

Ask the skill to run GNATprove on my SPARK project, focus on the declared subprogram, and summarize any outstanding proof obligations.

Frequently Asked Questions about gnatprove

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

FAQPage Schema
How do I resolve unproved checks in a SPARK project using GNATprove?

GNATprove resolves unproved SPARK checks by orchestrating a structured proof campaign with tactical subagents for individual subprograms, tracking progress in a proof-status.md file to systematically close verification gaps.

What is the best way to manage a SPARK proof campaign for multiple failing units?

Managing a SPARK proof campaign involves deciding between quick-fix and full campaign strategies, deploying subagents to focus on individual subprograms, and updating proof-status.md to track outstanding obligations across the codebase.

How do I handle environment discovery for GNATprove invocations?

Environment discovery for GNATprove invocations automatically detects whether to run `alr gnatprove` or a bare `gnatprove` command, avoiding hardcoded paths and prompting the user when the environment is ambiguous.

Do I need to manually set proof timeouts when running GNATprove on Ada code?

You do not need to manually set proof timeouts, as the GNATprove workflow ensures every run respects timeout configurations and subagent discipline automatically during the verification of Ada units.

What reference guides are available for understanding SPARK contracts and ghost code?

The reference library includes documents on GNATprove output, SPARK contracts, loops, ghost code, and refactoring, providing the reasoning behind verification recommendations for Ada and SPARK units.

Why does my SPARK proof run fail to complete without manual environment assumptions?

SPARK proof runs fail without structure due to aimless execution, but the GNATprove skill provides investigative instructions and environment discovery to prove Ada units without requiring manual environment assumptions.