К основному содержанию
плагин

vitals — плагин для Claude Code: что делает и как установить

Плагин находит критические узлы кодовой базы через метрики git и сложность кода, а затем поручает Claude разобрать первопричины проблем.

Установить в Claude Code · Через маркетплейс плагинов Все способы и платформы ↓
/plugin marketplace add anthropics/claude-plugins-community
/plugin install vitals@claude-community
Открыть на GitHub

Что делает vitals

Плагин vitals анализирует репозиторий в два шага. Сначала локальный скрипт на стандартной библиотеке Python сканирует историю коммитов и структуру отступов. Он ранжирует файлы по частоте изменений и взаимной связанности. Никаких сторонних библиотек ставить не придётся.

На втором этапе плагин отдаёт проблемные файлы Claude. Модель изучает исходники и предлагает чёткий план рефакторинга. Фоном хук PostToolUse записывает в файл .vitals/store.db долю правок, сделанных ассистентом.

Для работы требуется Python 3. Без установленного git vitals сможет оценить только структурную сложность файлов, потеряв метрики частоты правок и рисков ухода авторов кода.

Какие задачи решает

  • найти файлы с высоким риском сбоев из-за частых правок и запутанности
  • выявить скрытые архитектурные зависимости между файлами при коммитах
  • определить участки кода с риском ухода единственного контрибьютора
  • отслеживать долю правок от нейросети в сравнении с кодом разработчиков

Примеры запросов агенту

  • /vitals:scan
  • /vitals:scan src/auth
  • /vitals:scan --top 20

Как установить vitals

Через маркетплейс плагинов

/plugin marketplace add anthropics/claude-plugins-community
/plugin install vitals@claude-community

По шагам, с командами для каждой платформы: Плагины Claude Code: маркетплейсы, установка и как собрать свой

Вопросы о vitals

Как установить vitals в Claude Code?

Выполните в Claude Code команду /plugin marketplace add anthropics/claude-plugins-community, а затем установите плагин: /plugin install vitals@claude-community.

Что делает плагин vitals?

Он вычисляет проблемные места в кодовой базе на основе частоты правок, сложности и связей между файлами. После этого Claude анализирует отобранный код и выдаёт рекомендации по рефакторингу с приоритетом для ключевых модулей.

Нужны ли для vitals сторонние библиотеки или API-ключи?

Нет, плагин работает на стандартной библиотеке Python 3 и утилите git. Ему не требуются пакеты из pip, внешние API-ключи или конфигурационные файлы.

Исходный текст

SKILL.md · MIT
# Vitals

**Your codebase has a health score. You just can't see it yet.**

Vitals is a Claude Code plugin that finds the files most likely to cause your next outage, explains *why* they're dangerous, and tells you exactly what to fix first.

It's not a linter. It's not a static analysis tool. It reads your code, thinks about it, and gives you a diagnosis — like a doctor, not a thermometer.

```
/vitals:scan

Overall Health: 5.4 / 10.0  ██████████░░░░░░░░░░

HOTSPOTS — Ranked by ROI (core > test, central > leaf)

File                                   Health  Role  Complexity  Churn  Links
───────────────────────────────────────────────────────────────────────────
src/proxy/server.py                      2.3  core   100        49/90d    63
src/transforms/content_router.py         2.8  core    98        17/90d    35
src/transforms/smart_crusher.py          2.8  core   100        16/90d    12

TOP RECOMMENDATION
  src/proxy/server.py is your #1 priority: 7,137 lines, health 2.3 (alert zone),
  49 changes in 90 days, co-changes with 63 other files.
  This file handles routing, caching, rate limiting, cost tracking, AND metrics
  in a single class. Extract each concern into its own module.
```

## Install

In Claude Code, run:

```
/plugin marketplace add chopratejas/vitals
/plugin install vitals@vitals
```

Then:

```
/vitals:scan
/vitals:scan src/auth          # scope to a directory
/vitals:scan --top 20          # show more hotspots
```

No API keys. No configuration. No external dependencies. Just Python 3 and a codebase.

## What It Does

### Phase 1: Quantitative Triage (Python)

A fast metrics scan identifies WHERE to look:

- **Hotspot Detection** — Files ranked by `churn x complexity x centrality`. Not just "what's complex" but "what's complex AND changing frequently AND connected to everything else."
- **Co-Change Coupling** — Files that always change together, revealing hidden architectural dependencies.
- **Knowledge Risk** — Bus factor analysis. Which files have only one contributor? What happens when they leave?
- **ROI Ranking** — Core production code with high centrality ranks above tests and leaf utilities. Because fixing a central engine has 10x the impact of fixing an isolated helper.

### Phase 2: Deep Analysis (Claude)

Claude reads the top hotspot files and **diagnoses root causes**:

