setting-up-ci — Claude Code skill for GitHub Actions CI
A skill that writes a GitHub Actions pipeline with linting, tests, type-checking and a deploy step. Useful when the repo has no CI yet.
npx skills add spencerpauly/awesome-cursor-skills --skill setting-up-ci -a claude-codeWhat setting-up-ci does
The skill kicks in when you ask for CI, a build pipeline or GitHub Actions. It starts by reading the project: package.json for Node.js, requirements.txt or pyproject.toml for Python, go.mod for Go, monorepo tools like Turborepo. Then it writes .github/workflows/ci.yml for whatever stack it found.
For Node.js the file gets actions/checkout@v4, actions/setup-node@v4 with npm caching, then npm ci, lint, type-check, tests and build. If there is no typecheck script in package.json, the skill adds one as tsc --noEmit. Matrix testing across Node versions and a deploy job come only on request: the deploy job runs on main pushes and waits for the build job to pass. A status badge goes into the README.
Secrets such as VERCEL_TOKEN belong in GitHub repository settings, not in the workflow file. That is the practical limit here: without the token the deploy step fails, and npm ci needs a committed lockfile.
What it helps with
- write
.github/workflows/ci.ymlfor the project's stack - add a type-check step when no
typecheckscript exists - run tests across several Node versions with a matrix
- gate deployment on a green build from
main - put a CI status badge in the README
Example prompts for the agent
- set up CI with GitHub Actions for this project
- add lint, tests and type-checking to the pipeline
- deploy to Vercel only on pushes to main
How to install setting-up-ci
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill setting-up-ci -a claude-code2Manually: put the files in place
~/.claude/skills/setting-up-ci/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/setting-up-ci/
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill setting-up-ci -a codex2Manually: put the files in place
.agents/skills/setting-up-ci/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill setting-up-ci -a cursor2Manually: put the files in place
.cursor/skills/setting-up-ci/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills setting-up-ci2Manually: put the files in place
.github/skills/setting-up-ci/SKILL.md1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill setting-up-ci -a gemini-cli2Platform CLI
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/setting-up-ciManually: put the files in place
.devin/skills/setting-up-ci/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill setting-up-ci -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about setting-up-ci
How do I install setting-up-ci in Claude?
Run npx skills add spencerpauly/awesome-cursor-skills --skill setting-up-ci -a claude-code. The skill file then sits at ~/.claude/skills/setting-up-ci/SKILL.md.
What does setting-up-ci do?
It generates a GitHub Actions workflow: detects the stack from project files, then wires up dependency install, lint, type-check, tests and build. Deploy and version matrix are added only when you ask.
Which secrets does the deploy step need?
A deploy token such as VERCEL_TOKEN, stored in GitHub repository settings and referenced through secrets. It does not go into the workflow file itself.
Source text
SKILL.md · CC0-1.0
---
name: setting-up-ci
description: Set up a GitHub Actions CI/CD pipeline with linting, testing, type-checking, and deployment steps.
---
# Setup CI (GitHub Actions)
Use this skill when the user asks to set up CI, continuous integration, a build pipeline, or GitHub Actions.
## Steps
1. **Detect the project structure** — check for `package.json` (Node.js), `requirements.txt` / `pyproject.toml` (Python), `go.mod` (Go), or monorepo tools like Turborepo.
2. **Create `.github/workflows/ci.yml`**
For a Node.js project:
```yaml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run typecheck
- run: npm test
- run: npm run build
```
3. **Add type-checking** — if `typecheck` script doesn't exist in `package.json`, add `"typecheck": "tsc --noEmit"`.
4. **Add caching** — the `actions/setup-node` `cache` option handles `node_modules`. For monorepos with Turborepo, add remote caching or `actions/cache` for `.turbo`.
5. **Add matrix testing (optional)** — if the user needs to test across Node versions or OS:
```yaml
strategy:
matrix:
node-version: [18, 20, 22]
```
6. **Add deployment step (optional)** — if requested, add a deploy job that runs only on `main` pushes, gated by the build job succeeding:
```yaml
deploy:
needs: build
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build
- run: npx vercel deploy --prod --token=${{ secrets.VERCEL_TOKEN }}
```
7. **Add status badge** — add the workflow status badge to the project README:
```markdown

```
## Notes
- Keep CI fast — run lint and typecheck in parallel using separate jobs if the pipeline is slow.
- Use `npm ci` (not `npm install`) for deterministic installs.
- Store secrets (API keys, deploy tokens) in GitHub repository settings, never in the workflow file.
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills