microsoft/verify-prevail
> Diagnose eBPF program verification failures from the PREVAIL verifier. Use this skill for linux-compatible eBPF programs verified in the standalone PREVAIL repo (external/ebpf-verifier). For programs using Windows-specific features (bpf2c pipeline, Windows helpers, ebpf-for-windows headers), use the 'verify-bpf' skill instead.
npx skills add https://github.com/microsoft/ebpf-for-windows --skill verify-prevail
Diagnose eBPF program verification failures using the standalone PREVAIL verifier
(external/ebpf-verifier). This skill covers linux-compatible eBPF programs
that can be verified directly with the PREVAIL check or run_yaml tools.
PREVAIL repo** (external/ebpf-verifier)
for linux-compatible BPF programs
ebpf_helpers.h,sample_ext_helpers.h, WFP hook types) → use verify-bpf instead
verify-bpf instead
.c BPF source to .o for ebpf-for-windows → useverify-bpf instead
Read the full PREVAIL diagnostic reference before diagnosing:
external/ebpf-verifier/docs/llm-context.md
This document contains:
Always read this file first — it is the authoritative reference for PREVAIL diagnostics.
Read external/ebpf-verifier/docs/llm-context.md to load the full diagnostic context.
Ask the user to provide (if not already given):
<pc>: <message> (<assertion>))Using the reference document, match the error to one of the common failure patterns:
| Pattern | Key Symptom |
|---------|-------------|
| Uninitialized register | Invalid type (r<N>.type in {...}) |
| Unbounded packet access | Upper bound must be at most packet_size |
| Stack out-of-bounds | Lower bound must be at least r10.stack_offset - EBPF_SUBPROGRAM_STACK_SIZE |
| Null pointer (map lookup) | Possible null access |
| Type mismatch | Only pointers can be dereferenced |
| Pointer arithmetic error | Only numbers can be added to pointers |
| Infinite loop | Loop counter is too large (pc[N] < 100000) |
| Division by zero | Possible division by zero |
| Map key/value mismatch | Illegal map update with a non-numerical value |
| Context bounds violation | Nonzero context offset or context Upper bound error |
| Lost correlation (verifier limitation) | Bounds check present but verifier can't prove safety |
Follow the reasoning protocol from the reference:
Provide:
Take microsoft/verify-prevail from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.