О проекте
Команда: Jigas
Кейс HackAlem.ai: Финансы — Freedom
Стадия: Доведённый продукт
Задача кейса: «Граф денег»: восстановить структуру организованной группы по сети транзакций (AML)
Суть
AML-инструмент: строит граф переводов по Parquet-выгрузке, назначает клиентам роли в сети, ранжирует топ-20 для проверки и показывает кластеры и маршруты денег в React-отчёте.
Как устроено
Python-пайплайн читает три Parquet-файла (клиенты, агрегированные связи, переводы) и строит направленный граф в NetworkX. По каждому узлу считаются in/out-степени, суммы, достижимость от 81 seed за 1–4 шага и betweenness. Роли (coordinator, distributor, consolidator, transit, terminal, peripheral) назначаются по открытым порогам. Приоритет P=0.35M+0.30A+0.20C+0.15H складывается из силы роли, объёма, охвата seed и центральности. Кластеры строятся Louvain, отдельно считаются SCC и межкластерные потоки. На выходе CSV и report.json, которые показывает статический React+Cytoscape.js дашборд.
Ключевые решения
- NetworkX
- Louvain
- strongly connected components
- betweenness centrality
- seed reachability 1–4 hops
- rule-based role assignment
- weighted priority scoring
- threshold sensitivity analysis
- community stability evaluation
Метрики
Топ-20 по приоритету совпадает с топом по обороту в 9 из 20; AML accuracy не заявляется (нет разметки)
Особенности
Роли и приоритет объяснимы: формулы и пороги открыты, и в карточке видно, какие правила сработали. Команда честно учитывает обрыв выгрузки: узел на 4-м шаге не объявляется конечным получателем, а 444 граничных клиента вынесены во вкладку «Запросить продолжение». Есть анализ устойчивости порогов и сообществ, контрактные тесты и хеши выпуска.
Стек
Python 3.13 · pandas · NumPy · PyArrow · NetworkX · React · Vite · Cytoscape.js · Docker Compose
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-e3bf6094-jigas.
README
README.mdJigas — граф денежных переводов
Jigas помогает AML-аналитику разобраться в сети переводов: среди 2 248 клиентов найти тех, кого стоит проверить первыми, увидеть их связи и понять основания приоритета. Вход — обезличенная выгрузка от 81 ранее известного клиента; результат — проверяемые гипотезы о ролях и структуре сети, а не вывод о виновности.
Что делает решение
- Проверяет три Parquet-файла — клиентов, агрегированные направленные связи и отдельные переводы — и строит граф, сохраняя точные
gidи денежные суммы в тиынах. - Считает входящие и исходящие связи, суммы, достижимость от известных клиентов и центральность. По явным порогам назначает каждому узлу одну основную роль и сохраняет все другие совпавшие правила.
- Ранжирует клиентов по силе признаков, объёму и положению в сети; Louvain группирует связанные узлы, включая отдельные изоляты. Отдельно считает сильносвязные компоненты (SCC), направленные потоки между кластерами и границу покрытия. Python выпускает три CSV и
report.jsonиз одного расчёта. - React-отчёт показывает топ-20, причины выбора, кластеры, направленный граф и межкластерные потоки с переходом к исходным связям. В карточке доступны дневной профиль, запрос следующего слоя данных и маршруты от известных клиентов с датами. Поиск работает по полному ID; интерфейс отображает рассчитанные данные и не меняет роли или приоритет.
Схема архитектуры: данные → метрики → роли → выгрузки → интерфейс.
Чем полезен аналитику
- Понятный следующий объект проверки: у топа есть числовые основания, у связанной группы — первый клиент для изучения; в отчёте можно проверить направления, суммы и число переводов по его связям.
- Многосигнальный приоритет: топ по нашему приоритету совпадает с топом по обороту лишь по 9 из 20 клиентов. Это показывает другой порядок проверки, но само по себе не доказывает его точность; сравнение.
- Объяснимость: правила и пороги открыты, карточка показывает совпавшие роли и равные значения приоритета, включая узлы за пределами топ-20.
- Осторожность с неполными данными: узел на четвёртом шаге не объявляется конечным получателем лишь из-за обрыва выгрузки; неполнота входа известных клиентов отмечается отдельно.
- Воспроизводимость: актуальный выпуск с Cytoscape.js прошёл сборку, расчёт из исходных данных, контрактную и браузерную проверки. Его CSV совпали с пятью повторными выпусками предыдущего интерфейса; времена новой версии отдельно не переизмерялись. Протокол.
Технологии
| Часть | Стек |
|---|---|
| Расчёт | Python 3.13, pandas, NumPy, PyArrow, NetworkX; правила ролей, скоринг и Louvain |
| Интерфейс | React, Vite, Cytoscape.js; статический report.json без отдельного API или базы данных |
| Запуск | Docker Compose; Node 22 нужен при сборке, готовый отчёт раздаётся через localhost |
Запуск
Нужны Docker Engine и Docker Compose v2. Из корня репозитория:
docker compose build pipeline
docker compose run --rm prepare
docker compose run --rm pipeline
docker compose up viewer
Откройте http://127.0.0.1:8000/ — дашборд откроется сразу; /report.html ведёт к тому же отчёту. Команда prepare извлекает Parquet из track_data/data (1).zip; один запуск pipeline создаёт отчёт в out/. Сборка требует интернета для зависимостей, готовый образ работает без внешних сервисов. Версии пакетов закреплены в frontend/package-lock.json и requirements.txt. Необязательные переменные: HACKALEM_IMAGE — имя образа (по умолчанию jigas-graph-money:local), HACKALEM_CPUS — лимит CPU для расчёта (по умолчанию 12); ключи API не нужны.
Проверка готового выпуска:
docker compose run --rm --entrypoint python pipeline test_contract.py --data /app/data --out /app/out
На Linux заранее создайте каталоги data/ и out/ от своего пользователя и замените команды prepare и pipeline на:
mkdir -p data out
docker compose run --rm --user "$(id -u):$(id -g)" prepare
docker compose run --rm --user "$(id -u):$(id -g)" pipeline
Этот путь с UID/GID ещё не проверен на отдельном Linux-хосте; остальные результаты запуска и браузера — в протоколе.
Результат и работа с ним
pipeline создаёт в out/:
| Файл | Содержание |
|---|---|
nodes_roles.csv | Все 2 248 клиентов: роль, role_score, кластер, приоритет и объяснение до 200 символов |
clusters.csv | Размер, seed, внутренний оборот, ключевые узлы и гипотеза по каждому кластеру |
top_nodes.csv | 20 клиентов с наивысшим приоритетом и обоснованием |
report.json, index.html, report.html, assets/ | Данные и локальный React-интерфейс с направленным графом |
validation.json | Статус выпуска и хеши файлов |
В интерфейсе выберите клиента из топа или найдите его по полному gid. Карточка показывает основания ролей, дневные наблюдения, запрос недостающих данных и до двух маршрутов с допустимым порядком дат. Маршрут можно подсветить на графе; совпадение дат не доказывает движение тех же денег. Вкладка «Запросить продолжение» показывает все 444 граничных клиента по входящему объёму. В обзоре межкластерных потоков можно выбрать сообщество или стрелку и открыть его клиентов или исходные связи; крупнейшую SCC можно отдельно подсветить на полном графе. Идентификаторы сохраняются точно, без округления в браузере.
Проверка по ТЗ: жюри может назвать три произвольных gid, которые команда должна объяснить за минуту. Для каждого найдите ID, раскройте роль и её числовые основания, затем покажите наблюдаемые связи и ограничения в карточке и на графе. Пятиминутный сценарий демо содержит примеры для репетиции.
out/ игнорируется Git: CSV воспроизводятся командами выше.
Роли и приоритет
in_deg и out_deg — число наблюдаемых плательщиков и получателей; S — число seed, достигающих узла за 1–4 направленных шага; B — нормированная betweenness; r — отношение исходящей суммы к входящей; D — дни после последнего наблюдаемого входящего перевода. Q90(B>0) — 90-й процентиль положительных B.
| Роль | Условие | u | cap |
|---|---|---|---|
| coordinator | S≥2, in_deg≥2, out_deg≥2, B>0, B≥Q90(B>0) | min(1,S/4) | 0,60 |
| distributor | out_deg≥10 | min(1,out_deg/20) | 0,90 |
| consolidator | in_deg≥3 | min(1,in_deg/6) | 0,90 |
| transit | Не seed, depth<4, суммы входа и выхода положительны, 0,8≤r≤1,2 | max(0,1−abs(r−1)/0,2) | 0,65 |
| terminal | Не seed, depth<4, вход положителен, out_deg=0, D≥2 | min(1,D/7) | 0,50 |
| peripheral | Ни одно правило не совпало | — | 0 |
Для совпавшей роли support=cap×(0,5+0,5×u). Основная роль — первая по порядку таблицы; её support становится role_score. Все совпавшие роли остаются в отчёте.
Приоритет P=0,35M+0,30A+0,20C+0,15H:
| Компонент | Расчёт |
|---|---|
M | Максимальный support совпавших ролей |
A | min(1,log1p(V)/log1p(Q95(V>0))), где V=(in_tiyn+out_tiyn)/100 KZT |
C | min(1,S/5) |
H | min(1,B/Q95(B>0)) |
Квантили считаются по положительным значениям; если их нет, соответствующий компонент равен нулю. Топ сортируется по неокруглённому P, при равенстве — по числовому gid. Кластеры строятся Louvain, изоляты образуют отдельные группы. Подробные определения — в спецификации.
Границы результата
Данные охватывают июль 2026 года, внутрибанковские исходящие переводы от 81 seed, не дальше четырёх шагов и не меньше 5 000 KZT. Нулевой выход узла на четвёртом шаге может быть следствием границы выгрузки; вход seed тоже неполон. Роли и кластеры — гипотезы по наблюдаемому фрагменту, role_score и P не являются вероятностью нарушения. Размеченных истинных ролей нет, поэтому AML accuracy не заявляется.
При росте до ~1 млн узлов потребуются порционная обработка, компактное хранение графа, приближённая betweenness и загрузка в браузер только выбранной окрестности. Это план развития, производительность такого масштаба не проверялась.
Данные предоставлены организаторами и обезличены. Сторонние библиотеки и технологии перечислены выше; версии зафиксированы в lockfile и requirements.txt, Cytoscape.js распространяется по MIT. При разработке применялся OpenAI Codex. Код размещается в командном GitHub-репозитории; решение сдаётся отдельной кнопкой на платформе HackAlem AI.
Авторы коммитов
История коммитов
- 2026-09-23 17:50Update README.mdNursultan Serikov
- 2026-09-23 17:49Merge remote-tracking branch 'origin/main' into feat/p1-ui-integration-20260923thgank
- 2026-09-23 17:49fix: fill desktop analysis gap with structural overviewthgank
- 2026-09-23 17:46Update README.mdNursultan Serikov
- 2026-09-23 17:45docs: present completed structural investigation in demothgank
- 2026-09-23 17:43Merge remote-tracking branch 'origin/main' into feat/p1-ui-integration-20260923thgank
- 2026-09-23 17:43Update README.mdNursultan Serikov
- 2026-09-23 17:42docs: require platform submission after GitHub pushXcenaX
Все коммиты (203)
- 2026-09-23 17:42merge: combine structural overview with investigation viewsthgank
- 2026-09-23 17:40feat: add community flow and SCC investigationthgank
- 2026-09-23 17:39docs: describe verified daily requests and dated routesthgank
- 2026-09-23 17:38merge: include latest licensed Cytoscape release filesthgank
- 2026-09-23 17:36Update README.mdNursultan Serikov
- 2026-09-23 17:36merge: combine frontier requests with daily and route viewsthgank
- 2026-09-23 17:35merge: combine daily profiles with dated seed routesthgank
- 2026-09-23 17:35docs: identify verified licensed demo releaseXcenaX
- 2026-09-23 17:35feat: include data requests in validated releasethgank
- 2026-09-23 17:34feat: add bounded dated seed routes and viewerthgank
- 2026-09-23 17:34merge: combine observed profiles and next-data reviewthgank
- 2026-09-23 17:34docs: align demo with current Cytoscape releaseXcenaX
- 2026-09-23 17:34fix: include Cytoscape license in releaseXcenaX
- 2026-09-23 17:33merge: add HA-11 daily profilesthgank
- 2026-09-23 17:33feat: add observed next-data requests and frontier reviewthgank
- 2026-09-23 17:33feat: show observed daily profiles in client cardthgank
- 2026-09-23 17:32Merge pull request #15 from BAITC-Hacks/docs/readme-criteria-20260923Nursultan Serikov
- 2026-09-23 17:31docs: map README to track and jury criteriathgank
- 2026-09-23 17:31Fix capitalization in README link textNursultan Serikov
- 2026-09-23 17:31Update README.mdNursultan Serikov
- 2026-09-23 17:30feat: add observed daily node profilesXcenaX
- 2026-09-23 17:29merge: retain latest product README with Cytoscape instructionsthgank
- 2026-09-23 17:28merge: keep concise jury README with root dashboard entrythgank
- 2026-09-23 17:28Merge pull request #14 from BAITC-Hacks/docs/readme-product-story-20260923Nursultan Serikov
- 2026-09-23 17:27docs: explain Jigas product and technical flowthgank
- 2026-09-23 17:26Merge pull request #13 from BAITC-Hacks/docs/readme-concise-20260923Nursultan Serikov
- 2026-09-23 17:25docs: trim README to jury essentialsthgank
- 2026-09-23 17:25deploy: serve report at site rootthgank
- 2026-09-23 17:23merge: sync latest main documentationthgank
- 2026-09-23 17:22feat: refine investigation dashboard and serve release at rootthgank
- 2026-09-23 17:22Merge pull request #12 from BAITC-Hacks/docs/readme-final-20260923Nursultan Serikov
- 2026-09-23 17:21docs: align README with accepted React releasethgank
- 2026-09-23 17:20docs: distinguish HA-12 technical review from expert timingXcenaX
- 2026-09-23 17:18Sync HA-12 review with current mainXcenaX
- 2026-09-23 17:18docs: link HA-12 technical review and clarify task timingXcenaX
- 2026-09-23 17:14Merge pull request #11 from BAITC-Hacks/docs/ha10-three-gid-drillVlade
- 2026-09-23 17:14Merge HA-12 blind review packetXcenaX
- 2026-09-23 17:14Merge HA-12 blind technical findingsXcenaX
- 2026-09-23 17:14docs: clarify interactive demo timingXcenaX
- 2026-09-23 17:11docs: add three GID jury drillXcenaX
- 2026-09-23 17:11docs: record unblinded HA-12 sample comparisonXcenaX
- 2026-09-23 17:10docs: record blind technical review of 41 HA-12 casesXcenaX
- 2026-09-23 17:08docs: prepare HA-12 blind review packetXcenaX
- 2026-09-23 17:08docs: fix HA-12.1 blind technical review protocolXcenaX
- 2026-09-23 17:00docs: distinguish full demo timing from batch timingXcenaX
- 2026-09-23 16:59docs: refresh final React demo handoffXcenaX
- 2026-09-23 16:53Merge remote-tracking branch 'origin/main' into feat/react-integrationXcenaX
- 2026-09-23 16:52docs: confirm GitHub-only submission in parallel guideXcenaX
- 2026-09-23 16:51docs: mark final HA-08.2 acceptance in review historyXcenaX
- 2026-09-23 16:50Sync reviewed blocker notes with mainXcenaX
- 2026-09-23 16:50docs: name accepted React release in quickstart and architectureXcenaX
- 2026-09-23 16:50Merge reviewed HA-15 release findingsXcenaX
- 2026-09-23 16:50Merge PR 7 blocker review history with current statusXcenaX
- 2026-09-23 16:49Merge latest main release checksthgank
- 2026-09-23 16:48docs: update post-review parallel statusXcenaX
- 2026-09-23 16:48Improve React report workflow and mobile usabilitythgank
- 2026-09-23 16:46docs: record final five-run and offline acceptanceXcenaX
- 2026-09-23 16:46docs: retain React reviews with resolved outcomesXcenaX
- 2026-09-23 16:43Merge remote-tracking branch 'origin/main' into feat/react-integrationXcenaX
- 2026-09-23 16:43docs: record packaged favicon and final browser checksXcenaX
- 2026-09-23 16:42fix(ui): package favicon with published assetsXcenaX
- 2026-09-23 16:42Merge pull request #10 from BAITC-Hacks/docs/readme-smoke-status-20260923Vlade
- 2026-09-23 16:41Merge remote-tracking branch 'origin/main' into feat/react-integrationXcenaX
- 2026-09-23 16:41docs: verify final HA-18 contract and offline releaseXcenaX
- 2026-09-23 16:40docs: align localhost smoke status with validation reportXcenaX
- 2026-09-23 16:40Merge pull request #9 from BAITC-Hacks/fix/ha15-favicon-main-20260923Vlade
- 2026-09-23 16:40Merge remote-tracking branch 'origin/main' into docs/blockers-followup-20260923XcenaX
- 2026-09-23 16:40docs: record integrated release supplemental reviewXcenaX
- 2026-09-23 16:39test: verify HA-18 cluster hypothesesXcenaX
- 2026-09-23 16:38Merge remote-tracking branch 'origin/main' into feat/react-integrationXcenaX
- 2026-09-23 16:38docs: record offline clean-build release QAXcenaX
- 2026-09-23 16:37fix(ui): add local React report faviconXcenaX
- 2026-09-23 16:36docs: clarify AI attribution and planned P1 modulesXcenaX
- 2026-09-23 16:35docs: document role criteria and scale limitsXcenaX
- 2026-09-23 16:35docs: align architecture with React release candidateXcenaX
- 2026-09-23 16:34docs: mark current release and review statusXcenaX
- 2026-09-23 16:32docs: flag final submission confirmationXcenaX
- 2026-09-23 16:32docs: record independent React graph review gapsXcenaX
- 2026-09-23 16:32docs: pin Luna max delegation preference for parallel workXcenaX
- 2026-09-23 16:31docs: update parallel handoff after feature freezeXcenaX
- 2026-09-23 16:30docs: clarify unevaluated HA-12 score variantsXcenaX
- 2026-09-23 16:29fix: reject nonnumeric report score valuesXcenaX
- 2026-09-23 16:29Merge remote-tracking branch 'origin/main' into feat/react-integrationXcenaX
- 2026-09-23 16:28docs: record React release verificationXcenaX
- 2026-09-23 16:26feat(ui): add role any filters, score ties and edge weightsXcenaX
- 2026-09-23 16:26feat: add first-check facts to cluster hypothesesXcenaX
- 2026-09-23 16:26Merge HA-12.2 sensitivity evaluationXcenaX
- 2026-09-23 16:24Merge remote-tracking branch 'origin/main' into feat/react-integrationXcenaX
- 2026-09-23 16:23Merge pull request #4 from BAITC-Hacks/docs/blockers-20260923Vlade
- 2026-09-23 16:21docs: connect HA-12.2 sensitivity resultsXcenaX
- 2026-09-23 16:21Merge commit '7a6da9ba1fce66e8ed62a0756459564bac416e41' into integrate/reviewed-ha151-ha171-20260923XcenaX
- 2026-09-23 16:21Merge commit 'cba264a5adb86edac5a32bbda5b7f3616b41150f' into integrate/reviewed-ha151-ha171-20260923XcenaX
- 2026-09-23 16:20fix: keep threshold evaluation output UTF-8 on WindowsXcenaX
- 2026-09-23 16:19docs: measure role threshold stabilityXcenaX
- 2026-09-23 16:19feat(ui): add interactive React graph viewXcenaX
- 2026-09-23 16:19docs: link isolated blocker fixes for handoffXcenaX
- 2026-09-23 16:18feat: add HA-12.2 weight sensitivity evaluationXcenaX
- 2026-09-23 16:18eval: measure community membership stabilityXcenaX
- 2026-09-23 16:17Merge remote-tracking branch 'origin/main' into docs/blockers-20260923XcenaX
- 2026-09-23 16:16test: assert HA-17 explanation contractXcenaX
- 2026-09-23 16:15Merge remote-tracking branch 'origin/main' into feat/react-integrationXcenaX
- 2026-09-23 16:15docs: record HA-15.1 independent acceptanceXcenaX
- 2026-09-23 16:14deploy: read Brev key from macOS Keychainthgank
- 2026-09-23 16:12deploy: add manual Brev deployment scriptthgank
- 2026-09-23 16:10docs: record HA-17.1 review and remaining contract blockerXcenaX
- 2026-09-23 16:10docs: publish viewer port in compose quickstartXcenaX
- 2026-09-23 16:09Merge pull request #3 from BAITC-Hacks/review/release-packet-20260923Nursultan Serikov
- 2026-09-23 16:09docs: adopt release review and scope cluster explanation follow-upthgank
- 2026-09-23 16:08Merge remote-tracking branch 'origin/main' into feat/verificationXcenaX
- 2026-09-23 16:07docs: review release packet against current contract and datathgank
- 2026-09-23 16:07Merge latest main before HA-10.1 and HA-12.1 integrationXcenaX
- 2026-09-23 16:07docs: avoid stale review queue in parallel promptXcenaX
- 2026-09-23 16:07Merge HA-10.1 demo handoffXcenaX
- 2026-09-23 16:07Merge HA-12.1 evaluation baselineXcenaX
- 2026-09-23 16:06docs: record current sprint blockers and release gatesXcenaX
- 2026-09-23 16:06ci: add Brev report deployment workflowthgank
- 2026-09-23 16:04test: validate report json release contractXcenaX
- 2026-09-23 16:04feat: add factual role and priority explanationsXcenaX
- 2026-09-23 16:04Merge remote-tracking branch 'origin/main' into feat/react-integrationXcenaX
- 2026-09-23 16:03Merge remote-tracking branch 'origin/main' into feat/verificationXcenaX
- 2026-09-23 16:03docs: refresh demo dependency statusXcenaX
- 2026-09-23 16:03feat: add factual role and priority explanationsXcenaX
- 2026-09-23 16:02docs: update five-minute demo for current candidateXcenaX
- 2026-09-23 16:01feat(ui): add React report shell and JSON loaderXcenaX
- 2026-09-23 16:00docs: record HA-11.1 independent reviewXcenaX
- 2026-09-23 16:00docs: record HA-09.1 independent reviewXcenaX
- 2026-09-23 16:00docs: record HA-08.1 independent reviewXcenaX
- 2026-09-23 16:00feat(ui): add React report shell and JSON loaderXcenaX
- 2026-09-23 16:00Merge remote-tracking branch 'origin/main' into feat/verificationXcenaX
- 2026-09-23 15:59docs: record HA-12.1 blind evaluation baselineXcenaX
- 2026-09-23 15:58docs: record HA-11.1 independent reviewXcenaX
- 2026-09-23 15:58docs: add jury quickstart and verification paththgank
- 2026-09-23 15:56Merge remote-tracking branch 'origin/main' into feat/react-integrationXcenaX
- 2026-09-23 15:55docs: allow independent review in parallel workflowXcenaX
- 2026-09-23 15:55docs: clarify parallel task selectionXcenaX
- 2026-09-23 15:54Merge remote-tracking branch 'origin/main' into feat/verificationXcenaX
- 2026-09-23 15:53Merge remote-tracking branch 'origin/main' into feat/react-integrationXcenaX
- 2026-09-23 15:53docs: point parallel workers to published second-wave contractXcenaX
- 2026-09-23 15:52Merge pull request #1 from BAITC-Hacks/docs/second-wave-adoptionNursultan Serikov
- 2026-09-23 15:52fix: reject symlinked viewer build assetsXcenaX
- 2026-09-23 15:51docs: adopt second research wave and investigation tasksthgank
- 2026-09-23 15:50fix: remove failed release staging directoryXcenaX
- 2026-09-23 15:48feat: stage React viewer with report JSON and Docker buildXcenaX
- 2026-09-23 15:47docs: track renamed HA-17 role explanation cardXcenaX
- 2026-09-23 15:44docs: coordinate parallel worktrees and isolate Docker imagesXcenaX
- 2026-09-23 15:43docs: specify React frontend migration and Trello tasksthgank
- 2026-09-23 15:36feat: add observed daily node profilesXcenaX
- 2026-09-23 15:34feat: add observed daily node profilesXcenaX
- 2026-09-23 15:33docs: update P0 architecture and validation handoffXcenaX
- 2026-09-23 15:24Merge remote-tracking branch 'origin/main' into feat/analyticsXcenaX
- 2026-09-23 15:17fix: stage Docker release inside output mountXcenaX
- 2026-09-23 15:17feat: expose package module CLIXcenaX
- 2026-09-23 15:13refactor: organize analysis into focused modulesXcenaX
- 2026-09-23 15:10test: provide strict report metadata in fixtureXcenaX
- 2026-09-23 15:08feat(ui): add graph search and filtersXcenaX
- 2026-09-23 15:08feat: export validated contract CSVsXcenaX
- 2026-09-23 15:07feat: render standalone offline reportXcenaX
- 2026-09-23 15:05fix: reconcile report transaction countXcenaX
- 2026-09-23 15:05fix: validate report source hash metadataXcenaX
- 2026-09-23 15:04fix: validate report source hash metadataXcenaX
- 2026-09-23 15:04docs: sync merged blueprint tasks with Trellothgank
- 2026-09-23 15:03feat: assemble strict JSON reportXcenaX
- 2026-09-23 14:59feat: summarize cluster turnoverXcenaX
- 2026-09-23 14:59docs: add five-minute demo runbookXcenaX
- 2026-09-23 14:55test: use conflicting numeric and string tie orderXcenaX
- 2026-09-23 14:55test: assert numeric priority tie breakingXcenaX
- 2026-09-23 14:53docs: merge evidence-backed blueprint improvements into specsthgank
- 2026-09-23 14:53feat: cluster undirected graph projectionXcenaX
- 2026-09-23 14:51feat: compute explainable node prioritiesXcenaX
- 2026-09-23 14:51chore: cap pipeline containers at twelve CPUsXcenaX
- 2026-09-23 14:51fix: describe seed inbound limitationXcenaX
- 2026-09-23 14:47feat(ui): add offline report preview shellXcenaX
- 2026-09-23 14:44feat: compute explainable node prioritiesXcenaX
- 2026-09-23 14:42docs: use the project Python environmentXcenaX
- 2026-09-23 14:41test: check report warnings and JSON safetyXcenaX
- 2026-09-23 14:41feat: assign graph roles with rule supportXcenaX
- 2026-09-23 14:40docs: clarify Docker platform supportXcenaX
- 2026-09-23 14:40docs: add draft run and validation guideXcenaX
- 2026-09-23 14:39feat: add seed reach and temporal graph featuresXcenaX
- 2026-09-23 14:38test: draft contract checks for graph outputsXcenaX
- 2026-09-23 14:38test: preserve cluster money precision in checksXcenaX
- 2026-09-23 14:38feat: add full graph and base featuresXcenaX
- 2026-09-23 14:37feat: add full graph and base featuresXcenaX
- 2026-09-23 14:36feat: validate exact input aggregatesXcenaX
- 2026-09-23 14:34feat: prepare provided data in Docker workflowXcenaX
- 2026-09-23 14:32docs: record Docker first architecture and native fallbackXcenaX
- 2026-09-23 14:30chore: normalize dependency file encodingXcenaX
- 2026-09-23 14:30feat: scaffold starter pipeline and Docker workflowXcenaX
- 2026-09-23 14:25docs: align task inputs with tracked archivesthgank
- 2026-09-23 14:23docs: decompose MVP into agent-ready Trello tasksthgank
- 2026-09-23 14:10docs: add track datathgank
- 2026-09-23 14:09docs: add alternative blueprint v2 (Vlad) with EDA research scripts and outputsXcenaX
- 2026-09-23 14:03docs: link Trello backlog and planning handoffthgank
- 2026-09-23 13:53docs: define MVP specifications and delivery planthgank
- 2026-09-23 13:44docs: add HackAlem research and architecture blueprintthgank
Структура репозитория (84 файлов)
.dockerignore .gitignore Dockerfile HackAlem_AI_Blueprint_v2_Vlad.md HackAlem_AI_Research_Architecture_Blueprint.md README.md assets/cytoscape.LICENSE.txt assets/vis-network.LICENSE.txt assets/vis-network.min.css assets/vis-network.min.js compose.yaml docs/ARCHITECTURE.md docs/BLUEPRINT_COMPARISON.md docs/DEMO.md docs/PARALLEL_WORK.md docs/PLAN.md docs/PRODUCT_SPEC.md docs/RELEASE_REVIEW_RESPONSE_2026-09-23.md docs/SECOND_WAVE_RESEARCH.md docs/SPEC.md docs/community_stability.md docs/evaluation.md docs/reviews/HA-08.1-2026-09-23.md docs/reviews/HA-09.1-2026-09-23.md docs/reviews/HA-11.1-2026-09-23.md docs/reviews/HA-12.1-blind-packet-2026-09-23.jsonl docs/reviews/HA-12.1-blind-review-2026-09-23.md docs/reviews/HA-12.1-timing-2026-09-23.md docs/reviews/HA-15.1-2026-09-23.md docs/reviews/HA-15.2-2026-09-23.md docs/reviews/HA-15.3-2026-09-23.md docs/reviews/HA-17.1-2026-09-23.md docs/threshold_stability.md docs/validation.md frontend/index.html frontend/package-lock.json frontend/package.json frontend/public/assets/favicon.svg frontend/public/assets/vis-network.LICENSE.txt frontend/report.html frontend/src/App.jsx frontend/src/components/CommunityView.jsx frontend/src/components/GraphView.jsx frontend/src/components/TemporalRoutes.jsx frontend/src/graphModel.js frontend/src/main.jsx frontend/src/report.js frontend/src/report.test.js frontend/src/styles.css frontend/vite.config.js hackalem/__init__.py hackalem/__main__.py hackalem/clusters.py hackalem/exports.py hackalem/graph.py hackalem/html.py hackalem/pipeline.py hackalem/report.py hackalem/requests.py hackalem/scoring.py hackalem/validation.py report.example.json report_template.html requirements.txt research/blueprint_comparison_evidence.json research/compare_blueprints.py research/eda.py research/eda2.py research/eda2_out.txt research/eda_out.txt research/release_review_evidence_2026-09-23.json research/second_wave.py research/second_wave_evidence.json scripts/evaluate_community_stability.py scripts/evaluate_sensitivity.py scripts/evaluate_threshold_sensitivity.py scripts/prepare_data.py scripts/test_ha18_cluster_hypothesis.py starter.py test_contract.py track_data/HackAlem AI_ Граф денег_ восстановление финансовой структуры организованной группы по транзакционной сети.md track_data/README (1).md track_data/data (1).zip track_data/starter (1).zip
Ветки (18)
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.