Agent skill

Plan Py4vasp

by vasp-dev in vasp-dev/py4vasp

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

Apache-2.0Auto-check passedAgent Workflows

Install Plan Py4vasp

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

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

GitHub CLI
$ gh skill install vasp-dev/py4vasp plan-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/plan-py4vasp .claude/skills/plan-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
plan-py4vasp
GitHub stars
100
Token cost
~2.2k tokens
SKILL.md length
1,175 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
Apache-2.0

At a glance

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

  • Works in 6 steps: Read before you plan → Cut the work into chunks → Write each chunk in this shape → …
  • Only asks design questions (are there other things to consider?
  • SKILL.md covers 1. Read before you plan, Questions are half of planning, 2. Cut the work into chunks and 3. Write each chunk in this…, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Plan Py4vasp is an agent skill from vasp-dev/py4vasp. Plan a py4vasp change as an ordered list of test-first chunks — that chunk list is the plan. Use it BEFORE writing any implementation plan for py4vasp: a new feature, quantity, class or method, a refactor, or a bug fix. Load it as soon as a py4vasp code change is under discussion — before answering, not after — including when the user only asks design questions ("are there other things to consider?", "how would you implement X?", "what would it take to add X?"). Answering those IS the first half of planning, and…

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Planning, Test-driven development and Debugging. The repository describes itself as: Python interface for VASP. The licence is Apache-2.0.

When your agent uses it

  • Only asks design questions (are there other things to consider?
  • How would you implement X?
  • What would it take to add X?)

Example prompts

  • “are there other things to consider?”
  • “how would you implement X?”
  • “what would it take to add X?”
  • “/plan-py4vasp”

Workflow steps

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

  1. Read before you plan
  2. Cut the work into chunks
  3. Write each chunk in this shape
  4. The shape to avoid
  5. Present the plan, then stop
  6. Hand the chunks over

What it can do on your machine

Read from SKILL.md and the folder at commit 31183cb. 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

    No scripts in the folder and no shell commands in SKILL.md.

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

  • Network

    No URLs in SKILL.md.

    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

Plan Py4vasp loads about 2.2k tokens when it runs. Until then it costs about 225 tokens; SKILL.md has 1,175 words of instructions outside code blocks.

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

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 31183cb, republished under its Apache-2.0 licence (© vasp-dev). 1,175 words, ~2,199 tokens.

Download SKILL.mdSave it as .claude/skills/plan-py4vasp/SKILL.md (or your agent's skills folder).
name
plan-py4vasp
description
Plan a py4vasp change as an ordered list of test-first chunks — that chunk list *is* the plan. Use it BEFORE writing any implementation plan for py4vasp: a new feature, quantity, class or method, a refactor, or a bug fix. Load it as soon as a py4vasp code change is under discussion — before answering, not after — including when the user only asks design questions ("are there other things to consider?", "how would you implement X?", "what would it take to add X?"). Answering those IS the first half of planning, and the answer has to close with the chunk list or with what must be settled before the work can be chunked. Correct to use in plan mode: it only reads code and writes the plan, it never edits source and never commits. Each chunk is one method or behavior with its tests named up front; carrying out a chunk is then handed to the tdd-py4vasp skill, one chunk at a time.

Planning a py4vasp change

A py4vasp plan is an ordered list of chunks — not a description of the finished code with the tests bolted on at the end. A chunk is normally one method of one class (or one narrow behavior): small enough that its tests, its implementation and its commit stay reviewable together.

This skill produces that list and stops. Each chunk is then carried out by the tdd-py4vasp skill (RED → GREEN → refactor → commit), one at a time.

All paths below are relative to the repo/worktree root.

1. Read before you plan

Never plan from the request alone. Establish four things first:

  • Does it exist already? Grep for the method/quantity name across src/py4vasp and tests. Partial implementations and near-duplicates are common and change the chunking completely.
  • The sibling to copy. Find the closest existing quantity or method and read both its implementation and its test. src/py4vasp/_calculation/symmetry.py + tests/calculation/test_symmetry.py is a good default pair.
  • The seams. How does data actually reach the class — raw.access, a FileSource, a dispatcher, @quantity injection? Name the exact file and line the new code hangs off.
  • What the request leaves open. Collect the genuine design questions and put your recommended default next to each, so the user can answer with "defaults, except 3".

Questions are half of planning

A request phrased as a question — "are there other things to consider?", "what would it take?", "query me on the open questions" — is still a planning turn. Answer the questions, with your recommended default beside each, and then close with the chunking anyway:

  • If the open questions do not change the shape of the work, give the chunk list outright and mark which chunks the answers would affect.
  • If they do change the shape (they decide whether a helper module exists at all, say), give the chunk list for the part that is already settled and name the specific answers you need before the rest can be chunked.

What you must not do is answer the questions and stop there. That is how a change ends up planned implementation-first later, in a turn where nobody remembers to chunk it.

2. Cut the work into chunks

  • One method or one narrow behavior each. If a chunk needs the word "and" to describe it, split it.
  • Each chunk must be independently committable and revertible — green suite at every chunk boundary.
  • Order pure logic before wiring. Chunks that touch only a helper module are testable without any public API change; put them first so feedback is fast and early commits are safe.
  • Error and edge-case behavior is its own chunk when the errors carry real logic (ambiguity, validation, rejection), not an afterthought inside another chunk.
  • The docstring + runnable doctest is part of the chunk that adds the public method, never a separate "docs at the end" chunk.
  • Aim for 3–7 chunks. More than that and the request probably needs splitting into two rounds; fewer than two and you likely do not need a plan at all — go straight to tdd-py4vasp.

3. Write each chunk in this shape

Numbered, and for every chunk state all four:

N. <behavior, one line>
   Test:  tests/<path>::<test name(s)>  — what the assertion actually checks
   Code:  src/py4vasp/<path>  — the method/class added or changed
   Also:  any second place that must change for the test to be writable

That Also: line is where py4vasp plans usually go wrong — see the facts below. If a chunk has no Test: line you have not finished planning it.

4. The shape to avoid

Do not produce a plan that describes the implementation in full and then carries a trailing ## Tests section listing the test files to add. That is an implement-then-test plan; it reads fine and it silently discards TDD, because by the time anyone reaches the test section the code is already written. The tests belong inside each chunk, named before its implementation.

Equally: no chunk whose description is "write the tests" or "add test coverage". Coverage is a property of every chunk, not a phase.

5. Present the plan, then stop

Put the chunk list in the todo list, present it, and wait for sign-off before any code is written.

If plan mode is active, this chunk list is the plan you hand to ExitPlanMode — ordered chunks with tests named, plus the design decisions and open questions. Approval of the plan is the sign-off. Do not describe the tdd-py4vasp loop as a final step of the plan; it is how each chunk gets done.

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

6. Hand the chunks over

Once approved, execute one chunk at a time with the tdd-py4vasp skill, starting at chunk 1 and returning to it for each subsequent chunk. Do not batch several chunks into one pass, and do not run the full suite between chunks — that happens once, after the last chunk lands.

Planning-time py4vasp facts that change the plan

These are the ones that alter the chunk list, so check them while planning rather than discovering them mid-implementation:

  • A new raw quantity costs two extra places. Besides the calculation class you must add a producer under src/py4vasp/_demo/ and register a method on RawDataFactory in tests/conftest.py, or raw_data.<quantity>() does not exist and the chunk's test cannot even be written. That belongs on the chunk's Also: line.
  • Construction and fixtures. Calculation classes are built with SomeClass.from_data(raw_data.<quantity>("Sr2TiO4")). tests/conftest.py supplies raw_data, Assert (Assert.allclose for arrays/dataclasses), format_ and check_factory_methods.
  • The standard method set. A new quantity is expected to bring read/ to_dict (plus test_to_dict_is_alias_of_read), print/_repr_, and test_factory_methods(raw_data, check_factory_methods). Plan a chunk for each rather than one "add the quantity" chunk.
  • Public methods need a numpy-style docstring with a runnable doctest. tests/test_doctest.py collects and executes docstring examples from _calculation, injecting path and py4vasp as globals — so the example must be able to build its own data. A doctest that cannot run is a failing test, not a comment.
  • Exceptions come from py4vasp.exception, and user-facing selections go through select.Tree / index.Selector. Decide which exception type each error chunk raises while planning; review-py4vasp enforces this later.
  • Optional dependencies get guarded with pytest.importorskip("spglib") in the test, as existing tests do. Note it on the chunk.
  • Docs. New public methods usually need adding to the relevant file under docs/; fold it into the chunk that introduces the method.
  • A user-interface change owes user-facing documentation. A new public method or CLI command will be validated by simulate-user-py4vasp before it can be pushed: a subagent that may read only the documentation has to work out how to use it. So the chunk that introduces the method carries its documentation — not just its docstring — and --help text that stands on its own. Plan the wording of the tolerances, units and conventions the user must know; that is where such a change usually fails.

Out of scope for this skill

No edits to src/ or tests/, no commits, no running the test suite. The verification commands belong in the plan as text, to be run by tdd-py4vasp when the chunk is executed. If you find yourself wanting to write code to answer a design question, write a throwaway probe in the scratchpad instead and say so in the plan.

Human path

There is no app to launch — this is a workflow skill. The plan is a message (or a plan file); nothing is installed or run to produce it.

© 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

Just SKILL.md in .claude/skills/plan-py4vasp of vasp-dev/py4vasp.

Open the folder on GitHubat commit 31183cb

Compare with similar skills

Plan 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.

Plan Py4vasp compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Plan Py4vasp this skillvasp-dev/py4vasp100—~2.2kAutomated safety check: PassApache-2.0
Vibe ImplementidiotLeoLYJ/Daliu-Awesome-Skills139—~2.7kAutomated safety check: PassNone
SuperpowersPeiiii/nextclaw260—~2.1kAutomated safety check: PassMIT
Verification Before Completionforyourhealth111-pixel/Vibe-Skills3.6k—~1.1kAutomated safety check: PassApache-2.0
Solo BuildLeoYeAI/openclaw-master-skills2.2k—~4.6kAutomated safety check: NotesMIT
Create Featurezacharyfmarion/openscad-studio238—~1.5kAutomated safety check: PassGPL-2.0

Similar skills

  • Vibe Implement

    idiotLeoLYJ/Daliu-Awesome-Skills

    Vibe Coding 流水线的实现阶段(流水线终点,顺序 idea → interaction → architecture → design → prototype → implement)。当 interaction.md、architecture.md、design.md、prototypes/ 已就绪,用户说"开始实现""写代码""把设计落地""进入开发""implement /…

    139 GitHub stars~2.7k tokensUpdated 28 days ago
    Agent WorkflowsAuto-check passed
  • Superpowers

    Peiiii/nextclaw

    A skill your agent uses when the user wants a disciplined software development workflow with design-first planning, implementation plans, TDD, systematic debugging, code review, or…

    260 GitHub stars~2.1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Verification Before Completion

    foryourhealth111-pixel/Vibe-Skills

    Completion-evidence route used before claiming work is complete, fixed, passing, committed, or PR-ready.

    3.6k GitHub stars~1.1k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Solo Build

    LeoYeAI/openclaw-master-skills

    Execute implementation plan tasks with TDD workflow, auto-commit, and phase gates.

    2.2k GitHub stars~4.6k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check: notes
  • Create Feature

    zacharyfmarion/openscad-studio

    A skill your agent uses when the user asks to take a feature or bug fix from prompt to implementation, especially prompts like "/create a new feature", "build this feature end-to-end", "take this…

    238 GitHub stars~1.5k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Deep Plan

    piercelamb/deep-plan

    Creates detailed, sectionized, TDD-oriented implementation plans through research, stakeholder interviews, and multi-LLM review.

    101 GitHub stars~4.8k tokensUpdated 3 mo ago
    Agent WorkflowsAuto-check passed

More from vasp-dev/py4vasp

  • Push Py4vasp

    vasp-dev/py4vasp

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

    100 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Review Py4vasp

    vasp-dev/py4vasp

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

    100 GitHub stars~1.6k tokensUpdated yesterday
    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.

    100 GitHub stars~2k tokensUpdated yesterday
    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.

    100 GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed

Questions about Plan Py4vasp

What does Plan Py4vasp do?

Plan a py4vasp change as an ordered list of test-first chunks — that chunk list is the plan. Plan Py4vasp is an agent skill from vasp-dev/py4vasp. Plan a py4vasp change as an ordered list of test-first chunks — that chunk list is the plan.

When should I use Plan Py4vasp?

Plan Py4vasp fits situations like: only asks design questions (are there other things to consider?; how would you implement X?; what would it take to add X?).

How do I install Plan Py4vasp in Claude Code?

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

How do I install Plan Py4vasp in Codex?

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

Can I use Plan 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 plan-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/plan-py4vasp, .gemini/skills/plan-py4vasp, .github/skills/plan-py4vasp and .opencode/skills/plan-py4vasp in your project.

What does Plan Py4vasp need to run?

SKILL.md names no scripts, command-line tools or credentials: Plan Py4vasp is instructions for the agent only.

Does Plan Py4vasp access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Plan 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 Plan Py4vasp use?

Plan 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 Plan Py4vasp use?

About 2.2k tokens (SKILL.md is roughly 8.8k 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 Plan Py4vasp?

Skills that share tags, products or a category with Plan Py4vasp: Vibe Implement (idiotLeoLYJ/Daliu-Awesome-Skills, 139 stars), Superpowers (Peiiii/nextclaw, 260 stars), Verification Before Completion (foryourhealth111-pixel/Vibe-Skills, 3.6k stars) and Solo Build (LeoYeAI/openclaw-master-skills, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Plan Py4vasp?

vasp-dev (a GitHub organization) maintains it in vasp-dev/py4vasp, which has 100 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 6, 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.