vet

Run vet immediately after ANY logical unit of code changes. Do not batch your changes, do not wait to be asked to run vet, make sure you are proactive.

326 stars
Complexity: easy

About this skill

Vet is a crucial AI agent skill designed to integrate seamlessly into an agent's coding workflow, providing immediate feedback on code changes. Its primary function is to review git diffs and the ongoing conversation history between the user and the AI agent, identifying potential issues, discrepancies, or misunderstandings. This proactive approach helps agents catch errors and misinterpretations early, before they escalate into larger problems. It acts as a continuous quality gate, promoting cleaner code and more accurate implementations. The skill is particularly effective when run frequently, as it leverages the context of the conversation to ensure that the code being written aligns precisely with the user's requests. By analyzing both the code modifications and the historical dialogue, Vet can pinpoint subtle misinterpretations that might otherwise go unnoticed until later testing phases. It is not intended to replace comprehensive testing but rather to serve as a vital, initial layer of code verification. Users benefit from Vet by gaining confidence in the code generated by AI agents, reducing the need for extensive manual reviews or rework. It minimizes the time spent debugging issues caused by miscommunication, thereby accelerating the development cycle and improving the overall efficiency of AI-assisted coding.

Best use case

The primary use case for Vet is to maintain high code quality and ensure accurate implementation of user requests when developing with AI coding agents. Developers, especially those leveraging tools like Claude Code, Codex, or OpenCode, benefit most by having an automated, proactive checker that identifies issues and misunderstandings in real-time, reducing development friction and improving reliability.

Run vet immediately after ANY logical unit of code changes. Do not batch your changes, do not wait to be asked to run vet, make sure you are proactive.

Users should expect a detailed report identifying potential issues, discrepancies, or misunderstandings in their recent code changes and conversation history, leading to higher quality and more accurately implemented code.

Practical example

Example input

vet "Implement feature X while ensuring Y" --history-loader "python3 ~/.claude/skills/vet/scripts/export_claude_code_session.py --session-file /path/to/claude_session.jsonl"

Example output

Vet Report:
- No critical issues found in git diff.
- Conversation history review: Identified a potential misunderstanding regarding 'Y' in src/feature_x.py. The implementation appears to only partially address 'Y'.
- Suggestion: Re-evaluate 'Y' implementation details and clarify with the user.

When to use this skill

  • Immediately after completing any logical unit of code changes.
  • Frequently, to leverage conversation history for catching misunderstandings.
  • When collaborating with an AI coding agent to ensure alignment between request and implementation.
  • Before running tests, as a preliminary code quality check.

When not to use this skill

  • As a sole replacement for comprehensive unit, integration, or end-to-end tests.
  • For batching multiple, unrelated code changes before review.
  • If you are not using an AI coding agent with conversation history.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/vet/SKILL.md --create-dirs "https://raw.githubusercontent.com/atilladeniz/Kubeli/main/.claude/skills/vet/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/vet/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How vet Compares

Feature / AgentvetStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityeasyN/A

Frequently Asked Questions

What does this skill do?

Run vet immediately after ANY logical unit of code changes. Do not batch your changes, do not wait to be asked to run vet, make sure you are proactive.

How difficult is it to install?

The installation complexity is rated as easy. You can find the installation instructions above.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Vet

**Run vet immediately after ANY logical unit of code changes. Do not batch changes, do not wait to be asked to run vet, make sure you are proactive.**

Vet reviews git diffs and conversation history to find issues in code changes and conversation history. It is most effective when run frequently with conversation history, which helps it catch misunderstandings between what was requested and what was implemented. Despite this, vet is not a replacement for running tests.

## Installation

Install vet using pip, pipx, or uv:

```bash
# Using pip
pip install verify-everything

# Using pipx
pipx install verify-everything

# Using uv
uv tool install verify-everything

# Verify installation:
vet --help
```

## Running Vet

### Standard Usage

