graphify

Knowledge graph для SmitBilling — 2524 узла, 9003 ребра, 34 сообщества

2524Узлов
9003Рёбер
34Сообществ
172Файлов
129kСлов

Что такое graphify

graphify превращает кодовую базу в структурированный граф знаний. Вместо того чтобы читать сотни файлов при каждом вопросе об архитектуре, Claude обращается к предвычисленному графу — это быстрее и даёт кросс-модульный контекст, который невозможно получить из поиска по файлам.

AST-граф (детерминированный)

Импорты, вызовы функций, наследование классов — извлекается из Python-кода статически. Бесплатно, без LLM.

Семантический граф (LLM)

Концептуальные связи, зависимости по данным, архитектурные паттерны — извлекаются из шаблонов и документов.

Обнаружение сообществ

Алгоритм кластеризации находит группы тесно связанных узлов — модули, слои, подсистемы.

God nodes

Узлы с наибольшим числом рёбер — ключевые абстракции, которые объединяют остальной код.

Граф построен из: 152 Python-файла (billing/views, models, services, tasks, mobile_api, lk) + 20 LK HTML-шаблонов. Последнее обновление: 2026-04-23.

Текущее состояние графа

Все выходные файлы находятся в graphify-out/:

ФайлРазмерНазначение
graph.html3 МБИнтерактивная визуализация (открыть в браузере)
graph.json5 МБGraphRAG-ready JSON для Claude
GRAPH_REPORT.md17 КБGod nodes, сообщества, инсайты
.graphify_extract.json5 МБMerged AST + semantic extraction
.graphify_analysis.json101 КБCohesion scores, предложенные вопросы
.graphify_labels.json1 КБИмена сообществ
run_pipeline.pyСкрипт перестройки графа
run_labels.pyСкрипт переименования сообществ

graphify query — широкий поиск по графу

BFS-обход графа по вопросу на естественном языке. Возвращает связанные узлы в порядке близости к запросу.

graphify query "как работает блокировка абонентов"
graphify query "биллинг ежемесячный" --budget 3000
graphify query "YooKassa платёж webhook" --dfs
graphify query "SORM экспорт FTP"
ФлагПоведение
--dfsDepth-first вместо BFS — трассирует конкретный путь выполнения
--budget NОграничить ответ N токенами (по умолчанию 2000)
--graph path/to/graph.jsonИспользовать другой файл графа

graphify path — кратчайший путь между понятиями

Находит цепочку связей между двумя узлами. Полезно для понимания зависимостей.

graphify path "BaseView" "FinanceOperations"
graphify path "AbonentsBlock" "FreeScoutClient"
graphify path "MobileJWTAuthentication" "Abonents"
graphify path "billing_worker" "UsersUsluga"
Используйте god node как промежуточную точку если прямого пути нет. Например: graphify path "push_notification" "BaseView"

graphify explain — объяснение узла

Возвращает plain-language описание узла и его ближайших соседей в графе.

graphify explain "BaseView"
graphify explain "MsgStack"
graphify explain "MoneyField"
graphify explain "FinanceOperations"

graphify update — обновление после изменений кода

Перечитывает Python-файлы и обновляет AST-часть графа. Без LLM-вызовов — бесплатно и быстро.

cd carbon_modern
graphify update .
# Перестраивает AST для изменённых .py файлов
# Семантические узлы (HTML, docs) остаются из кэша
Когда нужно делать update: после добавления новых view-функций, моделей, сервисов. После изменения HTML-шаблонов — нужен полный rebuild (см. раздел "Перестройка").

Интерактивная визуализация

Откройте graphify-out/graph.html в браузере — интерактивный граф с поиском и легендой сообществ.

Как пользоваться визуализацией

God nodes — ключевые абстракции

Узлы с наибольшим числом рёбер. Это точки, через которые проходит большинство кросс-модульных зависимостей.

