Scan timing: clone 1.39s · analysis 56.28s · 2.6 MB · GitHub API rate-limit (preflight)
https://github.com/virattt/ai-hedge-fund
· scanned 2026-06-05 09:47 UTC (5 days, 17 hours ago)
· 10 languages
625 raw signals (315 security + 310 graph) 37th percentile · Python · medium (20-100K LoC) System graph score 69 (lower by 22)
Last scanned 5 days, 17 hours ago · v2 · 331 actionable findings from 2 signal sources. 139 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
85.0 | 0.15 | 12.75 |
security_score |
19.2 | 0.25 | 4.80 |
testing_score |
55.0 | 0.20 | 11.00 |
documentation_score |
57.0 | 0.15 | 8.55 |
practices_score |
42.0 | 0.15 | 6.30 |
code_quality |
40.6 | 0.10 | 4.06 |
| Overall | 1.00 | 47.5 |
All 1348 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 |
|---|---|---|---|
name |
software | healthy | v2/backtesting/strategy.py:68 |
generate_signals |
software | healthy | v2/backtesting/strategy.py:71 |
__init__ |
software | healthy | v2/backtesting/strategy.py:58 |
__init__ |
software | healthy | v2/backtesting/test_backtest.py:22 |
get_earnings_history |
software | healthy | v2/backtesting/test_backtest.py:26 |
get_prices |
software | healthy | v2/backtesting/test_backtest.py:249 |
_make_prices |
software | healthy | v2/backtesting/test_backtest.py:33 |
test_required_fields |
software | healthy | v2/backtesting/test_backtest.py:58 |
test_metadata |
software | healthy | v2/backtesting/test_backtest.py:66 |
test_beat_produces_long |
software | healthy | v2/backtesting/test_backtest.py:80 |
test_miss_produces_short |
software | healthy | v2/backtesting/test_backtest.py:93 |
test_meet_is_skipped |
software | healthy | v2/backtesting/test_backtest.py:105 |
test_no_quarterly_skipped |
software | healthy | v2/backtesting/test_backtest.py:115 |
test_name |
software | healthy | v2/backtesting/test_backtest.py:124 |
test_long_trade_pnl |
software | healthy | v2/backtesting/test_backtest.py:133 |
test_short_trade_pnl |
software | healthy | v2/backtesting/test_backtest.py:152 |
test_position_sizing |
software | healthy | v2/backtesting/test_backtest.py:168 |
test_equity_curve |
software | healthy | v2/backtesting/test_backtest.py:182 |
test_empty_signals |
software | healthy | v2/backtesting/test_backtest.py:197 |
test_no_prices_skips_signal |
software | healthy | v2/backtesting/test_backtest.py:204 |
test_metadata_passes_through |
software | healthy | v2/backtesting/test_backtest.py:214 |
test_win_rate |
software | healthy | v2/backtesting/test_backtest.py:235 |
test_max_drawdown |
software | healthy | v2/backtesting/test_backtest.py:258 |
fd |
software | healthy | v2/backtesting/test_backtest.py:284 |
test_pead_live |
software | healthy | v2/backtesting/test_backtest.py:291 |
__init__ |
software | healthy | v2/backtesting/engine.py:47 |
run |
software | healthy | v2/backtesting/engine.py:56 |
run_signals |
software | healthy | v2/backtesting/engine.py:72 |
_fill_signal |
software | healthy | v2/backtesting/engine.py:110 |
_build_equity_curve |
software | healthy | v2/backtesting/engine.py:179 |
_compute_metrics |
software | healthy | v2/backtesting/engine.py:192 |
_parse_date |
software | healthy | v2/backtesting/engine.py:250 |
_find_next_trading_day |
software | healthy | v2/backtesting/engine.py:254 |
clear |
software | healthy | v2/backtesting/__main__.py:52 |
color_pnl |
software | healthy | v2/backtesting/__main__.py:56 |
color_pct |
software | healthy | v2/backtesting/__main__.py:61 |
color_direction |
software | healthy | v2/backtesting/__main__.py:66 |
color_eps |
software | healthy | v2/backtesting/__main__.py:70 |
print_header |
software | healthy | v2/backtesting/__main__.py:78 |
print_table_header |
software | healthy | v2/backtesting/__main__.py:102 |
print_trade_row |
software | healthy | v2/backtesting/__main__.py:111 |
main |
software | healthy | v2/backtesting/__main__.py:120 |
name |
software | healthy | v2/signals/base.py:22 |
compute |
software | healthy | v2/signals/base.py:27 |
_safe_float |
software | healthy | v2/signals/base.py:42 |
_percentile_rank |
software | healthy | v2/signals/base.py:53 |
_normalize_to_signal |
software | healthy | v2/signals/base.py:61 |
_sigmoid |
software | healthy | v2/signals/base.py:66 |
_compute_rsi |
software | healthy | v2/signals/base.py:71 |
plot_car_by_source |
software | healthy | v2/event_study/plot.py:23 |
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 |
.env.example |
software | healthy | .env.example |
pyproject.toml |
software | healthy | pyproject.toml |
__init__.py |
software | healthy | v2/__init__.py |
conftest.py |
software | warning | v2/conftest.py |
README.md |
software | healthy | v2/README.md |
models.py |
software | healthy | v2/models.py |
__init__.py |
software | healthy | v2/backtesting/__init__.py |
strategy.py |
software | healthy | v2/backtesting/strategy.py |
test_backtest.py |
software | healthy | v2/backtesting/test_backtest.py |
engine.py |
software | healthy | v2/backtesting/engine.py |
models.py |
software | healthy | v2/backtesting/models.py |
__main__.py |
software | healthy | v2/backtesting/__main__.py |
__init__.py |
software | healthy | v2/signals/__init__.py |
base.py |
software | healthy | v2/signals/base.py |
__init__.py |
software | healthy | v2/risk/__init__.py |
manager.py |
software | warning | v2/risk/manager.py |
__init__.py |
software | healthy | v2/event_study/__init__.py |
plot.py |
software | healthy | v2/event_study/plot.py |
engine.py |
software | healthy | v2/event_study/engine.py |
test_event_study.py |
software | healthy | v2/event_study/test_event_study.py |
models.py |
software | healthy | v2/event_study/models.py |
__main__.py |
software | healthy | v2/event_study/__main__.py |
stats.py |
software | healthy | v2/event_study/stats.py |
__init__.py |
software | healthy | v2/validation/__init__.py |
__init__.py |
software | healthy | v2/portfolio/__init__.py |
optimizer.py |
software | warning | v2/portfolio/optimizer.py |
__init__.py |
software | healthy | v2/pipeline/__init__.py |
execution.py |
software | warning | v2/pipeline/execution.py |
__init__.py |
software | healthy | v2/features/__init__.py |
README.md |
software | healthy | docker/README.md |
run.sh |
software | healthy | docker/run.sh |
Dockerfile |
software | healthy | docker/Dockerfile |
docker-compose.yml |
software | healthy | docker/docker-compose.yml |
__init__.py |
software | healthy | tests/__init__.py |
test_cli_ticker_alias.py |
software | healthy | tests/test_cli_ticker_alias.py |
test_cache.py |
software | healthy | tests/test_cache.py |
test_api_rate_limiting.py |
software | healthy | tests/test_api_rate_limiting.py |
conftest.py |
software | healthy | tests/backtesting/conftest.py |
test_valuation.py |
software | healthy | tests/backtesting/test_valuation.py |
test_results.py |
software | healthy | tests/backtesting/test_results.py |
test_controller.py |
software | healthy | tests/backtesting/test_controller.py |
test_metrics.py |
software | healthy | tests/backtesting/test_metrics.py |
test_execution.py |
software | healthy | tests/backtesting/test_execution.py |
test_portfolio.py |
software | healthy | tests/backtesting/test_portfolio.py |
conftest.py |
software | healthy | tests/backtesting/integration/conftest.py |
test_integration_long_only.py |
software | healthy | tests/backtesting/integration/test_integration_long_only.py |
mocks.py |
software | healthy | tests/backtesting/integration/mocks.py |
test_integration_short_only.py |
software | healthy | tests/backtesting/integration/test_integration_short_only.py |
test_integration_long_short.py |
software | healthy | tests/backtesting/integration/test_integration_long_short.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
SignalResult |
software | healthy | v2/models.py:14 |
QuantSignals |
software | healthy | v2/models.py:25 |
PortfolioTarget |
software | healthy | v2/models.py:38 |
TradeOrder |
software | healthy | v2/models.py:52 |
ExecutionResult |
software | healthy | v2/models.py:63 |
Strategy |
software | healthy | v2/backtesting/strategy.py:22 |
PEADStrategy |
software | healthy | v2/backtesting/strategy.py:50 |
MockFDClient |
software | healthy | v2/backtesting/test_backtest.py:19 |
TestTradeSignal |
software | healthy | v2/backtesting/test_backtest.py:57 |
TestPEADStrategy |
software | healthy | v2/backtesting/test_backtest.py:79 |
TestBacktestEngine |
software | healthy | v2/backtesting/test_backtest.py:132 |
TestMetrics |
software | healthy | v2/backtesting/test_backtest.py:234 |
MultiTickerMock |
software | healthy | v2/backtesting/test_backtest.py:248 |
BacktestEngine |
software | healthy | v2/backtesting/engine.py:36 |
TradeSignal |
software | healthy | v2/backtesting/models.py:10 |
Trade |
software | healthy | v2/backtesting/models.py:24 |
PerformanceMetrics |
software | healthy | v2/backtesting/models.py:40 |
BacktestResult |
software | healthy | v2/backtesting/models.py:55 |
BaseSignal |
software | healthy | v2/signals/base.py:13 |
TestFitMarketModel |
software | healthy | v2/event_study/test_event_study.py:25 |
TestComputeAbnormalReturns |
software | healthy | v2/event_study/test_event_study.py:52 |
TestSumCar |
software | healthy | v2/event_study/test_event_study.py:62 |
TestTtestCars |
software | healthy | v2/event_study/test_event_study.py:73 |
TestBootstrapCI |
software | healthy | v2/event_study/test_event_study.py:86 |
TestRetrospectiveFilter |
software | healthy | v2/event_study/test_event_study.py:107 |
TestPlots |
software | healthy | v2/event_study/test_event_study.py:130 |
MarketModelFit |
software | healthy | v2/event_study/models.py:17 |
EventCAR |
software | healthy | v2/event_study/models.py:31 |
BootstrapCI |
software | healthy | v2/event_study/models.py:51 |
WindowStats |
software | healthy | v2/event_study/models.py:64 |
AggregateResult |
software | healthy | v2/event_study/models.py:80 |
EventStudyResult |
software | healthy | v2/event_study/models.py:93 |
TestCacheInit |
software | healthy | tests/test_cache.py:6 |
TestGetCache |
software | healthy | tests/test_cache.py:18 |
TestMergeData |
software | healthy | tests/test_cache.py:29 |
TestPricesCache |
software | healthy | tests/test_cache.py:61 |
TestFinancialMetricsCache |
software | healthy | tests/test_cache.py:91 |
TestLineItemsCache |
software | healthy | tests/test_cache.py:108 |
TestInsiderTradesCache |
software | healthy | tests/test_cache.py:125 |
TestCompanyNewsCache |
software | healthy | tests/test_cache.py:143 |
TestRateLimiting |
software | healthy | tests/test_api_rate_limiting.py:7 |
MockConfigurableAgent |
software | healthy | tests/backtesting/integration/mocks.py:4 |
FlowConnectionManager |
software | healthy | app/frontend/src/hooks/use-flow-connection.ts:FlowConnectio… |
FlowStateManager |
software | healthy | app/frontend/src/hooks/use-node-state.ts:FlowStateManager |
based |
software | healthy | app/frontend/src/nodes/utils.ts:based |
TabService |
software | healthy | app/frontend/src/services/tab-service.ts:TabService |
SidebarStorageService |
software | healthy | app/frontend/src/services/sidebar-storage.ts:SidebarStorage… |
ApiKeysService |
software | healthy | app/frontend/src/services/api-keys-api.ts:ApiKeysService |
FlowRunStatus |
software | healthy | app/backend/models/schemas.py:9 |
AgentModelConfig |
software | healthy | app/backend/models/schemas.py:16 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
v2 |
software | healthy | v2 |
backtesting |
software | healthy | v2/backtesting |
signals |
software | healthy | v2/signals |
risk |
software | healthy | v2/risk |
event_study |
software | healthy | v2/event_study |
validation |
software | healthy | v2/validation |
portfolio |
software | healthy | v2/portfolio |
pipeline |
software | healthy | v2/pipeline |
features |
software | healthy | v2/features |
docker |
software | healthy | docker |
tests |
software | healthy | tests |
backtesting |
software | healthy | tests/backtesting |
integration |
software | healthy | tests/backtesting/integration |
fixtures |
software | healthy | tests/fixtures |
api |
software | healthy | tests/fixtures/api |
prices |
software | healthy | tests/fixtures/api/prices |
insider_trades |
software | healthy | tests/fixtures/api/insider_trades |
financial_metrics |
software | healthy | tests/fixtures/api/financial_metrics |
news |
software | healthy | tests/fixtures/api/news |
scripts |
software | healthy | scripts |
app |
software | healthy | app |
frontend |
software | healthy | app/frontend |
.github |
software | healthy | app/frontend/.github |
src |
software | healthy | app/frontend/src |
types |
software | healthy | app/frontend/src/types |
edges |
software | healthy | app/frontend/src/edges |
utils |
software | healthy | app/frontend/src/utils |
components |
software | healthy | app/frontend/src/components |
settings |
software | healthy | app/frontend/src/components/settings |
models |
software | healthy | app/frontend/src/components/settings/models |
layout |
software | healthy | app/frontend/src/components/layout |
ui |
software | healthy | app/frontend/src/components/ui |
panels |
software | healthy | app/frontend/src/components/panels |
left |
software | healthy | app/frontend/src/components/panels/left |
right |
software | healthy | app/frontend/src/components/panels/right |
bottom |
software | healthy | app/frontend/src/components/panels/bottom |
tabs |
software | healthy | app/frontend/src/components/panels/bottom/tabs |
tabs |
software | healthy | app/frontend/src/components/tabs |
contexts |
software | healthy | app/frontend/src/contexts |
providers |
software | healthy | app/frontend/src/providers |
lib |
software | healthy | app/frontend/src/lib |
hooks |
software | healthy | app/frontend/src/hooks |
nodes |
software | healthy | app/frontend/src/nodes |
components |
software | healthy | app/frontend/src/nodes/components |
services |
software | healthy | app/frontend/src/services |
backend |
software | healthy | app/backend |
models |
software | healthy | app/backend/models |
database |
software | healthy | app/backend/database |
routes |
software | healthy | app/backend/routes |
services |
software | healthy | app/backend/services |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GET / |
api | healthy | app/backend/routes/health.py |
GET /ping |
api | healthy | app/backend/routes/health.py |
POST / |
api | healthy | app/backend/routes/api_keys.py |
GET /{provider} |
api | healthy | app/backend/routes/api_keys.py |
PUT /{provider} |
api | healthy | app/backend/routes/api_keys.py |
DELETE /{provider} |
api | healthy | app/backend/routes/api_keys.py |
PATCH /{provider}/deactivate |
api | healthy | app/backend/routes/api_keys.py |
POST /bulk |
api | healthy | app/backend/routes/api_keys.py |
PATCH /{provider}/last-used |
api | healthy | app/backend/routes/api_keys.py |
GET /active |
api | healthy | app/backend/routes/flow_runs.py |
GET /latest |
api | healthy | app/backend/routes/flow_runs.py |
GET /{run_id} |
api | healthy | app/backend/routes/flow_runs.py |
PUT /{run_id} |
api | healthy | app/backend/routes/flow_runs.py |
DELETE /{run_id} |
api | healthy | app/backend/routes/flow_runs.py |
DELETE / |
api | healthy | app/backend/routes/flow_runs.py |
GET /count |
api | healthy | app/backend/routes/flow_runs.py |
GET /{flow_id} |
api | healthy | app/backend/routes/flows.py |
PUT /{flow_id} |
api | healthy | app/backend/routes/flows.py |
DELETE /{flow_id} |
api | healthy | app/backend/routes/flows.py |
POST /{flow_id}/duplicate |
api | healthy | app/backend/routes/flows.py |
GET /search/{name} |
api | healthy | app/backend/routes/flows.py |
GET /status |
api | healthy | app/backend/routes/ollama.py |
POST /start |
api | healthy | app/backend/routes/ollama.py |
POST /stop |
api | healthy | app/backend/routes/ollama.py |
POST /models/download |
api | healthy | app/backend/routes/ollama.py |
POST /models/download/progress |
api | healthy | app/backend/routes/ollama.py |
GET /models/download/progress/{model_name} |
api | healthy | app/backend/routes/ollama.py |
GET /models/downloads/active |
api | healthy | app/backend/routes/ollama.py |
DELETE /models/{model_name} |
api | healthy | app/backend/routes/ollama.py |
GET /models/recommended |
api | healthy | app/backend/routes/ollama.py |
DELETE /models/download/{model_name} |
api | healthy | app/backend/routes/ollama.py |
| Label | Layer | Status | Path |
|---|---|---|---|
HedgeFundFlow |
data | healthy | app/backend/database/models.py |
HedgeFundFlowRun |
data | healthy | app/backend/database/models.py |
HedgeFundFlowRunCycle |
data | healthy | app/backend/database/models.py |
ApiKey |
data | healthy | app/backend/database/models.py |
hedge_fund_flows |
data | healthy | app/backend/database/models.py |
hedge_fund_flow_runs |
data | healthy | app/backend/database/models.py |
hedge_fund_flow_run_cycles |
data | healthy | app/backend/database/models.py |
api_keys |
data | healthy | app/backend/database/models.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::docker/Dockerfile |
hardware | healthy | docker/Dockerfile |
ollama |
hardware | healthy | docker/docker-compose.yml |
hedge-fund |
hardware | healthy | docker/docker-compose.yml |
hedge-fund-reasoning |
hardware | healthy | docker/docker-compose.yml |
hedge-fund-ollama |
hardware | healthy | docker/docker-compose.yml |
backtester |
hardware | healthy | docker/docker-compose.yml |
backtester-ollama |
hardware | healthy | docker/docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | app/frontend/src/App.tsx |
FlowItem |
frontend | healthy | app/frontend/src/components/panels/left/flow-item.tsx |
ComponentItem |
frontend | healthy | app/frontend/src/components/panels/right/component-item.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
mongodb |
data | healthy | tests/fixtures/api/news/MSFT_2024-03-01_2024-03-08.json |
sqlite |
data | healthy | app/backend/database/connection.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-nf7k9wvr |
software | healthy | /tmp/repobility-clone-nf7k9wvr |
| Label | Layer | Status | Path |
|---|---|---|---|
port:11434 |
network | healthy | docker/docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | app/run.sh |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | .env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | docker/run.sh |
This page is publicly accessible at:
https://repobility.com/scan/969af918-800c-4c7e-85b0-b124b88cdd8c/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/969af918-800c-4c7e-85b0-b124b88cdd8c/
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.