nvcf / instance-cluster-management
AGENTS.md261 starsChanged 9 days agoApache-2.0View on GitHub
Instance and Cluster Management Service (ICMS) is a two-module OSS/self-hosted Java service in the root nvcf Bazel module. It is not a nested Bazel module and does not own a MODULE.bazel, lockfile, .bazelrc, .bazelversion, or third-party dependency hub. The monorepo copy is Bazel-only and contains no project POMs. Bazel consumes nv-boot through direct source labels and produces the executable application jar. Keep any Maven build support in the independent source repository. Do not restore project POMs or add Maven build…
- Reads credentials
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/nvstor/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/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
8 rules. About 0 are common, 5 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 28
Run commands from the monorepo root:
- Distinctive: line 64
After changing a root Java dependency input, repin from the monorepo root and regenerate the dependency rollup:
- Very specific: line 76
Do not hand-edit maven_install.json or MODULE.bazel.lock.
- Distinctive: line 89
Do not run a standalone Maven NOTICE generator in this subtree.
- Distinctive: line 93
Keep Java lines at or below 100 characters where practical.
- Distinctive: line 95
Use private static final constants for repeated error and log messages.
- Very specific: line 96
Use StringUtils.isBlank(...) for null-or-blank string validation.
- Very specific: line 97
Read test resources through ClassPathResource.getInputStream(), never getFile().
≈ “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
AGENTS.md - Instance Cluster Management
Instance and Cluster Management Service (ICMS) is a two-module OSS/self-hosted
Java service in the root nvcf Bazel module. It is not a nested Bazel module
and does not own a MODULE.bazel, lockfile, .bazelrc, .bazelversion, or
third-party dependency hub.
The monorepo copy is Bazel-only and contains no project POMs. Bazel consumes nv-boot through direct source labels and produces the executable application jar. Keep any Maven build support in the independent source repository. Do not restore project POMs or add Maven build instructions here.
Layout
icms-core/: service library, REST controllers, Cassandra repositories, and scheduled tasks.icms-service/: Spring Boot application and executableapp.jar.local_env/: Docker Compose bundle for Cassandra, LocalStack, NATS, and Vault. Both modules symlink it aslocal_env. Thepopulatecompose profile adds a one-shotcassandra-populateservice that seeds Cassandra from cqlsh-format CSV exports viacassandra/populate-data.shonce the schema init healthcheck passes; setICMS_CSV_DIRto the CSV folder and rundocker compose --profile populate up.//rules/java: shared Java, test, and Spring Boot rules.
Build and test
Run commands from the monorepo root:
export BAZEL_OUTPUT_USER_ROOT="${TMPDIR:-/tmp}/nvcf-bazel-cache"
bazel --output_user_root="${BAZEL_OUTPUT_USER_ROOT}" \
build //src/control-plane-services/instance-cluster-management/...
bazel --output_user_root="${BAZEL_OUTPUT_USER_ROOT}" \
test //src/control-plane-services/instance-cluster-management/... \
--cache_test_results=no \
--test_output=errorsThe test targets start Cassandra and NATS through Testcontainers and Docker
Compose. They are tagged requires-docker and run in the GitHub docker-host
lane. Running them locally also needs --test_env=PATH so Testcontainers can
find the host docker compose CLI, and --test_env=HOME so Docker Desktop can
discover CLI plugins.
icms-core:test_fixtures publishes the core test sources so
icms-service:tests can reuse them. Update both when test fixtures change.
See BAZEL.md for coverage output paths and the Docker image build.
Dependencies
The root MODULE.bazel and maven_install.json own @nv_third_party_deps.
BUILD targets declare compile and runtime edges. A coordinate being available in
the shared hub does not put it on this service's classpath. Use direct labels
for co-located nv-boot targets, for example:
//src/libraries/java/nv-boot-parent/nv-boot-starter-core:nv_boot_starter_coreAfter changing a root Java dependency input, repin from the monorepo root and regenerate the dependency rollup:
REPIN=1 bazel run @nv_third_party_deps//:pin
GITHUB_TOKEN="$(gh auth token)" go run -C tools/collect-dependencies .The collector needs go, cargo, and helm on PATH. Without cargo or
helm it silently moves unrelated Rust crates and Helm charts into the
Unresolved section of dependencies.md.
Do not hand-edit maven_install.json or MODULE.bazel.lock.
NOTICE
Generate and check the runtime-derived component NOTICE with:
bazel run //src/control-plane-services/instance-cluster-management:generate_notice -- \
--update-metadata --write
bazel test //src/control-plane-services/instance-cluster-management:notice_check_test
bazel build //src/control-plane-services/instance-cluster-management:osrb_dependency_deltaDo not run a standalone Maven NOTICE generator in this subtree.
Java style
- Keep Java lines at or below 100 characters where practical. Extract helpers or constants instead of leaving long inline expressions.
- Use private static final constants for repeated error and log messages.
- Use
StringUtils.isBlank(...)for null-or-blank string validation. - Read test resources through
ClassPathResource.getInputStream(), nevergetFile(). Resources live inside jars under Bazel, sogetFile()fails. - In tests, import frequently used nested classes and use
varfor obvious local variables when it keeps lines short.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