1 BaseView
197 рёбер Базовый view-класс всего admin. Все views наследуют от него.
2 PaginatorFormMixin
166 рёбер Пагинация во всех списках.
3 SearchFormMixin
160 рёбер Поиск во всех CRUD-списках.
4 MsgStack
159 рёбер Система уведомлений. Используется во всём billing.
5 Homes
149 рёбер Модель адресов. FK из Users, Abonents, ConnectionPoints.
6 FreeScoutClient
138 рёбер HTTP-клиент к FreeScout API. Tickets, customers, webhooks.
7 FinanceOperations
130 рёбер Модель финансовых операций. Центр биллинговых расчётов.
8 AdminAccounts
127 рёбер Лицевые счета абонентов. MoneyField (×10¹⁰).
9 StatusViewMixin
134 рёбер Статус-миксин view.
10 Универсальный контекст для печатных форм
140 рёбер Высокий betweenness centrality — мост между сообществами 0-16.

34 именованных сообщества

Алгоритм Louvain обнаружил 34 кластера. Каждый — логический модуль или слой системы.

#0
Abonent Views & Map
211 узлов
#1
LK Personal Account
230 узлов
#2
Finance & Money
168 узлов
#3
Abonent Search & Wizard
194 узлов
#4
Mobile API Account
141 узлов
#5
Auth & Core Models
91 узел
#6
ACL & Social Internet
83 узла
#7
Firewall & Blocking
105 узлов
#8
Backup System
91 узел
#9
IPTV Integration
62 узла
#10
Form Framework
24 узла
#11
Billing Tasks
63 узла
#12
LK Templates & Chat
61 узел
#13
Interface Framework
40 узлов
#14
SORM Reports
52 узла
#15
Payment Services
46 узлов
#16
Messaging Tasks
31 узел
#17
Mobile Auth
14 узлов
#18
Push Notifications
15 узлов
#19
Account Model
9 узлов
#20
FreeScout Webhooks
9 узлов
#21
LK Auth
9 узлов
#22
Template Filters
6 узлов
+11
Мелкие изолированные
1–2 узла каждый

Ключевые архитектурные инсайты

Высокий betweenness у "Универсального контекста печатных форм"

Этот узел является мостом между 11 сообществами (0–16). Centrality 0.133 — если этот компонент сломается, пострадает большая часть admin-интерфейса.

264 изолированных узла

Узлы с ≤1 связью — возможно недокументированные компоненты или legacy-код без интеграции. Список в GRAPH_REPORT.md → Knowledge Gaps.

LK и Admin — отдельные сообщества

Community #1 (LK Personal Account) и #12 (LK Templates) практически не пересекаются с admin-сообществами. Это хорошо — чистое разделение.

Мобильный API — три независимых сообщества

#4 (Mobile API Account), #17 (Mobile Auth), #18 (Push Notifications) — каждый изолирован. Можно разрабатывать независимо.

Перестройка графа

Быстрое обновление (AST, после изменений .py файлов)

cd carbon_modern
graphify update .

Полный rebuild (после изменений шаблонов или добавления новых модулей)

# Шаг 1: перестройка AST + merge с семантикой
cd carbon_modern && python graphify-out/run_pipeline.py

# Шаг 2: применить именованные метки сообществ
python graphify-out/run_labels.py

Полный цикл с новой семантической экстракцией (дорого — LLM)

# Только если добавились новые HTML/docs файлы
cd carbon_modern
/graphify billing/
# Запускает detect → AST → semantic subagents → merge → build → cluster → report

Pipeline-скрипты

1
Detect done
Определение файлов корпуса. Результат: .graphify_detect.json (172 файла, 129k слов)
2
AST extraction done
Статический анализ 152 Python-файлов. Результат: .graphify_ast.json (2550 узлов, 13592 ребра)
3
Semantic extraction partial
LLM-экстракция 20 LK HTML-шаблонов. Результат: .graphify_chunk_01.json (70 узлов, 102 ребра). Остальные файлы кэшированы.
4
Build graph done
Merge AST + semantic → NetworkX граф. 2524 узла, 9003 ребра после дедупликации.
5
Cluster done
Алгоритм Louvain → 34 сообщества с cohesion scores.
6
Export + Label done
graph.json, graph.html, GRAPH_REPORT.md с именованными сообществами.

