Agent skill

Review Py4vasp

by vasp-dev in vasp-dev/py4vasp

Code review for py4vasp changes. An agent skill from vasp-dev/py4vasp.

Apache-2.0Auto-check passedDevelopment

Install Review Py4vasp

skills CLI
$ npx skills add vasp-dev/py4vasp --skill review-py4vasp -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install vasp-dev/py4vasp review-py4vasp --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/review-py4vasp .claude/skills/review-py4vasp && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
review-py4vasp
GitHub stars
101
Token cost
~1.6k tokens
SKILL.md length
790 words
Files
2
Skills in repo
5
Repo updated
First seen
Licence
Apache-2.0

At a glance

Code review for py4vasp changes. An agent skill from vasp-dev/py4vasp.

  • Works in 4 steps: gather evidence (run the driver) → review against the four py4vasp rules → manual commands (when the driver can't… → …
  • Asked to review
  • SKILL.md covers Step 1 — gather evidence (run…, Step 2 — review against the…, Step 3 — manual commands (when… and Step 4 — report, plus 2 more sections
  • Runs Python scripts from its folder; calls python, pytest and uv

What it does

Review Py4vasp is an agent skill from vasp-dev/py4vasp. Code review for py4vasp changes. Use when asked to review, code-review, or critique py4vasp code, a branch, or a diff. Does the usual bug / edge-case review AND enforces four py4vasp-specific rules: exceptions come from py4vasp.exception, user selections use select.Tree / index.Selector, public methods have numpy-style docstrings with runnable doctest examples, and tests give 95% coverage. Runs doctests and coverage to substantiate findings, then reports via the ReportFindings tool.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `review.py`).

It sits in Development, covering Code review and Technical documentation. It works with NumPy. The repository describes itself as: Python interface for VASP. The licence is Apache-2.0.

When your agent uses it

  • Asked to review
  • Critique py4vasp code

Example prompts

  • “/review-py4vasp”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. gather evidence (run the driver)
  2. review against the four py4vasp rules
  3. manual commands (when the driver can't map a test)
  4. report

What it can do on your machine

Read from SKILL.md and the folder at commit 83a1168. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • pytest
    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Review Py4vasp loads about 1.6k tokens when it runs. Until then it costs about 126 tokens; SKILL.md has 790 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~126
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from vasp-dev/py4vasp at commit 83a1168, republished under its Apache-2.0 licence (© vasp-dev). 790 words, ~1,611 tokens.

Download SKILL.mdSave it as .claude/skills/review-py4vasp/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
review-py4vasp
description
Code review for py4vasp changes. Use when asked to review, code-review, or critique py4vasp code, a branch, or a diff. Does the usual bug / edge-case review AND enforces four py4vasp-specific rules: exceptions come from py4vasp.exception, user selections use select.Tree / index.Selector, public methods have numpy-style docstrings with runnable doctest examples, and tests give >95% coverage. Runs doctests and coverage to substantiate findings, then reports via the ReportFindings tool.

Reviewing py4vasp code

Standalone reviewer for the changes on the current branch (working tree + commits) relative to master. It combines a normal correctness review with four py4vasp house rules, and it runs the doctests and coverage rather than guessing. Evidence is gathered by .claude/skills/review-py4vasp/review.py; you read that evidence, read the diff, and file findings with ReportFindings (most-severe first). Paths below are relative to the repo/worktree root.

Step 1 — gather evidence (run the driver)

Run it with the venv interpreter (it needs pytest-cov, which the system python lacks):

bash
.venv/Scripts/python.exe .claude/skills/review-py4vasp/review.py

Pass a different base ref as the first arg if needed (... review.py main). The driver prints five sections: changed files; coverage of each changed src module with uncovered line numbers; doctest pass/fail for those modules; a raise-convention scan; and selection-API hints. It takes ~15 s (a coverage run over the touched test files). If a changed src module has no auto-mapped test file, the driver says so — locate and run its tests manually (Step 3).

Step 2 — review against the four py4vasp rules

Read the diff alongside the driver output and judge each rule. The driver gives you leads; you decide what is a finding.

  1. Exceptions come from py4vasp.exception. The contract (see the exception.py module docstring): a py4vasp exception means the user made a mistake; any other exception is a bug to report. So user-facing code must raise a Py4VaspError subclass (IncorrectUsage, NoData, DataMismatch, NotImplemented, …), not a bare ValueError/KeyError/RuntimeError. Section 4 lists every raise X in changed src where X is not exception.*. Legit exceptions (not findings): re-raising a caught error (raise err), and framework code — src/py4vasp/_sphinx/ (docutils SkipNode) and cli.py (click errors). Flag the rest.

  2. User selections use select.Tree / index.Selector. If a method lets the user pick among options, the argument is named selection and is parsed with py4vasp._util.select.Tree.from_selection(...) so every quantity behaves consistently. When those selections index into an array, extraction goes through py4vasp._util.index.Selector. Section 5 shows where the changed files mention selection / select.Tree / index.Selector. Flag a new user-facing option arg that is named something else, hand-rolls its own parsing, or indexes arrays manually instead of via Selector.

  3. Public methods have numpy-style docstrings with runnable examples. Every public method (no leading underscore) needs a numpy-style docstring, and user-facing quantity methods carry a >>> example that the doctest suite executes. Section 3 shows the doctest result for the changed modules — a failure or "no tests ran" for a module that gained a public method is a finding. A public method with no docstring, or a docstring with no example where siblings have one, is a finding the driver can't see — read the diff.

  4. Tests cover the important behavior (>95%). Section 2 gives each changed module's coverage % and the exact uncovered lines. Below ~95% is a finding unless the only misses are trivial (e.g. an else that raises exception.NotImplemented). Point findings at the specific uncovered lines and the behavior they represent.

Also do the normal review: correctness bugs, missing edge cases, wrong results, resource/logic errors — the same scrutiny as a general code review.

Show full SKILL.md (287 more words)Show less

Step 3 — manual commands (when the driver can't map a test)

Same invocations the driver uses, for a module it couldn't auto-map. Set PYTHONPATH to this checkout's src so a worktree measures its own edits, and use --cov=py4vasp (whole package), never a dotted submodule (see Gotchas):

bash
PYTHONPATH="$PWD/src" .venv/Scripts/python.exe -m pytest tests/calculation/test_symmetry.py --cov=py4vasp --cov-report=term-missing -q
bash
PYTHONPATH="$PWD/src" .venv/Scripts/python.exe -m pytest tests/test_doctest.py -k symmetry -q

Step 4 — report

Call ReportFindings with the verified findings, most-severe first (empty array if the change is clean). Give each a concrete failure scenario and a file:line. Prefer confirmed issues over speculation; the coverage/doctest sections let you confirm rather than guess.

Gotchas

  • Use the venv python, not uv run, not system python. uv run pytest --cov and the venv python both crash on numpy under coverage only when you scope with a dotted module (--cov=py4vasp._calculation.symmetry): ImportError: cannot load module more than once per process (numpy 2 + Python 3.14). --cov=py4vasp (whole package) is fine — the driver always uses that and filters the report to the changed files. System python has no pytest-cov at all.
  • Worktree measures the wrong src without PYTHONPATH. py4vasp is installed editable via a .pth pointing at the main repo src, so inside a .claude/worktrees/<name> worktree a bare run silently reviews the main repo. The driver forces PYTHONPATH; do the same in manual runs. Verify with python -c "import py4vasp; print(py4vasp.__file__)".
  • Doctests need the project's runner. They rely on globs injected by tests/test_doctest.py (py4vasp, path, np), so pytest --doctest-modules won't work — filter tests/test_doctest.py with -k <module-stem> instead.
  • The raise scan over-reports. It is a plain grep; always apply the carve-outs in rule 1 before turning a hit into a finding.

Human path

There is no app to launch — this is a review workflow. A developer reviews by reading the diff and running the same pytest --cov / doctest commands above.

© vasp-dev, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .claude/skills/review-py4vasp of vasp-dev/py4vasp.

  • SKILL.md
  • review.py

Open the folder on GitHubat commit 83a1168

Compare with similar skills

Review Py4vasp next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Review Py4vasp compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review Py4vasp this skillvasp-dev/py4vasp101—~1.6kAutomated safety check: PassApache-2.0
Change Verification Gatefengshao1227/ccg-workflow5.9k—~511Automated safety check: NotesMIT
Post Draft Reviewagent-substrate/substrate4.6k—~2.8kAutomated safety check: PassApache-2.0
Docs GuardamElnagdy/guard-skills1.3k—~2.1kAutomated safety check: PassMIT
Codex Proxy RS Development Guidezyycn/codex-proxy-rs766—~618Automated safety check: PassApache-2.0
Inline PR Commentshyperlane-xyz/hyperlane-explorer102—~1.1kAutomated safety check: PassCustom licence

Similar skills

  • Change Verification Gate

    fengshao1227/ccg-workflow

    Analyzes a code diff for documentation sync, test coverage and impact scope, warning when docs or tests lag behind a design-level change or a large edit.

    5.9k GitHub stars~511 tokensUpdated 23 days ago
    DevelopmentAuto-check: notes
  • Post Draft Review

    agent-substrate/substrate

    Posts pull request review findings as GitHub draft (pending) inline comments for a human to edit and submit, instead of publishing them straight to the PR author.

    4.6k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Docs Guard

    amElnagdy/guard-skills

    Checks generated or edited documentation against the source code, flagging invented symbols, outdated samples and unverifiable claims before publishing.

    1.3k GitHub stars~2.1k tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Routes development, troubleshooting, review and documentation tasks on the Codex Proxy RS repository to the right section of its docs, instead of loading the whole architecture or contributing guide.

    766 GitHub stars~618 tokensUpdated today
    DevelopmentAuto-check passed
  • Inline PR Comments

    hyperlane-xyz/hyperlane-explorer

    Post a single consolidated PR review with summary and inline comments.

    102 GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • PR Inline Comments

    sesori-ai/sesori_apps_monorepo

    Fetch inline (code) review comments on a GitHub pull request, grouped into threads, with optional filtering by datetime.

    126 GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check passed

More from vasp-dev/py4vasp

  • Plan Py4vasp

    vasp-dev/py4vasp

    Plan a py4vasp change as an ordered list of test-first chunks — that chunk list is the plan.

    101 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Push Py4vasp

    vasp-dev/py4vasp

    Push py4vasp changes to origin and open a PR. An agent skill from vasp-dev/py4vasp.

    101 GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • TDD Py4vasp

    vasp-dev/py4vasp

    Carry out ONE chunk of a py4vasp change test-first: RED (watch the test fail for the right reason) → GREEN → refactor → one local commit.

    101 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Simulate User Py4vasp

    vasp-dev/py4vasp

    Validate a py4vasp change from the outside by dispatching a subagent to role-play a user who may read only the documentation, never the source.

    101 GitHub stars~2.5k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Review Py4vasp

What does Review Py4vasp do?

Code review for py4vasp changes. An agent skill from vasp-dev/py4vasp. Review Py4vasp is an agent skill from vasp-dev/py4vasp. Code review for py4vasp changes.

When should I use Review Py4vasp?

Review Py4vasp fits situations like: asked to review; critique py4vasp code.

How do I install Review Py4vasp in Claude Code?

Run `npx skills add vasp-dev/py4vasp --skill review-py4vasp -a claude-code`. Or copy the skill folder (.claude/skills/review-py4vasp in vasp-dev/py4vasp) into .claude/skills/review-py4vasp in your project. Claude Code loads it when a task matches its description.

How do I install Review Py4vasp in Codex?

Run `npx skills add vasp-dev/py4vasp --skill review-py4vasp -a codex`. Or copy the skill folder (.claude/skills/review-py4vasp in vasp-dev/py4vasp) into .agents/skills/review-py4vasp in your project. Codex loads it when a task matches its description.

Can I use Review Py4vasp in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vasp-dev/py4vasp --skill review-py4vasp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/review-py4vasp, .gemini/skills/review-py4vasp, .github/skills/review-py4vasp and .opencode/skills/review-py4vasp in your project.

What does Review Py4vasp need to run?

Going by SKILL.md and its folder, Review Py4vasp needs Python for the scripts in its folder and the command-line tools its instructions call (python, pytest and uv). Our summary lists: Python 3.

Does Review Py4vasp access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Review Py4vasp safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Review Py4vasp use?

Review Py4vasp is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Review Py4vasp use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Review Py4vasp?

Skills that share tags, products or a category with Review Py4vasp: Change Verification Gate (fengshao1227/ccg-workflow, 5.9k stars), Post Draft Review (agent-substrate/substrate, 4.6k stars), Docs Guard (amElnagdy/guard-skills, 1.3k stars) and Codex Proxy RS Development Guide (zyycn/codex-proxy-rs, 766 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review Py4vasp?

vasp-dev (a GitHub organization) maintains it in vasp-dev/py4vasp, which has 101 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 9, 2026.

Source: vasp-dev/py4vasp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.