ib-portfolio-action-report — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ib-portfolio-action-report (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Generate a comprehensive portfolio action report that analyzes all positions across Interactive Brokers accounts, fetches earnings dates, and provides traffic-light risk indicators (🔴🟡🟢) for each position.
TWS or IB Gateway must be running locally with API enabled:
--port is omitted (e.g. IB_PORT=4001 for a Gateway container). Precedence: --port flag > IB_PORT > built-in default. Set it in the shell or a .env file.Port fallback: If the configured port fails, automatically retry on the other port. If the retry succeeds, save to memory which account type worked (live/paper) and reuse it for all IB skill calls in this and future sessions — until the user explicitly asks for the other account. If both ports fail, ask the user to verify that TWS or IB Gateway is running with API access enabled.
Note: Ifuvis not installed orpyproject.tomlis not found, replaceuv run pythonwithpythonin all commands below.
uv run python scripts/report.py [--port PORT] [--account ACCOUNT]The script returns JSON to stdout with analyzed portfolio data including risk levels, earnings dates, technical indicators, and spread groupings.
Read templates/markdown-template.md for formatting instructions. Generate a markdown report from the JSON data and save to sandbox/.
Filename: ib_portfolio_action_report_{ACCOUNT}_{YYYY-MM-DD}_{HHmm}.md
Present critical findings to the user: red/yellow items requiring attention, top priority actions, and the saved report path.
--port - IB port (default: 7497 for paper trading)--account - Specific account ID to analyze (optional, defaults to all accounts)The script returns structured JSON with:
generated_at - NY timestamp (e.g. "2026-04-29 19:35 ET")data_delay - Data freshness ("real-time")accounts - List of account IDssummary - Red/yellow/green countsspreads - All positions grouped into spreads with risk level, urgency, and recommendationstechnicals - Technical indicators per symbol (RSI, trend, SMAs, MACD, ADX)earnings - Earnings dates per symbolprices - Current prices per symbolearnings_calendar - Upcoming earnings with account/position infoaccount_summary - Position and risk counts per account# All accounts (paper, default)
uv run python scripts/report.py
# Live account
uv run python scripts/report.py --port 7496
# Specific account
uv run python scripts/report.py --account U790497ib-asyncpandas-tayfinanceAll timestamps and time-based calculations must use the America/New_York timezone. All JSON output must include generated_at (NY time string) and data_delay fields.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.