"Maintain the DVC repository itself: source layout, CLI command
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill repo-development --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Repo Development?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-repo-development-cf54083b)More formats (shields.io, HTML) on the badges page.
---
name: repo-development
description: "Maintain the DVC repository itself: source layout, CLI command
internals, focused test selection, optional dependency boundaries, lint/type
config, and contribution pitfalls."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
---
# DVC Repository Development
Use this sub-skill when an agent is editing the DVC codebase rather than using DVC in an end-user project. It covers package layout, command implementation patterns, focused tests, optional dependency boundaries, and local quality checks for safe maintainer workflows.
## Start Here
1. Identify the changed surface: CLI parser/command class, `Repo` method, Python API helper, filesystem/remote backend, config/schema, testing fixture, or docs-only change.
2. Read `references/development-guide.md` for the code layout, entry points, packaging facts, and command implementation flow before editing.
3. Use `scripts/select_tests.py` with changed file paths to propose focused pytest targets and marker exclusions without running tests.
4. Read `references/test-selection.md` before running tests; prefer narrow unit/functional targets and skip opt-in network, Studio, and VSCode contract markers unless explicitly needed.
5. Read `references/troubleshooting.md` when imports, optional backends, parser errors, config validation, or DVC test fixtures fail.
## Maintainer Defaults
- Console entry point is `dvc = dvc.cli:main`; in this checkout `dvc.cli` is a package and the main implementation is `dvc/cli/__init__.py`.
- CLI commands are registered from `dvc/cli/parser.py`, implemented under `dvc/commands/`, and usually delegate business logic to `dvc/repo/`.
- Tests are not part of setuptools packages (`tests`, `tests.*` excluded; namespaces disabled), so runtime code must not import `tests.*`.
- Optional remote extras such as `azure`, `gdrive`, `gs`, `hdfs`, `oss`, `s3`, `ssh`, `webdav`, and `webhdfs` are not installed by default.
- Do not run the full test suite by default; start with focused paths and marker exclusions.
## Bundled References
- `references/development-guide.md` explains source layout, package metadata, command wiring, editable install expectations, and local quality tooling.
- `references/test-selection.md` maps common changed files to focused test targets, marker policy, and safe no-network commands.
- `references/troubleshooting.md` covers dependency/import failures, parser errors, optional extras, flaky network/Studio tests, config warnings, and fixture mistakes.
- `scripts/select_tests.py` prints suggested pytest targets and marker exclusions from changed paths; it never imports DVC or runs pytest.
## Routing Notes
- Route end-user data tracking, stages, `dvc repro`, and pipeline operation to `../data-and-pipelines/SKILL.md`.
- Route end-user remotes, cache behavior, `push`/`pull`/`fetch`, and storage credentials to `../remotes-and-cache/SKILL.md`.
- Route metrics, params, and plots usage to `../metrics-params-plots/SKILL.md`.
- Route experiment workflows to `../experiments/SKILL.md`.
- Route public Python API usage (`dvc.api`, `DVCFileSystem`, `Repo` automation) to `../python-api/SKILL.md` unless the task is about changing those APIs inside the DVC repo.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!