# 🧠 project-diagnose  
**AI-анализатор состояния проекта: хаос-индекс, техническая карма, прогноз страданий и web-интерфейс.**

`project-diagnose` — это утилита, которая смотрит на ваш проект так, как на кафедре смотрят на историю болезни: внимательно, придирчиво и с долей профессиональной боли.

Инструмент предназначен для разработчиков, которые хотят:

- понимать состояние своего проекта в любой момент времени  
- отслеживать рост технического долга  
- получать честные AI-вердикты  
- иметь web-панель для просмотра структуры и отчётов  
- подключить диагностику в git-hooks, CI или PyPI-workflow  

---

## 🚀 Установка

После публикации на PyPI:

pip install project-diagnose

Либо локально из репозитория:

pip install -e .


---

## 🧩 Возможности

### 📊 Аналитика проекта
Полный анализ вашего репозитория:

- суммарный вес файлов  
- количество строк по расширениям  
- топ тяжёлых файлов  
- топ длинных файлов  
- подозрительно маленькие файлы  
- структура проекта с датами, размерами и количеством строк  

### 🤖 AI-оценка структуры
Инструмент вычисляет:

- **Chaos Index** — индекс хаоса  
- **Technical Karma** — карма технического долга  
- **AI Verdict** — честное мнение алгоритма  
- **Suspicious Files Score** — уровень бесполезности мелких файлов  
- ASCII-диаграммы, визуализация и выводы  

### 🔮 Прогноз страданий разработчика
Метрика FRI (Future Regret Index):

- предсказывает, насколько больно будет работать с проектом через 6 месяцев  
- анализирует разброс строк, мелкие файлы, длину кода  

Плюс:

- граф зависимостей мусорных файлов  
- выявление токсичных импортов  

### 🌐 Web-интерфейс

Команда:

project-diagnose web


Даёт вам локальный сайт:

- красивый тёмный/светлый режим  
- панель инструментов  
- текстовый отчёт  
- структура проекта  
- поиск «депрессивного» кода (`todo`, `fixme`, `temp`, `hack`…)  
- кнопка «рефакторинг» (которая говорит правду)  
- скачивание отчёта  

---

## ⚙️ Команды

| Команда | Описание |
|--------|----------|
| `project-diagnose analyze` | Быстрый анализ проекта |
| `project-diagnose report` | Полный текстовый отчёт |
| `project-diagnose report --html` | HTML-версия отчёта |
| `project-diagnose tree` | Структура проекта |
| `project-diagnose full` | Полный вывод (структура + отчёт) |
| `project-diagnose web` | Запуск web-интерфейса |

---

## 🛠 Интеграция с Git

Вы можете подключить DIAGNOSE в:

- `pre-commit` (блокировка коммитов при высоком хаосе)
- `post-commit` (автоматическая генерация отчёта)
- Telegram-уведомления  
- CI/CD pipelines  

Пример pre-commit:

```bash
report=$(project-diagnose report | grep "Индекс хаоса")
chaos=$(echo "$report" | grep -oE '[0-9]+\.[0-9]+')
if (( $(echo "$chaos > 35" | bc -l) )); then
    echo "Коммит запрещён. Хаос выше нормы."
    exit 1
fi
```
📦 Структура проекта
project_diagnose/
    cli.py
    analyzer.py
    rendering.py
    web.py
    __init__.py

📝 Лицензия
MIT License — делайте, что хотите, только сохраняйте уважение к автору.

🌟 Автор

Разработка: Razmakh
Вдохновение: проекты, которые плачут о помощи.

💬 Обратная связь

Если вам понравился инструмент — ставьте ⭐ на GitHub.
Если не понравился — значит, индекс хаоса был слишком высоким.
