Skip to content
cccskills
FreePublished on GitHub

ci-guard

Use when starting work in a repository under repositories/ that may lack CI configuration. Detects missing CI workflows (GitHub Actions, GitLab CI, CircleCI) and alerts the user to add one. Skips repos marked as research-only.

The English summary is being prepared. Showing the original description.

Works withGitHubGitLab
See how to install

Files included (2)

  • SKILL.md3.1 KB
  • scripts/check-ci.py2.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

CI Guard

Repositories benefit from CI, but this skill is advisory. It checks for CI configuration and alerts when it is missing, while allowing research, prototypes, and intentionally local projects.

When to Activate

  • At session start, after repository status is reported
  • When a user clones or creates a new repo under repositories/
  • When running /verify or /quality-gate in a repo without CI

How to Check

Run the check script against any repo:

uv run skills/ci-guard/scripts/check-ci.py <repo-path>

The script checks for common CI indicators and the research exemption.

CI Indicators (any one is sufficient)

ProviderPath
GitHub Actions.github/workflows/ (with at least one .yml/.yaml)
GitLab CI.gitlab-ci.yml
CircleCI.circleci/config.yml
JenkinsJenkinsfile
Travis.travis.yml
Azureazure-pipelines.yml

Research Exemption

A repo is exempt from the CI requirement if:

  1. A .research file exists in the repo root, OR
  2. pyproject.toml contains purpose = "research" in [project.optional] or as a comment marker

To mark a repo as research: touch <repo>/.research

Alert Behavior

When CI is missing and the repo is not research:

  1. Warn clearly at session start: "This repo has no CI configuration."
  2. Suggest a starter workflow based on the detected stack (Python/Node/Rust/Go)
  3. Reference the basecamp's own CI (.github/workflows/ci.yml) as a working template
  4. Do not block work - this is an alert, not a gate

Starter Templates

Python (uv-based, matching basecamp conventions)

name: CI
on:
  pull_request:
    branches: [main]
  push:
    branches: [main]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: astral-sh/setup-uv@v6
      - run: uv python install 3.12
      - run: uv sync --group dev
      - run: uv run ruff check .
      - run: uv run ruff format --check .

  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: astral-sh/setup-uv@v6
      - run: uv python install 3.12
      - run: uv sync --group dev
      - run: uv run pytest -v

Node.js

name: CI
on:
  pull_request:
    branches: [main]
  push:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - run: npm run lint
      - run: npm test

Common Mistakes

MistakeFix
Forgetting CI on quick prototype reposUse .research file for true prototypes, add CI for everything else
Adding CI but not running testsCI without tests is a false safety net - at minimum lint
Blocking the user from workingThis is an alert, not a blocker - warn and continue

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

User asks for design, planning, or approach exploration before implementation. Covers new features, components, refactors, or architecture decisions. Creates design docs and proposes approaches with trade-offs.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

Use when the user asks to measure command execution time or optimize a feedback loop. Records explicit measurements and recommends faster alternatives such as unit tests versus integration tests. It is opt-in; it does not run on every command.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

Team conventions for Python development — credentials, API clients, LLM response parsing, testing patterns, and data pipeline structure. Covers dotenv loading, retry logic, secret validation, and pipeline anti-patterns.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

Measurement-driven code refactoring — profile before changing, measure after, keep only if metrics improve. Covers complexity reduction, extraction patterns, and bulk refactoring for mechanical changes across many files.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

Scan projects for credential leaks, secrets in code, insecure patterns, LLM API key exposure, PII leakage to external AI services, and .env/.gitignore misconfigurations. Especially useful for data and API integrations, regardless of implementation language.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

Use when committing or pushing changes and the repository needs a version bump. Analyzes commits using conventional commit prefixes to determine whether the next release is a major, minor, or patch increment. Also use when the user asks about versioning, release planning, or changelog generation.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

See all skills by Benkapner

Report a problem with this skill