pv-migrate copilot-instructions.md

pv-migrate copilot-instructions.md is an instructions file for GitHub Copilot from utkuozdemir/pv-migrate. It costs 674 tokens per session, scanned A, original, Apache-2.0.

Repository instructions for pv-migrate, a tool that moves persistent storage between systems using rsync, rclone, and Helm charts. They tell the coding agent to read the project's AGENTS.md guide first and follow its safety rules.

In plain words
What is it for?
Use them when changing pv-migrate code, especially command construction, path handling, operation IDs, or its embedded Helm chart.
Why use it?
They reduce the risk of unsafe shell commands, invalid Helm output, paths escaping the container mount, and operation names that Helm cannot accept.

Instructions file for GitHub Copilot

Written for GitHub Copilot: a Copilot instructions file. Also seen: mentions AGENTS.md.

About the project

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.

utkuozdemir/pv-migrate · 2,401 stars · on GitHub

Install

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.

agentmods
npx agentmods add instructions/utkuozdemir/pv-migrate/copilot-instructions
Clone the repo
git clone --depth 1 https://github.com/utkuozdemir/pv-migrate

Made for: GitHub Copilot.

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

agentmods badge for pv-migrate copilot-instructions.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/utkuozdemir/pv-migrate/copilot-instructions.svg)](https://agentmods.dev/instructions/utkuozdemir/pv-migrate/copilot-instructions)
Your own site
<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>
Per session 674 This file is loaded in full into every session.
When invoked 674 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 2d ago against content hash cf54e52604eb, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

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.

.github/copilot-instructions.md · 12 lines

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 -c script inside a YAML block scalar. Every path, host and spec that goes into one is quoted as a single shell word by internal/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. extraArgs is the one deliberate exception and stays raw.
  • A user-supplied --source-path or --dest-path is 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/opid and is checked by a test that hands the worst-case names to Helm's own validator.
  • The Helm chart in internal/helm/pv-migrate is embedded in the binary, so editing a template is a code change. Its README.md is generated from the comments in values.yaml by helm-docs, and docs/cli-reference.md is generated from the commands' help output. Never edit either by hand: run task 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) and task 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 a fix: 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 release signs 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.
Changes

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.

  1. 2d ago Changed · +22 tokens per session cf54e52604eb
  2. 6d ago First seen · 12 lines · 652 tokens per session scan A 0f736f7a7f51

Subscribe to this mod's changes

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.