원클릭으로
nativelink-rust-change
// Use when implementing or reviewing Rust changes in NativeLink crates, especially storage, scheduler, worker, service, config, and shared utility behavior.
// Use when implementing or reviewing Rust changes in NativeLink crates, especially storage, scheduler, worker, service, config, and shared utility behavior.
Migrate a Bazel project from WORKSPACE to Bzlmod (MODULE.bazel). Use when a project has a WORKSPACE / WORKSPACE.bazel file but no MODULE.bazel, when the user asks to "migrate to bzlmod", "adopt MODULE.bazel", "drop WORKSPACE", "move to Bazel modules", or upgrade to Bazel 8/9 compatibility. Covers the hybrid WORKSPACE.bzlmod gradual migration, dependency translation (http_archive→bazel_dep, repo rules→use_repo_rule / module extensions, bind→alias), toolchain registration, override directives, the toolchainization pattern for rule-set authors, dual WORKSPACE/Bzlmod API design for library modules, minimum-version strategy with single_version_override, fixing Label(@computed_repo_name) patterns, and writing parameterized backwards-compatibility smoke tests.
Use when verifying NativeLink changes with Bazel, selecting focused test targets, debugging rustfmt/clippy aspect failures, or preparing a confidence report for Rust/Bazel changes.
Use when changing NativeLink JSON5 configuration, deployment examples, protobuf/service protocol surfaces, or compatibility-sensitive config behavior.
Use when updating NativeLink Cargo dependencies, Bazel module dependencies, rules_rust pins, lock files, toolchains, or generated dependency metadata.
Use when debugging NativeLink local remote execution, remote cache/executor self-tests, BEP event ingestion, worker scheduling, CAS misses, or Bazel remote execution behavior.
| name | nativelink-rust-change |
| description | Use when implementing or reviewing Rust changes in NativeLink crates, especially storage, scheduler, worker, service, config, and shared utility behavior. |
Use this skill for Rust implementation work in nativelink/.
Before editing, inspect the trait, caller, and tests around the change. NativeLink has several shared contracts where small behavior changes can affect remote execution correctness.
Crate map:
nativelink-store/: storage backends, CAS/AC, compression, Redis/S3/GCS/filesystem/memory stores.nativelink-scheduler/: scheduling, worker matching, action queues, awaited action state.nativelink-worker/: worker execution, input materialization, process execution, output upload.nativelink-service/: REAPI, bytestream, BEP, worker API, health checks.nativelink-config/: JSON5 config structs and validation.nativelink-util/: digest, filesystem, proto, retry, metrics, TLS, and async helpers.nativelink-proto/: protobuf-generated API surfaces.Add or update the closest existing tests first. Prefer focused tests that prove the contract:
bazel test //nativelink-store/...
bazel test //nativelink-scheduler/...
bazel test //nativelink-worker/...
bazel test //nativelink-service/...
For narrow Cargo-side checks:
cargo test --all --profile=smol
For server-wide confidence:
bazel build //:nativelink
bazel test //...
Summarize: