cicd-pipeline-design
Skill0 starsChanged 3 months agoMITView on GitHub
Designs, scaffolds, and audits a repository's CI/CD pipeline against spec/project/continuous-integration/ (pre-merge stage sequence, reproducible inputs, cache discipline, local↔CI parity), spec/project/continuous-delivery/ (artifact immutability, provenance, the artifact-to-securing-stage matrix, rollback, the handover boundary to deployment), and spec/project/github-actions-best-practices/ (digest pinning, least-privilege permissions, untrusted input, short-lived credentials, reusable-workflow reuse, concurrency, caching, runner-slot economy). Writes and patches workflow files in the target repository. Invoke when the user asks to design, set up, rework, harden, or audit a CI/CD pipeline or GitHub Actions workflows; also German. Don't use to triage a red run (`workflow-health-triage`), run the gate (`quality-gate`), or publish a release (`release-publish-trigger`). Supports resume on re-invocation per `spec/claude/resumable-work/`.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- mchittineni/cloud-platform-skillstheir own version, first seen Aug 19, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- mchittineni/cloud-platform-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository36 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- audience-identifySkill
- backlog-delivery-orchestrateSkill
- backstage-catalog-generateSkill
- blog-authorSkill
- blog-author-triggerSkill
- continuous-improvement-triageSkill
- cookiecutter-template-manageSkill
- docs-audience-tracks-applySkill
- docs-dry-refactorSkill
- github-issue-templates-applySkill
- issue-backlog-partitionSkill
- issue-batch-orchestrateSkill
- issue-orchestrateSkill
- lektorat-applySkill
- lektorat-auto-reviseSkill
- mermaid-diagrams-applySkill
- mkdocs-structure-applySkill
- permission-allowlist-maintainSkill
- portfolio-auditSkill
- portfolio-inflight-triageSkill
- project-structure-applySkill
- pull-request-createSkill
- pull-request-mergeSkill
- pull-request-runner-sweepSkill
- readme-structure-applySkill
- release-notes-curateSkill
- release-publish-triggerSkill
- requirements-elicitSkill
- spec-drift-auditSkill
- specSkill
- tech-stack-captureSkill
- vocab-drift-auditSkill
- workflow-health-triageSkill
- working-copy-startSkill
- yaml-json-schemaSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. About 0 are common, 8 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 57
Verify that all three canonical spec files are reachable in the current project:
- Distinctive: line 63
If any is missing, stop and say so.
- Very specific: line 71
Detect the project type and its artifact classes: Read the repository: lock files, Taskfile.yml, .github/workflows/, the container and …
- Very specific: line 83
Write or patch files under .github/workflows/, honouring spec/project/project-structure/ for placement and spec/project/branching-model/ …
- Very specific: line 84
Every third-party action reference is a full-length commit digest with a comment naming the version, per github-actions-best-practices §A.
- Very specific: line 85
Every workflow gets an explicit permissions block, minimum at workflow level, write scopes at job level only, per §B.
- Very specific: line 86
Every stage that a contributor can run locally is invoked through the repository's Taskfile target, per continuous-integration §E and …
- Very specific: line 108
Read examples/01-design-greenfield-pipeline.md when running design against a repository that has only its release workflows and needs a …
- Very specific: line 109
Read examples/02-audit-existing-workflows.md when running audit over existing workflow files and deciding which findings to fix in place …
- Very specific: line 110
Read examples/03-upstream-work-package.md when a finding's correct remedy lives in nolte/gh-plumbing and the consumer repository must be …
- Distinctive: line 123
Efficiency is a guide, not a gate: Never propose removing a stage from the required set to make a pipeline faster.
- Distinctive: line 131
Never write a workflow file without showing the diff and getting approval first.
- Distinctive: line 132
Never reference a third-party action by tag or branch.
- Distinctive: line 133
Never grant a blanket write-all permission set to get past an unclear failure.
- Very specific: line 135
Never weaken a test or a gate to make a pipeline green.
- Very specific: line 136
Never re-enumerate the artifact taxonomy, the required-workflow list, or the quality-gate composition.
- Distinctive: line 137
Never cache secret material, and never cache a build output or test result the pipeline is supposed to produce and verify.
- Distinctive: line 138
When a spec disagrees with this skill, the spec wins.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CI/CD Pipeline Design
Operationalizes three specs into one working pipeline: spec/project/continuous-integration/ (the pre-merge half), spec/project/continuous-delivery/ (the post-merge half), and spec/project/github-actions-best-practices/ (the single concrete platform binding). The specs declare the discipline; this skill applies it to a specific repository and writes the result.
Why this is a skill, not an agent
- It writes. Designing a pipeline ends in workflow files on disk. An agent returns a report and forgets; the deliverable here is a diff.
- It's a multi-step dialogue. Stage selection depends on the project type, the artifact classes it ships, and which stages the operator wants required versus advisory. Those are decisions to take with the operator, not to infer.
- It has a read-only companion. The detection half is genuinely isolated and parallel, so it lives in the
cicd-pipeline-revieweragent, which this skill dispatches for theauditoperation. Skill writes, agent detects—the same split asdockerfile-auditand its scanner.
User-language policy
Detect the user's language and conduct the dialogue in it. Workflow files, comments inside them, and commit messages stay English per the repository's authoring rules, regardless of conversation language.
German trigger phrases
The frontmatter description keeps its trigger lexicon English-only per spec/claude/skill-management/ §Structure. Treat these as equivalent:
- "entwirf eine CI/CD-Pipeline für dieses Repo"
- "die Pipeline umbauen / härten"
- "prüfe die Workflows auf Pinning und Berechtigungen"
- "wo gehört der Dependency-Scan in die Pipeline?"
- "welche Stufe sichert welches Artefakt ab?"
Precondition
Verify that all three canonical spec files are reachable in the current project:
spec/project/continuous-integration/<canonical_language>.mdspec/project/continuous-delivery/<canonical_language>.mdspec/project/github-actions-best-practices/<canonical_language>.md
If any is missing, stop and say so. These specs are the input; without them there's no authoritative stage sequence, no securing-stage vocabulary, and no platform rule set. Don't improvise a replacement.
Operations
1. design — derive the pipeline for this repository
Produces a proposed stage set and the reasoning behind it. Writes nothing.
- Detect the project type and its artifact classes. Read the repository: lock files,
Taskfile.yml,.github/workflows/, the container and chart definitions, andproject/portfolio.ymlwhere present. Resolve the artifact classes againstspec/project/release-artifact/§Artefact taxonomy—never re-enumerate that taxonomy, read it. - Map the canonical stage sequence onto the repository per
continuous-integration§A. For every stage the repository doesn't need, record the omission and its reason; a silent omission is what §A forbids. The slot budget is a design input here pergithub-actions-best-practices§"Runner-slot economy": don't scaffold one job per check by reflex. Sub-minute work stays inside an existing job unless one of §L's four reasons applies (different runner image, differentpermissions, matrix parallelism, its own name as a required status check), and a sub-minute gate stays out ofneeds:ahead of expensive jobs. Readreferences/slot-capacity-measurement.mdwhen the operator reports a slow pipeline or when the stage set exceeds a handful of jobs per pull request, to separate wait from work before deciding. - Order for feedback per §B: cheapest-with-broadest-coverage first. Name which stages are required and which are advisory, and confirm the split with the operator—an advisory stage that can't fail is the failure mode §B calls out.
- Derive the artifact-to-securing-stage matrix per
continuous-delivery§D: for each artifact class the project ships, which delivery stage secures it and which guarantee it carries (built-from-source,integrity,provenance,policy-cleared). An artifact class with no securing stage is a defect to surface, not a gap to leave. - Locate the handover boundary per
continuous-delivery§F: name the artifact reference the deployment side consumes. Stop there. - Identify reuse candidates per
continuous-integration§H andgithub-actions-best-practices§E: any logic identical across repositories belongs upstream innolte/gh-plumbing, not in this repository. Emit those as named upstream work packages (see Hard rules). - Present the design and get the operator's agreement before
scaffoldwrites anything.
2. scaffold — write the workflow files
Applies an agreed design to disk.
- Write or patch files under
.github/workflows/, honouringspec/project/project-structure/for placement andspec/project/branching-model/for which workflows must exist. Neither is redefined here; both are read. - Every third-party action reference is a full-length commit digest with a comment naming the version, per
github-actions-best-practices§A. Resolve the digest for the intended version rather than guessing it, and verify it belongs to the action's own repository. - Every workflow gets an explicit
permissionsblock, minimum at workflow level, write scopes at job level only, per §B. - Every stage that a contributor can run locally is invoked through the repository's Taskfile target, per
continuous-integration§E andspec/project/taskfile/§Local and CI parity. Never re-implement the command inline. - Cache keys are derived from the content that determines the cached data, per
continuous-integration§D andgithub-actions-best-practices§G. - Concurrency groups follow §F: cancel-on-new-run for pre-merge workflows, never for delivery or release workflows.
- Show the diff and get approval before writing. Re-run
auditafterwards so the written state is verified, not assumed.
3. audit — check an existing pipeline
- Dispatch the
cicd-pipeline-revieweragent for detection. It returns severity-classified findings withfile:line. - Apply the severity judgement and assemble the report: which spec rule each finding violates, and the concrete remedy.
- Offer to fix findings whose remedy is mechanical and local (a missing
permissionsblock, a tag reference that should be a digest, a cache key missing its determining input). Each fix is shown as a diff and approved individually. - Route findings that belong elsewhere rather than fixing them here: a red run goes to
workflow-health-triage, a portfolio-wide defect becomes an upstream work package (see Hard rules).
Delimitation
- Red run triage is
workflow-health-triageandspec/project/workflow-health/. This skill designs the pipeline; it doesn't diagnose a broken run. - Running the gate is
quality-gate. This skill places the gate in the sequence and wires the invocation. - Publishing a release is
release-publish-triggerandspec/project/release-automation/. This skill's delivery stages dispatch into that machinery and never reimplement its pre-publish gates. - Cluster rollout is
deployment-chart-manageand the deployment specs. This skill stops at the published artifact plus its provenance. - Repository scaffolding is
project-structure-apply. Both skills touch.github/workflows/, so the split is by question:project-structure-applyanswers which files must exist (the required-workflow setspec/project/branching-model/mandates, plus the rest of the.github/layout) and creates them from the standard wiring. This skill answers what the pipeline does — stage set, ordering, pinning, permissions, caching, securing stages — and edits workflow content. When a required workflow is missing outright, hand that toproject-structure-applyfirst and design against the result.
Examples
- Read
examples/01-design-greenfield-pipeline.mdwhen runningdesignagainst a repository that has only its release workflows and needs a full stage set derived. - Read
examples/02-audit-existing-workflows.mdwhen runningauditover existing workflow files and deciding which findings to fix in place versus route elsewhere. - Read
examples/03-upstream-work-package.mdwhen a finding's correct remedy lives innolte/gh-plumbingand the consumer repository must be left alone.
References
- Read
references/slot-capacity-measurement.mdwhen a pipeline is reported slow, whendesignproduces many small jobs per pull request, or whenauditneeds the wait-versus-work reading behind agithub-actions-best-practices§"Runner-slot economy" finding. It carries the REST reads, the three derived numbers, the account-wide sweep, and the reading rule shared withworkflow-health§"Cancellation rates".
Gotchas
- A tag is not immutable, even from a trusted publisher. The March 2025
tj-actions/changed-filescompromise moved existing version tags to malicious code. Digest pinning is what protects against that; publisher trust is not. Seegithub-actions-best-practices§A. - A cache entry can't be updated in place. When a key matches, nothing new is written. A key that fails to change when the content changes pins the pipeline to stale data indefinitely, and a prefix fallback restores an older entry rather than repairing the key.
continue-on-erroron a required stage is indistinguishable from not running it. If a stage is genuinely advisory, make it a non-required check instead.- A test stage that collects nothing must fail. A green run over an empty suite is the most expensive kind of false signal;
continuous-integration§E makes this explicit. - Don't quote upstream platform limits. Nesting depth, cache size, and retention change. The specs reference their sources deliberately; repeating a number here would make this skill go stale silently.
- Efficiency is a guide, not a gate. Never propose removing a stage from the required set to make a pipeline faster; §B names that as a coverage reduction requiring review, not a performance fix.
Resumability
Per spec/claude/resumable-work/, this skill is resumable: true. State is persisted to .resume/cicd-pipeline-design/<run-id>.yml at each named phase boundary (detection complete, design agreed, scaffold approved, audit reported), carrying the detected project type, the agreed stage set, and the artifact-to-securing-stage matrix so an interrupted run resumes without re-deriving them. On re-invocation, scan that directory for files with status: in_progress whose inputs: snapshot matches the current invocation and offer resume / start-new / discard. The state-file envelope and the fail-closed semantics on schema or YAML errors live in the spec; don't duplicate them here.
Hard rules
- Never write a workflow file without showing the diff and getting approval first.
- Never reference a third-party action by tag or branch. A full-length commit digest with a version comment is the only accepted form.
- Never grant a blanket write-all permission set to get past an unclear failure; identify the scope the failing step needs.
- Never patch a consumer repository with a local copy of logic that belongs in
nolte/gh-plumbing. When the correct remedy is upstream, emit a named upstream work package and leave the consumer alone. A consumer-local workaround is permitted only as a recorded interim measure naming the upstream change it waits for. - Never weaken a test or a gate to make a pipeline green. The no-cheating invariant of
spec/project/test-falsifiability/applies in full under pipeline pressure. - Never re-enumerate the artifact taxonomy, the required-workflow list, or the quality-gate composition; read them from
release-artifact,branching-model, andquality-gaterespectively. - Never cache secret material, and never cache a build output or test result the pipeline is supposed to produce and verify.
- When a spec disagrees with this skill, the spec wins. Propose updating this skill rather than diverging silently.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

