sharpps-pipeline-authoring

Guides authoring of SharpPS.Shells pipelines with processor conventions, configuration resolution, and abort semantics.

Updated Jul 24, 2026
One-click install
npx skills add https://github.com/gweone/agent-plugins --skill sharpps-pipeline-authoring-gweone
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sharpps-pipeline-authoring
Source: https://github.com/gweone/agent-plugins/tree/main/plugin/sharpps-dotnet/skills/sharpps-pipeline-authoring
Command: npx skills add https://github.com/gweone/agent-plugins --skill sharpps-pipeline-authoring-gweone

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing a SharpPS.Shells pipeline incorrectly leads to common failures: pipelines that should have been plain functions, leaked machine-specific paths, builds that silently fail, and abort logic that kills cleanup steps. This Skill encodes the module's authoring rules so new workspace pipelines follow the established conventions from the start. ## Core Features & Use Cases - Pipeline vs Function Decision: Enforces the architectural rule that pipelines orchestrate ordered sequences with shared state while public functions do the actual work. - Standard Processor Patterns: Provides the 00-Help and 01-Resolve-Configuration templates, sharpps.config key conventions, and the $arguments shared-state model. - Correct Failure Handling: Teaches warn-and-abort semantics via $arguments["Aborted"], LASTEXITCODE reset, and ErrorActionPreference handling for native build commands. - Use Case: When adding a release pipeline to a project repo, use this Skill to scaffold Pipelines/release/ with properly ordered NN-*.ps1 processors, config-driven settings, and a verification checklist before shipping. ## Quick Start Ask the AI to create a new SharpPS.Shells pipeline named release in the current workspace with build, package, and verify steps following the authoring conventions.

Frequently Asked Questions about sharpps-pipeline-authoring

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a pipeline in SharpPS.Shells?

Create a Pipelines/<Name>/ folder in your workspace with numbered processor files like 00-Help.ps1 and 01-Resolve-Configuration.ps1, then run Register-Pipeline -BasePath ./Pipelines -Force. Ordering is purely alphabetical by filename, so the NN- prefix controls execution order.

When should I use a pipeline versus a public function in PowerShell?

Use a public function for a single composable capability called directly, and a pipeline only for an ordered sequence with shared state and abort semantics. Never create a pipeline whose processors merely translate a hashtable into one function's parameters.

How does sharpps.config work with pipeline arguments?

The 01-Resolve-Configuration processor reads sharpps.config from the current directory and fills $arguments only for keys not already passed, so explicit arguments always win. Keys are lowercase XML elements under <configuration> such as artifact, deploypath, container, and build.

Why does my PowerShell build step report success when the command failed?

Pure PowerShell commands never set $LASTEXITCODE, so reset it to 0 before invoking the build, and set $ErrorActionPreference = "Stop" because command-not-found errors are non-terminating by default. Both issues cause false success verdicts if not handled.

How do I stop a SharpPS pipeline without killing cleanup steps?

Set $arguments["Aborted"] = $true and return instead of throwing. Start-Pipeline skips later non-AlwaysRun processors once Aborted is set, but processors whose filename contains AlwaysRun still execute for cleanup and reporting.