ci-setup
Generates a CI/CD pipeline (GitHub Actions) tailored to the project's tech stack. Detects language, framework, test runner, and linter, then produces a production-ready workflow with caching, matrix testing, and security best practices.
Best use case
ci-setup is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generates a CI/CD pipeline (GitHub Actions) tailored to the project's tech stack. Detects language, framework, test runner, and linter, then produces a production-ready workflow with caching, matrix testing, and security best practices.
Teams using ci-setup should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/ci-setup/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How ci-setup Compares
| Feature / Agent | ci-setup | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generates a CI/CD pipeline (GitHub Actions) tailored to the project's tech stack. Detects language, framework, test runner, and linter, then produces a production-ready workflow with caching, matrix testing, and security best practices.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# Skill: CI Setup
## What This Skill Does
Generates a **production-ready CI pipeline** based on the project's tech stack. Instead of copying a generic template and adapting it, this skill analyzes the project's actual tools and produces a workflow that matches.
## When to Use
- When a project has no CI yet
- When migrating CI from another provider to GitHub Actions
- When the user says "set up CI" or "add a pipeline"
- After `scaffold` creates a new project
Do NOT use this for fixing existing CI — use `fix-ci` for that.
## Execution Model
- **Always**: the primary agent runs this skill directly.
- **Output**: `.github/workflows/ci.yml` (and optionally additional workflow files).
## Workflow
### Step 1: Detect Project Stack
Check for key files:
| File | Stack | Tools |
|------|-------|-------|
| `package.json` | Node.js | npm/yarn/pnpm |
| `tsconfig.json` | TypeScript | tsc |
| `pyproject.toml` | Python | pip/poetry/uv |
| `go.mod` | Go | go |
| `Cargo.toml` | Rust | cargo |
| `pom.xml` | Java | maven |
Extract from config:
- **Language version**: from engines, python-requires, go directive
- **Package manager**: npm vs yarn vs pnpm (check lockfile)
- **Test framework**: jest, vitest, pytest, go test
- **Linter**: eslint, ruff, golangci-lint
- **Build command**: from scripts or Makefile
### Step 2: Design Pipeline
Build a workflow with these jobs:
1. **Lint / Format** — fast, catches style issues early
2. **Type Check** — if applicable (tsc, mypy, pyright)
3. **Test** — with matrix strategy for multiple versions if sensible
4. **Build** — verify the project builds
5. **Security** — dependency audit (optional)
### Step 3: Apply Best Practices
- **Pin action versions** to SHA for security
- **Cache dependencies** (node_modules, pip cache, Go modules)
- **Explicit permissions** (`contents: read` minimum)
- **Concurrency control** to cancel stale runs
- **Matrix testing** for multiple language versions (if applicable)
### Step 4: Generate Workflow File
Write `.github/workflows/ci.yml` with proper structure:
```yaml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# ... generated jobs
```
### Step 5: Verify Locally
Run the same commands that CI would run to verify they work:
```bash
# Example
npm ci && npm run lint && npm test && npm run build
```
### Step 6: Present to User
Show the generated workflow and explain each job. Ask if any adjustments are needed (additional checks, deployment steps, etc.).
## Rules
1. **Stack-specific**: generate CI that matches the actual project, not a generic template.
2. **Security first**: pin actions to SHA, use minimal permissions, never put secrets in plain text.
3. **Fast feedback**: order jobs from fastest to slowest. Lint and type check should run before tests.
4. **Cache everything**: dependency caching significantly speeds up CI. Always include it.
5. **No built-in explore agent**: do NOT use the built-in `explore` subagent type.Related Skills
expo-tailwind-setup
Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling
mcp:setup-codemap-cli
Guide for setup Codemap CLI for intelligent codebase visualization and navigation
ab-test-setup
Structured guide for setting up A/B tests with mandatory gates for hypothesis, metrics, and execution readiness.
observability-monitoring-monitor-setup
You are a monitoring and observability expert specializing in implementing comprehensive monitoring solutions. Set up metrics collection, distributed tracing, log aggregation, and create insightful da
mcp:setup-arxiv-mcp
Guide for setup arXiv paper search MCP server using Docker MCP
conductor-setup
Initialize project with Conductor artifacts (product definition, tech stack, workflow, style guides)
environment-setup-guide
Guide developers through setting up development environments with proper tools, dependencies, and configurations
ddd:setup-code-formating
Sets up code formatting rules and style guidelines in CLAUDE.md
mcp:setup-serena-mcp
Guide for setup Serena MCP server for semantic code retrieval and editing capabilities
mcp:setup-context7-mcp
Guide for setup Context7 MCP server to load documentation for specific technologies.
devcontainer-setup
Creates devcontainers with Claude Code, language-specific tooling (Python/Node/Rust/Go), and persistent volumes. Use when adding devcontainer support to a project, setting up isolated development environments, or configuring sandboxed Claude Code workspaces.
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment