Vet

imbue-ai/vet/skills/vet

作者 imbue-ai59757aec70b385151427f7381a01436f8d67b504無授權條款收錄於 2026年10月9日更新於 2026年10月9日

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.

AI 產生的概覽

執行 vet 命令列工具,審查 git 差異與對話歷史,以找出程式碼變更中的問題。

功能
此技能指示代理在每個邏輯程式碼變更單元之後執行 vet 命令列工具。它說明如何透過 pip、pipx 或 uv 安裝,以及如何以目標字串和 history-loader 指令碼呼叫 vet,從 OpenCode、Codex、Claude Code 或 Gemini CLI 匯出目前工作階段。它也涵蓋基準提交、模型選擇、信心門檻與輸出格式等選項,以及如何解讀結果、更新工具或模型登錄檔。
適用情境
適用於每次邏輯程式碼變更後立即使用,而非批次累積變更,以便找出差異中的問題以及需求與實作之間的落差。它旨在補強而非取代執行測試。
執行需求
需要 vet 命令列工具(以 verify-everything 套件形式透過 pip、pipx 或 uv 安裝)、Python 解譯器、git 儲存庫,以及 LLM API 存取權或本機安裝的 Claude Code、Codex 或 OpenCode CLI(用於 agentic 模式)。它附帶四個可執行的 Python 工作階段匯出指令碼,更新模型登錄檔時可能需要網路存取。

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 pippip install verify-everything
# Using pipxpipx install verify-everything
# Using uvuv 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>"

Gemini CLI:

bash
vet "goal" --history-loader "python3 ~/.gemini/skills/vet/scripts/export_gemini_cli_session.py --session-file <path-to-session.json>"

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: Your current session UUID is ${CLAUDE_SESSION_ID}. Session files are stored in ~/.claude/projects/<encoded-path>/ as <session-uuid>.jsonl. Find the session file matching your UUID and verify it belongs to this conversation. If the UUID above was not replaced with an actual value (e.g. older Claude Code versions), fall back to a manual search:

  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.

Gemini CLI: Session files are stored in ~/.gemini/tmp/<project-name>/chats/. To find the correct session file:

  1. Find the most unique sentence / question / string in the current conversation.
  2. Run: grep -rl "UNIQUE_MESSAGE" ~/.gemini/tmp/ 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-8)
  • --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, Codex, or OpenCode 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 three options for this are codex, claude, and opencode. 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

來源與署名

來源:imbue-ai/vet位於skills/vet提交59757ae

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架