Scan Report
25 /100
skill-smc-multi-strategy-paper-trader
Paper trading monitors for SMC + Macro Rotation strategies. Binance public API only.
A legitimate paper trading system with mostly declared capabilities, but with two significant undeclared behaviors: GitHub API integration (pushes portfolio data externally) and shell execution via execSync/curl for FRED data fetching. Neither is outright malicious but both represent documentation deception and hidden functionality.
Safe to install
Declare GitHub API integration and shell/execSync usage explicitly in SKILL.md. The GitHub push behavior (data exfiltration to third-party repo) must be documented. Consider using Node's built-in https module instead of execSync/curl for FRED data.
Findings 4 items
| Severity | Finding | Location |
|---|---|---|
| Medium | GitHub API integration entirely undeclared Doc Mismatch | scripts/macro-rotation.js:724 |
| Medium | Shell/execSync execution undeclared Doc Mismatch | scripts/regime-scorer.js:146 |
| Low | SKILL.md claims 'no credentials needed' while reading GitHub token Doc Mismatch | SKILL.md:1 |
| Low | Portfolio data pushed to third-party GitHub repository Data Exfil | scripts/macro-rotation.js:731 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Network | READ | WRITE | ✗ Violation | All 7 scripts push portfolio JSON via GitHub API PUT (macro-rotation.js:724, pap… |
| Shell | NONE | WRITE | ✗ Violation | regime-scorer.js:146, macro-rotation.js:68 execSync('curl -sL ...') for FRED CSV |
| Filesystem | WRITE | WRITE | ✓ Aligned | Writes portfolio JSON to ~/.openclaw/workspace/trading/ — declared in architectu… |
| Environment | NONE | READ | ✗ Violation | All scripts read HOME env var (process.env.HOME) and ~/.github_token file for Gi… |
| Skill Invoke | NONE | READ | ✓ Aligned | Scripts read regime.json (created by regime-scorer.js) and orchestrator-lock.jso… |
13 findings
Medium External URL 外部 URL
https://fred.stlouisfed.org/graph/fredgraph.csv?id=$ scripts/macro-rotation.js:68 Medium External URL 外部 URL
https://fapi.binance.com/fapi/v1/klines?symbol=$ scripts/macro-rotation.js:77 Medium External URL 外部 URL
https://fapi.binance.com/fapi/v1/fundingRate?symbol=$ scripts/macro-rotation.js:83 Medium External URL 外部 URL
https://fapi.binance.com/futures/data/globalLongShortAccountRatio?symbol=$ scripts/macro-rotation.js:87 Medium External URL 外部 URL
https://fapi.binance.com/futures/data/openInterestHist?symbol=$ scripts/macro-rotation.js:91 Medium External URL 外部 URL
https://api.alternative.me/fng/?limit=30 scripts/macro-rotation.js:95 Medium External URL 外部 URL
https://fapi.binance.com/fapi/v1/ticker/price?symbol=$ scripts/macro-rotation.js:707 Medium External URL 外部 URL
https://fapi.binance.com/fapi/v1/klines?symbol=BTCUSDT&interval=4h&limit=60 scripts/paper-monitor-coordinated.js:89 Medium External URL 外部 URL
https://fapi.binance.com/fapi/v1/klines?symbol=BTCUSDT&interval=15m&limit=30 scripts/paper-monitor-coordinated.js:97 Medium External URL 外部 URL
https://fapi.binance.com/fapi/v1/klines?symbol=BTCUSDT&interval=1d&limit=60 scripts/paper-monitor-coordinated.js:108 Medium External URL 外部 URL
https://fapi.binance.com/fapi/v1/fundingRate?symbol=BTCUSDT&limit=30 scripts/regime-scorer.js:753 Medium External URL 外部 URL
https://fapi.binance.com/futures/data/globalLongShortAccountRatio?symbol=BTCUSDT&period=4h&limit=30 scripts/regime-scorer.js:754 Medium External URL 外部 URL
https://fapi.binance.com/futures/data/openInterestHist?symbol=BTCUSDT&period=4h&limit=30 scripts/regime-scorer.js:755 File Tree
9 files · 188.6 KB · 4472 lines JavaScript 7f · 4240L
Markdown 2f · 232L
├─
▾
public
│ └─
SKILL.md
Markdown
├─
▾
scripts
│ ├─
macro-rotation.js
JavaScript
│ ├─
paper-monitor-coordinated.js
JavaScript
│ ├─
paper-monitor-swing-v2.js
JavaScript
│ ├─
paper-monitor-swing.js
JavaScript
│ ├─
paper-monitor-v5.js
JavaScript
│ ├─
paper-monitor-v6.js
JavaScript
│ └─
regime-scorer.js
JavaScript
└─
SKILL.md
Markdown
Dependencies 3 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
https (built-in Node.js) | bundled | Node.js stdlib | No | No external npm dependencies — uses only Node.js built-in modules |
fs (built-in Node.js) | bundled | Node.js stdlib | No | No external npm dependencies |
child_process (built-in Node.js) | bundled | Node.js stdlib | No | execSync used for FRED curl — should be replaced with native https fetch |
Security Positives
✓ All Binance API calls use only public endpoints — no authentication or private data access
✓ No credential harvesting or exfiltration — the GitHub token is read locally, not transmitted anywhere else
✓ No obfuscation, base64 payloads, or anti-analysis techniques observed
✓ Portfolio files stored in a dedicated workspace path (~/.openclaw/workspace/trading/) — not scattered across filesystem
✓ Comprehensive technical implementation with proper risk management (SL/TP/ATR-based stops)
✓ No sensitive paths accessed (~/.ssh, ~/.aws, .env, etc.)
✓ GitHub push failures are gracefully handled with try/catch and non-critical error logging
✓ Orchestrator lock prevents same-symbol conflicts across strategies