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

pipeline-authoring

pipeline-authoring

【效率与协作】Author Kubeflow Pipelines DSL components, pipelines, artifacts, task modifiers, control flow, and local execution smoke checks.

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

技能说明

GitHub

name: pipeline-authoring description: "Author Kubeflow Pipelines DSL components, pipelines, artifacts, task modifiers, control flow, and local execution smoke checks." disable-model-invocation: true metadata: disco-role: operating license: Apache 2.0

Pipeline Authoring

Use this sub-skill when the task is to write, repair, or locally smoke-check Kubeflow Pipelines (KFP) v2 Python DSL code: @dsl.component, @dsl.container_component, @dsl.pipeline, artifact/parameter typing, task dependencies/modifiers, control flow, and KFP local execution.

Route first

Handle here:

  • Creating or fixing Python-function components with @dsl.component.
  • Creating or fixing command/image components with @dsl.container_component and dsl.ContainerSpec.
  • Composing tasks with @dsl.pipeline, task outputs, .after(), retries, caching, display names, env vars, and basic CPU/memory/accelerator modifiers.
  • Using KFP artifact classes and annotations: dsl.Input, dsl.Output, dsl.InputPath, dsl.OutputPath, dsl.Artifact, dsl.Dataset, dsl.Model, dsl.Metrics, and dsl.ClassificationMetrics.
  • Using authoring-level control flow such as dsl.If/dsl.Elif/dsl.Else, legacy dsl.Condition, dsl.ParallelFor, dsl.ExitHandler, and dsl.OneOf.
  • Choosing and debugging kfp.local runners for compile-adjacent local execution smoke tests.

Route away:

  • Compile flags, CLI compilation behavior, compiler output shape, PipelineSpec YAML inspection, and Kubernetes manifest output: use compiler-and-cli.
  • Live kfp.Client runs, uploads, experiments, schedules, wait/list/get/delete workflows, or Registry operations: use client-and-registry.
  • Kubernetes-specific helper APIs such as secrets, ConfigMaps, PVCs, pod labels/annotations, tolerations, affinity, image pull secrets, and security context: use kubernetes-platform.
  • Editing this repository, generated code, frontend/backend, maintainer tests, CI, release, or source-checkout policy: use repo-development.

Operating procedure

  1. Identify whether the user is authoring a Python component, a container component, or the pipeline graph. If the request is mostly about compile/run/upload tooling, route before drafting code.
  2. Load the smallest needed reference:
    • references/api-reference.md for signatures, accepted types, and task modifier behavior.
    • references/workflows.md for concise authoring recipes and examples.
    • references/local-execution.md for kfp.local runner setup and local-only caveats.
    • references/troubleshooting.md for symptom-to-fix guidance.
  3. Prefer explicit type annotations. Treat missing annotations, ambiguous artifact/parameter wiring, and multiple-output access as first-class bugs.
  4. Keep component body imports self-contained. Imports needed only to define the pipeline stay outside component bodies; imports needed at task runtime go inside the component function or into the runtime image/package list.
  5. For artifact IO, wire producer task outputs to consumers by output key. Use task.output only when the task has exactly one output.
  6. For local smoke checks, initialize kfp.local before calling components or pipelines as Python functions. Use the bundled scripts/compile_minimal_pipeline.py only as an authoring sanity check; route custom compile options to compiler-and-cli.

Safety and verification

  • Do not assume a Kubernetes cluster or KFP deployment is available for this sub-skill.
  • Do not require the original source checkout, samples, or tests at runtime. Use only the installed kfp package and bundled files in this skill tree.
  • When giving code, include the imports and component annotations needed to run or compile it from a standalone Python file.
  • When suggesting local execution, state runner prerequisites and whether the flow uses lightweight Python components or container components.
  • If the user asks to inspect generated YAML fields or compile with specific flags, stop authoring and route to compiler-and-cli.

Quick smoke helper

From this sub-skill directory, a safe package-level compile smoke check is available:

python scripts/compile_minimal_pipeline.py --output /tmp/kfp-authoring-smoke.yaml

It compiles a tiny self-contained pipeline that exercises parameters, artifacts, task modifiers, control flow, and a container component. It does not contact a cluster and does not read any original repository files.

我的收藏