Help us improve
Share bugs, ideas, or general feedback.
From project
This skill should be used when the user says "set up CI", "create GitHub Actions", "scaffold CI pipeline", "add CI/CD", "configure continuous integration", "create test workflow", "create release workflow", "add pre-commit hooks", "set up linting pipeline", "configure ruff in CI", "configure biome in CI", "add typo checking", or wants to add, update, or customize CI/CD pipelines for their project. For initial project setup including basic CI, see init-project. Use ci-scaffolding for adding or customizing CI/CD in existing projects.
npx claudepluginhub neuromechanist/research-skills --plugin projectHow this skill is triggered — by the user, by Claude, or both
Slash command
/project:ci-scaffoldingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate and configure CI/CD pipelines following project conventions. Supports Python (ruff + pytest + coverage) and TypeScript/JavaScript (biome + bun test) stacks, with templates for testing, documentation, and release workflows.
Configures GitHub Actions CI/CD workflows for Python (pytest/ruff/mypy), Rust, and TypeScript (Jest/ESLint) projects with testing, linting, type-checking, build, and deployment pipelines.
Sets up testing infrastructure: pre-commit hooks, unit/integration/e2e test directories, GitHub Actions CI/CD with coverage/Codecov, docs workflows, and badges for Python/JS/Go/Rust projects.
Sets up Git hooks with Husky, lint-staged, pre-commit framework, and commitlint to automate linting, formatting, testing, and commit message validation before CI.
Share bugs, ideas, or general feedback.
Generate and configure CI/CD pipelines following project conventions. Supports Python (ruff + pytest + coverage) and TypeScript/JavaScript (biome + bun test) stacks, with templates for testing, documentation, and release workflows.
Standard Python CI pipeline:
# .github/workflows/test.yml
name: Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
- run: uv sync --dev
- run: uv run ruff check .
- run: uv run ruff format --check .
- run: uv run pytest --cov --cov-report=xml
Key conventions:
astral-sh/setup-uv (not pip)# .github/workflows/test.yml
name: Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
- run: bun install
- run: bun run biome check .
- run: bun test
Key conventions:
oven-sh/setup-bun (not npm/node)Tag-based release automation:
# .github/workflows/release.yml
name: Release
on:
push:
tags: ['v*']
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
MkDocs deployment to GitHub Pages:
# .github/workflows/docs.yml
name: Docs
on:
push:
branches: [main]
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
- run: uv sync --group docs
- run: uv run mkdocs gh-deploy --force
Add typo checking to any project:
# In existing test.yml or standalone
- uses: crate-ci/typos@master
#!/bin/sh
# .git/hooks/pre-commit
STAGED=$(git diff --cached --name-only --diff-filter=d -- '*.py')
[ -z "$STAGED" ] && exit 0
echo "$STAGED" | xargs uv run ruff check --fix --unsafe-fixes
echo "$STAGED" | xargs uv run ruff format
git add $STAGED
#!/bin/sh
# .git/hooks/pre-commit
STAGED=$(git diff --cached --name-only --diff-filter=d -- '*.ts' '*.tsx' '*.js' '*.jsx')
[ -z "$STAGED" ] && exit 0
echo "$STAGED" | xargs bunx biome check --write
git add $STAGED
Scan for language markers (pyproject.toml, package.json, Cargo.toml, go.mod) and existing CI configuration.
Based on detection:
Create .github/workflows/ directory and write workflow files. Never overwrite existing workflows without asking.
Run act locally if available to validate workflows, or do a dry-run check of YAML syntax.