Agent skill

Wannierization

by joselado in joselado/pyqula

pyqula's Wannierization (wanniertk/), what h.getwannierhamiltonian() returns, the disentanglement window keywords and which combinations raise NotImplementedError, and the bundled pure-Python…

GPL-3.0Auto-check passed

Install Wannierization

skills CLI
$ npx skills add joselado/pyqula --skill wannierization -a claude-code

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

GitHub CLI
$ gh skill install joselado/pyqula wannierization --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/joselado/pyqula.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/wannierization .claude/skills/wannierization && 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
wannierization
GitHub stars
145
Token cost
~1.2k tokens
SKILL.md length
547 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
GPL-3.0

At a glance

pyqula's Wannierization (wanniertk/), what h.getwannierhamiltonian() returns, the disentanglement window keywords and which combinations raise NotImplementedError, and the bundled pure-Python…

  • SKILL.md covers What get_wannier_hamiltonian…, The default initial guess, Where the hoppings sit and Disentanglement, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Wannierization is an agent skill from joselado/pyqula. pyqula's Wannierization (wanniertk/), what h.getwannierhamiltonian() returns, the disentanglement window keywords and which combinations raise NotImplementedError, and the bundled pure-Python wannierpy port. Load this before working on anything under src/pyqula/wanniertk/, before changing or calling getwannierhamiltonian, and whenever a task mentions Wannier functions, Wannier90, disentanglement, frozen windows, numwann, or building a smaller real-space Hamiltonian that reproduces a subset of bands.

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

It works with Python. The repository describes itself as: Python library to compute properties of quantum tight binding models, including topological, electronic and magnetic properties and including the effect of many-body interactions. The licence is GPL-3.0.

Example prompts

  • “/wannierization”

Requirements

  • Python 3

What it can do on your machine

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

    Links to these hosts (documentation or services it may open):

    • github.com

    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

Wannierization loads about 1.2k tokens when it runs. Until then it costs about 131 tokens; SKILL.md has 547 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~131
When it runs · the whole SKILL.md, loaded when a task matches
~1.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 joselado/pyqula at commit a61709a, republished under its GPL-3.0 licence (© joselado). 547 words, ~1,173 tokens.