Before running vet, determine the correct Python binary:
```bash
$(command -v python3 || command -v python)
```
Use whichever resolves (prefer `python3`). The examples below use `python3`, substitute `python` if that is what your system provides.

**OpenCode:**
```bash
vet "goal" --history-loader "python3 ~/.agents/skills/vet/scripts/export_opencode_session.py --session-id <ses_ID>"
```

**Codex:**
```bash
vet "goal" --history-loader "python3 ~/.codex/skills/vet/scripts/export_codex_session.py --session-file <path-to-session.jsonl>"
```

**Claude Code:**
```bash
vet "goal" --history-loader "python3 ~/.claude/skills/vet/scripts/export_claude_code_session.py --session-file <path-to-session.jsonl>"
```

**Without Conversation History**
```bash
vet "goal"
```

### Finding Your Session

You should only search for sessions from your coding harness. If a user requests you use a different harness, they are likely referring to vet's agentic mode, not the session.

**OpenCode:** The `--session-id` argument requires a `ses_...` session ID. To find the current session ID:
1. Run: `opencode session list --format json` to list recent sessions with their IDs and titles.
2. Identify the current session from the list by matching the title or timestamp.
    - IMPORTANT: Verify the session you found matches the current conversation. If the title is ambiguous, compare timestamps or check multiple candidates.
3. Pass the session ID as `--session-id`.

**Codex:** Session files are stored in `~/.codex/sessions/YYYY/MM/DD/`. To find the correct session file:
1. Find the most unique sentence / question / string in the current conversation.
2. Run: `grep -rl "UNIQUE_MESSAGE" ~/.codex/sessions/` to find the matching session file.
    - IMPORTANT: Verify the conversation you found matches the current conversation and that it is not another conversation with the same search string.
3. Pass the matched file path as `--session-file`.

**Claude Code:** Session files are stored in `~/.claude/projects/<encoded-path>/`. The encoded path replaces `/` with `-` (e.g. `/home/user/myproject` becomes `-home-user-myproject`). To find the correct session file:
1. Find the most unique sentence / question / string in the current conversation.
2. Run: `grep -rl "UNIQUE_MESSAGE" ~/.claude/projects/` to find the matching session file.
    - IMPORTANT: Verify the conversation you found matches the current conversation and that it is not another conversation with the same search string.
3. Pass the matched file path as `--session-file`.

NOTE: The examples in the standard usage section assume the user installed the vet skill at the user level, not the project level. Prior to trying to run vet, check if it was installed at the project level which should take precedence over the user level. If it is installed at the project level, ensure the history-loader option points to the correct location.

## Interpreting Results

Vet analyzes the full git diff from the base commit. This may include changes from other agents or sessions working in the same repository. If vet reports issues that relate to changes you did not make in this session, disregard them, assuming they belong to another agent or the user.

## Common Options

- `--base-commit REF`: Git ref for diff base (default: HEAD)
- `--model MODEL`: LLM to use (default: claude-opus-4-6)
- `--list-models`: list all models that are supported by vet
    - Run `vet --help` and look at the vet repo's readme for details about defining custom OpenAI-compatible models.
- `--update-models`: fetch the latest community model definitions from the remote registry and cache them locally. See "Updating the Model Registry" below for when to run this.
- `--confidence-threshold N`: Minimum confidence 0.0-1.0 (default: 0.8)
- `--output-format FORMAT`: Output as `text`, `json`, or `github`
- `--quiet`: Suppress status messages and 'No issues found.'
- `--agentic`: Mode that routes analysis through the locally installed Claude Code or Codex CLI instead of calling the API directly. Try this if vet fails due to missing API keys. This is slower so it is not the default, but it often results in higher precision issue identification. `--model` is forwarded to the harness but not validated by vet, as vet doesn't know which models each harness supports.
- `--agent-harness`: The two options for this are `codex` and `claude`. Claude Code is the default.
- `--help`: Show comprehensive list of options


