AgentStack
SKILL verified BSD-3-Clause Self-run

Ci Scaffolding

skill-neuromechanist-research-skills-ci-scaffolding · by neuromechanist

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 pip…

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add skill-neuromechanist-research-skills-ci-scaffolding

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Ci Scaffolding? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

CI/CD Scaffolding

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.

When to Use

  • Adding CI/CD to a new project
  • Updating existing GitHub Actions workflows
  • Setting up pre-commit hooks for linting
  • Configuring coverage reporting
  • Adding release automation (tag-based)

Pipeline Templates

Python Project Pipeline

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:

  • Use astral-sh/setup-uv (not pip)
  • Ruff for both linting and formatting
  • pytest with coverage (XML report for CI integration)
  • No mocks in test configuration

TypeScript/JavaScript Project Pipeline

# .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:

  • Use oven-sh/setup-bun (not npm/node)
  • Biome for linting and formatting
  • bun test for testing

Release Workflow

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

Documentation Workflow

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

Typo Checking

Add typo checking to any project:

# In existing test.yml or standalone
- uses: crate-ci/typos@master

Pre-commit Hook Setup

Python (ruff)

#!/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

TypeScript (biome)

#!/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

Scaffolding Workflow

Step 1: Detect project type

Scan for language markers (pyproject.toml, package.json, Cargo.toml, go.mod) and existing CI configuration.

Step 2: Select pipelines

Based on detection:

  • Always: test workflow
  • If Python with docs: docs workflow
  • If releases needed: release workflow
  • If no pre-commit hook: install one

Step 3: Generate files

Create .github/workflows/ directory and write workflow files. Never overwrite existing workflows without asking.

Step 4: Verify

Run act locally if available to validate workflows, or do a dry-run check of YAML syntax.

Additional Resources

  • Reference: [references/workflow-templates.md](references/workflow-templates.md) - Full workflow file templates with all options
  • Reference: [references/ci-best-practices.md](references/ci-best-practices.md) - Caching, matrix builds, secrets management

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.