Skip to content
Back to skills

Ci 1

ASecurity

Run the full CI pipeline (format, lint, typecheck, test, validate-docs)

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
testingpythonbashgitapidocumentation

Works with

  • cli
  • api

Security analysis

A93/100
  • highPerforms destructive filesystem operations

Pro scans all 2 files and shows the line behind each finding

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill ci-1 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ci 1?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ci 1
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-ci-1/badge)](https://www.skillsdirectory.com/skills/david-li0406-ci-1)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ci
description: Run the full CI pipeline (format, lint, typecheck, test, validate-docs)
allowed-tools: Bash(poetry:*), Bash(make:*), Bash(direnv exec:*), Bash(git:*), Read, Grep, Glob, Edit, Write
user-invocable: true
---

# CI Pipeline Skill

This skill runs the full CI pipeline with detailed feedback, auto-fixing lint issues, and reviewing test coverage.

## Arguments

- `--eval` - Include `make test-eval` (runs Claude tool call evaluation tests, takes a long time)
- `--skip-docs` - Skip documentation validation
- `--coverage-only` - Only run test coverage analysis

## Pipeline Steps

Execute each step in order. Stop on failure unless the step is auto-fixable.

### Step 1: Install Dependencies

```bash
poetry install
```

Verify the virtual environment is set up correctly.

### Step 2: Format Code

```bash
poetry run ruff format src/ tests/
```

This auto-formats all code. Report what files were changed (if any).

### Step 3: Lint with Auto-Fix

```bash
poetry run ruff check --fix src/ tests/
```

If there are fixable issues, they will be auto-fixed. After auto-fix, run again without `--fix` to see remaining issues:

```bash
poetry run ruff check src/ tests/
```

If there are remaining unfixable issues, report them and stop.

### Step 4: Type Checking

```bash
poetry run mypy --warn-unreachable --warn-redundant-casts --warn-unused-ignores src/
```

Report any type errors. Stop if there are errors.

### Step 5: Run Unit Tests with Coverage

```bash
poetry run pytest tests/unit/ -v --cov=honeycomb --cov-report=term-missing --cov-branch
```

After tests complete:

1. **Check overall coverage percentage** - current baseline is ~38% (CLI and integration code is tested via live tests)
2. **Identify uncovered lines** - focus on models and validation code (should be 80%+)
3. **Check for new functionality without tests**:
   - Use `git diff --name-only HEAD~5` to find recently changed files
   - Cross-reference with coverage report
   - Flag any new code in `src/honeycomb/models/` or `src/honeycomb/validation/` without 80%+ coverage

**Coverage expectations by module:**
- `models/` and `validation/`: Should be 80%+ (unit testable)
- `resources/`: 30-50% typical (integration-heavy, tested via live tests)
- `cli/`: Low coverage expected (tested manually)
- `tools/executor.py`: 40-50% (tested via eval tests)

### Step 6: Validate Documentation (requires direnv)

```bash
direnv exec . poetry run python scripts/validate_docs_examples.py
direnv exec . poetry run pytest tests/integration/test_doc_examples.py -v
```

**Important:** This step requires environment variables from `.envrc`. If direnv is not configured, skip with a warning.

After validation:
1. **Check for docs-code mismatch**:
   - Use `git diff --name-only HEAD~5` to find changed source files
   - Check if corresponding docs in `docs/usage/` were updated
   - Flag functionality changes without docs updates

### Step 7: (Optional) Claude Tool Evaluation Tests

Only run if `--eval` argument is provided:

```bash
rm -rf tests/integration/.tool_call_cache/*.json
direnv exec . poetry run pytest tests/integration/test_claude_tools_eval.py -v -n 4
```

**Warning:** This step takes a long time (5-10 minutes) and requires `ANTHROPIC_API_KEY`.

## Post-Pipeline Analysis

After all steps complete, provide a summary:

### Coverage Analysis

1. **Overall coverage**: Report the percentage
2. **Coverage gaps**: List top 5 files with lowest coverage
3. **New code coverage**: For files changed in recent commits, report their coverage

### Documentation Sync Check

Compare changed files with docs:

```bash
# Get changed source files
git diff --name-only HEAD~5 -- 'src/honeycomb/*.py' 'src/honeycomb/**/*.py'

# Get changed doc files
git diff --name-only HEAD~5 -- 'docs/**/*.md'
```

Flag any source files in `resources/`, `models/`, or `builders/` that changed without corresponding doc updates.

### Test Coverage for New Features

For each new or significantly changed file:
1. Check if it has test coverage
2. If coverage < 70%, flag it
3. Suggest what tests might be needed

## Example Output Format

```
CI Pipeline Results
==================

Step 1: Install Dependencies ✓
Step 2: Format Code ✓ (2 files reformatted)
Step 3: Lint ✓ (3 issues auto-fixed)
Step 4: Type Check ✓
Step 5: Unit Tests ✓ (831 passed, 38% overall coverage)
Step 6: Documentation ✓
Step 7: Eval Tests ✓ (320 passed) [if --eval]

Coverage Analysis
-----------------
Overall: 38% (baseline for this project)

Models/Validation (target 80%+):
  ✓ src/honeycomb/models/tool_inputs.py: 99%
  ✓ src/honeycomb/models/tags_mixin.py: 100%
  ✓ src/honeycomb/validation/boards.py: 90%

Resources (30-50% expected):
  - src/honeycomb/resources/markers.py: 24%
  - src/honeycomb/resources/columns.py: 27%

Documentation Sync
------------------
Changed source files without doc updates:
  - src/honeycomb/resources/triggers.py (modified)
    Consider updating: docs/usage/triggers.md

New Code Without Tests
----------------------
  - src/honeycomb/models/new_feature.py: New file, 45% coverage
    Missing tests for: validate_feature(), get_feature()
```

## Failure Handling

- **Lint failures (unfixable)**: Stop and report. User must fix manually.
- **Type errors**: Stop and report. User must fix.
- **Test failures**: Stop and report failed tests with tracebacks.
- **Doc validation failures**: Report but continue if `--skip-docs` not set.

## Quick Commands

```bash
# Full CI (default)
/ci

# CI with eval tests (for tool call changes)
/ci --eval

# Skip docs validation
/ci --skip-docs

# Just coverage analysis
/ci --coverage-only
```

Files in this skill

  • SKILL.md5.5 KB
  • skill.json155 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…