AI Slop Code RIsk Monitor

NoFxAiOS/nofx

Your AI trading terminal assistant for US stocks, commodities, forex, and crypto.

6.4 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for NoFxAiOS/nofx, a Go project with 13,033 GitHub stars. SynthScan examined 175,877 lines of code across 596 source files, recording 419 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 6.4 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

6.4
Adjusted Signal
6.4
Raw Pattern Score
100%
Time Factor
2026-10-04
Last Push
13.0K
Stars
Go
Language
175.9K
Lines of Code
596
Files
419
Pattern Hits
2026-10-12
Scan Date
0.03
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 18.0/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 294 finding(s).

Hallucinated Dependency & Supply Chain Risk 3.1/100 · LOW

Are imports declared and package/API names verified? 20 finding(s).

Agent Over-Engineering Ratio 9.1/100 · LOW

Are wrappers, guards, and repeated structures necessary? 120 finding(s).

PR Review Velocity Impact 23.9/100 · LOW

Which changes need focused human review? 419 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 19MEDIUM 223LOW 177

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 419 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

AI Slop Vocabulary122 hits · 398 pts
SeverityFileLineSnippetContext
MEDIUM⚡web/src/types/strategy.ts198 // Trading Leverage - exchange leverage for opening positions (AI guided)COMMENT
MEDIUM⚡web/src/types/strategy.ts199 btc_eth_max_leverage: number; // BTC/ETH max exchange leverageCODE
MEDIUM⚡web/src/types/strategy.ts200 altcoin_max_leverage: number; // Altcoin max exchange leverageCODE
MEDIUMweb/src/components/landing/brand/Marquee.tsx16 // Clone children to create seamless loopCOMMENT
MEDIUMtrader/grid_regime.go36// getRegimeLeverageLimit returns the effective leverage limit for a regime levelCOMMENT
MEDIUMtrader/auto_trader_grid_regime.go239 // Calculate effective leverageCOMMENT
MEDIUMtrader/auto_trader_grid_regime.go284 // Use default leverage limits since GridStrategyConfig doesn't have regime-specific limitsCOMMENT
MEDIUMtrader/auto_trader_grid.go338 // CRITICAL: Set leverage on exchange before tradingCOMMENT
MEDIUMtrader/auto_trader_grid.go341 // Not fatal - continue with default leverageCOMMENT
MEDIUMtrader/interface.go34 // CRITICAL FIX: Set leverage before placing orderCOMMENT
MEDIUMtrader/interface.go38 // Continue anyway - some exchanges don't require explicit leverage settingCOMMENT
MEDIUMtrader/auto_trader_grid_orders.go69 // This protects against AI miscalculations or leverage misconfigurationsCOMMENT
MEDIUMtrader/auto_trader.go444 // ClampLimits above bounds it (ratio 0.5–10, leverage caps), and theCOMMENT
MEDIUMtrader/auto_trader.go706// calculatePnLPercentage calculates P&L percentage (based on margin, automatically considers leverage)COMMENT
MEDIUMtrader/auto_trader_throttle.go16 // values. Thresholds are PRICE-move percentages (leverage-independent).COMMENT
MEDIUMtrader/auto_trader_loop.go534 // Calculate P&L percentage (based on margin, considering leverage)COMMENT
MEDIUMtrader/auto_trader_loop.go624 // 5. Get leverage from strategy configCOMMENT
MEDIUMtrader/auto_trader_risk.go15 // position's favor (leverage-independent — at 10x the old margin-basisCOMMENT
MEDIUMtrader/auto_trader_risk.go88 // not tighten as leverage grows; the margin-basis (leveraged) value isCOMMENT
MEDIUMtrader/auto_trader_orders.go15 // totalRequired ≈ positionSize/leverage + positionSize*takerFeeRate + positionSize/leverage*1%COMMENT
MEDIUMtrader/auto_trader_orders.go16 // = positionSize * (marginOverheadFactor/leverage + takerFeeRate)COMMENT
MEDIUMtrader/auto_trader_throttle_test.go51 // At 10x leverage the exchange reports margin-based PnL: -6% margin isCOMMENT
MEDIUMtrader/okx/trader_orders.go19 // Set leverageCOMMENT
MEDIUMtrader/okx/trader_orders.go100 // Set leverageCOMMENT
MEDIUMtrader/okx/trader_orders.go819 // Set leverage if specifiedCOMMENT
MEDIUMtrader/okx/trader_account.go91// to all subsequent leverage and order requests for this trader instance.COMMENT
MEDIUMtrader/okx/trader_account.go97// /api/v5/account/set-leverage and via the tdMode field on order placement.COMMENT
MEDIUM⚡trader/okx/trader_account.go108 // while leverage uses mgnMode on /account/set-leverage.COMMENT
MEDIUM⚡trader/okx/trader_account.go109 // Persist the configured mode locally so subsequent leverage/order calls use it,COMMENT
MEDIUM⚡trader/okx/trader_account.go115// SetLeverage sets leverageCOMMENT
MEDIUM⚡trader/okx/trader_account.go120 // Set leverage for both long and shortCOMMENT
MEDIUMtrader/okx/trader_account.go131 // Ignore if already at target leverageCOMMENT
MEDIUMtrader/okx/trader.go44 // Margin mode setting used for new orders and leverage changes.COMMENT
MEDIUMtrader/hyperliquid/trader_orders.go53 // Fail closed before touching protective orders if leverage cannot be set.COMMENT
MEDIUMtrader/hyperliquid/trader_orders.go1176 // Set leverage if specified.COMMENT
MEDIUMtrader/hyperliquid/authorization_test.go50 // accidentally gets past the leverage guard. No funded key is used.COMMENT
MEDIUMtrader/hyperliquid/authorization.go72// The SDK's default exchange indexes only core perps. HIP-3 leverage must useCOMMENT
MEDIUMtrader/hyperliquid/trader_positions.go121 // Get leverage (default to 1 if not available)COMMENT
MEDIUMtrader/hyperliquid/trader_positions.go153// SetLeverage sets leverageCOMMENT
MEDIUMtrader/hyperliquid/trader_positions.go158 // Call UpdateLeverage (leverage int, name string, isCross bool)COMMENT
MEDIUMtrader/types/interface.go62 // SetLeverage Set leverageCOMMENT
MEDIUMtrader/types/interface.go176 // CRITICAL FIX: Set leverage before placing orderCOMMENT
MEDIUMtrader/types/interface.go180 // Continue anyway - some exchanges don't require explicit leverage settingCOMMENT
MEDIUMtrader/indodax/trader_orders.go123// SetLeverage is a no-op for Indodax (spot-only, no leverage)COMMENT
MEDIUMtrader/indodax/trader.go28// Since Indodax is spot-only, futures-specific methods (OpenShort, CloseShort, leverage, etc.)COMMENT
MEDIUM⚡trader/aster/trader_orders.go27 // Set leverage first (non-fatal if position already exists)COMMENT
MEDIUM⚡trader/aster/trader_orders.go29 // Error -2030: Cannot adjust leverage when position existsCOMMENT
MEDIUM⚡trader/aster/trader_orders.go30 // This is expected when adding to an existing position, continue with current leverageCOMMENT
MEDIUM⚡trader/aster/trader_orders.go100 // Set leverage first (non-fatal if position already exists)COMMENT
MEDIUM⚡trader/aster/trader_orders.go102 // Error -2030: Cannot adjust leverage when position existsCOMMENT
MEDIUM⚡trader/aster/trader_orders.go103 // This is expected when adding to an existing position, continue with current leverageCOMMENT
MEDIUMtrader/aster/trader_test.go168 // Mock SetLeverage - /fapi/v1/leverageCOMMENT
MEDIUMtrader/aster/trader_positions.go112// SetLeverage Set leverage multiplierCOMMENT
MEDIUMtrader/bybit/trader_orders.go28 // Set leverage firstCOMMENT
MEDIUMtrader/bybit/trader_orders.go71 // Set leverage firstCOMMENT
MEDIUMtrader/bybit/trader_orders.go191// SetLeverage sets leverageCOMMENT
MEDIUMtrader/bybit/trader_orders.go202 // If leverage is already at target value, Bybit will return an error, ignore this caseCOMMENT
MEDIUMtrader/bybit/trader_orders.go209 if result.RetCode != 0 && result.RetCode != 110043 { // 110043 = leverage not modifiedCODE
MEDIUMtrader/bybit/trader_orders.go599 // Set leverage if specifiedCOMMENT
MEDIUMtrader/kucoin/trader_orders.go21 // Set leverageCOMMENT
62 more matches not shown…
Decorative Section Separators93 hits · 300 pts
SeverityFileLineSnippetContext
MEDIUM⚡start.sh3# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUM⚡start.sh6# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUM⚡start.sh10# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh12# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh20# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh22# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh67# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh69# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh79# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh81# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh245# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh247# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh254# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh256# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh263# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh265# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh274# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh276# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh302# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh304# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh312# ------------------------------------------------------------------------COMMENT
MEDIUM⚡start.sh314# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh39# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh41# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh54# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh56# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh104# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh106# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh126# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh128# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh173# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh175# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh192# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh194# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh205# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh207# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh287# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh289# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh348# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh350# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh376# ------------------------------------------------------------------------COMMENT
MEDIUMstart.sh378# ------------------------------------------------------------------------COMMENT
MEDIUMweb/src/components/terminal/RiskRadar.tsx133 // ── one-glance verdicts ──────────────────────────────────────────────COMMENT
MEDIUMweb/src/components/terminal/RiskRadar.tsx297// ── verdict tag ────────────────────────────────────────────────────────COMMENT
MEDIUMweb/src/components/terminal/RiskRadar.tsx340// ── bilingual label block ──────────────────────────────────────────────COMMENT
MEDIUMweb/src/data/faqData.ts51 // ───────────────────────── Getting started ─────────────────────────COMMENT
MEDIUMweb/src/data/faqData.ts141 // ───────────────────────── Launch & wallets ─────────────────────────COMMENT
MEDIUMweb/src/data/faqData.ts253 // ───────────────────────── Trading & execution ─────────────────────────COMMENT
MEDIUMweb/src/data/faqData.ts409 // ───────────────────────── Dashboard & metrics ─────────────────────────COMMENT
MEDIUMweb/src/data/faqData.ts464 // ───────────────────────── Security ─────────────────────────COMMENT
MEDIUMweb/src/data/faqData.ts511 // ───────────────────────── Self-hosting ─────────────────────────COMMENT
MEDIUMweb/src/data/faqData.ts601 // ───────────────────────── Contributing ─────────────────────────COMMENT
MEDIUM⚡mcp/hooks.go14 // ── Simple CallWithMessages path ────────────────────────────────────────COMMENT
MEDIUM⚡mcp/hooks.go18 // ── Shared request plumbing ─────────────────────────────────────────────COMMENT
MEDIUM⚡mcp/hooks.go24 // ── Advanced (Request-object) path ──────────────────────────────────────COMMENT
MEDIUMmcp/payment/claw402.go241// ── Format overrides for Anthropic endpoints ─────────────────────────────────COMMENT
MEDIUMmcp/payment/x402.go129// ── Shared x402 types ────────────────────────────────────────────────────────COMMENT
MEDIUMmcp/payment/x402.go160// ── Shared x402 helpers ──────────────────────────────────────────────────────COMMENT
MEDIUMmcp/payment/x402.go663// ── Shared EIP-712 constants & helpers (Base chain, USDC) ────────────────────COMMENT
MEDIUM⚡mcp/provider/claude.go5// ┌─────────────────────┬───────────────────────────┬─────────────────────────────────┐COMMENT
33 more matches not shown…
Structural Annotation Overuse74 hits · 140 pts
SeverityFileLineSnippetContext
LOW⚡trader/position_snapshot.go21 // Step 1: Delete all OPEN positionsCOMMENT
LOW⚡trader/position_snapshot.go28 // Step 2: Get current positions from exchangeCOMMENT
LOWtrader/position_snapshot.go42 // Step 3: Create snapshot record for each positionCOMMENT
LOWtrader/hyperliquid/trader_account.go22 // Step 1: Query Spot account balanceCOMMENT
LOW⚡trader/hyperliquid/trader_account.go53 // Step 2: Query Perpetuals contract account statusCOMMENT
LOW⚡trader/hyperliquid/trader_account.go63 // Step 3: Dynamically select correct summary based on margin mode (CrossMarginSummary or MarginSummary)COMMENT
LOWtrader/hyperliquid/trader_account.go111 // Step 4: Use Withdrawable field (PR #443)COMMENT
LOWtrader/hyperliquid/trader_account.go131 // Step 5: Query xyz dex balance (stock perps, forex, commodities)COMMENT
LOWtrader/hyperliquid/trader_account.go175 // Step 7: Unified Account mode - Spot USDC is used as collateral for PerpsCOMMENT
LOW⚡trader/lighter/integration_test.go861 // Step 2: Set leverageCOMMENT
LOW⚡trader/lighter/integration_test.go871 // Step 3: Open Long PositionCOMMENT
LOW⚡trader/lighter/integration_test.go881 // Step 4: Verify positionCOMMENT
LOW⚡trader/lighter/integration_test.go891 // Step 5: Place limit order (sell at higher price)COMMENT
LOW⚡trader/lighter/integration_test.go914 // Step 7: Cancel all ordersCOMMENT
LOW⚡trader/lighter/integration_test.go924 // Step 8: Close positionCOMMENT
LOW⚡trader/lighter/integration_test.go934 // Step 9: Verify position closedCOMMENT
LOW⚡trader/lighter/integration_test.go943 // Step 10: Get final balanceCOMMENT
LOWtrader/lighter/integration_test.go848 // Step 1: Get initial stateCOMMENT
LOWtrader/lighter/integration_test.go902 // Step 6: Get open ordersCOMMENT
LOW⚡trader/binance/order_sync.go64 // Step 1: Get max trade IDs from local DB for incremental syncCOMMENT
LOW⚡trader/binance/order_sync.go71 // Step 2: Detect symbols to sync using multiple methodsCOMMENT
LOWtrader/binance/order_sync.go130 // Step 3: Query trades for changed symbols using fromId (incremental) or time-based (new symbols)COMMENT
LOW⚡trader/binance/order_sync_test.go256 // Step 1: Determine lastSyncTime (simulating first run)COMMENT
LOW⚡trader/binance/order_sync_test.go260 // Step 2: Detect symbols using all methodsCOMMENT
LOWtrader/binance/order_sync_test.go329 // Step 3: Query trades for each symbolCOMMENT
LOW⚡trader/binance/sync_verify_test.go41 // Step 1: Run syncCOMMENT
LOW⚡trader/binance/sync_verify_test.go51 // Step 2: Get all trades from exchange for verificationCOMMENT
LOWtrader/binance/sync_verify_test.go102 // Step 3: Get all fills from DBCOMMENT
LOWtrader/binance/sync_verify_test.go123 // Step 4: Check for missing tradesCOMMENT
LOWtrader/binance/sync_verify_test.go150 // Step 5: Check for extra/duplicate tradesCOMMENT
LOWtrader/binance/sync_verify_test.go177 // Step 6: Check for data accuracyCOMMENT
LOWtrader/binance/sync_verify_test.go243 // Step 7: Summary by symbolCOMMENT
LOWtrader/binance/sync_verify_test.go304 // Step 8: Position verificationCOMMENT
LOW⚡mcp/client.go409 // Step 1: Build request body (via hooks for dynamic dispatch)COMMENT
LOW⚡mcp/client.go412 // Step 2: Serialize request body (via hooks for dynamic dispatch)COMMENT
LOW⚡mcp/client.go418 // Step 3: Build URL (via hooks for dynamic dispatch)COMMENT
LOW⚡mcp/client.go422 // Step 4: Create HTTP request (fixed logic)COMMENT
LOW⚡mcp/client.go428 // Step 5: Send HTTP request (fixed logic)COMMENT
LOW⚡mcp/client.go435 // Step 6: Read response body (fixed logic)COMMENT
LOW⚡mcp/client.go441 // Step 7: Check HTTP status code (fixed logic)COMMENT
LOW⚡mcp/client.go446 // Step 8: Parse response (via hooks for dynamic dispatch)COMMENT
LOW⚡docs/research/AI-Trader-Analysis-Report.md536 # Step 1: 连接MCP服务COMMENT
LOW⚡docs/research/AI-Trader-Analysis-Report.md540 # Step 2: 加载工具COMMENT
LOW⚡docs/research/AI-Trader-Analysis-Report.md544 # Step 3: 初始化LLM (根据模型类型选择适配器)COMMENT
LOW⚡docs/research/AI-Trader-Analysis-Report.md547 # Step 4: 绑定工具COMMENT
LOWdocs/maintainers/SETUP_GUIDE.md36### Step 1: Sync GitHub LabelsCOMMENT
LOWdocs/maintainers/SETUP_GUIDE.md72### Step 2: Enable GitHub ActionsCOMMENT
LOWdocs/maintainers/SETUP_GUIDE.md79### Step 3: Set Up Branch Protection RulesCOMMENT
LOWdocs/maintainers/SETUP_GUIDE.md103### Step 4: Create GitHub ProjectsCOMMENT
LOWdocs/maintainers/SETUP_GUIDE.md115### Step 5: Enable Discussions (Optional but Recommended)COMMENT
LOWdocs/maintainers/SETUP_GUIDE.md126### Step 6: Configure Issue TemplatesCOMMENT
LOWdocs/maintainers/SETUP_GUIDE.md138### Step 7: Set Up Code Owners (Optional)COMMENT
LOWdocs/maintainers/SETUP_GUIDE.md160### Step 8: Configure NotificationsCOMMENT
LOW⚡docs/getting-started/lighter-agent-wallet.md17## Step 1: Connect Your Main WalletCOMMENT
LOW⚡docs/getting-started/lighter-agent-wallet.md24## Step 2: Create Agent WalletCOMMENT
LOW⚡docs/getting-started/lighter-agent-wallet.md31## Step 3: Save Agent CredentialsCOMMENT
LOWdocs/getting-started/lighter-agent-wallet.md43## Step 4: Configure in NOFXCOMMENT
LOW⚡docs/getting-started/hyperliquid-agent-wallet.md17## Step 1: Connect Your Main WalletCOMMENT
LOW⚡docs/getting-started/hyperliquid-agent-wallet.md24## Step 2: Create Agent WalletCOMMENT
LOW⚡docs/getting-started/hyperliquid-agent-wallet.md32## Step 3: Save Agent CredentialsCOMMENT
14 more matches not shown…
Magic Placeholder Names16 hits · 108 pts
SeverityFileLineSnippetContext
HIGHdocs/getting-started/custom-api.md103 "custom_api_key": "your-api-key",CODE
HIGHdocs/getting-started/custom-api.en.md103 "custom_api_key": "your-api-key",CODE
HIGHdocs/api/API_REFERENCE.md16GET /api/ai500/list?auth=your_api_keyCODE
HIGHdocs/api/API_REFERENCE.md22Authorization: Bearer your_api_keyCODE
HIGH⚡docs/api/API_REFERENCE.md665curl "https://nofxos.ai/api/ai500/list?auth=your_api_key"CODE
HIGH⚡docs/api/API_REFERENCE.md669 -H "Authorization: Bearer your_api_key"CODE
HIGH⚡docs/api/API_REFERENCE.md672curl "https://nofxos.ai/api/price/ranking?duration=1h&limit=20&auth=your_api_key"CODE
HIGH⚡docs/api/API_REFERENCE.md675curl "https://nofxos.ai/api/price/ranking?duration=1h,4h,24h&limit=10&auth=your_api_key"CODE
HIGH⚡docs/api/API_REFERENCE.md678curl "https://nofxos.ai/api/coin/BTC?auth=your_api_key"CODE
HIGH⚡docs/api/API_REFERENCE.md681curl "https://nofxos.ai/api/coin/BTC?include=netflow,oi&auth=your_api_key"CODE
HIGH⚡docs/api/API_REFERENCE.md684curl "https://nofxos.ai/api/oi/top-ranking?duration=4h&limit=50&auth=your_api_key"CODE
HIGH⚡docs/api/API_REFERENCE.md687curl "https://nofxos.ai/api/oi/low-ranking?duration=24h&limit=30&auth=your_api_key"CODE
HIGH⚡docs/api/API_REFERENCE.md690curl "https://nofxos.ai/api/netflow/top-ranking?type=institution&trade=future&duration=1h&auth=your_api_key"CODE
HIGH⚡docs/api/API_REFERENCE.md693curl "https://nofxos.ai/api/netflow/low-ranking?type=personal&trade=spot&duration=4h&auth=your_api_key"CODE
HIGH⚡docs/api/API_REFERENCE.md702API_KEY = "your_api_key"CODE
HIGHdocs/api/API_REFERENCE.md783const API_KEY = "your_api_key";CODE
Verbosity Indicators41 hits · 80 pts
SeverityFileLineSnippetContext
LOW⚡trader/position_snapshot.go21 // Step 1: Delete all OPEN positionsCOMMENT
LOW⚡trader/position_snapshot.go28 // Step 2: Get current positions from exchangeCOMMENT
LOWtrader/position_snapshot.go42 // Step 3: Create snapshot record for each positionCOMMENT
LOWtrader/hyperliquid/trader_account.go22 // Step 1: Query Spot account balanceCOMMENT
LOW⚡trader/hyperliquid/trader_account.go53 // Step 2: Query Perpetuals contract account statusCOMMENT
LOW⚡trader/hyperliquid/trader_account.go63 // Step 3: Dynamically select correct summary based on margin mode (CrossMarginSummary or MarginSummary)COMMENT
LOWtrader/hyperliquid/trader_account.go111 // Step 4: Use Withdrawable field (PR #443)COMMENT
LOWtrader/hyperliquid/trader_account.go131 // Step 5: Query xyz dex balance (stock perps, forex, commodities)COMMENT
LOWtrader/hyperliquid/trader_account.go175 // Step 7: Unified Account mode - Spot USDC is used as collateral for PerpsCOMMENT
LOW⚡trader/lighter/integration_test.go861 // Step 2: Set leverageCOMMENT
LOW⚡trader/lighter/integration_test.go871 // Step 3: Open Long PositionCOMMENT
LOW⚡trader/lighter/integration_test.go881 // Step 4: Verify positionCOMMENT
LOW⚡trader/lighter/integration_test.go891 // Step 5: Place limit order (sell at higher price)COMMENT
LOW⚡trader/lighter/integration_test.go914 // Step 7: Cancel all ordersCOMMENT
LOW⚡trader/lighter/integration_test.go924 // Step 8: Close positionCOMMENT
LOW⚡trader/lighter/integration_test.go934 // Step 9: Verify position closedCOMMENT
LOW⚡trader/lighter/integration_test.go943 // Step 10: Get final balanceCOMMENT
LOWtrader/lighter/integration_test.go848 // Step 1: Get initial stateCOMMENT
LOWtrader/lighter/integration_test.go902 // Step 6: Get open ordersCOMMENT
LOW⚡trader/binance/order_sync.go64 // Step 1: Get max trade IDs from local DB for incremental syncCOMMENT
LOW⚡trader/binance/order_sync.go71 // Step 2: Detect symbols to sync using multiple methodsCOMMENT
LOWtrader/binance/order_sync.go130 // Step 3: Query trades for changed symbols using fromId (incremental) or time-based (new symbols)COMMENT
LOW⚡trader/binance/order_sync_test.go256 // Step 1: Determine lastSyncTime (simulating first run)COMMENT
LOW⚡trader/binance/order_sync_test.go260 // Step 2: Detect symbols using all methodsCOMMENT
LOWtrader/binance/order_sync_test.go329 // Step 3: Query trades for each symbolCOMMENT
LOW⚡trader/binance/sync_verify_test.go41 // Step 1: Run syncCOMMENT
LOW⚡trader/binance/sync_verify_test.go51 // Step 2: Get all trades from exchange for verificationCOMMENT
LOWtrader/binance/sync_verify_test.go102 // Step 3: Get all fills from DBCOMMENT
LOWtrader/binance/sync_verify_test.go123 // Step 4: Check for missing tradesCOMMENT
LOWtrader/binance/sync_verify_test.go150 // Step 5: Check for extra/duplicate tradesCOMMENT
LOWtrader/binance/sync_verify_test.go177 // Step 6: Check for data accuracyCOMMENT
LOWtrader/binance/sync_verify_test.go243 // Step 7: Summary by symbolCOMMENT
LOWtrader/binance/sync_verify_test.go304 // Step 8: Position verificationCOMMENT
LOW⚡mcp/client.go409 // Step 1: Build request body (via hooks for dynamic dispatch)COMMENT
LOW⚡mcp/client.go412 // Step 2: Serialize request body (via hooks for dynamic dispatch)COMMENT
LOW⚡mcp/client.go418 // Step 3: Build URL (via hooks for dynamic dispatch)COMMENT
LOW⚡mcp/client.go422 // Step 4: Create HTTP request (fixed logic)COMMENT
LOW⚡mcp/client.go428 // Step 5: Send HTTP request (fixed logic)COMMENT
LOW⚡mcp/client.go435 // Step 6: Read response body (fixed logic)COMMENT
LOW⚡mcp/client.go441 // Step 7: Check HTTP status code (fixed logic)COMMENT
LOW⚡mcp/client.go446 // Step 8: Parse response (via hooks for dynamic dispatch)COMMENT
Example Usage Blocks14 hits · 21 pts
SeverityFileLineSnippetContext
LOWinstall.sh6# Usage:COMMENT
LOWinstall-stable.sh5# Usage:COMMENT
LOWmcp/options.go17// Usage example:COMMENT
LOWmcp/options.go31// Usage example:COMMENT
LOWmcp/options.go46// Usage example:COMMENT
LOWmcp/options.go57// Usage example:COMMENT
LOWmcp/options.go67// Usage example:COMMENT
LOWmcp/options.go81// Usage example:COMMENT
LOWmcp/options.go93// Usage example:COMMENT
LOWmcp/options.go104// Usage example:COMMENT
LOWmcp/options.go157// Usage example:COMMENT
LOWmcp/options.go170// Usage example:COMMENT
LOWmcp/options.go183// Usage example:COMMENT
LOWmcp/request_builder.go24// Usage example:COMMENT
Over-Commented Block19 hits · 19 pts
SeverityFileLineSnippetContext
LOWinstall.sh1#!/bin/bashCOMMENT
LOWcli.go21)COMMENT
LOWweb/src/pages/StrategyMarketPage.tsx21 title={t('strategyMarket', language) || 'Strategy Market'}COMMENT
LOWtrader/auto_trader_loop.go241 // logger.Infof(strings.Repeat("=", 70) + "\n")COMMENT
LOWtrader/okx/trader_account.go81 // Update cacheCOMMENT
LOWtrader/hyperliquid/trader.go61 "GOLD": true, "SILVER": true,COMMENT
LOWtrader/lighter/trader.go581 // 2. side: BUY or SELLCOMMENT
LOWprovider/hyperliquid/kline.go461}COMMENT
LOWmcp/interface.go21 // Returns the complete final text when done.COMMENT
LOWmcp/request_builder.go21COMMENT
LOWmcp/client.go81 // LastCallSettledUSD is the actually-settled cost (USD) of the mostCOMMENT
LOWmcp/client.go101func New() AIClient {COMMENT
LOWmcp/intro/BUILDER_EXAMPLES.md461 response, err := client.CallWithRequest(request)COMMENT
LOWmcp/provider/claude.go1// Package provider — ClaudeClient implements the Anthropic Messages API.COMMENT
LOWtelegram/agent/agent.go181 return sb.String()COMMENT
LOWtelegram/agent/apicall.go41// botAPIAllowlist enumerates the endpoints the Telegram LLM agent is permittedCOMMENT
LOWapi/server.go181 s.route(api, "POST", "/strategies/estimate-tokens", "Estimate token usage for a strategy config", s.handleEstimateTokeCOMMENT
LOWkernel/engine_prompt.go141 }COMMENT
LOWstore/position_reconcile.go21//COMMENT
Excessive Try-Catch Wrapping11 hits · 18 pts
SeverityFileLineSnippetContext
LOWdocs/research/AI-Trader-Analysis-Report.md727 except Exception as e:CODE
LOWdocs/research/AI-Trader-Analysis-Report.md1374 except Exception as e:CODE
LOWscripts/optimize/search.py127 except Exception as e: # sklearn not installed etc.CODE
MEDIUM.github/workflows/scripts/calculate_coverage.py26 print(f"Error: Coverage file {coverage_file} not found", file=sys.stderr)CODE
MEDIUM.github/workflows/scripts/calculate_coverage.py40 print(f"Error running go tool cover: {e}", file=sys.stderr)CODE
MEDIUM.github/workflows/scripts/calculate_coverage.py128 print(f"Error generating coverage report: {e}", file=sys.stderr)CODE
MEDIUM.github/workflows/scripts/comment_pr.py101 print(f"Error fetching comments: {e}", file=sys.stderr)STRING
MEDIUM.github/workflows/scripts/comment_pr.py132 print(f"Error posting comment: {e}", file=sys.stderr)STRING
MEDIUM.github/workflows/scripts/comment_pr.py164 print(f"Error updating comment: {e}", file=sys.stderr)STRING
MEDIUM⚡.github/workflows/scripts/comment_pr.py216 print("Error: GITHUB_TOKEN environment variable not set", file=sys.stderr)CODE
MEDIUM⚡.github/workflows/scripts/comment_pr.py220 print("Error: GITHUB_REPOSITORY environment variable not set", file=sys.stderr)CODE
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHdocs/research/AI-Trader-Analysis-Report.md809 带重试的LLM调用 实现指数退避策略处理常见错误: - RateLimitError: API速率限制 - APIError: 服务端错误 - TimeoutError: 请求超时 ArSTRING
HIGHdocs/research/AI-Trader-Analysis-Report.md994 执行交易指令 Args: symbol: 交易标的代码 - 美股: "AAPL", "MSFT", "GOOGL"等 - 加密货币: "BTCUSDT", STRING
HIGHdocs/research/AI-Trader-Analysis-Report.md1310 执行数学计算 支持基础数学运算和金融计算函数。 Args: expression: 数学表达式字符串 支持的运算: 基础运算: +, -, *, /, ** (STRING
Hyper-Verbose Identifiers15 hits · 14 pts
SeverityFileLineSnippetContext
LOWweb/src/components/trader/ModelConfigModal.tsx1154function StandardProviderConfigForm({CODE
LOWweb/src/components/charts/TradingViewChart.tsx52function TradingViewChartComponent({CODE
LOWweb/src/components/charts/ChartTabs.tsx48function getMarketTypeFromExchange(exchangeId: string | undefined): MarketType {CODE
LOWweb/src/components/common/WebCryptoEnvironmentCheck.tsx20export function WebCryptoEnvironmentCheck({CODE
LOWweb/src/components/common/HyperliquidWalletConnect.tsx547 async function reuseSavedExchangeIfPresent(address: string) {CODE
LOWweb/src/components/common/HyperliquidWalletConnect.tsx1181 function resetTradingAuthorization() {CODE
LOWweb/src/lib/crypto.ts211export function diagnoseWebCryptoEnvironment(): WebCryptoEnvironmentInfo {CODE
LOWweb/src/lib/hyperliquidWallet.ts108export function getPreferredWalletProvider(): WalletProvider | undefined {CODE
LOWweb/src/lib/hyperliquidWallet.ts131export async function getWalletProviderForAddress(CODE
LOWweb/src/lib/hyperliquidWallet.ts165export async function ensureWalletSigningAccount(provider: WalletProvider, expectedAddress: string) {CODE
LOWweb/src/lib/hyperliquidWallet.ts298export async function signHyperliquidUserAction(CODE
LOWweb/src/lib/onboarding.ts31export function hasCompletedBeginnerOnboarding(): boolean {CODE
LOWweb/src/lib/onboarding.ts35export function markBeginnerOnboardingCompleted() {CODE
LOWweb/src/pages/TraderDashboardPage.tsx42function getExchangeDisplayNameFromList(CODE
LOWdocs/research/AI-Trader-Analysis-Report.md1809 def _get_trading_restrictions(self) -> str:STRING
Redundant / Tautological Comments3 hits · 5 pts
SeverityFileLineSnippetContext
LOW.github/workflows/pr-checks.yml336 # Check if any critical checks failed (excluding validate-pr which is advisory)COMMENT
LOW.github/workflows/scripts/calculate_coverage.py172 # Output resultsCOMMENT
LOW⚡.github/workflows/scripts/comment_pr.py223 # Check if fork PRCOMMENT
Unused Imports3 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/optimize/simulate.py19CODE
LOWscripts/optimize/search.py12CODE
LOW.github/workflows/scripts/calculate_coverage.py12CODE
Deep Nesting2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/optimize/simulate.py148CODE
LOW.github/workflows/scripts/calculate_coverage.py15CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWapi/crypto_handler.go78 // TODO: Add validation for other chainsCOMMENT
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOW.github/workflows/scripts/calculate_coverage.py138def set_github_output(name: str, value: str) -> None:CODE
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWapi/utils_test.go236 input: "user@example.com",CODE