Skip to content
Agentmart
Submit a tool

ci-guard

Use when starting work in a repository under repositories/ that may lack CI configuration.

Skill by Benkapner

IndexedMIT★ 18
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/benkapner-ci-guard

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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.

Use cases: devops, research

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/ci-guard

What's inside

Skill name
ci-guard
Description
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.
License
MIT
Instructions
114 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (2)

  • SKILL.md
  • check-ci.py · scripts/

SKILL.md (first lines)

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

```bash
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)

| Provider | Path |
|----------|------|
| GitHub Actions | `.github/workflows/` (with at least one `.yml`/`.yaml`) |
| GitLab CI | `.gitlab-ci.yml` |
| CircleCI | `.circleci/config.yml` |
| Jenkins | `Jenkinsfile` |
| Travis | `.travis.yml` |
| Azure | `azure-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)

```yaml
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

```yaml
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

| Mistake | Fix |
|---------|-----|
| Forgetting CI on quick prototype repos | Use `.research` file for true prototypes, add CI for everything else |
| Adding CI but not running tests | CI without tests is a false safety net - at minimum lint |
| Blocking the user from working | This is an alert, not a blocker - warn and continue |

From Benkapner/claude-code-basecamp, MIT.

Signals

Stars
18
Forks
4
Open issues
0
Last commit (this folder)
Sep 14, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Benkapner

Cite this page

ci-guard skill. Agent Mart. https://agentmart.dev/skills/benkapner-ci-guard (last updated 2026-10-24)