https://github.com/Suyu0114/wcup2026-analytics
· scanned 2026-06-16 00:26 UTC (2 months, 2 weeks ago)
25 raw signals (0 security + 25 graph)
Last scanned 2 months, 2 weeks ago · v1 · 24 actionable findings from 1 signal source. 1 repeated signal grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 740 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
_by_id |
software | healthy | tests/test_standings.py:14 |
_order |
software | healthy | tests/test_standings.py:18 |
test_accumulates_pts_wdl_goals_including_draw |
software | healthy | tests/test_standings.py:26 |
test_only_supplied_matches_counted |
software | healthy | tests/test_standings.py:43 |
test_unknown_team_is_fail_loud |
software | healthy | tests/test_standings.py:50 |
test_orders_by_points_then_gd_then_gf |
software | healthy | tests/test_standings.py:59 |
test_head_to_head_breaks_a_two_way_overall_tie |
software | healthy | tests/test_standings.py:77 |
test_full_h2h_cycle_falls_back_deterministically |
software | healthy | tests/test_standings.py:105 |
test_pre_tournament_all_zero_all_tied |
software | healthy | tests/test_standings.py:129 |
test_tv6_odds_format_to_decimal |
software | healthy | tests/test_value.py:9 |
test_tv6_decimal_must_exceed_one |
software | healthy | tests/test_value.py:21 |
test_de_vig_sums_to_one |
software | healthy | tests/test_value.py:28 |
test_tv1_ev_and_value_threshold |
software | healthy | tests/test_value.py:36 |
test_tv3_kelly_formula_and_negative_zero |
software | healthy | tests/test_value.py:44 |
test_tv2_line_mismatch_no_value |
software | healthy | tests/test_value.py:51 |
test_tv8_quarter_line_flagged_approximate |
software | healthy | tests/test_value.py:57 |
test_tv7_best_available_within_line |
software | healthy | tests/test_value.py:64 |
test_tv4_isolation_value_takes_only_market_prob |
software | healthy | tests/test_value.py:70 |
_rating |
software | healthy | tests/test_identity.py:10 |
test_normalize_strips_accents_punct_case |
software | healthy | tests/test_identity.py:15 |
test_build_alias_map_auto_and_manual |
software | healthy | tests/test_identity.py:21 |
test_build_alias_map_raises_on_unknown |
software | healthy | tests/test_identity.py:30 |
test_resolve_prefers_tla_then_name |
software | healthy | tests/test_identity.py:37 |
test_stadium_country_shape |
software | healthy | tests/test_venues.py:11 |
test_manual_venue_covers_nine_group_host_matches |
software | healthy | tests/test_venues.py:17 |
test_host_flags_host_home |
software | healthy | tests/test_venues.py:22 |
test_host_flags_host_listed_away |
software | healthy | tests/test_venues.py:26 |
test_host_flags_non_host_needs_no_venue |
software | healthy | tests/test_venues.py:31 |
test_host_flags_missing_venue_for_host_raises |
software | healthy | tests/test_venues.py:35 |
test_host_flags_unknown_venue_raises |
software | healthy | tests/test_venues.py:40 |
test_host_flags_fd_venue_overrides |
software | healthy | tests/test_venues.py:45 |
_series |
software | healthy | tests/test_diagnose_market.py:5 |
test_h2h_signed_bias_and_sorting |
software | healthy | tests/test_diagnose_market.py:9 |
test_main_point_picks_closest_sides |
software | healthy | tests/test_diagnose_market.py:29 |
test_totals_push_conditioning |
software | healthy | tests/test_diagnose_market.py:37 |
test_render_includes_disclaimer |
software | healthy | tests/test_diagnose_market.py:47 |
test_result_1x2 |
software | healthy | tests/test_calibrate.py:9 |
test_brier_perfect_and_worst |
software | healthy | tests/test_calibrate.py:15 |
test_brier_known_value |
software | healthy | tests/test_calibrate.py:20 |
test_log_loss_known_value |
software | healthy | tests/test_calibrate.py:25 |
_pinnacle_closing_or_skip |
software | healthy | tests/test_odds_integration.py:13 |
test_to3_pinnacle_totals_have_point_and_both_sides |
software | healthy | tests/test_odds_integration.py:31 |
test_to4_pinnacle_h2h_devig_sums_to_one |
software | healthy | tests/test_odds_integration.py:41 |
test_to5_pinnacle_totals_devig_sums_to_one |
software | healthy | tests/test_odds_integration.py:54 |
test_v10_priors_are_the_documented_values |
software | healthy | tests/test_fit.py:16 |
test_v10_baseline_independent_of_live_engine_constants |
software | healthy | tests/test_fit.py:20 |
test_t1_matrix_normalized |
software | healthy | tests/test_engine.py:9 |
test_t2_probabilities_nonnegative |
software | healthy | tests/test_engine.py:16 |
test_t3_1x2_sums_to_one |
software | healthy | tests/test_engine.py:22 |
test_t4_symmetry_equal_elo_neutral |
software | healthy | tests/test_engine.py:28 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
.env.example |
software | healthy | .env.example |
pyproject.toml |
software | healthy | pyproject.toml |
requirements.txt |
software | healthy | requirements.txt |
test_standings.py |
software | healthy | tests/test_standings.py |
test_value.py |
software | healthy | tests/test_value.py |
test_identity.py |
software | healthy | tests/test_identity.py |
test_venues.py |
software | healthy | tests/test_venues.py |
test_diagnose_market.py |
software | healthy | tests/test_diagnose_market.py |
test_calibrate.py |
software | healthy | tests/test_calibrate.py |
test_odds_integration.py |
software | healthy | tests/test_odds_integration.py |
test_fit.py |
software | healthy | tests/test_fit.py |
test_engine.py |
software | healthy | tests/test_engine.py |
test_fixtures_mapping.py |
software | healthy | tests/test_fixtures_mapping.py |
test_elo_ingest.py |
software | healthy | tests/test_elo_ingest.py |
test_group_sim.py |
software | healthy | tests/test_group_sim.py |
test_fixtures_cross_source.py |
software | healthy | tests/test_fixtures_cross_source.py |
test_odds_mapping.py |
software | healthy | tests/test_odds_mapping.py |
fit_dc.py |
software | healthy | fit/fit_dc.py |
__init__.py |
software | healthy | fit/__init__.py |
REPORT.md |
software | healthy | fit/REPORT.md |
DIAGNOSIS.md |
software | healthy | fit/DIAGNOSIS.md |
ENVIRONMENT.md |
software | healthy | docs/ENVIRONMENT.md |
guide-spec.md |
software | healthy | docs/guide-spec.md |
P2-spec.md |
software | healthy | docs/P2-spec.md |
P0-P1-spec.md |
software | healthy | docs/P0-P1-spec.md |
p5_spec_review.md |
software | healthy | docs/p5_spec_review.md |
manual-commands.md |
software | healthy | docs/manual-commands.md |
P5-spec.md |
software | healthy | docs/P5-spec.md |
P6-spec.md |
software | healthy | docs/P6-spec.md |
P8-spec.md |
software | healthy | docs/P8-spec.md |
P3-spec.md |
software | healthy | docs/P3-spec.md |
odds_source.py |
software | healthy | sources/odds_source.py |
__init__.py |
software | healthy | sources/__init__.py |
rating_source.py |
software | healthy | sources/rating_source.py |
fixture_source.py |
software | healthy | sources/fixture_source.py |
venues.py |
software | healthy | etl/venues.py |
calibrate.py |
software | healthy | etl/calibrate.py |
standings.py |
software | healthy | etl/standings.py |
identity.py |
software | healthy | etl/identity.py |
diagnose_market.py |
software | healthy | etl/diagnose_market.py |
__init__.py |
software | healthy | etl/__init__.py |
db.py |
software | healthy | etl/db.py |
ingest_fixtures.py |
software | healthy | etl/ingest_fixtures.py |
simulate.py |
software | healthy | etl/simulate.py |
ingest_elo.py |
software | healthy | etl/ingest_elo.py |
config.py |
software | healthy | etl/config.py |
ingest_odds_aliases.py |
software | healthy | etl/ingest_odds_aliases.py |
results.py |
software | healthy | etl/results.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
fit |
software | healthy | fit |
docs |
software | healthy | docs |
sources |
software | healthy | sources |
etl |
software | healthy | etl |
sql |
software | healthy | etl/sql |
migrations |
software | healthy | etl/sql/migrations |
web |
software | healthy | web |
tests |
software | healthy | web/tests |
fixtures |
software | healthy | web/tests/fixtures |
components |
software | healthy | web/components |
admin |
software | healthy | web/components/admin |
app |
software | healthy | web/app |
api |
software | healthy | web/app/api |
matches |
software | healthy | web/app/api/matches |
groups |
software | healthy | web/app/api/groups |
value |
software | healthy | web/app/api/value |
market |
software | healthy | web/app/api/value/market |
admin |
software | healthy | web/app/api/admin |
score |
software | healthy | web/app/api/admin/score |
login |
software | healthy | web/app/api/admin/login |
[locale] |
software | healthy | web/app/[locale] |
matches |
software | healthy | web/app/[locale]/matches |
standings |
software | healthy | web/app/[locale]/standings |
results |
software | healthy | web/app/[locale]/results |
groups |
software | healthy | web/app/[locale]/groups |
value |
software | healthy | web/app/[locale]/value |
admin |
software | healthy | web/app/[locale]/admin |
login |
software | healthy | web/app/[locale]/admin/login |
guide |
software | healthy | web/app/[locale]/guide |
lib |
software | healthy | web/lib |
hooks |
software | healthy | web/lib/hooks |
messages |
software | healthy | web/messages |
engine |
software | healthy | engine |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
MobileNav |
frontend | healthy | web/components/MobileNav.tsx |
DivergenceList |
frontend | healthy | web/components/DivergenceList.tsx |
ProbBar |
frontend | healthy | web/components/ProbBar.tsx |
OddsFormatSelector |
frontend | healthy | web/components/OddsFormatSelector.tsx |
KnockoutTbd |
frontend | healthy | web/components/KnockoutTbd.tsx |
EmptyState |
frontend | healthy | web/components/EmptyState.tsx |
MatchCard |
frontend | healthy | web/components/MatchCard.tsx |
InfoPopover |
frontend | healthy | web/components/InfoPopover.tsx |
SiteHeader |
frontend | healthy | web/components/SiteHeader.tsx |
Disclaimer |
frontend | healthy | web/components/Disclaimer.tsx |
GroupTable |
frontend | healthy | web/components/GroupTable.tsx |
FeaturedMatchCard |
frontend | healthy | web/components/FeaturedMatchCard.tsx |
FixtureRow |
frontend | healthy | web/components/FixtureRow.tsx |
UpsetBadge |
frontend | healthy | web/components/UpsetBadge.tsx |
LanguageSwitcher |
frontend | healthy | web/components/LanguageSwitcher.tsx |
DivergenceBadge |
frontend | healthy | web/components/DivergenceBadge.tsx |
GuideSection |
frontend | healthy | web/components/GuideSection.tsx |
BadgeLegend |
frontend | healthy | web/components/BadgeLegend.tsx |
ModelVsMarket |
frontend | healthy | web/components/ModelVsMarket.tsx |
OddsConverter |
frontend | healthy | web/components/OddsConverter.tsx |
Flag |
frontend | healthy | web/components/Flag.tsx |
ValueCalculator |
frontend | healthy | web/components/ValueCalculator.tsx |
ErrorCard |
frontend | healthy | web/components/ErrorCard.tsx |
StandingsTable |
frontend | healthy | web/components/StandingsTable.tsx |
ExperimentalTag |
frontend | healthy | web/components/ExperimentalTag.tsx |
FreshnessIndicator |
frontend | healthy | web/components/FreshnessIndicator.tsx |
MatchFilters |
frontend | healthy | web/components/MatchFilters.tsx |
AttributionFooter |
frontend | healthy | web/components/AttributionFooter.tsx |
ScoreFilters |
frontend | healthy | web/components/ScoreFilters.tsx |
MatchPicker |
frontend | healthy | web/components/MatchPicker.tsx |
ResponsibleGamblingFooter |
frontend | healthy | web/components/ResponsibleGamblingFooter.tsx |
ScoreEntryForm |
frontend | healthy | web/components/admin/ScoreEntryForm.tsx |
GlobalNotFound |
frontend | healthy | web/app/not-found.tsx |
NotFound |
frontend | healthy | web/app/[locale]/not-found.tsx |
Error |
frontend | healthy | web/app/[locale]/error.tsx |
AdminLoginPage |
frontend | healthy | web/app/[locale]/admin/login/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
TestTS1Normalization |
software | healthy | tests/test_group_sim.py:91 |
TestTS3Determinism |
software | healthy | tests/test_group_sim.py:120 |
TestTS4StrongTeamDirection |
software | healthy | tests/test_group_sim.py:148 |
TestTS5EqualStrength |
software | healthy | tests/test_group_sim.py:184 |
TestTS6TiebreakerGD |
software | healthy | tests/test_group_sim.py:207 |
TestTS7TiebreakerH2H |
software | healthy | tests/test_group_sim.py:232 |
TestTS8CircularTie |
software | healthy | tests/test_group_sim.py:259 |
TestTS9BestThirdCount |
software | healthy | tests/test_group_sim.py:313 |
TestTS10SettledLock |
software | healthy | tests/test_group_sim.py:342 |
TestTS11ScoreMatrixConsistency |
software | healthy | tests/test_group_sim.py:415 |
TestTS12Performance |
software | healthy | tests/test_group_sim.py:445 |
OddsOutcome |
software | healthy | sources/odds_source.py:19 |
OddsMarket |
software | healthy | sources/odds_source.py:26 |
OddsBookmaker |
software | healthy | sources/odds_source.py:33 |
OddsEvent |
software | healthy | sources/odds_source.py:39 |
TheOddsApiSource |
software | healthy | sources/odds_source.py:47 |
Rating |
software | healthy | sources/rating_source.py:21 |
RatingSource |
software | healthy | sources/rating_source.py:30 |
CsvRatingSource |
software | healthy | sources/rating_source.py:40 |
FdTeam |
software | healthy | sources/fixture_source.py:42 |
Fixture |
software | healthy | sources/fixture_source.py:48 |
FixtureSource |
software | healthy | sources/fixture_source.py:70 |
FootballDataFixtureSource |
software | healthy | sources/fixture_source.py:74 |
GroupMatch |
software | healthy | engine/group_sim.py:29 |
SimConfig |
software | healthy | engine/group_sim.py:43 |
TeamSimResult |
software | healthy | engine/group_sim.py:50 |
TeamStanding |
software | healthy | engine/group_sim.py:63 |
StandingRow |
software | healthy | engine/standings.py:29 |
| Label | Layer | Status | Path |
|---|---|---|---|
teams |
data | healthy | etl/sql/schema.sql |
team_aliases |
data | healthy | etl/sql/schema.sql |
matches |
data | healthy | etl/sql/schema.sql |
match_predictions |
data | healthy | etl/sql/schema.sql |
odds_snapshots |
data | healthy | etl/sql/schema.sql |
model_total_lines |
data | healthy | etl/sql/schema.sql |
calibration_runs |
data | healthy | etl/sql/schema.sql |
group_sim |
data | healthy | etl/sql/schema.sql |
manual_results |
data | healthy | etl/sql/schema.sql |
group_standings |
data | healthy | etl/sql/schema.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
/[locale] |
frontend | healthy | web/app/[locale]/page.tsx |
/[locale]/matches |
frontend | healthy | web/app/[locale]/matches/page.tsx |
/[locale]/standings |
frontend | healthy | web/app/[locale]/standings/page.tsx |
/[locale]/results |
frontend | healthy | web/app/[locale]/results/page.tsx |
/[locale]/groups |
frontend | healthy | web/app/[locale]/groups/page.tsx |
/[locale]/value |
frontend | healthy | web/app/[locale]/value/page.tsx |
/[locale]/admin |
frontend | healthy | web/app/[locale]/admin/page.tsx |
/[locale]/admin/login |
frontend | healthy | web/app/[locale]/admin/login/page.tsx |
/[locale]/guide |
frontend | healthy | web/app/[locale]/guide/page.tsx |
/ |
frontend | healthy | web/app/api/admin/login/route.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
SUPABASE_SERVICE_KEY |
cicd | healthy | — |
ODDS_API_KEY |
cicd | healthy | — |
FOOTBALL_DATA_TOKEN |
cicd | healthy | — |
SUPABASE_URL |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
p7.sql |
data | healthy | etl/sql/migrations/p7.sql |
p6.sql |
data | healthy | etl/sql/migrations/p6.sql |
p8.sql |
data | healthy | etl/sql/migrations/p8.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::recompute |
cicd | healthy | .github/workflows/recompute.yml |
gha::odds-ingest |
cicd | healthy | .github/workflows/odds-ingest.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
recompute |
cicd | healthy | .github/workflows/recompute.yml |
ingest |
cicd | healthy | .github/workflows/odds-ingest.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-1vjd1wfu |
software | healthy | /tmp/repobility-clone-1vjd1wfu |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
port:06 |
network | healthy | .github/workflows/odds-ingest.yml |
This page is publicly accessible at:
https://repobility.com/scan/679121c0-decb-4bad-96d9-4ff06dc555d4/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/679121c0-decb-4bad-96d9-4ff06dc555d4/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.