Проанализированные репозитории со skills

Раунд 1 — UI/дизайн (апрель 2026)

anthropics/skills — frontend-design

Официальный скилл от Anthropic. Гайд по созданию продакшн-UI с чётким эстетическим направлением.

  • Design thinking protocol
  • Typography, color, motion guidelines
✓ Установлено как /ui-refactor

pbakaus/impeccable

Расширение frontend-design с 18 командами, 7 reference-файлами, anti-pattern библиотекой.

  • 18 команд (/critique, /polish, /bolder, /quieter, /overdrive…)
  • Требует .impeccable.md
✓ Установлено как /impeccable

nextlevelbuilder/ui-ux-pro-max

67 UI стилей, 161 палитра, генератор дизайн-систем. Ориентирован на лендинги и SaaS.

✗ Пропущено — избыточно для Django admin

ancoleman/ai-design-components

100 production-ready скиллов: frontend, backend, DevOps, security, cloud, AI/ML. Установлено 7 из них.

  • building-forms, creating-dashboards, designing-apis
  • debugging-techniques, optimizing-sql, testing-strategies, using-relational-databases
✓ Установлено 7 skills из репозитория

Раунд 2 — бэкенд/разработка (апрель 2026)

yeachan-heo/oh-my-claudecode

Multi-agent orchestration framework: 19 агентов, /team, /autopilot, /ralph, /ultrawork. CLI-инструмент для управления Claude.

✗ Пропущено — AI workflow, не веб-разработка

Ashutos1997/claude-design-auditor-skill

Аудит дизайна по 18 категориям: типографика, accessibility, spacing, WCAG 2.1. Поддержка Figma MCP.

✗ Пропущено — UI/UX аудит, не backend

Owl-Listener/designer-skills

63 скилла и 27 команд по 8 дизайн-плагинам: personas, components, accessibility, prototyping.

✗ Пропущено — чисто дизайн, нет пересечений с биллингом

haneen1705/UI-UX-Roadmap-2025-2026

24-недельный учебный роадмап по UI/UX дизайну: Figma, wireframing, prototyping. Только образовательный.

✗ Пропущено — образовательный ресурс, не код

mastepanoski/claude-skills

11 skills для UX/UI аудита и AI governance: Nielsen, WCAG, NIST, OWASP LLM Top 10.

✗ Пропущено — compliance framework, не разработка

Раунд 3 — UX-аудит и проектирование (апрель 2026)

szilu/ux-designer-skill

297-строчный SKILL.md + 22 reference-файла: WCAG 2.2 AA, data tables, AI interfaces, dashboards, notifications, ethical design, onboarding. Охватывает весь современный UX (2025).

  • Modal/SidePanel/FullPage decision tree
  • 23 anti-patterns to avoid
  • Key metrics table (44px targets, 4.5:1 contrast)
✓ Установлено как /ux-designer

vxcozy/don-norman-principles-audit

Аудит интерфейсов по 7 принципам Дона Нормана (DOET): Discoverability, Affordance, Signifiers, Feedback, Mapping, Constraints, Conceptual Models. Severity-шкала 1–4.

  • Структурированная процедура аудита (5 шагов)
  • Severity-шкала: Catastrophic/High/Medium/Low
  • Готовый шаблон отчёта
✓ Установлено как /don-norman-principles-audit

vxcozy/cognitive-walkthrough

Метод когнитивного обхода: 4 вопроса на каждом шаге задачи. Оценивает обучаемость интерфейса без участия реальных пользователей.

  • 4 вопроса: Q1 правильный эффект? Q2 действие заметно? Q3 связь действия с эффектом? Q4 виден прогресс?
  • Шаблон отчёта с Success Probability по типам пользователей
