https://github.com/stone-ericm/bts
· scanned 2026-06-16 00:23 UTC (2 months, 2 weeks ago)
195 raw signals (0 security + 195 graph)
Last scanned 2 months, 2 weeks ago · v1 · 177 actionable findings from 1 signal source. 18 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 4651 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 |
|---|---|---|---|
test_format_game_time_same_day_et |
software | healthy | tests/test_web_render.py:17 |
test_format_game_time_evening_et_dst |
software | healthy | tests/test_web_render.py:21 |
test_format_game_time_evening_et_standard |
software | healthy | tests/test_web_render.py:25 |
test_format_updated_time_et |
software | healthy | tests/test_web_render.py:29 |
test_streak_subtitle_flags_decision_state_error |
software | healthy | tests/test_web_render.py:35 |
test_on_deck |
software | healthy | tests/test_web_render.py:42 |
test_in_hole |
software | healthy | tests/test_web_render.py:46 |
test_upcoming_distance_5 |
software | healthy | tests/test_web_render.py:50 |
test_out_of_game |
software | healthy | tests/test_web_render.py:54 |
test_not_in_lineup |
software | healthy | tests/test_web_render.py:58 |
test_at_bat_renders_blank |
software | healthy | tests/test_web_render.py:62 |
test_pre_game_renders_blank |
software | healthy | tests/test_web_render.py:68 |
test_final_renders_blank |
software | healthy | tests/test_web_render.py:73 |
test_default_args_render_blank |
software | healthy | tests/test_web_render.py:78 |
test_filled_hit_ignores_lineup_status |
software | healthy | tests/test_web_render.py:87 |
test_filled_out_ignores_lineup_status |
software | healthy | tests/test_web_render.py:99 |
test_completed_pa_uses_fixed_alignment_rows |
software | healthy | tests/test_web_render.py:112 |
test_in_progress_pa_ignores_lineup_status |
software | healthy | tests/test_web_render.py:142 |
test_dashboard_polling_refreshes_live_game_section |
software | healthy | tests/test_web_render.py:152 |
test_render_page_shows_void_slot |
software | healthy | tests/test_web_render.py:201 |
test_render_page_shows_dm_sent_badge |
software | healthy | tests/test_web_render.py:242 |
test_api_live_html_uses_pick_result_for_resolved_banner |
software | healthy | tests/test_web_render.py:277 |
test_success_returns_dataframe |
software | healthy | tests/test_orchestrator.py:31 |
test_ssh_failure_returns_none |
software | healthy | tests/test_orchestrator.py:42 |
test_nonzero_exit_returns_none |
software | healthy | tests/test_orchestrator.py:48 |
test_invalid_json_returns_none |
software | healthy | tests/test_orchestrator.py:56 |
test_first_tier_succeeds |
software | healthy | tests/test_orchestrator.py:66 |
test_falls_through_to_second_tier |
software | healthy | tests/test_orchestrator.py:79 |
side_effect |
software | healthy | tests/test_orchestrator.py:82 |
test_all_tiers_fail_returns_none |
software | healthy | tests/test_orchestrator.py:99 |
test_loads_toml |
software | healthy | tests/test_orchestrator.py:113 |
test_returns_predictions_and_result |
software | healthy | tests/test_orchestrator.py:149 |
test_persists_full_slate |
software | healthy | tests/test_orchestrator.py:177 |
test_emits_progress_marks |
software | healthy | tests/test_orchestrator.py:206 |
test_detailed_status_failure_fails_closed_without_coarse_fa… |
software | healthy | tests/test_orchestrator.py:232 |
test_uses_fresh_contest_streak_for_live_action |
software | healthy | tests/test_orchestrator.py:258 |
action |
software | healthy | tests/test_orchestrator.py:264 |
_state |
software | healthy | tests/test_e2_delivery_idempotency.py:10 |
_daily |
software | healthy | tests/test_e2_delivery_idempotency.py:18 |
test_unconfirmed_prior_attempt_does_not_repost |
software | healthy | tests/test_e2_delivery_idempotency.py:35 |
test_fresh_pick_posts_normally |
software | healthy | tests/test_e2_delivery_idempotency.py:45 |
test_caught_failure_allows_retry |
software | healthy | tests/test_e2_delivery_idempotency.py:57 |
test_normal_evening_game_uses_standard_buffer |
software | healthy | tests/test_scheduler_fallback_deadline.py:11 |
test_patriots_day_morning_game_uses_standard_buffer |
software | healthy | tests/test_scheduler_fallback_deadline.py:23 |
test_london_morning_game_uses_morning_buffer |
software | healthy | tests/test_scheduler_fallback_deadline.py:36 |
test_exactly_cutoff_hour_uses_standard |
software | healthy | tests/test_scheduler_fallback_deadline.py:48 |
test_morning_game_lock_time_is_25_min_before_pitch |
software | healthy | tests/test_scheduler_fallback_deadline.py:61 |
test_rejects_morning_min_greater_than_standard_min |
software | healthy | tests/test_scheduler_fallback_deadline.py:71 |
test_midnight_game_uses_morning_buffer |
software | healthy | tests/test_scheduler_fallback_deadline.py:83 |
heartbeat_path |
software | healthy | tests/test_health_endpoint.py:12 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
INCIDENT.md |
software | healthy | INCIDENT.md |
ARCHITECTURE.md |
software | healthy | ARCHITECTURE.md |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
Dockerfile |
software | healthy | Dockerfile |
pyproject.toml |
software | healthy | pyproject.toml |
orchestrator.example.toml |
software | healthy | config/orchestrator.example.toml |
test_web_render.py |
software | healthy | tests/test_web_render.py |
test_orchestrator.py |
software | healthy | tests/test_orchestrator.py |
test_e2_delivery_idempotency.py |
software | healthy | tests/test_e2_delivery_idempotency.py |
test_scheduler_fallback_deadline.py |
software | healthy | tests/test_scheduler_fallback_deadline.py |
test_health_endpoint.py |
software | healthy | tests/test_health_endpoint.py |
test_shadow_pipeline.py |
software | healthy | tests/test_shadow_pipeline.py |
test_scorecard.py |
software | healthy | tests/test_scorecard.py |
test_cli_integration.py |
software | healthy | tests/test_cli_integration.py |
test_bluesky_password.py |
software | healthy | tests/test_bluesky_password.py |
test_scheduler_watchdog_discipline.py |
software | healthy | tests/test_scheduler_watchdog_discipline.py |
__init__.py |
software | healthy | tests/__init__.py |
conftest.py |
software | healthy | tests/conftest.py |
test_posting.py |
software | healthy | tests/test_posting.py |
test_local_tier.py |
software | healthy | tests/test_local_tier.py |
test_state_verify.py |
software | healthy | tests/test_state_verify.py |
test_build_schema_assert.py |
software | healthy | tests/test_build_schema_assert.py |
test_context_features.py |
software | healthy | tests/test_context_features.py |
test_contest_fetch.py |
software | healthy | tests/test_contest_fetch.py |
test_sync.py |
software | healthy | tests/test_sync.py |
test_audit_driver.py |
software | healthy | tests/test_audit_driver.py |
test_shadow_picks.py |
software | healthy | tests/test_shadow_picks.py |
test_scheduler_no_games.py |
software | healthy | tests/test_scheduler_no_games.py |
test_sd_notify.py |
software | healthy | tests/test_sd_notify.py |
test_private_mode.py |
software | healthy | tests/test_private_mode.py |
test_shadow_report.py |
software | healthy | tests/test_shadow_report.py |
test_lightgbm_optional.py |
software | healthy | tests/test_lightgbm_optional.py |
test_slate_rank.py |
software | healthy | tests/test_slate_rank.py |
test_shadow_scheduler.py |
software | healthy | tests/test_shadow_scheduler.py |
test_atomic_write.py |
software | healthy | tests/test_atomic_write.py |
test_state_regenerate.py |
software | healthy | tests/test_state_regenerate.py |
test_strategy.py |
software | healthy | tests/test_strategy.py |
test_state_export.py |
software | healthy | tests/test_state_export.py |
test_util.py |
software | healthy | tests/test_util.py |
test_progress.py |
software | healthy | tests/test_progress.py |
test_dm.py |
software | healthy | tests/test_dm.py |
test_schema_version.py |
software | healthy | tests/test_schema_version.py |
test_audit_progress_traversal.py |
software | healthy | tests/test_audit_progress_traversal.py |
test_cli_schedule_date.py |
software | healthy | tests/test_cli_schedule_date.py |
test_streak_replay.py |
software | healthy | tests/test_streak_replay.py |
test_slate.py |
software | healthy | tests/test_slate.py |
test_picks_lineup_evolution.py |
software | healthy | tests/test_picks_lineup_evolution.py |
test_shadow_predict_once.py |
software | healthy | tests/test_shadow_predict_once.py |
test_dashboard_bind.py |
software | healthy | tests/test_dashboard_bind.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestRenderPaCellPlaceholder |
software | healthy | tests/test_web_render.py:39 |
TestRenderPaCellFilledPrecedence |
software | healthy | tests/test_web_render.py:84 |
TestSshPredict |
software | healthy | tests/test_orchestrator.py:29 |
TestRunCascade |
software | healthy | tests/test_orchestrator.py:64 |
TestLoadConfig |
software | healthy | tests/test_orchestrator.py:112 |
TestRunAndPick |
software | healthy | tests/test_orchestrator.py:142 |
TestBuildBlendConfigs |
software | healthy | tests/test_shadow_pipeline.py:18 |
TestFormatResultCode |
software | healthy | tests/test_scorecard.py:109 |
TestExtractFielderPosition |
software | healthy | tests/test_scorecard.py:171 |
TestExtractBatterPas |
software | healthy | tests/test_scorecard.py:217 |
TestMergeScorecard |
software | healthy | tests/test_scorecard.py:364 |
TestRenderLiveGameSection |
software | healthy | tests/test_scorecard.py:570 |
TestBatterWithZeroPas |
software | healthy | tests/test_scorecard.py:819 |
TestFetchLiveScorecard |
software | healthy | tests/test_scorecard.py:848 |
TestEstimateLiveBipXba |
software | healthy | tests/test_scorecard.py:866 |
TestSlotFromBo |
software | healthy | tests/test_scorecard.py:900 |
TestComputeLineupStatus |
software | healthy | tests/test_scorecard.py:949 |
TestExtractBatterPasLineupStatus |
software | healthy | tests/test_scorecard.py:1123 |
TestNextLeadoffIdForTeam |
software | healthy | tests/test_scorecard.py:1185 |
TestExtractBatterPasFieldingState |
software | healthy | tests/test_scorecard.py:1225 |
TestMergeScorecardsLineupStatus |
software | healthy | tests/test_scorecard.py:1293 |
TestBtsRun |
software | healthy | tests/test_cli_integration.py:93 |
TestBtsPreview |
software | healthy | tests/test_cli_integration.py:210 |
TestSetContestStreak |
software | healthy | tests/test_cli_integration.py:250 |
TestBtsCheckResults |
software | healthy | tests/test_cli_integration.py:300 |
TestFetchContestStreak |
software | healthy | tests/test_cli_integration.py:754 |
TestCheckPickEntered |
software | healthy | tests/test_cli_integration.py:899 |
TestFormatPost |
software | healthy | tests/test_posting.py:10 |
TestShouldPostNow |
software | healthy | tests/test_posting.py:53 |
TestGetBlueskyPassword |
software | healthy | tests/test_posting.py:82 |
TestFormatResultReply |
software | healthy | tests/test_posting.py:106 |
TestHardContactLeakFree |
software | healthy | tests/test_context_features.py:58 |
TestContextCols |
software | healthy | tests/test_context_features.py:75 |
TestUmpireHitRate |
software | healthy | tests/test_context_features.py:86 |
TestWindVector |
software | healthy | tests/test_context_features.py:99 |
TestBatterHardContact |
software | healthy | tests/test_context_features.py:126 |
TestIsIndoor |
software | healthy | tests/test_context_features.py:152 |
Response |
software | healthy | tests/test_contest_fetch.py:23 |
Client |
software | healthy | tests/test_contest_fetch.py:30 |
TestHasPredictionFor |
software | healthy | tests/test_contest_fetch.py:129 |
TestKeychainFallback |
software | healthy | tests/test_audit_driver.py:16 |
TestOCIReadinessHelpers |
software | healthy | tests/test_audit_driver.py:69 |
FakeServiceError |
software | healthy | tests/test_audit_driver.py:110 |
KwargsModel |
software | healthy | tests/test_audit_driver.py:116 |
FakeComposite |
software | healthy | tests/test_audit_driver.py:122 |
TestValidationSplit |
software | healthy | tests/test_audit_driver.py:180 |
FakeProvider |
software | healthy | tests/test_audit_driver.py:546 |
TestTeardownRetrieved |
software | healthy | tests/test_audit_driver.py:581 |
TestTeardownAllReturn |
software | healthy | tests/test_audit_driver.py:707 |
TestAuditAttachRetrieveMode |
software | healthy | tests/test_audit_driver.py:718 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
config |
software | healthy | config |
tests |
software | healthy | tests |
health |
software | healthy | tests/health |
scripts |
software | healthy | tests/scripts |
simulate |
software | healthy | tests/simulate |
leaderboard |
software | healthy | tests/leaderboard |
fixtures |
software | healthy | tests/leaderboard/fixtures |
experiment |
software | healthy | tests/experiment |
model |
software | healthy | tests/model |
validate |
software | healthy | tests/validate |
docs |
software | healthy | docs |
superpowers |
software | healthy | docs/superpowers |
runbooks |
software | healthy | docs/superpowers/runbooks |
plans |
software | healthy | docs/superpowers/plans |
specs |
software | healthy | docs/superpowers/specs |
audit |
software | healthy | docs/audit |
validation |
software | healthy | docs/validation |
sota_audit |
software | healthy | docs/sota_audit |
scripts |
software | healthy | scripts |
systemd |
software | healthy | scripts/systemd |
cutover |
software | healthy | scripts/cutover |
validation |
software | healthy | scripts/validation |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
bts |
software | healthy | src/bts |
state |
software | healthy | src/bts/state |
evaluate |
software | healthy | src/bts/evaluate |
health |
software | healthy | src/bts/health |
simulate |
software | healthy | src/bts/simulate |
leaderboard |
software | healthy | src/bts/leaderboard |
experiment |
software | healthy | src/bts/experiment |
model |
software | healthy | src/bts/model |
validate |
software | healthy | src/bts/validate |
features |
software | healthy | src/bts/features |
| Label | Layer | Status | Path |
|---|---|---|---|
port:01 |
network | healthy | scripts/cron-setup-hetzner.sh |
port:02 |
network | healthy | scripts/cron-setup-hetzner.sh |
port:10 |
network | healthy | scripts/cron-setup-hetzner.sh |
port:30 |
network | healthy | scripts/cron-setup-hetzner.sh |
port:13 |
network | healthy | scripts/cron-setup-hetzner.sh |
port:03 |
network | healthy | scripts/cron-setup-hetzner.sh |
port:11 |
network | healthy | scripts/cron-setup.sh |
port:04 |
network | healthy | .github/workflows/test.yml |
port:3003 |
network | healthy | src/bts/web.py |
| Label | Layer | Status | Path |
|---|---|---|---|
10.0.0.1 |
network | healthy | tests/test_audit_driver.py |
10.0.0.2 |
network | healthy | tests/test_audit_driver.py |
10.0.0.3 |
network | healthy | tests/test_audit_driver.py |
80.240.17.54 |
network | healthy | tests/test_audit_driver.py |
100.100.43.24 |
network | healthy | tests/test_dashboard_bind.py |
127.0.0.1 |
network | healthy | tests/test_dashboard_bind.py |
100.64.0.0 |
network | healthy | src/bts/web.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::hetzner |
hardware | healthy | README.md |
vps::aws |
hardware | healthy | tests/test_sync.py |
vps::vultr |
hardware | healthy | tests/test_audit_progress_traversal.py |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/bts/dm.py |
security | healthy | src/bts/dm.py |
auth::tests/test_dm.py |
security | healthy | tests/test_dm.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::test |
cicd | healthy | .github/workflows/test.yml |
gha::deploy |
cicd | healthy | .github/workflows/deploy.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
test |
cicd | healthy | .github/workflows/test.yml |
deploy |
cicd | healthy | .github/workflows/deploy.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
HETZNER_SSH_KEY |
cicd | healthy | — |
HETZNER_HOST |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-sfsth124 |
software | healthy | /tmp/repobility-clone-sfsth124 |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
This page is publicly accessible at:
https://repobility.com/scan/f30cdf92-122c-4dcb-9b9c-051278279af0/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/f30cdf92-122c-4dcb-9b9c-051278279af0/
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.