# Sv Dev

> Development workflow for Security Verifiers. Use when asked to run tests, lint code, format files, set up the development environment, or perform CI checks on the codebase. Use when this capability is needed.

- Skill: `tomevault-io/sv-dev` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/sv-dev`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/sv-dev/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/sv-dev

---


# Security Verifiers Development

Testing, linting, formatting, and development workflow for the Security Verifiers codebase.

## Quick Start

```bash
# Full setup (creates venv, installs all deps)
make setup
source .venv/bin/activate

# Run all checks
make check  # lint + format + test
```

## Testing

### Run All Tests

```bash
make test
```

### Test Specific Environment

```bash
make test-env E=network-logs
make test-env E=config-verification
make test-env E=code-vulnerability
make test-env E=phishing-detection
make test-env E=redteam-attack
make test-env E=redteam-defense
```

### Environment Shortcuts

```bash
make e1  # test network-logs
make e2  # test config-verification
make e3  # test code-vulnerability
make e4  # test phishing-detection
make e5  # test redteam-attack
make e6  # test redteam-defense
```

### Test Utils Package

```bash
make test-utils
```

### Test with Coverage

```bash
make test-cov
```

### Run Single Test

```bash
uv run pytest environments/sv-env-network-logs/sv_env_network_logs_test.py::TestNetworkLogParser::test_extracts_label_and_confidence -q
```

## Linting and Formatting

### Check Linting (no changes)

```bash
make lint
```

### Fix Linting Issues

```bash
make lint-fix
```

### Format Code

```bash
make format
```

### Quick Fix (lint + format)

```bash
make quick-fix
```

## Pre-commit Hooks

```bash
# Install and run hooks
make pre-commit
```

This runs:
- Ruff linting
- Ruff formatting
- Trailing whitespace removal
- End-of-file fixes

## CI Checks

Run the same checks as CI:

```bash
make ci
```

This runs:
- `ruff check . --exit-non-zero-on-fix`
- `pytest -q --tb=short`

## Environment Setup

### Full Setup

```bash
make setup
```

Creates `.venv`, installs all environments and dev tools.

### Manual Steps

```bash
make venv           # Create virtual environment
make install        # Install all environments
make install-dev    # Install dev tools (pytest, ruff, etc.)
```

### Install Security Tools (Ubuntu)

For E2 config-verification, install pinned tool versions:

```bash
make install-linux  # Installs kube-linter, opa, semgrep
make check-tools    # Verify versions match ci/versions.txt
```

## Project Structure

```
security-verifiers/
├── environments/          # Environment packages
│   ├── sv-env-network-logs/
│   ├── sv-env-config-verification/
│   └── ...
├── sv_shared/             # Shared utilities (security-verifiers-utils)
├── scripts/               # Build, eval, data scripts
├── outputs/               # Evaluation outputs
└── skills/                # Agent skills
```

## Common Workflows

### Before Committing

```bash
make check  # or make quick-check
```

### After Changing Environment Code

```bash
make test-env E=network-logs  # test specific env
make lint                      # check linting
```

### After Changing Shared Code

```bash
make test-utils
make test  # run all tests to check for regressions
```

## Cleaning Up

```bash
make clean           # Build artifacts and caches
make clean-outputs   # Eval outputs (preserves logs)
make clean-logs      # Log files only
make clean-all       # Everything including venv
```

## File Watch (requires entr)

```bash
# Install: brew install entr (macOS) or apt install entr (Ubuntu)
make watch
```

Automatically runs tests when Python files change.

## Environment Info

```bash
make info       # Show environment status
make list-envs  # List environment names
```

## Troubleshooting

**venv issues**: `make clean-all && make setup`
**Import errors**: Ensure `source .venv/bin/activate`
**Tool version mismatch**: `make check-tools` then `make install-linux`
**Pre-commit fails**: `make lint-fix && make format`

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/intertwine) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

