pv-migrate is a command-line tool and kubectl plugin that moves or backs up data stored in Kubernetes PersistentVolumeClaims, which are Kubernetes objects connected to persistent storage. It is for operators who need to transfer claim data between namespaces, clusters, or supported bucket-storage systems. Catalogue add-ons help coding agents operate the tool.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/utkuozdemir/pv-migrate/copilot-instructionsgit clone --depth 1 https://github.com/utkuozdemir/pv-migrateWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/utkuozdemir/pv-migrate/copilot-instructions)<a href="https://agentmods.dev/instructions/utkuozdemir/pv-migrate/copilot-instructions"><img src="https://agentmods.dev/badge/instructions/utkuozdemir/pv-migrate/copilot-instructions.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00674 | $0.00674 |
| Opus 5 | $0.00337 | $0.00337 |
| Sonnet 5 | $0.00135 | $0.00135 |
| Haiku 4.5 | $0.00067 | $0.00067 |
Grade A, and why
pv-migrate copilot-instructions.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Copilot instructions
Read AGENTS.md in the repository root first. It is the project guide, and everything below is only the short version for when you have not opened it.
- The rsync and rclone commands are built in Go as shell strings that the embedded Helm chart interpolates into a
sh -cscript inside a YAML block scalar. Every path, host and spec that goes into one is quoted as a single shell word byinternal/shell, and a value containing a character YAML will not carry on one line is rejected rather than quoted, because it would break the chart's rendering instead of the command.extraArgsis the one deliberate exception and stays raw. - A user-supplied
--source-pathor--dest-pathis resolved against the container's mount point and must stay inside it.--dest-path ../would otherwise name the container's root, which rsync writes to and, with the delete flag, deletes from. - The operation ID's length limit is set by Helm's 53-character release name limit, not Kubernetes' 63. It lives in
internal/opidand is checked by a test that hands the worst-case names to Helm's own validator. - The Helm chart in
internal/helm/pv-migrateis embedded in the binary, so editing a template is a code change. ItsREADME.mdis generated from the comments invalues.yamlby helm-docs, anddocs/cli-reference.mdis generated from the commands' help output. Never edit either by hand: runtask generate-all, which CI checks for drift. - Progress is scraped from the job pod's log because neither data mover has a progress API. A parsed update must have a percentage between 0 and 100 and a total no smaller than what has been transferred. An estimated total is corrected up to meet that; a number the mover states outright and that cannot satisfy it makes the line refused instead, since a fabricated 100% reads as a finished transfer. The two parsers refuse different things because they read different formats: a percentage above 100 does not match rsync's pattern, and a negative byte count is only expressible in rclone's typed JSON.
- Verify with
task test(which also replays the fuzz seed corpora) andtask lint. The integration suites are behind build tags and need real clusters. - Commits follow the conventional-commit format (
type(scope): imperative description) with a body explaining what changed and why, and carry a DCO sign-off. A behaviour fix belongs in afix:commit even when it arrives with the tests that found it, because the changelog is grouped on the type. One commit per pull request is strongly preferred, and its title and body are then the pull request's title and description verbatim, minus the sign-off trailer. Commits are deliberately not cryptographically signed, because a signature does not survive the rebase or squash that lands a change, so do not add-S. Release tags are the exception:task releasesigns them and the release workflow refuses an unverified tag. Do not add AI attribution of any kind, such as "generated with" lines or AI co-author trailers.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed · +22 tokens per session cf54e52604eb
- 6d ago First seen · 12 lines · 652 tokens per session scan A 0f736f7a7f51
pv-migrate copilot-instructions.md is an instructions file published in the GitHub repository utkuozdemir/pv-migrate (2,401 stars, last pushed 2d ago), licensed Apache-2.0. It adds 674 tokens to every session, about $0.0034 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
dsh-config-manager AGENTS.md
AGENTS.md instructions for xiajiajun516/dsh-config-manager, covering agents.md — dsh config manager 仓库协作指南, 🌐 语言, 📦 概览, 🗂️ 结构与分层 and ui 分层铁律.
timoni AGENTS.md
AGENTS.md instructions for stefanprodan/timoni, covering agents.md, what timoni is, common commands, architecture and cmd/timoni/ — cli (cobra).
siclaw AGENTS.md
AGENTS.md instructions for scitix/siclaw, covering siclaw project instructions, project shape, before risky edits, verification and stable boundaries.
aks-mcp copilot-instructions.md
Copilot instructions for Azure/aks-mcp, covering copilot instructions, project overview, architecture, high-level structure and key components.
infra CLAUDE.md
Claude Code instructions for anthr76/infra, covering claude.md, repository overview, development environment, common commands and task automation.
mcp-ssh-manager CLAUDE.md
Claude Code instructions for bvisible/mcp-ssh-manager, covering claude.md, project overview, architecture, commands and setup and installation.