veomni-uv-update
Use this skill when updating dependencies managed by uv: bumping a package version, upgrading the uv tool itself, updating torch/CUDA stack, switching transformers version, or regenerating the lockfile. Trigger: 'update dependency', 'bump version', 'upgrade uv', 'update torch', 'update lockfile', 'uv sync fails'.
Best use case
veomni-uv-update is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use this skill when updating dependencies managed by uv: bumping a package version, upgrading the uv tool itself, updating torch/CUDA stack, switching transformers version, or regenerating the lockfile. Trigger: 'update dependency', 'bump version', 'upgrade uv', 'update torch', 'update lockfile', 'uv sync fails'.
Teams using veomni-uv-update should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/veomni-uv-update/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How veomni-uv-update Compares
| Feature / Agent | veomni-uv-update | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use this skill when updating dependencies managed by uv: bumping a package version, upgrading the uv tool itself, updating torch/CUDA stack, switching transformers version, or regenerating the lockfile. Trigger: 'update dependency', 'bump version', 'upgrade uv', 'update torch', 'update lockfile', 'uv sync fails'.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
## Before You Start
Read `.agents/knowledge/uv.md` for the full dependency architecture. The key things that make VeOmni's uv setup non-trivial:
- uv version is pinned in **three places** (must update together)
- torch uses **direct wheel URLs** (not just version bumps)
- hardware extras (`gpu`, `npu`, `npu_aarch64`) are **mutually conflicting**
## Scenario 1: Update uv Version
uv is pinned to a specific version. Update **all three locations** together:
1. `pyproject.toml` -> `[tool.uv]` -> `required-version = "==X.Y.Z"`
2. `docker/cuda/Dockerfile.cu129` -> `COPY --from=ghcr.io/astral-sh/uv:X.Y.Z`
3. `docker/ascend/Dockerfile.ascend_*` -> same pattern (if present)
Then regenerate the lockfile:
```bash
uv lock
uv sync --extra gpu --dev
```
Verify the lockfile diff is reasonable (`git diff uv.lock` — should only show version changes, not wholesale rewrites).
## Scenario 2: Update a Regular Dependency
1. Edit version constraint in `pyproject.toml` under `[project.dependencies]` or the relevant `[project.optional-dependencies]` extra.
2. Regenerate lockfile and sync:
```bash
uv lock
uv sync --extra gpu --dev
```
3. Run tests: `pytest tests/`
4. Commit both `pyproject.toml` and `uv.lock` together.
## Scenario 3: Update torch / CUDA Stack
This is the most complex update. torch versions are pinned in **multiple places**:
**For GPU (`gpu` extra):**
- `pyproject.toml` -> `[project.optional-dependencies]` -> `gpu` list
- `pyproject.toml` -> `[tool.uv]` -> `override-dependencies` (the `extra == 'gpu'` entries)
- `pyproject.toml` -> `[tool.uv.sources]` -> `torch` (direct wheel URL — must update to matching wheel)
- Related packages: `torchvision`, `torchaudio`, `torchcodec`, `nvidia-cudnn-cu12`
**For NPU (`npu` / `npu_aarch64` extras):**
- Same pattern but with `+cpu` suffix or no suffix
**Steps:**
1. Identify the target torch version and matching wheel URLs from https://download.pytorch.org/whl/
2. Update all pinned versions in `pyproject.toml` (extras, overrides, sources)
3. Check `flash-attn` / `flash-attn-3` wheel compatibility — these are tied to specific torch versions via direct URLs in `[tool.uv.sources]`
4. Update `torchcodec` version if needed (compatibility note in pyproject.toml)
5. Regenerate lockfile:
```bash
uv lock
uv sync --extra gpu --dev
```
6. Run tests: `pytest tests/`
7. Update Docker images if torch version changed
## Scenario 4: Update transformers Version
transformers uses a **dual-track** setup: default `4.57.3` (group `transformers-stable`) and experimental `5.2.0` (extra `transformers5-exp`), declared as conflicts in `[tool.uv.conflicts]`.
**Bump within a track** (e.g. 4.57.3 → 4.58.0, or 5.2.0 → 5.3.0):
1. Edit the pinned version in the relevant section of `pyproject.toml`:
- Stable: `[dependency-groups]` -> `transformers-stable`
- Experimental: `[project.optional-dependencies]` -> `transformers5-exp`
2. Regenerate lockfile and sync:
```bash
uv lock
# Stable:
uv sync --extra gpu --dev
# Or v5:
uv sync --no-group transformers-stable --extra transformers5-exp --extra gpu --dev
```
3. Check for API breakage — key v4→v5 differences:
- `AutoModelForVision2Seq` removed (use `AutoModelForImageTextToText`)
- `no_init_weights` moved from `transformers.modeling_utils` to `transformers.initialization`
- Model `__init__.py` version gates: `is_transformers_version_greater_or_equal_to("5.0.0")` chooses `generated/` (v5) vs upstream + `apply_*_patch()` (v4)
- Some models (e.g. `qwen3_5`, `glm_moe_dsa`) only register on `>= 5.2.0`
4. Run tests: `pytest tests/models/ tests/e2e/`
5. Regenerate model patches if needed: `make patchgen` (with the target transformers installed)
## Scenario 5: Regenerate Lockfile Only
When `uv.lock` is out of sync or corrupt:
```bash
uv lock
uv sync --extra gpu --dev
```
If `uv lock` fails due to version conflicts, check:
- `[tool.uv]` -> `conflicts` declarations
- `override-dependencies` markers
- Direct wheel URL availability
## Common Pitfalls
- **Forgetting to update Docker**: uv version and torch version changes must be reflected in `docker/` Dockerfiles, otherwise CI builds will fail.
- **Partial torch updates**: updating `torch` but not `torchvision`/`torchaudio`/`torchcodec` to matching versions causes import errors.
- **flash-attn wheel mismatch**: flash-attn wheels are built for specific torch+CUDA combinations. A torch version bump requires finding or building new wheels.
- **Committing only pyproject.toml**: always commit `uv.lock` together. Docker builds use `--locked` which requires the lockfile to match.
- **override-dependencies markers**: the `extra == 'gpu'` markers in overrides are critical. Removing them causes uv to download wrong torch variants from PyPI.
- **no-build-isolation**: `flash-attn` and `flash-attn-3` are listed under `no-build-isolation-package`. They require torch to be installed first. If sync fails, try `uv sync` without these extras first, then add them.Related Skills
veomni-review
Use this skill before committing ANY code change — this is a mandatory gate in the commit flow. Also trigger proactively when: you've made changes across multiple files and want to check consistency, you're unsure if a fix is safe, a change touches shared infrastructure (BaseTrainer, distributed, model loading, data pipeline), or a change is larger than a few lines. The review launches a subagent that checks implementation quality, multi-file consistency, and known constraint violations, then rates the change as safe/needs-attention/risky.
veomni-new-op
Use this skill when adding a new optimized kernel or operator to veomni/ops/. Covers the full lifecycle: understanding VeOmni's ops architecture (monkey-patch + global function pointer pattern), implementing the kernel, registering it, adding tests, and documenting it. Trigger: 'add op', 'new kernel', 'add attention variant', 'new fused op', 'add triton kernel', 'optimize operator'.
veomni-new-model
Use this skill when adding support for a new model to VeOmni. Covers the full lifecycle: analyzing the HuggingFace model, creating model patches, defining parallel plans, writing configs, integrating with the trainer, and testing. Trigger: 'add model', 'support new model', 'integrate <model_name>', 'new model support'.
veomni-develop
VeOmni-specific checklist for feature development and refactoring. Covers impact analysis across modalities, trainer hierarchy, data pipeline, and distributed code. Use before implementing any non-trivial change. For model-specific or ops-specific work, use veomni-new-model or veomni-new-op instead. Trigger: 'add feature', 'implement', 'refactor', 'reorganize', 'new capability'.
veomni-debug
Use this skill for ANY bug, error, crash, wrong output, loss divergence, gradient explosion, test failure, CUDA error, distributed training hang, checkpoint load failure, or unexpected behavior. Covers both quick fixes (clear root cause) and complex debugging (unclear cause). Trigger: 'fix bug', 'fix error', 'broken', 'crash', 'doesn't work', 'fails with', 'loss NaN', 'training hangs', 'FSDP error', 'OOM'.
create-pr
Create a pull request for the current branch. Handles uncommitted changes, generates a PR title matching the `[{modules}] {type}: {description}` format enforced by CI, and fills in the PR description template. Trigger: 'create pr', 'open pr', 'submit pr', 'make pr'.
claude-win11-speckit-update-skill
Windows 11 system management
Investor Update Generator
Generate professional monthly/quarterly investor updates that keep stakeholders informed and build trust.
update-deps
Update all dependencies across frontend and backend projects. Reads changelogs for breaking changes, checks affected code, runs tests, and provides a summary. Use when updating npm dependencies across the monorepo.
speckit-updater
SpecKit Safe Update
update-specification
Update an existing specification file for the solution, optimized for Generative AI consumption based on new requirements or updates to any existing code.
update-markdown-file-index
Update a markdown file section with an index/table of files from a specified folder.