- Not "high complexity" but *"this function handles validation, transformation, AND persistence in one 200-line loop"*
- Not "strong coupling" but *"these files share a global config dict — introduce dependency injection"*
- Not "low health score" but *"only one person contributes because the code is so tangled others avoid it"*

The metrics tell Claude where to look. Claude tells you what's actually wrong.

### Phase 3: Silent Provenance Capture (Background)

From the moment you install, Vitals silently tracks every AI-generated edit:

- Which files are being modified by AI
- How frequently each file is touched
- The ratio of AI-generated to human-authored changes

This data accumulates over time. After a week of use, `/vitals:scan` shows AI-specific insights — which files are churning under AI edits, which modules are being regenerated instead of maintained.

## How It Works

```
Developer runs /vitals:scan
         │
         ▼
    ┌─────────────────────────────────────┐
    │  Phase 1: Python metrics script     │
    │  ├─ git log → churn analysis        │
    │  ├─ indentation → complexity gate   │
    │  ├─ co-change → coupling detection  │
    │  ├─ shortlog → knowledge risk       │
    │  └─ Output: structured JSON         │
    └──────────────┬──────────────────────┘
                   │
                   ▼
    ┌─────────────────────────────────────┐
    │  Phase 2: Claude reads hotspots     │
    │  ├─ Reads top 3 core files          │
    │  ├─ Diagnoses root causes           │
    │  ├─ Assesses blast radius           │
    │  └─ Prescribes specific fixes       │
    └──────────────┬──────────────────────┘
                   │
                   ▼
    ┌─────────────────────────────────────┐
    │  Report: ROI-ranked action plan     │
    │  ├─ Core hotspots with diagnosis    │
    │  ├─ Coupling issues explained       │
    │  ├─ Knowledge risk assessment       │
    │  └─ "Fix this first" ranked list    │
    └─────────────────────────────────────┘

Meanwhile, in the background:
    PostToolUse hook → captures every AI edit → .vitals/store.db
```

## Design Principles

**Zero dependencies.** No pip install. No npm. No API keys. The entire plugin is Python stdlib + git. If you have Python 3 and a terminal, it works.

**Zero regex.** Complexity is measured by indentation depth, not language-specific keyword patterns. This works for Python, Java, Scala, Go, TypeScript, Rust — any language with indentation. The nesting gate (`depth <= 2 = not code`) filters lock files, configs, and data files without maintaining a brittle extension list.

**Zero hardcoded lists.** No list of "source file extensions." No list of "ignored directories." File filtering uses structural signals (has an extension? in a hidden directory? is a `.lock` file?) and git-native detection (`linguist-generated` from `.gitattributes`).

**Git optional.** With git: full analysis (churn, coupling, knowledge risk, complexity). Without git: complexity-only scan. The tool never crashes — it degrades gracefully.

**Monorepo-safe.** Tested on repos with 34,000+ commits and 268 contributors. The analysis flow computes churn first, filters to source files, then computes complexity — so lock files and generated code never drown out real hotspots.

**Claude is the brain, not a presenter.** The Python script does triage. Claude does diagnosis. Other tools compute metrics and dump a report. Vitals hands Claude the exact files to read, and Claude tells you what's actually wrong and how to fix it.

## What Makes a Hotspot

A hotspot is a file where **churn AND complexity AND centrality** intersect:

| Signal | What It Measures | Source |
|--------|-----------------|--------|
| **Churn** | How often the file changes (last 90 days) | `git log --numstat` |
| **Complexity** | Nesting depth and structural density | Indentation analysis (Python AST for `.py`) |
| **Centrality** | How many other files co-change with it | Co-change coupling pairs |
| **Role** | Core production code vs. test vs. config | Path conventions (`/test/`, `_test.py`, `Test.java`) |

The risk score formula:

```
risk = (10 - health) × churn × role_weight × (1 + centrality × 0.2)
```

Core files with high centrality dominate the list. Tests are weighted 0.3x. A moderately unhealthy core engine that 40 files depend on ranks far above a critically unhealthy test that nothing imports.

## Health Score

Each file gets a health score from 1.0 to 10.0:

| Score | Category | Meaning |
|-------|----------|---------|
| 9-10 | Healthy | Well-structured, low risk |
| 7-9 | Good | Minor issues, monitor |
| 4-7 | Warning | Accumulating debt, plan refactoring |
| 1-4 | Alert | High defect risk (research shows 15x more bugs) |

The score combines:
- **Complexity** (30%) — nesting depth, deep-nesting density
- **Churn** (30%) — change frequency in last 90 days
- **Coupling** (20%) — strength of co-change relationships
- **Knowledge** (20%) — truck factor (how many people must leave before knowledge is lost)

## Provenance Capture

Every AI-generated edit is silently logged:

```
PostToolUse(Edit|Write) → .vitals/store.db
```

What's captured:
- File path, tool name (Edit/Write), timestamp, session ID, lines changed

