Claude Code Plugins

Community-maintained marketplace

Feedback

harness-step-schema

@harness/harness-schema
12
0

Creates or updates pipeline step schemas in the harness-schema repository. Use when the user wants to add a new step, modify an existing step's fields, or make a step available in different stages. Triggers for requests about "create step", "add step", "new step schema", "update step", or "step available in stage".

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name harness-step-schema
description Creates or updates pipeline step schemas in the harness-schema repository. Use when the user wants to add a new step, modify an existing step's fields, or make a step available in different stages. Triggers for requests about "create step", "add step", "new step schema", "update step", or "step available in stage".

Harness Pipeline Step Schema Management

This skill helps create or update pipeline step schemas in the harness-schema repository.

Before Starting - Ask These Questions

When creating a new step, gather this information from the user:

  1. Step name: PascalCase name (e.g., FmeFlagDelete, MyCustomStep)

  2. Step category: Where to place it?

    • cd - CD (Continuous Deployment) specific steps
    • ci - CI (Continuous Integration) specific steps
    • common - Shared across multiple stages
    • custom - Custom steps (approvals, FME flags, HTTP, etc.)
    • cvng - Continuous Verification steps
    • iacm - Infrastructure as Code Management steps
    • idp - Internal Developer Portal steps
  3. Step fields: What properties does the step spec need?

    • Field name, type, required/optional, description
    • Should fields support runtime input (<+input>) and expressions?
  4. Target stages: Which stages should have this step? (select multiple)

    • approval - Approval stage
    • cd - Deployment stage
    • cf - Feature Flag stage
    • ci - Build/CI stage
    • custom - Custom stage
    • iacm - IACM stage
    • idp - IDP stage
    • security - Security stage

    Note: Steps can be added to multiple stages. For example, FME flag steps are available in cd, cf, and custom stages simultaneously.

  5. Include in templates?: Should this step be available as a step template?

File Structure

Each step requires these files:

1. Step Info YAML

v0/pipeline/steps/{category}/{step-name}-step-info.yaml

Defines the step's spec properties.

2. Step Node YAML

v0/pipeline/steps/{category}/{step-name}-step-node.yaml

Defines the step wrapper with type, identifier, name, timeout, etc.

3. Stage Execution Configs

v0/pipeline/stages/{stage}/execution-wrapper-config.yaml

Add reference to make step available in each target stage.

4. Template Config (if templates enabled)

v0/template/template_config.yaml

Add to step_template_types: list.

5. Bundled JSON Files

  • v0/pipeline.json - Add definitions + stage references
  • v0/template.json - Add definitions + template/stage references

Step Creation Process

  1. Create {step-name}-step-info.yaml in v0/pipeline/steps/{category}/
  2. Create {step-name}-step-node.yaml in v0/pipeline/steps/{category}/
  3. Add reference to each target stage's execution-wrapper-config.yaml
  4. Add to v0/template/template_config.yaml if templates enabled
  5. Add definitions to v0/pipeline.json:
    • {StepName}StepNode definition
    • {StepName}StepInfo definition
    • References in stage ExecutionWrapperConfig oneOf arrays
  6. Add definitions to v0/template.json:
    • {StepName}StepNode_template definition (no identifier/name required)
    • {StepName}StepNode definition
    • {StepName}StepInfo definition
    • Reference in step template spec oneOf
    • References in stage ExecutionWrapperConfig oneOf arrays

Reference Files

See TEMPLATES.md for YAML/JSON templates. See EXAMPLES.md for existing step examples.