✓ Установлено как /cognitive-walkthrough

vxcozy/ux-audit-rethink

Комплексный UX-аудит по фреймворку IxDF: 7 UX-факторов (сотовые соты Морвилла) + 5 характеристик юзабилити ISO 9241-11 + 5 измерений взаимодействия. Health Score 0–100.

  • Useful/Usable/Findable/Credible/Desirable/Accessible/Valuable
  • Design Thinking интеграция (Empathize→Define→Ideate→Prototype→Test)
  • Рейтинг 1–5 + приоритизированный роадмап
✓ Установлено как /ux-audit-rethink

apexscaleai/claude-ui-design-system

Генератор дизайн-систем с токенами, компонентами, Figma-интеграцией. Ориентирован на создание новых продуктов с нуля.

✗ Пропущено — создание дизайн-систем, не аудит существующего UI

skills.sh — 4 UX skills

building-forms, creating-dashboards, designing-apis — уже установлены из ancoleman/ai-design-components. Дублируются.

✗ Пропущено — дубликаты уже установленных

Установленные skills — инструкция

Все перечисленные ниже skills установлены в ~/.claude/skills/ и активируются командой в чате. Каждый skill загружает в контекст Claude специализированные знания и паттерны, адаптированные под стек проекта (Django 4.2 / AdminLTE / PostgreSQL / ApexCharts).
КомандаЧто делаетКогда использовать
/building-forms Формы, валидация, accessibility WCAG 2.1 AA Добавляете форму, модальный редактор, wizard-шаг
/creating-dashboards KPI-карточки, ApexCharts, AJAX-эндпоинты, polling Строите /admin/welcome/, reports/dashboard/ или новый виджет
/designing-apis REST-дизайн, pagination, throttle, error format, деньги в ответе Проектируете новый эндпоинт в mobile_api/ или rest_api/v2/
/impeccable 18 команд UI-рефакторинга: /critique, /polish, /bolder, /animate, /typeset… Серьёзный редизайн страниц ЛК или публичного сайта документации
/ui-refactor Тактические UI-улучшения по 5 референсным гайдам (типографика, цвет, пространство) Улучшаете визуальное качество страницы AdminLTE, не меняя функциональность
/graphify Запускает полный graphify-пайплайн на указанной директории Перестраиваете граф после больших изменений в коде
/debugging-techniques Отладка Python/Django/Docker: breakpoint(), Celery rdb, docker exec Странная ошибка, неожиданное поведение Celery, нужен трейс в контейнере
/optimizing-sql EXPLAIN ANALYZE, N+1 детектор, CREATE INDEX CONCURRENTLY Медленные страницы, тяжёлые запросы, добавляете индексы без даунтайма
/testing-strategies Тест-пирамида Django: pytest unit/integration/E2E, factory_boy, моки внешних API Пишете тесты для новой фичи, хотите покрыть биллинг-логику или API
/using-relational-databases Django ORM паттерны, агрегации денег, safe migrations, connection pooling Проектируете модели, пишете сложные запросы, планируете миграцию большой таблицы
/ux-designer Полный UX-гайд 2025: чеклисты WCAG 2.2 AA, decision trees, anti-patterns, AI UI Проектируете новый экран, хотите проверить UX решения по стандартам
/don-norman-principles-audit Аудит по 7 принципам Нормана: Affordance, Signifiers, Feedback, Mapping и др. Нужен структурированный аудит страницы с severity-рейтингом проблем
/cognitive-walkthrough 4-вопросный когнитивный обход: обучаемость интерфейса для новых пользователей Проверяете новую фичу до пользовательского тестирования, оцениваете поток задачи
/ux-audit-rethink IxDF-аудит: 7 UX-факторов + 5 характеристик ISO + 5 измерений, Health Score 0–100 Комплексный аудит раздела или всего продукта с приоритизированным роадмапом

