# Repo Health: russianxiii/python

https://sourcecraft.dev/russianxiii/python

fdsafdsa fdsafs

| Показатель | Значение |
|---|---|
| **Repo Health Score** | **22.6 / 100** — Критическое состояние |
| Охват данных | 69% (метрик с данными: 64.7%) |
| Основной язык | Python |
| Последняя активность | 21.08.2025 |
| Дата анализа | 30.09.2026 05:40 UTC |
| Вид анализа | полный |
| Оценки сообщества | 0 реакций |
| Воспроизводимость | методика v1.6, снапшот `6410eef359ae` |

> **Внимание.** Запуски CI недоступны: оценка по конфигурации и проверкам pull request

## Оценки по категориям

| Категория | Оценка | Вес | Ключевой факт |
|---|---|---|---|
| Безопасность | **Нет данных** | 18% | нет прав SourceCraft на просмотр AppSec этого репозитория |
| Состояние кода и техдолг | 60.0/100 | 21% | Тесты: наличие и доля тестового кода: 0% кода в тестах |
| Активность проекта | 0.3/100 | 18% | Осмысленные коммиты за 90 дней: 0 шт. |
| Документация и практики | 6.2/100 | 17% | Лицензия (распознанный SPDX): нет |
| CI/CD | **Нет данных** | 13% | запуски CI видны только участникам репозитория, а в merge-checks PR нет данных о workflow |
| Работа с issues | 14.3/100 | 13% | Зависшие открытые issues (без обновления > 60 дней): 100% открытых |

**Как получен итог.** Score = (60.0×21 + 0.3×18 + 6.2×17 + 14.3×13) / 69 = 22.6. Охват данных 69% — доля веса категорий, по которым есть данные. Категории без данных (Безопасность, CI/CD) исключены из расчёта, их вес перераспределён.

## Сильные стороны

- **Плотность TODO/FIXME/HACK на 1000 строк кода** — 0 на 1000 строк
- **Доля TODO старше 6 месяцев** — 0%

## Слабые стороны

- **Тесты: наличие и доля тестового кода** — 0% кода в тестах
- **Давность последнего осмысленного коммита** — 1.1 года назад
- **Осмысленные коммиты за 90 дней** — 0 шт.
- **Живые авторы за год (без ботов)** — 0 чел.
- **Bus factor (авторов, покрывающих 50% коммитов за год)** — 0 чел.
- **README: наличие, объём и ключевые разделы** — 20%
- **Лицензия (распознанный SPDX)** — нет
- **CONTRIBUTING, CODEOWNERS, CHANGELOG, SECURITY.md** — 0 из 4
- **Правила ревью и политики веток** — 0 из 2
- **Инструкция запуска и сборки** — нет
- **Зависшие открытые issues (без обновления > 60 дней)** — 100% открытых
- **Медиана первого ответа или текущего ожидания** — 9712 ч

## Рекомендации

### 1. Отвечать в issues быстрее

- **Приоритет:** Средний, трудоёмкость низкая, категория «Issues»
- **Проблема:** Медиана до первого ответа или уже прошедшего ожидания: 9712 ч.
- **Почему это важно:** Первый ответ в течение суток-двух удерживает контрибьюторов.
- **Что сделать:** Назначьте дежурного по issues, включите уведомления, используйте шаблоны ответов.
- **Ожидаемый эффект:** +8.0 к Repo Health Score