What's NOT captured:
- Raw prompts (never stored — only a one-way hash for correlation)
- Full file contents (only diffs, same as git)
- No network calls (all data stays local)

The database lives at `.vitals/store.db` in your project root, gitignored by default.

After provenance data accumulates, `/vitals:scan` shows:
- Which files are heavily AI-modified
- AI edit frequency per file
- Ratio of AI-generated to human-authored changes

## Standalone CLI

Vitals also works as a standalone CLI tool, outside of Claude Code:

```bash
# In any git repo:
python3 /path/to/vitals/scripts/vitals_cli.py report

# Scope to a directory:
python3 /path/to/vitals/scripts/vitals_cli.py report src/auth

# JSON output (for piping to other tools):
python3 /path/to/vitals/scripts/vitals_cli.py report --json

# Show more hotspots:
python3 /path/to/vitals/scripts/vitals_cli.py report --top 20

# Works without git too (complexity-only scan):
python3 /path/to/vitals/scripts/vitals_cli.py report /path/to/any/directory
```

## Project Structure

```
vitals/
├── .claude-plugin/
│   └── plugin.json              # Plugin manifest
├── skills/
│   └── scan/
│       └── SKILL.md             # /vitals:scan — Claude's analysis instructions
├── hooks/
│   └── hooks.json               # PostToolUse (provenance) + Stop (session assessment)
├── scripts/
│   ├── vitals_cli.py          # CLI entry point and orchestrator
│   ├── git_analysis.py           # Churn, coupling, knowledge from git
│   ├── complexity.py             # AST (Python) + indentation (all languages)
│   ├── health_score.py           # Composite 1-10 scoring
│   ├── provenance.py             # Silent AI edit tracking
│   ├── db.py                     # SQLite provenance storage
│   └── report.py                 # Terminal report formatting
```

10 files. Zero external dependencies. That's the entire tool.

## Why This Exists

41% of all code is now AI-generated. Refactoring has collapsed from 25% to under 10% of code changes. Code churn is at historic highs. Maintenance costs for unmanaged AI code reach 4x traditional levels by year two.

Every existing tool is either reactive (finds problems after they exist), snapshot-based (measures code health at one point in time), or PR-scoped (reviews individual changes without codebase context).

No tool answers: *"At the current trajectory, when does this module become a liability? And what's the most impactful thing to fix right now?"*

Vitals is building toward that answer. The metrics are the foundation. The provenance data is the moat. Claude's reasoning is the differentiator.

## Roadmap

- [x] **v0.1** — Health scoring, hotspot detection, coupling, knowledge risk, provenance capture
- [ ] **v0.2** — Trend tracking (health snapshots over time: "your codebase went from 7.2 → 4.8 this month")
- [ ] **v0.3** — Drift detection (compare original intent vs. current state using provenance data)
- [ ] **v0.4** — Decay prediction (per-module liability dates: "this file becomes unmaintainable in ~47 days")
- [ ] **v1.0** — SaaS dashboard with team-level insights and cross-repo trends

## Contributing

Vitals is MIT licensed. Contributions welcome.

Before contributing:
- Keep the zero-dependency constraint. If it's not in Python's stdlib, it doesn't go in.
- No regex for file classification. Structural signals only.
- Test against a real repo with 100+ files before submitting.

```bash
# Run against any git repo to test:
cd /path/to/your/repo
python3 /path/to/vitals/scripts/vitals_cli.py report
```

## License

MIT

© chopratejas · MIT · chopratejas/vitals

Похожие плагины

Все плагины по теме «Код-ревью и рефакторинг» →
superpowers obra Плагин ведёт агента от обсуждения задачи и плана до разработки через субагентов, ревью, отладки и TDD. Подойдёт для проектов, где важен последовательный процесс. CX Codex ★ 305 662звёзд репо ponytail DietrichGebert Плагин настраивает агента на короткие решения без лишних абстракций. Сгодится, когда нужно использовать возможности уже имеющегося кода и не усложнять задачу. ★ 177 259звёзд репо mattpocock-skills Matt Pocock Набор скиллов для гриллинга, TDD, ревью кода и работы со спецификациями. Подойдёт, если агенту нужно сначала разобраться в задаче, а потом менять код. ★ 304 151звёзд репо understand-anything Egonex-AI Плагин сканирует проект и строит интерактивный граф файлов, классов и зависимостей с веб-дашбордом. Пригодится при знакомстве с чужим или крупным кодом. ★ 88 429звёзд репо serena официальный Oraios Семантический анализ кода и навигация по проекту через LSP. Помогает разбирать кодовую базу и готовить рефакторинг. ★ 44 770звёзд репо security-guidance официальный Anthropic Три слоя проверки кода, который пишет Claude: мгновенные предупреждения по regex, разбор диффа через LLM и агентная проверка коммитов. ★ 44 770звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой