L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

grpc-and-developer-tools

grpc-and-developer-tools

Maintain AlpaSim protobuf and gRPC contracts, use generated stubs, inspect installed packages and entry points, and perform safe contributor/tooling checks without starting simulation or external infrastructure.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: grpc-and-developer-tools description: "Maintain AlpaSim protobuf and gRPC contracts, use generated stubs, inspect installed packages and entry points, and perform safe contributor/tooling checks without starting simulation or external infrastructure." disable-model-invocation: true metadata: disco-role: operating license: Apache 2.0

gRPC and developer tools

Use this sub-skill when the task is about the AlpaSim protobuf contract, generated Python modules, service-client examples, package metadata, plugin entry points, contributor checks, map-tool boundaries, telemetry inspection, or deciding whether a helper is safe to run. This is a developer/API skill, not a simulation operator.

Route first

  • For installation, Hydra composition, local/Docker/Slurm deployment, scene caches, or run telemetry operation, use simulation-wizard.
  • For service lifecycle, runtime orchestration, replay, timing, or service implementation, use runtime-services.
  • For model/plugin behavior or driver configuration, use drivers-and-plugins.
  • For ASL inspection, metrics, map/trajectory analysis, or result evaluation, use evaluation-and-logs.

Fast workflow

  1. Identify the installed alpasim_grpc version and the exact .proto or service involved. Do not infer a message name from a nearby service.
  2. For a schema change, preserve package names, field numbers, and import paths; regenerate all Python artifacts using the package build/compile workflow. Never hand-edit generated *_pb2.py, *_pb2_grpc.py, or .pyi files.
  3. Inspect the diff, import the generated modules, and run a focused native test plus formatting/static checks before proposing a service change.
  4. For a plugin or package change, inspect its declared entry-point group, import target, dependency direction, and optional backend requirements.
  5. Keep scheduler submission, SSHFS mounts, Docker launchers, model downloads, and full simulations as explicit user-approved operations. This sub-skill only supplies safe inspection and generation guidance.

Detailed API facts and service grouping are in references/grpc-api.md. Read tools and safety before a helper; the protobuf compiler is the bundled non-destructive path for explicit source/output roots. The contributor sequence and review checklist are in references/developer-workflows.md. Use references/tools-and-safety.md before running helper commands and references/troubleshooting.md for recovery.

Generated API use

The public generated package is alpasim_grpc.v0. Typical client imports are:

import grpc
from alpasim_grpc.v0 import common_pb2, sensorsim_pb2
from alpasim_grpc.v0.sensorsim_pb2_grpc import SensorsimServiceStub

with grpc.insecure_channel("host:port") as channel:
    stub = SensorsimServiceStub(channel)
    request = sensorsim_pb2.RGBRenderRequest(scene_id="scene_id")
    # response = stub.render_rgb(request, timeout=10)

Use the actual generated message and stub names; for example, the render message is RGBRenderRequest, not a generic RenderRequest. A channel/client smoke test proves serialization and stub construction, not that a renderer or other service is running. Route service implementation and health diagnosis to runtime-services.

Commands and gates

  • In an installed package, use uv run compile-protos and uv run clean-protos only from the gRPC package's own project context. The bundled helper at scripts/compile_protos.py is for explicit source and output paths and is non-destructive by default.
  • For a proto edit, compile, inspect generated-file changes, run generated imports, then run the narrowest relevant test. A successful compile does not establish wire compatibility.
  • Run uv run pytest <focused-test> for safe unit cases and pre-commit run --all-files for contributor-facing changes when the repository environment is available. Do not substitute a broad simulation run for these checks.
  • alpasim-info reports installed model, MPC, scorer, tool, and config entry points. It may enumerate optional model imports; treat a timeout or logged load warning as an optional-dependency issue, not proof that the registry is empty.

Boundaries and handoff

This skill documents map visualization and telemetry/scheduler helper safety, but does not launch them. A map helper may require an artifact and optional geometry/plotting packages; use a disposable output location and route actual map interpretation to evaluation-and-logs. Prometheus/Grafana and Slurm helpers can mount, chmod, submit, requeue, or create files outside the project; read their help and obtain explicit approval first. Never copy credentials, model weights, scene caches, SSH paths, or scheduler allocations into a skill.

When handing off, report: schema/package touched, generated files checked, commands and tests run, optional dependencies skipped, and whether the operation contacted a service, scheduler, network, Docker, or filesystem mount.

Skills enregistrées