harness-step-schema
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".
$ インストール
git clone https://github.com/harness/harness-schema /tmp/harness-schema && cp -r /tmp/harness-schema/.claude/skills/harness-step-schema ~/.claude/skills/harness-schema// tip: Run this command in your terminal to install the skill
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:
-
Step name: PascalCase name (e.g.,
FmeFlagDelete,MyCustomStep) -
Step category: Where to place it?
cd- CD (Continuous Deployment) specific stepsci- CI (Continuous Integration) specific stepscommon- Shared across multiple stagescustom- Custom steps (approvals, FME flags, HTTP, etc.)cvng- Continuous Verification stepsiacm- Infrastructure as Code Management stepsidp- Internal Developer Portal steps
-
Step fields: What properties does the step spec need?
- Field name, type, required/optional, description
- Should fields support runtime input (
<+input>) and expressions?
-
Target stages: Which stages should have this step? (select multiple)
approval- Approval stagecd- Deployment stagecf- Feature Flag stageci- Build/CI stagecustom- Custom stageiacm- IACM stageidp- IDP stagesecurity- Security stage
Note: Steps can be added to multiple stages. For example, FME flag steps are available in cd, cf, and custom stages simultaneously.
-
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 referencesv0/template.json- Add definitions + template/stage references
Step Creation Process
- Create
{step-name}-step-info.yamlinv0/pipeline/steps/{category}/ - Create
{step-name}-step-node.yamlinv0/pipeline/steps/{category}/ - Add reference to each target stage's
execution-wrapper-config.yaml - Add to
v0/template/template_config.yamlif templates enabled - Add definitions to
v0/pipeline.json:{StepName}StepNodedefinition{StepName}StepInfodefinition- References in stage ExecutionWrapperConfig oneOf arrays
- Add definitions to
v0/template.json:{StepName}StepNode_templatedefinition (no identifier/name required){StepName}StepNodedefinition{StepName}StepInfodefinition- 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.
Repository
