Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add harness/harness-ai --skill create-pipelinegit clone --depth 1 https://github.com/harness/harness-aiWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/harness/harness-ai/create-pipeline)<a href="https://agentmods.dev/skills/harness/harness-ai/create-pipeline"><img src="https://agentmods.dev/badge/skills/harness/harness-ai/create-pipeline/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/harness/harness-ai/create-pipeline"><img src="https://agentmods.dev/badge/skills/harness/harness-ai/create-pipeline.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00119 | $0.04806 |
| Opus 5 | $0.00060 | $0.02403 |
| Sonnet 5 | $0.00024 | $0.00961 |
| Haiku 4.5 | $0.00012 | $0.00481 |
Grade A, and why
create-pipeline scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- Ticketing → use `JiraCreate` / `ServiceNowCreate` (never `Run: curl`) This is a copy
100% identical to create-pipeline — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 601 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Create Pipeline
Generate Harness v0 Pipeline YAML and optionally push to Harness via MCP.
Instructions
- Analyze codebase (if source code is available) - Scan the project to auto-detect language, build tools, test frameworks, containerization, deployment manifests, and target infrastructure. Use the detection tables and decision tree in
references/codebase-analysis.mdto determine:- Language and runtime version (package.json → Node.js, go.mod → Go, pom.xml → Java, etc.)
- Build commands and base images
- Test framework and report format (Jest → JUnit, pytest → JUnit XML, etc.)
- Linter and formatter (ESLint, Prettier, Ruff, etc.)
- Dockerfile presence and registry type (Docker Hub, ECR, GCR, ACR)
- Deployment manifests → Harness service/deployment type (k8s manifests → Kubernetes, Chart.yaml → NativeHelm, task-definition.json → ECS, serverless.yml → ServerlessAwsLambda)
- Existing CI/CD configs for migration (GitHub Actions, Jenkins, GitLab CI, etc.)
- Clarify requirements - Confirm detected settings with the user. Ask about anything that couldn't be auto-detected — do not guess or use placeholders. If the user's request is ambiguous, ask before generating YAML. Examples of what to ask when missing:
- Deployment target / infrastructure: region (e.g. us-east-1), cluster name or ID, account ID (e.g. AWS account for ECR/ECS)
- Registry: which registry (Docker Hub, ECR, GCR, ACR), registry identifier/URL, repo path
- Cloud provider: which account, region, and resource identifiers for connectors/infrastructure
- Approval gates, notification channels if relevant
Critical rule: Never hardcode placeholder values (e.g.
123456789012,us-east-1,my-cluster) for deployment target, region, registry, or cluster when the user did not specify them — ask the user instead. If the user did not specify region, account ID, cluster, or registry (e.g. "deploys to ECS" with no region or cluster), ask the user for those values before generating YAML.
- Select native steps - Always prefer Harness native steps over
RunorShellScriptsteps. Consultreferences/native-steps.mdfor the full mapping. Key rules:- Docker build/push → use
BuildAndPushDockerRegistry/BuildAndPushECR/BuildAndPushGCR/BuildAndPushACR(neverRun: docker build && docker push) - K8s deploy → use
K8sRollingDeploy/K8sBlueGreenDeploy/K8sCanaryDeploy(neverRun: kubectl apply) - Helm deploy → use
HelmDeploy(neverRun: helm upgrade --install) - ECS deploy → use
EcsRollingDeploy(neverRun: aws ecs update-service) - Terraform → use
TerraformPlan/TerraformApply(neverRun: terraform apply) - Security scanning → use native STO steps (
AquaTrivy,Snyk,Sonarqube,Semgrep, etc.) - Uploads → use
S3Upload/GCSUpload(neverRun: aws s3 cp) - Approvals → use
HarnessApproval/JiraApproval(never polling scripts) - Ticketing → use
JiraCreate/ServiceNowCreate(neverRun: curl) - Use
Runsteps only for custom build/test/lint commands with no native equivalent - Test steps: Any Run step that runs unit or integration tests must include a
reportsblock (e.g.type: JUnit,spec.paths) so Harness can capture results; seereferences/codebase-analysis.mdfor framework → report path.
- Docker build/push → use
- Generate valid YAML following the structure below, using the detected build/test/deploy commands. Validation rules: (a) Stage names must match
^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$— use only letters, numbers, spaces, hyphens, underscores, or periods (no commas). (b) Every CI and CD stage must include afailureStrategiesarray (Approval stages do not require one). For CI useMarkAsFailure(neverIgnore— it hides failures); for CD useStageRollback. - Optionally create via MCP — First verify the project exists (see "Creating via MCP" section below), then use
harness_createwith resource_typepipelineandbody: { yamlPipeline: "<YAML string>" }
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 601 lines · 119 tokens per session scan A fcecfa556c78
create-pipeline is a skill published in the GitHub repository harness/harness-ai (19 stars, last pushed 18d ago), licensed Apache-2.0. It adds 119 tokens to every session and 4,806 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). It is 100% identical to create-pipeline, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
import-prom-rule
Bulk import of a Prometheus alert rule YAML file (create a whole set of rules at once). Dedicated to handling a remote URL or local YAML text, automatically parsing the three formats groups / a plain rules array / a single rule. ⚠️ Do not use this skill for single-rule creation — when the user describes a single alert…
chinese-git-workflow
A reference for configuring Git with Chinese code-hosting services such as Gitee, Coding.net, GitLab China, and CNB, including SSH, HTTPS, credentials, CI, and repository mirroring.
configure-env-variables
Configures environment variables for Power Pages site settings to support ALM across environments. Creates environment variable definitions in Dataverse, guides the user through linking site settings to those variables via the Power Pages Management app, adds the variables to the solution, and generates a…
atmos-profiles
Atmos profiles: profile directories, --profile and ATMOSPROFILE activation, profile merge behavior, environment switching, and routing profile-specific auth/toolchain/config overrides.
webhook-management
Configure and validate CCAM webhook targets across supported chat, incident, automation, and generic providers. Use when listing provider requirements, creating or updating a target, scoping it to alert rules, sending a test notification, reviewing delivery history, or deleting a target.
monorepo-management
Master monorepo management with Turborepo, Nx, and pnpm workspaces to build efficient, scalable multi-package repositories with optimized builds and dependency management. Use when setting up monorepos, optimizing builds, or managing shared dependencies.