- **Основание:** [issues.open](https://sourcecraft.dev/russianxiii/python/issues), [issues.closed](https://sourcecraft.dev/russianxiii/python/issues)

### 2. Дополнить короткий README

- **Приоритет:** Средний, трудоёмкость низкая, категория «Документация»
- **Проблема:** README короче 200 символов и почти не объясняет проект.
- **Почему это важно:** Новому участнику сложно понять назначение проекта и как его запустить.
- **Что сделать:** Добавьте краткое описание, команду запуска и пример использования.
- **Ожидаемый эффект:** +7.5 к Repo Health Score

- **Основание:** [files.readme](https://sourcecraft.dev/russianxiii/python/-/blob/main/README.md)

### 3. Разобрать зависшие issues

- **Приоритет:** Средний, трудоёмкость средняя, категория «Issues»
- **Проблема:** 100% открытых issues не обновлялись больше 60 дней.
- **Почему это важно:** Зависшие задачи снижают доверие: пользователи не понимают, читают ли их.
- **Что сделать:** Ответьте в каждой, закройте неактуальные, остальным задайте приоритет и исполнителя.
- **Ожидаемый эффект:** +7.2 к Repo Health Score

- **Основание:** [issues.open](https://sourcecraft.dev/russianxiii/python/issues)

### 4. Проект не обновлялся больше года

- **Приоритет:** Высокий, трудоёмкость высокая, категория «Активность»
- **Проблема:** Последний коммит был 404 дней назад.
- **Почему это важно:** Без изменений проект может устаревать, а пользователям сложно понять, поддерживается ли он.
- **Что сделать:** Обновите зависимости, закройте или пометьте issues, опубликуйте статус проекта в README (поддерживается / архив).
- **Ожидаемый эффект:** +7.0 к Repo Health Score

- **Основание:** [git.last_commit_at](https://sourcecraft.dev/russianxiii/python/-/commits/main)

### 5. Добавить автоматические тесты

- **Приоритет:** Высокий, трудоёмкость высокая, категория «Состояние кода»
- **Проблема:** В репозитории не найдено тестов.
- **Почему это важно:** Без тестов CI проверяет только сборку, регрессии находят пользователи.
- **Что сделать:** Добавьте тесты на ключевые сценарии и запуск тестов в CI.
- **Ожидаемый эффект:** +6.8 к Repo Health Score

- **Основание:** [code.test_files](https://sourcecraft.dev/russianxiii/python)

### 6. Добавить файл LICENSE

- **Приоритет:** Низкий, трудоёмкость низкая, категория «Документация»
- **Проблема:** В репозитории нет лицензии.
- **Почему это важно:** Для открытого проекта явные условия использования упрощают повторное применение кода.
- **Что сделать:** Если хотите разрешить повторное использование кода, добавьте подходящую лицензию в корень репозитория.
- **Ожидаемый эффект:** +3.7 к Repo Health Score

- **Основание:** [files.license](https://sourcecraft.dev/russianxiii/python)

### 7. Подключить линтер и форматтер

- **Приоритет:** Низкий, трудоёмкость низкая, категория «Состояние кода»
- **Проблема:** Не найдены конфигурации линтеров и форматтеров.
- **Почему это важно:** Единый стиль и статические проверки снижают шум в ревью и число мелких ошибок.
- **Что сделать:** Добавьте линтер для основного языка и .editorconfig, включите проверку в CI.
- **Ожидаемый эффект:** +3.0 к Repo Health Score

- **Основание:** [files.tooling](https://sourcecraft.dev/russianxiii/python)

### 8. Заполнить описание репозитория

- **Приоритет:** Низкий, трудоёмкость низкая, категория «Документация»
- **Проблема:** Описание репозитория в SourceCraft пустое или слишком короткое.
- **Почему это важно:** Описание видно в каталоге и рейтинге, по нему проект находят.
- **Что сделать:** Заполните поле «Описание» в настройках репозитория одним-двумя предложениями.
- **Ожидаемый эффект:** +1.8 к Repo Health Score

- **Основание:** [meta.description](https://sourcecraft.dev/russianxiii/python)

## Нет данных

Эти показатели не участвовали в расчёте и не подменялись нулями. Подтверждённое отсутствие компонента, например файла конфигурации CI, оценивается отдельно.

| Показатель | Почему нет данных |
|---|---|
| Открытые уязвимости, взвешенные по критичности | нет прав SourceCraft на просмотр AppSec этого репозитория |
| Доля исправленных findings за 90 дней | нет прав SourceCraft на просмотр AppSec этого репозитория |
| Открытые секреты в коде | нет прав SourceCraft на просмотр AppSec этого репозитория |
| Свежий скан безопасности (≤ 30 дней) | нет прав SourceCraft на просмотр AppSec этого репозитория |
| Зафиксированные зависимости (lockfile) при наличии манифеста | манифест зависимостей не найден — lockfile не требуется |
| Давность последнего релиза или тега | в репозитории нет релизов и тегов |
| Успешные прогоны среди последних 30 (с весом по свежести) | запуски CI видны только участникам репозитория, а в merge-checks PR нет данных о workflow |
| Последний прогон успешен | запуски CI видны только участникам репозитория, а в merge-checks PR нет данных о workflow |
| Нестабильность: чередование успех/провал | запуски CI видны только участникам репозитория, а в merge-checks PR нет данных о workflow |
| Медианная длительность прогона | запуски CI видны только участникам репозитория, а в merge-checks PR нет данных о workflow |
| Медианное время закрытия (за 180 дней) | за 180 дней не закрыто ни одной issue |
| Закрытые / созданные за 90 дней | за 90 дней не создано ни одной issue |

## Как посчитана каждая категория

### Безопасность — нет данных (вес 18%)

нет прав SourceCraft на просмотр AppSec этого репозитория

| Метрика | Значение | Норм. | Вес | Вклад |
|---|---|---|---|---|
| Открытые уязвимости, взвешенные по критичности | нет данных | — | 5 | — |
| Доля исправленных findings за 90 дней | нет данных | — | 2 | — |
| Открытые секреты в коде | нет данных | — | 3 | — |
| Свежий скан безопасности (≤ 30 дней) | нет данных | — | 1 | — |

### Состояние кода и техдолг — 60.0/100 (вес 21%)

| Метрика | Значение | Норм. | Вес | Вклад |
|---|---|---|---|---|
| Плотность TODO/FIXME/HACK на 1000 строк кода | 0 на 1000 строк | 100% | 3 | 30.0 |
| Доля TODO старше 6 месяцев | 0% | 100% | 2 | 20.0 |
| Тесты: наличие и доля тестового кода | 0% кода в тестах | 0% | 3 | 0.0 |
| Зафиксированные зависимости (lockfile) при наличии манифеста | нет данных | — | 1 | — |
| Доля крупных и бинарных файлов | 0% | 100% | 1 | 10.0 |
| Линтеры, форматтеры, editorconfig | 0 инструментов | 0% | 1 | 0.0 |

### Активность проекта — 0.3/100 (вес 18%)

| Метрика | Значение | Норм. | Вес | Вклад |
|---|---|---|---|---|
| Давность последнего осмысленного коммита | 1.1 года назад | 1% | 3 | 0.3 |
| Осмысленные коммиты за 90 дней | 0 шт. | 0% | 2 | 0.0 |
| Живые авторы за год (без ботов) | 0 чел. | 0% | 2 | 0.0 |
| Bus factor (авторов, покрывающих 50% коммитов за год) | 0 чел. | 0% | 2 | 0.0 |
| Влитые PR за 90 дней | 0 шт. | 0% | 1 | 0.0 |
| Разных авторов влитых PR за год | 0 чел. | 0% | 1 | 0.0 |
| Давность последнего релиза или тега | нет данных | — | 1 | — |

Ограничения категории: Нет коммитов больше года → не выше 20 (не повлияло)
### Документация и практики — 6.2/100 (вес 17%)

| Метрика | Значение | Норм. | Вес | Вклад |
|---|---|---|---|---|
| README: наличие, объём и ключевые разделы | 20% | 20% | 4 | 6.15 |
| Лицензия (распознанный SPDX) | нет | 0% | 2 | 0.0 |
| CONTRIBUTING, CODEOWNERS, CHANGELOG, SECURITY.md | 0 из 4 | 0% | 2 | 0.0 |
| Описание репозитория заполнено в SourceCraft | нет | 0% | 1 | 0.0 |
| Правила ревью и политики веток | 0 из 2 | 0% | 2 | 0.0 |
| Инструкция запуска и сборки | нет | 0% | 2 | 0.0 |

### CI/CD — нет данных (вес 13%)

запуски CI видны только участникам репозитория, а в merge-checks PR нет данных о workflow

| Метрика | Значение | Норм. | Вес | Вклад |
|---|---|---|---|---|
| Есть конфигурация CI (.sourcecraft/ci.yaml) | да | 100% | 3 | — |
| Успешные прогоны среди последних 30 (с весом по свежести) | нет данных | — | 4 | — |
| Последний прогон успешен | нет данных | — | 2 | — |
| Нестабильность: чередование успех/провал | нет данных | — | 2 | — |
| Медианная длительность прогона | нет данных | — | 1 | — |
| CI запускается на pull request | нет | 0% | 1 | — |

### Работа с issues — 14.3/100 (вес 13%)

| Метрика | Значение | Норм. | Вес | Вклад |
|---|---|---|---|---|
| Зависшие открытые issues (без обновления > 60 дней) | 100% открытых | 0% | 3 | 0.0 |
| Медиана первого ответа или текущего ожидания | 9712 ч | 0% | 3 | 0.0 |
| Медианное время закрытия (за 180 дней) | нет данных | — | 2 | — |
| Закрытые / созданные за 90 дней | нет данных | — | 2 | — |
| Использование меток, приоритетов, исполнителей | 100% issues | 100% | 1 | 14.29 |

## Подтверждающие факты

| Факт | Значение | Источник |
|---|---|---|
| `meta.description` | fdsafdsa fdsafs | [meta](https://sourcecraft.dev/russianxiii/python) |
| `issues.open` | 1 | [issues](https://sourcecraft.dev/russianxiii/python/issues) |
| `issues.closed` | 0 | [issues](https://sourcecraft.dev/russianxiii/python/issues) |
| `pulls.total_seen` | 2 | [pulls](https://sourcecraft.dev/russianxiii/python/pulls) |
| `pulls.by_status` | {"open": 2} | [pulls](https://sourcecraft.dev/russianxiii/python/pulls) |
| `releases.count` | 0 | [releases](https://sourcecraft.dev/russianxiii/python/releases) |
| `tags.count` | 0 | [releases](https://sourcecraft.dev/russianxiii/python/tags) |
| `tree.files` | 3 | [tree](https://sourcecraft.dev/russianxiii/python) |
| `tree.sourcecraft_files` | ["ci.yaml"] | [tree](https://sourcecraft.dev/russianxiii/python/.sourcecraft) |
| `files.readme` | {"length": 52, "present": true, "sections": ["description"]} | [files](https://sourcecraft.dev/russianxiii/python/-/blob/main/README.md) |
| `files.license` | {"spdx": null, "present": false} | [files](https://sourcecraft.dev/russianxiii/python) |
| `files.ci_config` | да | [files](https://sourcecraft.dev/russianxiii/python/-/blob/main/.sourcecraft/ci.yaml) |
| `files.practices` | {"changelog": false, "codeowners": false, "security_md": false, "contributing": false, "b… | [files](https://sourcecraft.dev/russianxiii/python) |
| `files.dependencies` | {"unlocked": [], "lockfiles": [], "manifests": []} | [files](https://sourcecraft.dev/russianxiii/python) |
| `files.tooling` | {"linters": [], "editorconfig": false} | [files](https://sourcecraft.dev/russianxiii/python) |
| `git.last_commit_at` | 2025-08-21T13:18:16+00:00 | [git](https://sourcecraft.dev/russianxiii/python/-/commits/main) |
| `git.meaningful_commits_90d` | 0 | [git](https://sourcecraft.dev/russianxiii/python/-/commits/main) |
| `git.human_authors_365d` | 0 | [git](https://sourcecraft.dev/russianxiii/python) |
| `git.activity_authenticity` | 1.0 | [git](https://sourcecraft.dev/russianxiii/python) |
| `code.todo_total` | 0 | [code](https://sourcecraft.dev/russianxiii/python) |
| `code.test_files` | 0 | [code](https://sourcecraft.dev/russianxiii/python) |
| `code.lines` | 1 | [code](https://sourcecraft.dev/russianxiii/python) |
| `metric.ci.pr_trigger` | {"result": false, "saved_inputs": {"config_triggers": {"count": 1, "sample": ["push"]}, "… | [Данные на дату анализа · CI/CD](https://sourcecraft.dev/russianxiii/python/cicd/runs) |
| `metric.docs.description` | {"result": false, "saved_inputs": {"description": "fdsafdsa fdsafs"}} | [Данные на дату анализа · Описание проекта](https://sourcecraft.dev/russianxiii/python) |
| `metric.docs.run_instructions` | {"result": false, "saved_inputs": {"run_instructions": false, "inventory_complete": true}} | [Данные на дату анализа · Файлы](https://sourcecraft.dev/russianxiii/python/-/tree/main) |
| `metric.issues.triage_usage` | {"result": 1.0, "saved_inputs": {"total_seen": 1, "items": {"count": 1, "sample": [{"slug… | [Данные на дату анализа · Задачи](https://sourcecraft.dev/russianxiii/python/issues) |
| `metric.activity.pr_authors_365d` | {"result": 0, "saved_inputs": {"by_status": {"open": 2}, "items": {"count": 2, "sample": … | [Данные на дату анализа · Pull requests](https://sourcecraft.dev/russianxiii/python/pulls) |
| `metric.code.heavy_files_share` | {"result": 0.0, "saved_inputs": {"large_files": 0, "binary_files": 0, "files_scanned": 3,… | [Данные на дату анализа · Код](https://sourcecraft.dev/russianxiii/python/-/tree/main) |
| `metric.code.quality_tooling` | {"result": 0, "saved_inputs": {"linters": {"count": 0, "sample": []}, "editorconfig": fal… | [Данные на дату анализа · Файлы](https://sourcecraft.dev/russianxiii/python/-/tree/main) |

## Сбор данных

| Источник | Статус | Комментарий |
|---|---|---|
| Issues | собрано |  |
| Pull requests | собрано |  |
| CI/CD | нет доступа | запуски CI видны только участникам репозитория; учтены конфиг и merge-checks PR |
| Релизы и теги | нет таких данных | нет релизов и тегов |
| Дерево файлов | собрано |  |
| Ключевые файлы | собрано | git |
| История git | собрано |  |
| Содержимое кода | собрано | просканировано 3 файлов |
| AppSec SourceCraft | нет доступа | нет прав SourceCraft на просмотр AppSec этого репозитория |

---

Отчёт сформирован сервисом SourceCraft Repo Health 30.09.2026 18:54 UTC.
Описание методики: `docs/methodology.md`.