## Updating

The vet CLI, skill files, and export scripts can become outdated as agent harnesses and LLM APIs change.

If this happens, try updating them. Run `which vet` to determine how vet was installed and update accordingly. For the skill files, check which skill directories exist on disk and update them with the latest versions from https://github.com/imbue-ai/vet/tree/main/skills/vet.

### Updating the Model Registry

Run `vet --update-models` to fetch the latest community model definitions from the remote registry without upgrading vet itself. This caches model definitions locally so they appear in `--list-models` and can be used with `--model`.

You should run `vet --update-models` when:
- Vet reports an unknown or unrecognized model error.
- `vet --list-models` does not show a model you or the user expects to be available.
- The user explicitly asks you to update the model registry.

## Additional Information

Additional information can be found in the vet repo:

https://github.com/imbue-ai/vet

Related Skills

laravel-expert

31392
from sickn33/antigravity-awesome-skills

Senior Laravel Engineer role for production-grade, maintainable, and idiomatic Laravel solutions. Focuses on clean architecture, security, performance, and modern standards (Laravel 10/11+).

Coding & DevelopmentClaude

debug-nw

7754
from nativewind/nativewind

Debug a Nativewind v5 setup issue. Walks through common configuration problems with metro, babel, postcss, and dependencies.

Coding & Development

Go Production Engineering

3891
from openclaw/skills

You are a Go production engineering expert. Follow this system for every Go project — from architecture decisions through production deployment. Apply phases sequentially for new projects; use individual phases as needed for existing codebases.

Coding & Development

Database Engineering Mastery

3891
from openclaw/skills

> Complete database design, optimization, migration, and operations system. From schema design to production monitoring — covers PostgreSQL, MySQL, SQLite, and general SQL patterns.

Coding & Development

afrexai-code-reviewer

3891
from openclaw/skills

Enterprise-grade code review agent. Reviews PRs, diffs, or code files for security vulnerabilities, performance issues, error handling gaps, architecture smells, and test coverage. Works with any language, any repo, no dependencies required.

Coding & Development

API Documentation Generator

3891
from openclaw/skills

Generate production-ready API documentation from endpoint descriptions. Outputs OpenAPI 3.0, markdown reference docs, and SDK quickstart guides.

Coding & Development

bili-rs

3891
from openclaw/skills

Development skill for bili-rs, a Rust CLI tool for Bilibili (B站). Use when implementing features, fixing bugs, or extending the bilibili-cli-rust codebase. Provides architecture conventions, API endpoints, coding patterns, and project-specific constraints. Triggers on tasks involving adding CLI commands, calling Bilibili APIs, handling authentication, implementing output formatting, or working with the layered cli/commands/client/payloads architecture.

Coding & Development

Puppeteer

3891
from openclaw/skills

Automate Chrome and Chromium with Puppeteer for scraping, testing, screenshots, and browser workflows.

Coding & Development

pharaoh

3891
from openclaw/skills

Codebase knowledge graph with 23 development workflow skills. Query architecture, dependencies, blast radius, dead code, and test coverage via MCP. Requires GitHub App installation (read-only repo access) and OAuth authentication. Connects to external MCP server at mcp.pharaoh.so.

Coding & Development

git-commit-helper

3891
from openclaw/skills

Generate standardized git commit messages following Conventional Commits format. Use this skill when the user asks to commit code, write a commit message, or create a git commit. Enforces team conventions for type prefixes, scope naming, message length, and breaking change documentation.

Coding & Development

ask-claude

3891
from openclaw/skills

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Coding & Development

bnbchain-mcp

3891
from openclaw/skills

Interact with the BNB Chain Model Context Protocol (MCP) server. Blocks, contracts, tokens, NFTs, wallet, Greenfield, and ERC-8004 agent tools. Use npx @bnb-chain/mcp@latest or read the official skill page.

Coding & Development