nvcf / nvstor
AGENTS.md261 starsChanged 9 days agoApache-2.0View on GitHub
Rules for anyone changing this tree, people and coding agents alike. They exist because this directory is published as open source. - No measured results. Documents, comments, help text and test names carry no throughput, latency, run duration, speedup or other figure from a run on any hardware, and do not name the hardware a test ran on. State what a measurement showed qualitatively ("a copy is bounded by the destination's disk") and give the evidence level ("validated on RDMA…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,700 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository133 other files it gives its agents.
- AGENTS.mdAGENTS.md
- ai-tooling/AGENTS.mdAGENTS.md
- deploy/helm/cassandra/AGENTS.mdAGENTS.md
- deploy/helm/cert-manager/AGENTS.mdAGENTS.md
- deploy/helm/cloud-functions/AGENTS.mdAGENTS.md
- deploy/helm/cloud-tasks/AGENTS.mdAGENTS.md
- deploy/helm/encrypted-secret-store/AGENTS.mdAGENTS.md
- deploy/helm/icms/AGENTS.mdAGENTS.md
- deploy/helm/llm-request-router/AGENTS.mdAGENTS.md
- deploy/helm/nats/AGENTS.mdAGENTS.md
- deploy/helm/notary/AGENTS.mdAGENTS.md
- deploy/helm/nvcf-pki/AGENTS.mdAGENTS.md
- deploy/helm/openbao/AGENTS.mdAGENTS.md
- deploy/helm/vanity-gateway/AGENTS.mdAGENTS.md
- deploy/releases/AGENTS.mdAGENTS.md
- deploy/stacks/AGENTS.mdAGENTS.md
- deploy/stacks/observability/AGENTS.mdAGENTS.md
- deploy/stacks/stargate-dev/AGENTS.mdAGENTS.md
- deploy/stacks/stargate-dev/benchmark/AGENTS.mdAGENTS.md
- docs/AGENTS.mdAGENTS.md
- docs/overview/samples/scripts/AGENTS.mdAGENTS.md
- examples/AGENTS.mdAGENTS.md
- infra/cassandra/AGENTS.mdAGENTS.md
- infra/openbao/AGENTS.mdAGENTS.md
- infra/openbao/plugins/vault-plugin-secrets-jwt/AGENTS.mdAGENTS.md
- infra/openbao/tests/AGENTS.mdAGENTS.md
- migrations/cassandra/AGENTS.mdAGENTS.md
- migrations/openbao/AGENTS.mdAGENTS.md
- src/compute-plane-services/byoo-otel-collector/AGENTS.mdAGENTS.md
- src/compute-plane-services/ess-agent/AGENTS.mdAGENTS.md
- src/compute-plane-services/image-credential-helper/AGENTS.mdAGENTS.md
- src/compute-plane-services/nvca/AGENTS.mdAGENTS.md
- src/compute-plane-services/nvsnap/docs/AGENTS.mdAGENTS.md
- src/compute-plane-services/request-trace-uploader/AGENTS.mdAGENTS.md
- src/control-plane-services/admin-token-issuer-proxy/AGENTS.mdAGENTS.md
- src/control-plane-services/api-keys/AGENTS.mdAGENTS.md
- src/control-plane-services/cloud-functions/AGENTS.mdAGENTS.md
- src/control-plane-services/cloud-tasks/AGENTS.mdAGENTS.md
- src/control-plane-services/encrypted-secret-store/AGENTS.mdAGENTS.md
- src/control-plane-services/function-autoscaler/AGENTS.mdAGENTS.md
- src/control-plane-services/function-autoscaler/local_env/AGENTS.mdAGENTS.md
- src/control-plane-services/instance-cluster-management/AGENTS.mdAGENTS.md
- src/control-plane-services/nats-auth-callout/AGENTS.mdAGENTS.md
- src/control-plane-services/notary/AGENTS.mdAGENTS.md
- src/invocation-plane-services/grpc-proxy/AGENTS.mdAGENTS.md
- src/invocation-plane-services/http-invocation/AGENTS.mdAGENTS.md
- src/invocation-plane-services/llm-api-gateway/AGENTS.mdAGENTS.md
- src/invocation-plane-services/ratelimiter/AGENTS.mdAGENTS.md
- src/invocation-plane-services/vanity-gateway/AGENTS.mdAGENTS.md
- src/libraries/go/lib/AGENTS.mdAGENTS.md
- src/libraries/go/worker/AGENTS.mdAGENTS.md
- src/libraries/java/nv-boot-parent/AGENTS.mdAGENTS.md
- src/libraries/python/nv-cloud-function-helpers/AGENTS.mdAGENTS.md
- src/libraries/rust/nvcf-info/AGENTS.mdAGENTS.md
- src/libraries/rust/stargate/AGENTS.mdAGENTS.md
- src/uis/nvcf-ui/AGENTS.mdAGENTS.md
- src/uis/nvcf-ui/helm/AGENTS.mdAGENTS.md
- tests/bdd/AGENTS.mdAGENTS.md
- tools/AGENTS.mdAGENTS.md
- tools/docs-version-sync/AGENTS.mdAGENTS.md
- The first 60 shown.
The file
We split this AGENTS.md into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
No private references: No internal hosts, trackers, ticket or merge request numbers, private registries or organisation ids, cluster or …
- Very specific: line 25
License headers: Every source file starts with the NVIDIA SPDX Apache-2.0 header (the full block, as in any .rs file here).
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Working on nvstor
Rules for anyone changing this tree, people and coding agents alike. They exist because this directory is published as open source.
What may be published
- No measured results. Documents, comments, help text and test names carry no throughput, latency, run duration, speedup or other figure from a run on any hardware, and do not name the hardware a test ran on. State what a measurement showed qualitatively ("a copy is bounded by the destination's disk") and give the evidence level ("validated on RDMA hardware", "exercised with a real kernel client", "unit-tested only"). Configuration values and protocol constants (ports, sizes, limits, timeouts) are not results.
- No private references. No internal hosts, trackers, ticket or merge request numbers, private registries or organisation ids, cluster or node names, personal paths or addresses, or names of people or teams. Describe a deployment by what it is ("nodes with several RoCE NICs"), never by where it ran. Cite only files that are in this tree.
- Synthetic test data. Addresses in tests and examples are synthetic:
IPv6 from
fd00::/8or2001:db8::/32, IPv4 from192.0.2.0/24,198.51.100.0/24,203.0.113.0/24or private ranges with simple host numbers, MACs with the locally administered prefix02:00:00. - License headers. Every source file starts with the NVIDIA SPDX
Apache-2.0 header (the full block, as in any
.rsfile here). Third-party files keep their own license header and are listed inNOTICE. - No binaries except the rendered figures in
docs/figures/.
scripts/check-hygiene.py enforces these mechanically; run it before every
commit. Do not work around a hit by moving the same text to another file.
Dependencies
New crates must be under a license in deny.toml (cargo deny check
licenses bans sources). After any change to Cargo.lock, regenerate
NOTICE with scripts/gen-notice.py (--check verifies it).
Engineering rules
- The fast path is the default: RDMA before TCP, io_uring before POSIX, parallel pipelines before a single thread, zero copy before a buffer copy.
- No
unwrap()in production code: use?,ok_or, orexpect("invariant: <reason>"). - A feature is done when it compiles without warnings, has unit tests for
its success and error paths, is exercised end to end by a real client
(
mount -t nfs4,aws s3 cp, a cross-node RDMA transfer), has its error paths tested, and is documented. - Wire and on-disk formats are versioned. An incompatible change bumps the version so mismatched peers fail with a clear message.
- Documents describe the code as it is. When code changes behaviour, the documents that describe it change in the same commit.
Checks
cargo fmt --all --check
cargo build --workspace
cargo test --workspace
cargo clippy -p nvstor-core -p nvstor-rdma -p nvstor-peer --all-targets -- -D warnings
cargo deny check licenses bans sources
scripts/gen-notice.py --check
scripts/check-hygiene.pynvstor-peer, nvstor-core and nvstor-rdma also build with Bazel. A change
to their sources, dependencies or build script needs the Bazel build too
(from the NVIDIA/nvcf root):
bazel test //src/compute-plane-services/nvstor/...A new source file is picked up by the glob in the crate's BUILD.bazel.
crate_universe (nvstor_crates in the root MODULE.bazel) resolves the
whole Cargo workspace and records a hash of every member's Cargo.toml and
of Cargo.lock in the root MODULE.bazel.lock: a change to any of them,
in any crate, needs the lock updated (a bazel build rewrites it) and
committed with the change. A binary that will be run or measured is built
with --config=release: the default, fastbuild, compiles Rust without
optimisation (the nvstor-peer-image target optimises its own binary).
rdma-core comes from the pinned packages in bazel/rdma_core.bzl; a change
of version updates every SHA-256 there. CI runs both builds: the nvstor row
of .github/workflows/bazel.yml and .github/workflows/nvstor.yml, which
also builds the image for both architectures.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