/building-forms — формы и валидация

Когда вызывать

Ключевые паттерны для проекта

Выбор компонента по типу данных

  • Короткий текст → <input type="text">
  • Выбор из >15 опций → Select2 (уже есть в проекте)
  • Большой FK-список → Select2 AJAX (/rest_api/v2/Model/?name__icontains=)
  • Дата → Bootstrap datepicker или <input type="date">
  • Деньги → поле в рублях, умножать на 10¹⁰ перед сохранением

Timing валидации

On blur → показать ошибку. После первой ошибки → onChange. После исправления → показать успех немедленно.

Никогда не показывать ошибку пока поле не тронуто (pristine state).

# Django template — стандартный паттерн с Bootstrap
<div class="form-group {% if form.email.errors %}has-error{% endif %}">
  <label for="{{ form.email.id_for_label }}">Email</label>
  {{ form.email }}
  {% if form.email.errors %}
    <div class="invalid-feedback" role="alert">{{ form.email.errors.0 }}</div>
  {% endif %}
</div>
Правило проекта: money-поля — всегда вводить в рублях в форме, MoneyFormField.clean() умножает на 10¹⁰ перед сохранением. Не обходите это — формулы за вас уже написаны.

/creating-dashboards — дашборды и KPI

Когда вызывать

Стандартный AJAX-эндпоинт для KPI

# billing/views/reports.py — шаблон KPI-эндпоинта
def dashboard_kpi_api(request):
    period = request.GET.get('period', 'month')
    # current + previous период → delta в %
    revenue = FinanceOperations.objects.filter(...).aggregate(Sum('op_summa'))
    # ВСЕГДА делить на DB_MONEY_KOEF перед отдачей в JSON
    return JsonResponse({
        'revenue': float(revenue / DB_MONEY_KOEF),
        'revenue_pct': round(pct, 1),
    })
// ApexCharts — уже подключён в проекте, тема из AdminLTE
const chart = new ApexCharts(document.getElementById('rev-chart'), {
  chart: { type: 'area', height: 200, toolbar: { show: false } },
  series: [{ name: 'Выручка', data: chartData }],
  xaxis: { type: 'datetime', labels: { format: 'dd.MM' } },
  yaxis: { labels: { formatter: v => v.toLocaleString('ru-RU') + ' ₽' } },
  theme: { mode: document.documentElement.dataset.theme || 'light' },
  colors: ['#43b77a'],
});
Parallel loading: загружайте все виджеты параллельно — Promise.all([fetchKPIs(), fetchCharts(), fetchTables()]), а не последовательно. На медленном соединении разница в 3×.

/designing-apis — REST API дизайн

Когда вызывать

Правило денег в API-ответах

Критично: никогда не возвращать сырые значения ×10¹⁰ из БД. Фронтенд и мобильное приложение всегда получают рубли (float).
# Всегда в сериализаторе:
def get_balance(self, obj):
    return float(obj.account.ostatok / DB_MONEY_KOEF)  # ✓

# НЕ так:
return obj.account.ostatok  # ✗ — вернёт 12345678900000, фронт сломается

Выбор пагинации

ТаблицаТипПочему
Abonents (4270)OffsetМалый размер, редкие вставки
FinanceOperations (419K+)CursorБольшой размер, постоянные вставки сдвигают offset
AuditOperationsCursorТолько append, большой объём
RADIUS sessionsCursorRealtime, offset ненадёжен

Стандартный формат ошибки

{
  "error": "validation_error",
  "message": "Поле email обязательно",
  "details": [
    { "field": "email", "code": "required", "message": "Введите email адрес" }
  ]
}

/impeccable — детальный UI-рефакторинг

Когда вызывать

18 команд impeccable

Анализ и аудит

  • /critique — детальный разбор текущего UI
  • /audit — проверка по чеклисту
  • /distill — выделить суть дизайна

