ci-setup
SKILL.md
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
scaffoldcreates 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:
- Lint / Format — fast, catches style issues early
- Type Check — if applicable (tsc, mypy, pyright)
- Test — with matrix strategy for multiple versions if sensible
- Build — verify the project builds
- 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: readminimum) - 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:
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:
# 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
- Stack-specific: generate CI that matches the actual project, not a generic template.
- Security first: pin actions to SHA, use minimal permissions, never put secrets in plain text.
- Fast feedback: order jobs from fastest to slowest. Lint and type check should run before tests.
- Cache everything: dependency caching significantly speeds up CI. Always include it.
- No built-in explore agent: do NOT use the built-in
exploresubagent type.
Weekly Installs
1
Repository
flitzrrr/openco…g-skillsGitHub Stars
1
First Seen
Mar 3, 2026
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1