China Travel Kit
tczyliu/china-travel-kit
Research and plan first-time independent trips in China with bilingual, source-aware city data and official live-check entry points.
Load BEFORE translating any Python item to Lean 4 to avoid known Python→Lean pitfalls.
$ npx skills add sunblaze-ucb/vero --skill vero-python-pitfalls -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sunblaze-ucb/vero vero-python-pitfalls --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/sunblaze-ucb/vero.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/vero-python-pitfalls .claude/skills/vero-python-pitfalls && 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 "vero-python-pitfalls" agent skill from https://github.com/sunblaze-ucb/vero/tree/main/.claude/skills/vero-python-pitfalls into .claude/skills/vero-python-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vero-python-pitfalls", 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/sunblaze-ucb/vero/tree/main/.claude/skills/vero-python-pitfallsType 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 sunblaze-ucb/vero --skill vero-python-pitfalls -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sunblaze-ucb/vero vero-python-pitfalls --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sunblaze-ucb/vero.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/vero-python-pitfalls .agents/skills/vero-python-pitfalls && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vero-python-pitfalls" agent skill from https://github.com/sunblaze-ucb/vero/tree/main/.claude/skills/vero-python-pitfalls into .agents/skills/vero-python-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vero-python-pitfalls", 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 sunblaze-ucb/vero --skill vero-python-pitfalls -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sunblaze-ucb/vero vero-python-pitfalls --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sunblaze-ucb/vero.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/vero-python-pitfalls .cursor/skills/vero-python-pitfalls && 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 "vero-python-pitfalls" agent skill from https://github.com/sunblaze-ucb/vero/tree/main/.claude/skills/vero-python-pitfalls into .cursor/skills/vero-python-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vero-python-pitfalls", 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/sunblaze-ucb/vero.git --path .claude/skills/vero-python-pitfalls--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 sunblaze-ucb/vero --skill vero-python-pitfalls -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sunblaze-ucb/vero vero-python-pitfalls --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sunblaze-ucb/vero.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/vero-python-pitfalls .gemini/skills/vero-python-pitfalls && 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 "vero-python-pitfalls" agent skill from https://github.com/sunblaze-ucb/vero/tree/main/.claude/skills/vero-python-pitfalls into .gemini/skills/vero-python-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vero-python-pitfalls", 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 sunblaze-ucb/vero vero-python-pitfallsInstalls 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 sunblaze-ucb/vero --skill vero-python-pitfalls -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sunblaze-ucb/vero.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/vero-python-pitfalls .github/skills/vero-python-pitfalls && 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 "vero-python-pitfalls" agent skill from https://github.com/sunblaze-ucb/vero/tree/main/.claude/skills/vero-python-pitfalls into .github/skills/vero-python-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vero-python-pitfalls", 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 sunblaze-ucb/vero --skill vero-python-pitfalls -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sunblaze-ucb/vero vero-python-pitfalls --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sunblaze-ucb/vero.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/vero-python-pitfalls .opencode/skills/vero-python-pitfalls && 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 "vero-python-pitfalls" agent skill from https://github.com/sunblaze-ucb/vero/tree/main/.claude/skills/vero-python-pitfalls into .opencode/skills/vero-python-pitfalls/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vero-python-pitfalls", 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.
vero-python-pitfallsLoad BEFORE translating any Python item to Lean 4 to avoid known Python→Lean pitfalls.
Vero Python Pitfalls is an agent skill from sunblaze-ucb/vero. Load BEFORE translating any Python item to Lean 4 to avoid known Python→Lean pitfalls. Pair with vero-source-python and vero-lean-pitfalls.
Its SKILL.md is about 1.7k 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 Writing & Content, covering Translation. It works with Python. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 0a7325d. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python and lean).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Vero Python Pitfalls loads about 1.7k tokens when it runs. Until then it costs about 40 tokens; SKILL.md has 875 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 sunblaze-ucb/vero at commit 0a7325d, republished under its Apache-2.0 licence (© sunblaze-ucb). 875 words, ~1,679 tokens.
.claude/skills/vero-python-pitfalls/SKILL.md (or your agent's skills folder).The Lean benchmark is allowed to be smaller than the Python repo, but it must not silently change the selected APIs' observable semantics. Before compressing scaffold/context, confirm that the LLM still has enough information to reconstruct:
If a source behavior is intentionally omitted, record it as a curation decision instead of leaving a weak spec that makes the omission invisible.
Python a // b is floor division (rounds toward −∞). Lean's Int.div// is truncated (rounds toward 0). They differ for negatives.
| Python | Lean (preserve floor) |
|---|---|
a // b | Int.fdiv a b |
a % b | Int.fmod a b |
If the Python source only ever uses non-negative operands, Int.div is fine — but document the assumption.
range(...) semanticsPython range(a, b) is [a, a+1, ..., b-1]. Use List.range' (start, length) — not List.range (which is [0, ..., n-1]).
range(2, 5) # [2, 3, 4]→
List.range' 2 3 -- [2, 3, 4]; length = b - aFor descending or step-N ranges, write a recursive helper.
Python lists / dicts are mutable. Lean has no in-place mutation in the pure subset. The curator-given translation:
lst.append(x) → lst ++ [x] (new list)dct[k] = v → dct.insert k v returning a new maplst is other_lst) cannot be expressed; flag with @review human.If the Python code relies on mutating a parameter and reading the mutation in the caller, the spec almost certainly needs reformulation as input → output. Discuss with the curator.
For buffer-writing APIs, do not replace "writes prefix and preserves
suffix" with "returns some new list" unless the spec explicitly captures
the old buffer, written length, prefix, suffix, and failure unchanged
behavior. This is the same failure mode as Json's SerializeInto
contract drift.
None vs OptionPython's None is the only inhabitant of NoneType. Lean's none : Option α requires the type α to be inferred or annotated. Translation:
def lookup(k: int) -> int | None:
return self.dict.get(k)→
def lookup (k : Int) (s : State) : Option Int := s.dict.find? kAvoid Option Unit for "side-effect succeeded?" — use Bool or a dedicated Result enum.
Lean's Float is IEEE 754 double, same as Python's. But: Float does not have decidable equality and arithmetic isn't pure (NaN, ±0). Heavily prefer Int if the Python contract allows integer reasoning.
If a spec must talk about Float, name the floating-point assumption explicitly in spec_helper_* and flag with @review human.
Python for c in s iterates Unicode code points. Lean's String API has String.toList : String → List Char — use that, not String.length for character counts (which counts UTF-8 bytes in some configurations).
dict orderingPython 3.7+ guarantees insertion order on dict. Lean's Std.HashMap does not. If insertion order is observable in the spec, translate to AssocList Key Value (preserves order, less efficient — but specs care more).
Python tolerates moderate recursion via tail-call-stack tricks; Lean prefers partial def or a structurally-decreasing recursive definition. Long-running iterative algorithms in Python often need refactoring as Nat.rec / List.foldl in Lean.
print / input / file I/OThese APIs have no place in the benchmark. Skip them and add an @review human annotation in the manifest noting the omission. If a spec actually depends on a side effect (rare in benchmark code), discuss with the curator.
Python raise ValueError(...) becomes one of:
Option α returning none on the error path,Except String α returning Except.error msg,if not_valid then panic! "msg" else … (avoid — panic! is unsafe),Always prefer Option / Except for total functions. If the function signature already has a clear "failure" value (e.g., negative for "not found"), reuse that rather than introducing a new wrapper.
Specs must constrain both sides when the source distinguishes success and failure. A success-only postcondition can be vacuous for an implementation that rejects too often.
lenPython len(lst) is lst.length in Lean for List / String. For dict, the equivalent depends on the chosen Lean type:
| Python | AssocList | Std.HashMap |
|---|---|---|
len(d) | d.keys.length | d.size |
Python's def f(x=[]) mutable-default pitfall does not exist in Lean (default args are re-evaluated). Don't translate guard logic that exists only to defend against this.
selfPython class Foo: def bar(self, x): … translates to a free function def Foo.bar (self : Foo) (x : T) : U, with self as the first parameter. Manifest API name is Foo.bar (or bar if the class is the package's primary type).
__init__ / constructionPython __init__ is the constructor. Lean's structure Foo already gives you Foo.mk (anonymous constructor). Translate __init__ body that does work beyond field-assignment as a separate def Foo.init (...) : Foo.
Most decorators (@property, @cached_property, @staticmethod, @classmethod) lose meaning in Lean. Translate the underlying function and document with @review human if the decorator semantics matter.
def gen(): yield x; yield y translates to def gen : List T := [x, y] for finite generators. Infinite generators need a different model (lazy list, stream) — flag with @review human.
typing.List, typing.Dict, etc. are erased — use the Lean equivalent of the parameterized type. typing.Any is a curator-level red flag — usually means the function body has multiple shapes; translate each shape as a separate Lean function or use a tagged union.
*args / **kwargsVariadic args translate to a List T parameter. Keyword args translate to explicit named parameters in Lean. If the Python signature is genuinely dynamic, flag as @review human — the spec probably needs a different shape.
© sunblaze-ucb, 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/vero-python-pitfalls of sunblaze-ucb/vero.
Open the folder on GitHubat commit 0a7325d
Vero Python Pitfalls 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 |
|---|---|---|---|---|---|---|
| Vero Python Pitfalls this skillsunblaze-ucb/vero | 107 | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| China Travel Kittczyliu/china-travel-kit | 194 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Technology Searchfreestylefly/wesight | 943 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Translate Popython/python-docs-zh-tw | 284 | — | ~793 | Automated safety check: Pass | Custom licence | |
| Obs Build LogsNuitka/Nuitka | 15k | — | ~849 | Automated safety check: Pass | AGPL-3.0 | |
| Update Gui TranslationsArduPilot/MethodicConfigurator | 163 | — | ~1.5k | Automated safety check: Pass | GPL-3.0 |
tczyliu/china-travel-kit
Research and plan first-time independent trips in China with bilingual, source-aware city data and official live-check entry points.
freestylefly/wesight
Search tech blogs, developer forums, and IT media (TechCrunch, Hacker News, 36氪, etc.) for software and hardware industry updates with heat ranking and EN↔CN translation.
python/python-docs-zh-tw
Translates PO file entries from English to Traditional Chinese (zhTW) following project conventions.
Nuitka/Nuitka
Access and diagnose openSUSE Build Service (OBS) package build logs.
ArduPilot/MethodicConfigurator
Update existing GUI translations using AI assistance. An agent skill from ArduPilot/MethodicConfigurator.
python/python-docs-zh-tw
Checks terminology consistency against project glossary and identifies zhCN terms that need conversion to zhTW.
sunblaze-ucb/vero
A skill your agent uses when scanning a verified source repo (Dafny, Verus, or Coq) to classify every item and produce per-file discovery markdown for human curation.
sunblaze-ucb/vero
A skill your agent uses when translating selected verified items from Dafny/Verus/Coq into a compilable Lean 4 benchmark.
sunblaze-ucb/vero
Load BEFORE translating any Coq item to Lean 4 to avoid known Coq→Lean pitfalls.
sunblaze-ucb/vero
Load BEFORE translating any Dafny item to Lean 4 to avoid known Dafny→Lean pitfalls.
sunblaze-ucb/vero
Load BEFORE writing any Lean 4 translation to avoid common Lean pitfalls (universes, coercions, type-class resolution, notation).
sunblaze-ucb/vero
Use after vero-select to write a detailed translation plan as .vero/plan.json — the authoritative contract the TRANSLATE stage executes.
Works with
Categories
Load BEFORE translating any Python item to Lean 4 to avoid known Python→Lean pitfalls. Vero Python Pitfalls is an agent skill from sunblaze-ucb/vero. Load BEFORE translating any Python item to Lean 4 to avoid known Python→Lean pitfalls.
Vero Python Pitfalls fits situations like: tasks that involve Translation.
Run `npx skills add sunblaze-ucb/vero --skill vero-python-pitfalls -a claude-code`. Or copy the skill folder (.claude/skills/vero-python-pitfalls in sunblaze-ucb/vero) into .claude/skills/vero-python-pitfalls in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sunblaze-ucb/vero --skill vero-python-pitfalls -a codex`. Or copy the skill folder (.claude/skills/vero-python-pitfalls in sunblaze-ucb/vero) into .agents/skills/vero-python-pitfalls 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 sunblaze-ucb/vero --skill vero-python-pitfalls -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vero-python-pitfalls, .gemini/skills/vero-python-pitfalls, .github/skills/vero-python-pitfalls and .opencode/skills/vero-python-pitfalls in your project.
SKILL.md names no scripts, command-line tools or credentials: Vero Python Pitfalls is instructions for the agent only. Our summary lists: Python 3.
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.
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.
Vero Python Pitfalls 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 1.7k tokens (SKILL.md is roughly 6.7k 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 Vero Python Pitfalls: China Travel Kit (tczyliu/china-travel-kit, 194 stars), Technology Search (freestylefly/wesight, 943 stars), Translate Po (python/python-docs-zh-tw, 284 stars) and Obs Build Logs (Nuitka/Nuitka, 15k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sunblaze-ucb (a GitHub organization) maintains it in sunblaze-ucb/vero, which has 107 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on August 17, 2026.
Source: sunblaze-ucb/vero on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.