CI Guard
Every repository using this basecamp should have CI unless explicitly marked as research. This skill checks for CI configuration and alerts when it's missing.
When to Activate
- At session start, after repository status is reported
- When a user clones or creates a new repo under
repositories/ - When running
/verifyor/quality-gatein 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)
| 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:
- A
.researchfile exists in the repo root, OR pyproject.tomlcontainspurpose = "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:
- Warn clearly at session start: "This repo has no CI configuration."
- Suggest a starter workflow based on the detected stack (Python/Node/Rust/Go)
- Reference the basecamp's own CI (
.github/workflows/ci.yml) as a working template - 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
| 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 |