Download SKILL.mdSave it as .claude/skills/wannierization/SKILL.md (or your agent's skills folder).
name
wannierization
description
pyqula's Wannierization (wanniertk/), what h.get_wannier_hamiltonian() returns, the disentanglement window keywords and which combinations raise NotImplementedError, and the bundled pure-Python wannierpy port. Load this before working on anything under src/pyqula/wanniertk/, before changing or calling get_wannier_hamiltonian, and whenever a task mentions Wannier functions, Wannier90, disentanglement, frozen windows, num_wann, or building a smaller real-space Hamiltonian that reproduces a subset of bands.

Wannierization

What get_wannier_hamiltonian does

h.get_wannier_hamiltonian(bands=[a,b], nk=...) (src/pyqula/wanniertk/wannierize.py) Wannierizes a fixed, contiguous range of h's bands -- 0-indexed, both ends inclusive, Wannierized jointly as one group -- and returns a new, smaller multicell Hamiltonian whose real-space hoppings exactly reproduce that band subspace on the wannierization k-mesh.

The default initial guess

Without trial_vectors=, the minimization starts from num_wann of h's own orbitals, the ones the SCDM column selection (Damle, Lin and Ying, arXiv:1507.03354) picks for the selected bands on the mesh (_default_trial_vectors), in ascending orbital order (the identity for a full manifold). It is deterministic, so repeated calls give the same Wannier functions. Do not go back to a random draw: for the gapped honeycomb valence band it stopped in a local minimum (spread 2.5 instead of 0.32) in a quarter of the calls (tests/wannier/test_default_trial_vectors.py). Disentanglement picks from the frozen window instead (_default_disentanglement_trial_vectors), and Nambu Hamiltonians keep their own defaults (identity for the full manifold, electron-hole-paired orbitals otherwise).

Where the hoppings sit

The mesh fixes each hopping only up to a translation by the nk supercell, so _mesh_to_real_space puts them on the cells of the Wigner-Seitz cell of that supercell (real lattice metric, _wigner_seitz_cells), each divided by its degeneracy ndegen: Wannier90's hamiltonian_wigner_seitz construction, with the same cells as the bundled port wannierpy/_engine/ws_vectors.py but found class by class, so it also covers a skewed, anisotropic supercell (nk=[12,2] on the honeycomb lattice) where Wannier90's two-supercell search, and the port, fail. The cell set is inversion symmetric, so H_wan(k) is Hermitian at every k. Do not go back to a plain fftfreq box of cells: for an even nk it holds R=-nk/2 without +nk/2, and H_wan(k) off the mesh is not Hermitian (tests/wannier/test_wigner_seitz_hoppings.py).

wannier_functions is different on purpose (_mesh_to_wannier_functions): a Wannier function is a function, so every class of cells appears once (the fftfreq box), since splitting an amplitude over degenerate images would break its normalization. Wannier90's use_ws_distance refinement (the Wigner-Seitz test on R + tau_n - tau_m per pair of Wannier functions) is not implemented; it only matters for several Wannier functions centred far apart within the cell.

How far the interpolation between mesh points is converged depends on the Wannier functions, not on these cells: a band group that comes close to the rest of the spectrum somewhere (the low-energy BdG pair of a chain with a small gap to the next band) has wide Wannier functions and needs a dense mesh, and its wannier_spread_total keeps growing with nk until the mesh resolves that region.

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

Disentanglement

Passing num_wann= smaller than the selected range, together with the dis_win_min, dis_win_max, dis_froz_min and dis_froz_max window keywords, turns on Souza-Marzari-Vanderbilt disentanglement, which the bundled port already implements.

Outside a frozen window the reproduction is of the optimal subspace rather than exact. That is the correct behaviour and what the tests assert -- do not treat it as a bug to fix.

Disentanglement combined with has_eh, symmetries= or auto_split_clusters raises NotImplementedError naming the combination.

The backend

It is built on wannierpy's pure-Python Wannier90 port, bundled directly in this repo at src/pyqula/wanniertk/wannierpy/. There is no Fortran source and no compiled extension: the pure-Python backend needs neither, and its only dependency is numpy, which pyqula already requires. wannierize.py imports it normally, not as an optional backend.

Where to look

  • examples/wannier/get_wannier_hamiltonian/main.py -- a runnable demo
  • tests/wannier/ -- correctness tests, exact-reproduction checks against the original spectrum

© joselado, GPL-3.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/wannierization of joselado/pyqula.

Open the folder on GitHubat commit a61709a

Compare with similar skills

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

Wannierization compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Wannierization this skilljoselado/pyqula145—~1.2kAutomated safety check: PassGPL-3.0
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0
PDF Processinganthropics/skills180k47 repos~2kAutomated safety check: PassProprietary
NotebookLM Research AssistantPleasePrompto/notebooklm-skill7.8k14 repos~2.4kAutomated safety check: NotesMIT
Manim Video Productionbrowser-use/video-use29k6 repos~3kAutomated safety check: PassMIT
PPT Masterhugohe3/ppt-master59k1 repos~2.5kAutomated safety check: PassMIT

Similar skills

  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • PDF Processing

    anthropics/skills

    Official

    Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.

    180k GitHub starsUsed in 47 repos~2k tokens
    Documents & OfficeAuto-check passed
  • NotebookLM Research Assistant

    PleasePrompto/notebooklm-skill

    Lets Claude Code ask questions of your Google NotebookLM notebooks through browser automation and return answers grounded in your uploaded sources.

    7.8k GitHub starsUsed in 14 repos~2.4k tokens
    Knowledge ManagementAuto-check: notes
  • Manim Video Production

    browser-use/video-use

    Produces math and technical explainer videos with Manim Community Edition: concept animations, equation derivations, algorithm walkthroughs and data stories.

    29k GitHub starsUsed in 6 repos~3k tokens
    Media & CreativeAuto-check passed
  • PPT Master

    hugohe3/ppt-master

    Generates editable PowerPoint decks, rebuilds slides from images, fills .pptx templates and polishes existing presentations through routed workflows.

    59k GitHub starsUsed in 1 repo~2.5k tokens
    Documents & OfficeAuto-check passed
  • Scikit Learn

    zLanqing/codex-claude-academic-skills

    Machine learning in Python with scikit-learn. An agent skill from zLanqing/codex-claude-academic-skills.

    4.7k GitHub starsUsed in 16 repos~3.9k tokens
    Data & AnalyticsAuto-check passed

More from joselado/pyqula

  • Refresh Docs

    joselado/pyqula

    Refresh pyqula's documentation after a change - recount the test suite, propagate every number that moved, re-run the static user-guide checks, and rebuild documentation/userguide.pdf.

    145 GitHub stars~816 tokensUpdated 3 days ago
    Auto-check passed
  • Error Conventions

    joselado/pyqula

    How pyqula raises errors -- which exception type for which failure, the registries behind string-selected options (mode=, solver=, channel=, operator names), and the shared Hilbert-space guards in…

    145 GitHub stars~1.1k tokensUpdated 3 days ago
    Auto-check passed
  • New Feature

    joselado/pyqula

    The completeness checklist for adding a user-facing feature to pyqula - where the implementation goes, what kind of test it needs, and the five documentation surfaces that must move with it.

    145 GitHub stars~1.4k tokensUpdated 3 days ago
    Auto-check passed
  • GPU Backend

    joselado/pyqula

    pyqula's CPU/GPU switch (src/pyqula/gpu.py), how a routine is routed onto the device, per-call precision, and the tiered porting plan in documentation/gpuportingplan.md.

    145 GitHub stars~679 tokensUpdated 3 days ago
    Auto-check passed
  • User Guide Voice

    joselado/pyqula

    The maintainer's writing voice for documentation/userguide.md -- the three registers (chapter prose, section intros, catalogue bullets), the spelling decisions, what not to write, and which chapters…

    145 GitHub stars~985 tokensUpdated 3 days ago
    Auto-check passed

Works with

Questions about Wannierization

What does Wannierization do?

pyqula's Wannierization (wanniertk/), what h.getwannierhamiltonian() returns, the disentanglement window keywords and which combinations raise NotImplementedError, and the bundled pure-Python…. Wannierization is an agent skill from joselado/pyqula.getwannierhamiltonian() returns, the disentanglement window keywords and which combinations raise NotImplementedError, and the bundled pure-Python wannierpy port.

How do I install Wannierization in Claude Code?

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

How do I install Wannierization in Codex?

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

Can I use Wannierization 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 joselado/pyqula --skill wannierization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wannierization, .gemini/skills/wannierization, .github/skills/wannierization and .opencode/skills/wannierization in your project.

What does Wannierization need to run?

SKILL.md names no scripts, command-line tools or credentials: Wannierization is instructions for the agent only. Our summary lists: Python 3.

Does Wannierization access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Wannierization 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 Wannierization use?

Wannierization is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Wannierization use?

About 1.2k tokens (SKILL.md is roughly 4.7k 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 Wannierization?

Skills that share tags, products or a category with Wannierization: MCP Server Builder (anthropics/skills, 180k stars), PDF Processing (anthropics/skills, 180k stars), NotebookLM Research Assistant (PleasePrompto/notebooklm-skill, 7.8k stars) and Manim Video Production (browser-use/video-use, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Wannierization?

joselado (a GitHub user) maintains it in joselado/pyqula, which has 145 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 7, 2026.

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