plugins/portfolio-copilot/skills/portfolio-review/SKILL.md
# portfolio-review Comprehensive portfolio overview with scores and interactive dashboard ## Trigger When the user says: - "review my portfolio" - "portfolio review" - "/portfolio-review" - "show portfolio with scores" - "portfolio dashboard" - "analyze my portfolio" - "포트폴리오 리뷰" - "포트폴리오 분석" - "내 포트폴리오 확인" ## Description Performs comprehensive portfolio review including: - Scoring all portfolio holdings (Financial + Valuation + Momentum) - Calculating portfolio-level m
npx skillsauth add jaykim88/claude-ai-engineering plugins/portfolio-copilot/skills/portfolio-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Comprehensive portfolio overview with scores and interactive dashboard
When the user says:
Performs comprehensive portfolio review including:
When triggered:
Locate plugin directory: Check these paths in order:
~/.claude/skills/portfolio-copilot/../../scripts (installed via symlink)plugins/portfolio-copilot/scripts (local development)Use the first path that exists. Store as $PLUGIN_DIR.
Check dependencies (silent auto-install):
python3 -c "import yfinance, pandas, numpy, sqlalchemy" 2>/dev/null || \
pip3 install yfinance pandas numpy sqlalchemy --quiet
If this fails, inform the user to install manually:
cd $PLUGIN_DIR/..
pip3 install -r requirements.txt
Score all portfolio holdings:
cd $PLUGIN_DIR
python3 portfolio_manager.py score
Generate HTML dashboard:
python3 dashboard_generator.py
Display terminal summary:
python3 portfolio_manager.py show --with-scores
Provide insights and recommendations:
🔄 Scoring 3 holdings...
Scoring AAPL... ✅ 7.3/10 (B+ Good)
Scoring MSFT... ✅ 3.9/10 (D Poor)
Scoring NVDA... ✅ 6.6/10 (B Fair)
✅ Scored 3/3 holdings
📊 Portfolio Summary
─────────────────────────────────────
Total Value: $29,707.10
Total Cost: $37,625.00
Total P&L: -21.04% (-$7,917.90)
Weighted Score: 6.1/10 (Fair)
Holdings (with scores):
┌────────┬─────────┬───────────┬──────────┬─────────┬────────┐
│ Ticker │ Shares │ Curr Price│ P&L % │ Score │ Grade │
├────────┼─────────┼───────────┼──────────┼─────────┼────────┤
│ AAPL │ 50.00 │ $275.50 │ +52.63% │ 7.3/10 │ B+ Good│
│ MSFT │ 30.00 │ $404.37 │ -3.72% │ 3.9/10 │ D Poor│
│ NVDA │ 20.00 │ $190.05 │ -76.24% │ 6.6/10 │ B Fair│
└────────┴─────────┴───────────┴──────────┴─────────┴────────┘
✅ Dashboard generated: data/portfolio-dashboard-2026-02-12.html
🌐 Opening dashboard in browser...
💡 Portfolio Analysis
**Overall Health**: Fair (6.1/10 weighted score)
**Sector Allocation**:
• Technology: 100% ⚠️ CRITICAL - Highly concentrated in single sector
• Recommendation: Consider diversifying into other sectors (Healthcare, Finance, Consumer)
**Performance Highlights**:
• Best Performer: AAPL (+52.63%, Score: 7.3/10) - Strong valuation, maintain position
• Worst Performer: NVDA (-76.24%, Score: 6.6/10) - Consider averaging down if fundamentals remain strong
**Weak Holdings Alert**:
• MSFT (Score: 3.9/10, P&L: -3.72%)
- Issue: Poor score indicates weak fundamentals
- Recommendation: Monitor closely, consider exiting if score doesn't improve
**Action Items**:
1. Diversify out of Technology sector (reduce from 100% to ~60%)
2. Monitor MSFT closely - potential exit candidate
3. Consider adding positions in:
- Healthcare sector (Johnson & Johnson, UnitedHealth)
- Financial sector (JPMorgan, Visa)
- Consumer sector (Procter & Gamble, Coca-Cola)
**Dashboard**: View detailed charts and visualizations in the browser dashboard
The HTML dashboard includes:
Portfolio Summary Card
Holdings Table
Interactive Charts
Responsive Design
score command to refreshdata/ directorycd plugins/portfolio-copilot/scripts
python3 portfolio_manager.py score
python3 portfolio_manager.py show --with-scores
python3 dashboard_generator.py [PORTFOLIO_ID]
python3 portfolio_manager.py score && \
python3 portfolio_manager.py show --with-scores && \
python3 dashboard_generator.py
development
Design webhooks correctly on both sides — sending (HMAC signing, retries with backoff, at-least-once) and receiving (verify signature on raw body, enqueue + 200 fast, dedupe on event id). Use when adding webhook delivery or consuming a provider's webhooks. Not for internal service-to-service events (use async-messaging) or general outbound-call retry policy (use resilience-patterns).
testing
Use transactions and isolation levels correctly — keep them short, no network calls inside, explicit isolation, retry on serialization conflicts, and choose optimistic vs pessimistic locking. Use when a write spans multiple tables, when concurrent updates corrupt data, or when designing money/inventory flows. Not for cross-service event delivery (use async-messaging Outbox) or schema-level constraints (use schema-design).
development
Backend testing pyramid — unit for pure logic, integration against a real DB (Testcontainers), and consumer-driven contract testing (Pact) for service boundaries. Use before a feature, after a bug fix, or when services break each other on deploy. Not for load testing (use performance-profiling) or security testing (use backend-security-audit).
data-ai
Design a relational schema — normalize to 3NF then denormalize with justification, choose the right Postgres index type per data shape, enforce constraints at the DB. Use when modeling a new domain, when queries are slow, or before a migration. Not for diagnosing slow queries (use query-optimization) or shipping the change without downtime (use migration-strategy).