Визуальная доработка

  • /polish — финальная шлифовка
  • /bolder — усилить контраст и энергию
  • /quieter — снизить визуальный шум
  • /overdrive — максимальный вау-эффект
  • /colorize — добавить цвет

Типографика и форма

  • /typeset — оптимизация текстового набора
  • /layout — переработка сетки и spacing
  • /shape — работа с формами и скруглениями

Анимация и UX

  • /animate — добавить motion design
  • /delight — микровзаимодействия
  • /hooked-ux — UX по модели Хука
impeccable требует файл .impeccable.md в корне проекта с описанием бренда и аудитории. Для Django admin-интерфейса команды /bolder и /animate малоприменимы — используйте /critique, /polish, /layout.

/ui-refactor — тактический UI (AdminLTE)

Когда вызывать

Передать URL страницы в аргументах

/ui-refactor https://testbill.smit34.ru/admin/welcome/
/ui-refactor https://testbill.smit34.ru/admin/Abonents/9001/
/ui-refactor https://testbill.smit34.ru/lk/

Skill работает в 4 шага: начинает с grayscale → решает структурные проблемы → подбирает цвет → применяет тактики из 5 reference-файлов (hierarchy, layout-spacing, typography, color, depth-and-polish).

Правило проекта: не трогайте chrome (navbar, sidebar) — начинайте с конкретной функциональности. Sidebar AdminLTE зафиксирован стилями theme-smit.css.

/graphify — перестройка графа знаний

Когда вызывать

Два режима обновления

КомандаЧто делаетСтоимость
graphify update . Только AST-граф (импорты, вызовы) — без LLM Бесплатно, ~30 секунд
/graphify billing/ Полный пайплайн: AST + семантика + отчёт + HTML ~$0.50–2.00 за LLM-токены
python graphify-out/run_pipeline.py Ручной запуск без Claude (если .json-файлы уже актуальны) Бесплатно
python graphify-out/run_labels.py Переименовать сообщества и регенерировать отчёт Бесплатно

/debugging-techniques — отладка Python и Docker

Когда вызывать

Быстрая шпаргалка для проекта

Локальная отладка (dev server :8899)

import pdb; pdb.set_trace()   # в любом месте кода
# или Python 3.7+
breakpoint()

Celery task (remote debugger)

from celery.contrib import rdb
rdb.set_trace()
# подключиться: telnet localhost 6899

Docker web-контейнер

docker exec -it $(docker compose ps -q web) bash
python manage.py shell
# или tail -f /var/log/django/error.log

Тест с остановкой на ошибке

pytest --pdb billing/tests/
pytest -x  # стоп после первого падения
Production rule: никогда не логировать сырые деньги ×10¹⁰. В логах всегда float(value / DB_MONEY_KOEF) — иначе числа вводят в заблуждение.

/optimizing-sql — оптимизация запросов PostgreSQL

Когда вызывать

5-шаговый процесс

#ШагИнструмент
1Анализ планаEXPLAIN ANALYZE SELECT ...
2Найти проблемуSeq Scan? N+1? Correlated subquery?
3Стратегия индексовEquality → Range → ORDER BY
4Составной индексРавенство первым, диапазон последним
5Переписать запросselect_related(), CTE, batch
# Добавить индекс в production БЕЗ блокировки таблицы
# migrations/0052_add_finops_index.py
class Migration(migrations.Migration):
    atomic = False  # обязательно для CONCURRENTLY
    operations = [
        migrations.RunSQL(
            "CREATE INDEX CONCURRENTLY idx_finops_date "
            "ON finance_operations (op_date DESC)",
            "DROP INDEX IF EXISTS idx_finops_date"
        ),
    ]
# Диагностика N+1 в Django
from django.test.utils import CaptureQueriesContext
from django.db import connection
with CaptureQueriesContext(connection) as ctx:
    list(Abonents.objects.filter(enabled=True).select_related('tarif'))
