skills/mav-bp-cicd/SKILL.md
Platform-agnostic CI/CD conventions. Covers pipeline stages, quality gates, environment promotion, secrets management, artifact handling, and deployment boundaries. Applied when configuring or reviewing CI/CD pipelines.
npx skillsauth add thermiteau/maverick-private mav-bp-cicdInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Ensure CI/CD pipelines enforce quality, promote safely, and remain maintainable. These standards apply regardless of platform (GitHub Actions, GitLab CI, Azure DevOps, etc.).
Every pipeline should follow this stage order. Stages run sequentially; jobs within a stage may run in parallel.
digraph pipeline {
rankdir=LR;
"Validate" [shape=box style=filled fillcolor="#ccddff"];
"Build" [shape=box style=filled fillcolor="#ccddff"];
"Test" [shape=box style=filled fillcolor="#ccddff"];
"Package" [shape=box style=filled fillcolor="#ccddff"];
"Deploy" [shape=box style=filled fillcolor="#fff3cc"];
"Validate" -> "Build" -> "Test" -> "Package" -> "Deploy";
}
| Stage | Purpose | Typical jobs | Fail behaviour | | ----- | ------- | ------------ | -------------- | | Validate | Catch syntax and style issues fast | Lint, typecheck, format check | Block all subsequent stages | | Build | Compile and resolve dependencies | Build application, resolve packages | Block all subsequent stages | | Test | Verify correctness | Unit tests, integration tests | Block packaging and deploy | | Package | Create deployable artifact | Docker image, archive, bundle | Block deploy | | Deploy | Release to environment | Deploy to staging/production | Human-gated for production |
[skip ci], no conditional bypasses for "quick fixes"Quality gates are pass/fail checks that block progression. Every pipeline must include:
| Gate | Stage | What it checks | | ---- | ----- | -------------- | | Lint | Validate | Zero linter errors (not warnings) | | Type check | Validate | Zero type errors | | Format check | Validate | Formatter reports no changes needed | | Unit tests | Test | All pass, none skipped | | Build succeeds | Build | Application compiles without errors |
| Gate | Stage | What it checks | | ---- | ----- | -------------- | | Integration tests | Test | All pass against test infrastructure | | Security scan | Test | No critical/high vulnerabilities | | Bundle/image size | Package | Below defined threshold |
Artifacts promote through environments, never rebuild between them.
digraph envs {
rankdir=LR;
"Build" [shape=box];
"Dev/Preview" [shape=box];
"Staging" [shape=box];
"Production" [shape=box style=filled fillcolor="#fff3cc"];
"Build" -> "Dev/Preview" [label="auto"];
"Dev/Preview" -> "Staging" [label="auto on merge"];
"Staging" -> "Production" [label="manual approval"];
}
| Environment | Trigger | Approval | | ----------- | ------- | -------- | | Dev/Preview | Push to feature branch or PR | Automatic | | Staging | Merge to main/develop | Automatic | | Production | Promotion from staging | Manual approval required |
| Do | Don't | | -- | ----- | | Reference secrets from platform store | Hardcode in pipeline YAML | | Use environment-specific secrets | Share production secrets with dev | | Mask secrets in logs | Print secrets for debugging | | Use short-lived tokens where possible | Use long-lived static credentials |
node_modules, .pip, ~/.cargo, Go module cachelatest)Before applying these standards, load the project-specific CI/CD implementation:
digraph lookup {
"docs/maverick/skills/cicd/SKILL.md exists?" [shape=diamond];
"Read and use alongside these standards" [shape=box];
"Invoke upskill" [shape=box];
"Read generated skill" [shape=box];
"docs/maverick/skills/cicd/SKILL.md exists?" -> "Read and use alongside these standards" [label="yes"];
"docs/maverick/skills/cicd/SKILL.md exists?" -> "Invoke upskill" [label="no"];
"Invoke upskill" -> "Read generated skill";
"Read generated skill" -> "Read and use alongside these standards";
}
docs/maverick/skills/cicd/SKILL.mdupskill skill with topic: cicdcicd-github, cicd-gitlab, cicd-azure)| Pattern | Issue | Fix | | ------- | ----- | --- | | No CI pipeline in repository | No automated quality enforcement | Add pipeline with validate/build/test stages | | Pipeline has no lint/typecheck stage | Style and type errors reach main | Add validate stage before build | | Tests run but failures don't block merge | False confidence | Make test stage a required gate | | Secrets in pipeline YAML or repo files | Security risk | Move to platform secret store | | Pipeline rebuilds for each environment | Inconsistent artifacts | Build once, promote artifact | | No manual gate for production deploy | Risk of unreviewed production changes | Add manual approval step | | Pipeline takes >15 minutes | Developer productivity drain | Profile and optimise, add caching | | Unpinned action/image versions | Non-reproducible builds | Pin to specific versions/SHAs |
development
Use when a best-practice skill needs project-specific implementation details and no project skill exists at docs/maverick/skills/<topic>/SKILL.md. Scans the codebase and generates a project-specific skill file.
testing
Create or update technical documentation for a project. Covers architecture, service interactions, data flows, and design decisions. Produces professional markdown with Mermaid diagrams.
development
How to process code review feedback — verify before implementing, push back when wrong, clarify before acting on partial understanding. Applied when receiving review from the code-reviewer agent or human reviewers.
development
Analyze a project's codebase against Maverick standard practices and write a findings report. Checks linting, unit tests, integration tests, documentation, and CI/CD. Run when onboarding an existing project or on demand.