界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

repo-development

repo-development

【开发与工程】Modify the SkyPilot repository safely with structure, style, tests, API compatibility, protobuf, dashboard, and PR guidance.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: repo-development description: "Modify the SkyPilot repository safely with structure, style, tests, API compatibility, protobuf, dashboard, and PR guidance." disable-model-invocation: true metadata: disco-role: operating license: Apache 2.0

SkyPilot Repo Development

Use this sub-skill when the user wants to change SkyPilot source code, tests, docs, packaging/dependency files, API server schemas, protobufs, dashboard code, CI config, or contribution/PR workflows. This is for maintainer work in a SkyPilot checkout, not for end-user cluster, job, service, storage, or SDK usage.

Start Here

  1. Read references/development-guide.md for the repository map, coding conventions, focused validation strategy, protobuf/dashboard workflows, API compatibility rules, critical paths, and PR handoff checklist.
  2. Read references/troubleshooting.md when formatter versions, protobuf generation, API compatibility, dashboard builds, import-time behavior, smoke tests, or Buildkite status checks fail.
  3. Run scripts/repo_sanity.py with --repo-root . to inspect a checkout and print recommended commands for changed files. It reports only by default; it does not format, run broad tests, start API servers, contact clouds, or mutate the checkout.
  4. Add --check-import only when a read-only import sky probe is safe in the current environment.

Owns

  • Source-editing workflow for sky/, tests/, docs/source/, examples/, llm/, charts/, sky/dashboard/, sky/schemas/proto/, packaging files, CI files, and maintainer scripts.
  • Coding conventions: Google Python style, import placement, typing-only imports, LazyImport, TODO/FIXME attribution, exception usage, dependency pin rationale, and generated-file boundaries.
  • Formatting/linting/test selection: format.sh, development tool versions, pytest unit targets, smoke test safety, dashboard lint/build/test commands, protobuf regeneration, and PR Tested: sections.
  • API compatibility for client/server changes: API_VERSION, MIN_COMPATIBLE_API_VERSION, @versions.minimal_api_version(...), payload defaults, remote API version branching, serialization compatibility, and backward compatibility tests.
  • Critical maintainer paths: managed jobs recovery, API server performance/robustness, CLI/SDK UX, cloud/backend provisioning, and generated protobuf/dashboard coupling.

Route Elsewhere

  • Task YAML authoring or parser-only validation: ../task-yaml/SKILL.md.
  • Interactive cluster commands, status/logs, launch/exec/stop/down behavior: ../cluster-operations/SKILL.md.
  • Managed job launch, queue, recovery, logs, cancellation, and pools: ../managed-jobs/SKILL.md.
  • SkyServe service YAMLs, updates, replicas, autoscaling, and serving logs: ../serving/SKILL.md.
  • Cloud credentials, Kubernetes/Slurm/SSH, storage, volumes, GPU catalogs, and provider-specific triage: ../infrastructure-storage/SKILL.md.
  • Python SDK/API server usage without source edits: ../sdk-api-server/SKILL.md.

Operating Principles

  • Start from the files changed, then select the smallest meaningful formatter/test/build commands; broaden only when risk or reviewers need it.
  • Never run cloud-launching smoke tests, destructive cleanup, Helm upgrades, or credentialed provider checks unless the user explicitly asks and understands cost/resource effects.
  • Treat sky/schemas/generated/ as generated output; edit .proto sources and regenerate instead of hand-editing generated files.
  • Restart the API server after source changes before manual API-server validation; rebuild dashboard assets first when dashboard source changed.
  • For PR summaries, include a concrete Tested: section with commands actually run, skipped expensive checks, and any manual verification notes.
我的收藏