print(f"{len(ctx.captured_queries)} queries")  # должно быть 2, не 4270

/testing-strategies — тесты для Django/Python

Когда вызывать

/using-relational-databases — Django ORM и PostgreSQL

Когда вызывать

/ux-designer — современный UX 2025

Когда вызывать

Decision tree: Modal vs SidePanel

  • Подтверждение / деструктивное действие → Modal
  • Детальное редактирование с контекстом → SidePanel
  • Полноэкранный wizard → FullPage
  • Быстрый просмотр без редактирования → Tooltip/Popover

Ключевые числа

  • Touch target: 44×44px минимум
  • Контрастность текста: 4.5:1 (WCAG AA)
  • Анимации: 300–500ms
  • Отклик на действие: <100ms
  • Автоудаление тостов: 4–8 секунд
Проект-специфично: AdminLTE 3.2 — используйте существующие классы card/badge/btn. Каждый новый компонент проверяйте в тёмной теме (theme-smit.css). Select2 AJAX для FK-списков >50 элементов.

/don-norman-principles-audit — аудит по Норману

Когда вызывать

7 принципов Нормана

Принципы и red flags

  • Discoverability — все функции видны без документации
  • Affordance — кнопки выглядят как кнопки
  • Signifiers — подсказки указывают на нужные действия
  • Feedback — каждое действие даёт видимый ответ
  • Mapping — контролы расположены рядом с тем, что они меняют
  • Constraints — невалидные действия заблокированы заранее
  • Conceptual Models — метафоры соответствуют ожиданиям

Severity-шкала

  • 4 — Catastrophic: пользователь не может выполнить задачу
  • 3 — High: выполняет с трудом / обходным путём
  • 2 — Medium: путается, лишние клики, но справляется
  • 1 — Low: незначительное раздражение
# Пример аудит-запроса
Используй /don-norman-principles-audit
Проведи аудит страницы /admin/Abonents/search/
Фокус: новый оператор, первый день работы
Задача: найти абонента и открыть его карточку

/cognitive-walkthrough — обучаемость интерфейса

Когда вызывать

4 вопроса когнитивного обхода

На каждом шаге задачи

  • Q1: Поймёт ли пользователь, что это нужный шаг?
  • Q2: Заметит ли пользователь нужный элемент управления?
  • Q3: Свяжет ли пользователь элемент с нужным действием?
  • Q4: Увидит ли пользователь, что произошёл прогресс?

Типичные сбои в SmitBilling

  • Q2: Массовые действия — видны только после выбора чекбоксов
  • Q3: «Остаток» и «Баланс» для одного поля в разных местах
  • Q4: AJAX-сохранение без спиннера и сообщения об успехе
  • Q1: «Удалить» для soft-delete (ожидается архивирование)

/ux-audit-rethink — комплексный IxDF-аудит

Когда вызывать

Три слоя оценки

7 UX-факторов (по Морвиллу, рейтинг 1–5)

  • Useful — решает реальные задачи пользователей
  • Usable — легко использовать эффективно
  • Findable — контент и функции можно найти
  • Credible — интерфейс вызывает доверие
  • Desirable — пользователи хотят его использовать
  • Accessible — работает для всех пользователей
  • Valuable — ценность ясна и очевидна

Health Score (0–100)

  • 85–100: Отлично — только полировка
  • 70–84: Хорошо — точечные улучшения
  • 55–69: Удовлетворительно — серьёзная работа
  • 40–54: Плохо — редизайн ключевых потоков
  • <40: Критично — фундаментальные проблемы

Формула: 40% UX-факторы + 35% юзабилити ISO + 25% 5 измерений взаимодействия

# Пример запроса комплексного аудита
Используй /ux-audit-rethink
Проведи аудит раздела управления абонентами
Основные пользователи: операторы биллинга (опытные, ежедневное использование)
Топ-5 задач: поиск абонента, просмотр баланса, добавление услуги,
  создание финансовой операции, блокировка за долг