Claude-skill-registry 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/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/harness-step-schema" ~/.claude/skills/majiayu000-claude-skill-registry-harness-step-schema && rm -rf "$T"
skills/data/harness-step-schema/SKILL.mdHarness 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 (Continuous Deployment) specific stepscd
- CI (Continuous Integration) specific stepsci
- Shared across multiple stagescommon
- Custom steps (approvals, FME flags, HTTP, etc.)custom
- Continuous Verification stepscvng
- Infrastructure as Code Management stepsiacm
- Internal Developer Portal stepsidp
-
Step fields: What properties does the step spec need?
- Field name, type, required/optional, description
- Should fields support runtime input (
) and expressions?<+input>
-
Target stages: Which stages should have this step? (select multiple)
- Approval stageapproval
- Deployment stagecd
- Feature Flag stagecf
- Build/CI stageci
- Custom stagecustom
- IACM stageiacm
- IDP stageidp
- Security stagesecurity
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
- Add definitions + stage referencesv0/pipeline.json
- Add definitions + template/stage referencesv0/template.json
Step Creation Process
- Create
in{step-name}-step-info.yamlv0/pipeline/steps/{category}/ - Create
in{step-name}-step-node.yamlv0/pipeline/steps/{category}/ - Add reference to each target stage's
execution-wrapper-config.yaml - Add to
if templates enabledv0/template/template_config.yaml - Add definitions to
:v0/pipeline.json
definition{StepName}StepNode
definition{StepName}StepInfo- References in stage ExecutionWrapperConfig oneOf arrays
- Add definitions to
:v0/template.json
definition (no identifier/name required){StepName}StepNode_template
definition{StepName}StepNode
definition{StepName}StepInfo- 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.