Onboarding Optimization
appeeky/aso-skills
When the user wants to improve their app's onboarding experience, increase activation rate, reduce Day 1 drop-off, or optimize the first-run flow.
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.
$ npx skills add vasp-dev/py4vasp --skill simulate-user-py4vasp -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vasp-dev/py4vasp simulate-user-py4vasp --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/simulate-user-py4vasp .claude/skills/simulate-user-py4vasp && rm -rf skills-srcUse ~/.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/
Install the "simulate-user-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/simulate-user-py4vasp into .claude/skills/simulate-user-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "simulate-user-py4vasp", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/simulate-user-py4vaspType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vasp-dev/py4vasp --skill simulate-user-py4vasp -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vasp-dev/py4vasp simulate-user-py4vasp --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/simulate-user-py4vasp .agents/skills/simulate-user-py4vasp && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "simulate-user-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/simulate-user-py4vasp into .agents/skills/simulate-user-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "simulate-user-py4vasp", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vasp-dev/py4vasp --skill simulate-user-py4vasp -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vasp-dev/py4vasp simulate-user-py4vasp --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/simulate-user-py4vasp .cursor/skills/simulate-user-py4vasp && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "simulate-user-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/simulate-user-py4vasp into .cursor/skills/simulate-user-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "simulate-user-py4vasp", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vasp-dev/py4vasp.git --path .claude/skills/simulate-user-py4vasp--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vasp-dev/py4vasp --skill simulate-user-py4vasp -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vasp-dev/py4vasp simulate-user-py4vasp --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/simulate-user-py4vasp .gemini/skills/simulate-user-py4vasp && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "simulate-user-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/simulate-user-py4vasp into .gemini/skills/simulate-user-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "simulate-user-py4vasp", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vasp-dev/py4vasp simulate-user-py4vaspInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vasp-dev/py4vasp --skill simulate-user-py4vasp -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/simulate-user-py4vasp .github/skills/simulate-user-py4vasp && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "simulate-user-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/simulate-user-py4vasp into .github/skills/simulate-user-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "simulate-user-py4vasp", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vasp-dev/py4vasp --skill simulate-user-py4vasp -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vasp-dev/py4vasp simulate-user-py4vasp --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/simulate-user-py4vasp .opencode/skills/simulate-user-py4vasp && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "simulate-user-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/simulate-user-py4vasp into .opencode/skills/simulate-user-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "simulate-user-py4vasp", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
simulate-user-py4vaspValidate a py4vasp change from the outside by dispatching a subagent to role-play a user who may read only the documentation, never the source.
Simulate User Py4vasp is an agent skill from 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. Use before pushing or opening a MR for anything that touches the user interface — a public method of a quantity class, a CLI command, or the docs — and whenever asked to "simulate a user", "test this like a user would", or "check the usability" of a py4vasp feature. Returns ranked findings, a verdict on whether a documentation-only user can succeed, and the agent's…
Its SKILL.md is about 2.5k 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 UX design and Subagents. The repository describes itself as: Python interface for VASP. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 31183cb. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Simulate User Py4vasp loads about 2.5k tokens when it runs. Until then it costs about 137 tokens; SKILL.md has 1,455 words of instructions outside code blocks.
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.
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.
The full file from vasp-dev/py4vasp at commit 31183cb, republished under its Apache-2.0 licence (© vasp-dev). 1,455 words, ~2,505 tokens.
.claude/skills/simulate-user-py4vasp/SKILL.md (or your agent's skills folder).plan-py4vasp, tdd-py4vasp and review-py4vasp all judge a change from the
inside: code, tests, coverage, house rules. A change can pass every one of
them and still be unusable, because none of them asks the only question a user
asks — can I work out how to do this from the documentation?
This skill answers that by dispatching a subagent that role-plays a user with no access to the source. It is a validation gate, not an exploration: you write the premise, dispatch it, verify it stayed inside the rules, and act on what it reports. All paths are relative to the repo/worktree root.
Whenever the diff touches the user interface:
src/py4vasp/_calculation/
whose signature or docstring changed, or one that was added. The docstring counts
because it is the documentation a user reads: a branch can rewrite thirty of them,
leave every def line untouched, and change the interface completely.src/py4vasp/cli.pydocs/A change confined to private helpers, the raw schema, the demo data or the tests
does not need it. push-py4vasp treats this as a blocking gate and its driver
prints USER SIMULATION REQUIRED: YES/NO, so the decision is a fact rather than
a judgement.
Check first. A subagent inherits plan mode from the session that dispatches
it, and a simulated user in plan mode cannot write a POSCAR, cannot use
-o/--output, and cannot read an input file from disk — i.e. it cannot exercise
the surface a real user touches most. In the trial run that produced this skill
the agent tried to work around the restriction with a process substitution, which
is not something any user would do, and the resulting traceback leaked source
code to it.
If plan mode is on, say so and stop. Run the simulation from normal mode.
The agent must discover the feature, because discoverability is the thing under test. Give it exactly what a colleague would have said in one sentence — the capability, never the command or method names:
A colleague mentioned that the latest py4vasp can create KPOINTS files for you — both for a band structure along the high-symmetry path and for a regular k-mesh — and that it works from the command line as well as from Python.
Derive that sentence from the MR description, not from the diff. If you catch
yourself writing generate_kpath, delete it.
Use the Agent tool with subagent_type: general-purpose and the default
model. Never fork: a fork inherits your context, which contains the
implementation, and the whole exercise collapses. Capability is not what makes a
simulation unrealistic — access is — so do not reach for a weaker model either;
a capable agent constrained to the documentation writes a far more useful report.
The prompt must contain all six blocks below. Copy them; the wording matters.
1. The persona. A computational materials scientist who runs VASP, comfortable with the shell and Python, has never seen py4vasp's source and never will. Then the premise from Step 1.
2. The isolation contract. Allowed, because it is what a real user has:
py4vasp --help and every subcommand's --help; help(obj) and obj? at the
Python prompt (docstrings are user-facing documentation); the sources under
docs/; README.md. Forbidden: any file under src/ or tests/; git history,
diffs, commit messages, branch names; .claude/; any plan, issue or notes file.
And the clause that matters, because this is how leaks actually happen: if a tool
result shows you source code — a traceback will — stop reading it and write that
down in your report.
3. Behave like a person, not an agent. A handful of actions in a natural order. No enumerating the package, no reverse-engineering intent from the repository. When the documentation does not answer a question, that is a finding to report — not a puzzle to solve by digging.
4. The environment. py4vasp is usually a development checkout here, so spell out the invocation and tell the agent to treat it as the real command:
export PYTHONPATH=<checkout>/src
PY=<path to the venv>/bin/python
$PY -m py4vasp --help # the command line interface
$PY -c "import py4vasp; ..." # the Python interfaceGive it a working directory of its own (/tmp/.../user-trial-<feature>),
explicitly grant it permission to write files there, and forbid modifying
anything in the checkout.
5. The task. Work out from the documentation how to use the feature and note what had to be guessed; write your own input file and use the feature on it; do whatever you would normally do to convince yourself the result is right, and say whether you could; make one or two mistakes a real user plausibly makes and see whether the message tells you what to fix; try both interfaces if both exist.
6. The deliverable. Five sections, in this order:
Close with: do not soften the report to be agreeable; blunt is useful.
Sections B-"ordinary user", D and E are what turn a report into evidence. The trial run's most valuable line was the agent volunteering that an ordinary user would not have caught its own worst finding, because the only symptom was a space-group label nobody checks by eye. D localises the documentation gap to the exact channel. E is where the leaked traceback got reported.
Trust the agent, then check. The Agent tool returns an output_file — the full
JSONL transcript. Do not read it; it runs to hundreds of KB. Grep the tool
inputs only:
grep -o -E '"name":"(Bash|Read|Grep|Glob)","input":\{"[a-z_]+":"[^"]{0,120}' "$TRANSCRIPT" \
| grep -o -E '(src/py4vasp/[A-Za-z_./]+|tests/[A-Za-z_./]+|git (log|diff|show|blame))' \
| sort | uniq -cTwo traps, both of which caught me while building this:
py4vasp/ segment. A bare src also matches the
PYTHONPATH you supplied yourself, which is legitimate and appears in every
command the agent runs.docs/ hits are expected and fine.A non-empty result invalidates the run: the findings may come from reading the implementation rather than the documentation. Re-dispatch a fresh agent.
Present the report to the user and classify with them:
backlog/ as a short markdown file.Never fix a finding by editing only the report's wording. If the answer is "the user should have known", the documentation is the thing that failed.
fork defeats it. The fork knows the implementation. Always
general-purpose.PYTHONPATH and, if in doubt, have it print
py4vasp.__file__ first.help() — it is exactly
what a notebook user reads. What is forbidden is opening the file that contains
the docstring.dir() / tab-completion is a grey zone. The trial agent used it to find a
method the docs never mention, and flagged that as borderline itself. Allow it,
and treat "I only found this by tab-completion" as a documentation finding.There is no app to launch — this is a workflow skill. The human equivalent is handing the branch to a colleague who has not read the code, with the MR summary and nothing else, and asking them to use the feature and say where they got stuck.
© 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
Just SKILL.md in .claude/skills/simulate-user-py4vasp of vasp-dev/py4vasp.
Open the folder on GitHubat commit 31183cb
Simulate User 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Simulate User Py4vasp this skillvasp-dev/py4vasp | 100 | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Onboarding Optimizationappeeky/aso-skills | 2.1k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Write PlanArman-Kudaibergenov/1c-ai-development-kit | 166 | — | ~1.3k | Automated safety check: Notes | AGPL-3.0 | |
| Vibe Sunsang Growthfivetaku/gptaku-plugins-codex | 128 | — | ~2k | Automated safety check: Pass | MIT | |
| UX Create Manifesth0x91b/dev-3.0 | 307 | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Product Design Workflow BundleXiaomiMiMo/MiMo-Code | 14k | — | ~721 | Automated safety check: Pass | MIT |
appeeky/aso-skills
When the user wants to improve their app's onboarding experience, increase activation rate, reduce Day 1 drop-off, or optimize the first-run flow.
Arman-Kudaibergenov/1c-ai-development-kit
Этот скилл MUST быть вызван когда есть design.md и нужно разбить доработку на атомарные задачи (2-5 мин) с точными путями файлов и критериями проверки в tasks.md.
fivetaku/gptaku-plugins-codex
Growth report generator — analyzes converted Codex conversations and produces a progression report using the v2 level system (6 axes × 7 levels, 0.5 increments), leading with one level headline and…
h0x91b/dev-3.0
Create the initial Product UX Bible for an existing web or full-screen web app by deeply auditing the repository, using sub-agents when available, and generating docs/ux manifests, schemas, budgets…
XiaomiMiMo/MiMo-Code
Entry point to a bundle of product design workflows covering context, research, audits, ideation, URL or image to code, design QA and sharing a prototype.
Touch-N-Stars/Touch-N-Stars
Review changed Touch'N'Stars code with three parallel agents, one each for functionality, UI and maintainability, against this project's own rules (NINA/PINS dual mode, polling contract…
vasp-dev/py4vasp
Plan a py4vasp change as an ordered list of test-first chunks — that chunk list is the plan.
vasp-dev/py4vasp
Push py4vasp changes to origin and open a PR. An agent skill from vasp-dev/py4vasp.
vasp-dev/py4vasp
Code review for py4vasp changes. An agent skill from vasp-dev/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.
Categories
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. Simulate User Py4vasp is an agent skill from 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.
Simulate User Py4vasp fits situations like: tasks that involve UX design; tasks that involve Subagents.
Run `npx skills add vasp-dev/py4vasp --skill simulate-user-py4vasp -a claude-code`. Or copy the skill folder (.claude/skills/simulate-user-py4vasp in vasp-dev/py4vasp) into .claude/skills/simulate-user-py4vasp in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vasp-dev/py4vasp --skill simulate-user-py4vasp -a codex`. Or copy the skill folder (.claude/skills/simulate-user-py4vasp in vasp-dev/py4vasp) into .agents/skills/simulate-user-py4vasp in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vasp-dev/py4vasp --skill simulate-user-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/simulate-user-py4vasp, .gemini/skills/simulate-user-py4vasp, .github/skills/simulate-user-py4vasp and .opencode/skills/simulate-user-py4vasp in your project.
Going by SKILL.md and its folder, Simulate User Py4vasp needs the command-line tools its instructions call (git). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Simulate User 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.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Simulate User Py4vasp: Onboarding Optimization (appeeky/aso-skills, 2.1k stars), Write Plan (Arman-Kudaibergenov/1c-ai-development-kit, 166 stars), Vibe Sunsang Growth (fivetaku/gptaku-plugins-codex, 128 stars) and UX Create Manifest (h0x91b/dev-3.0, 307 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.