portfolio
Portfolio Skill
Trigger
- Keywords: Portfolio, portfolio, position, {PRIMARY_PROVIDER}, protocol, lending, staking, liquidity
When NOT to Use
- General token queries (not Portfolio positions)
- Transaction building (use corresponding provider)
- Non-portfolio related API issues
Core Files
| Type | File | Purpose |
|---|---|---|
| Controller | src/entity/portfolio/portfolio.controller.ts |
REST API |
| Router | src/service/portfolio/source-router/*.service.ts |
Routing orchestration |
| Client | src/service/portfolio/providers/{provider}/*.ts |
{PRIMARY_PROVIDER} integration |
| Aggregator | src/service/portfolio/aggregation/*.service.ts |
Aggregation computation |
| DTO | src/dto/portfolio/position.types.ts |
Position model |
API Overview
Base: /onchain/v1/portfolio
| Endpoint | Method | Purpose |
|---|---|---|
/positions |
POST | Get portfolio positions |
/chains |
GET | Supported chains list |
/protocols |
GET | Supported protocols list |
Output
- Domain-specific query results with code references
- Analysis and recommendations based on current architecture
Verification
- Position data correctly normalized
- Cache hit/miss working properly
- Aggregation calculations accurate
Development Guide
Add Protocol Support
- Check if {PRIMARY_PROVIDER} supports it
- If custom build needed: implement
PortfolioPositionExtractor+ register + configure routing
Add Data Source
- Implement
ProviderClient+Adapter - Register with
SourceRouter - Configure routing strategy
Debug
redis-cli keys "portfolio:{provider}:*"
redis-cli get "portfolio:{provider}:positions:0x...:v2:..."
curl -X POST /positions -d '{"isForceRefresh": true, ...}'
References
references/architecture.md- System architecture + cache strategyreferences/api.md- API reference + data models- @docs/features/portfolio/ - Detailed documentation
Tests
| Type | Location |
|---|---|
| Unit | test/unit/service/portfolio/ |
| Integration | test/integration/portfolio/ |
Examples
Input: How to query portfolio positions?
Action: Explain POST /positions API + routing strategy
Input: How does {PRIMARY_PROVIDER} integration work?
Action: Explain {PRIMARY_PROVIDER}Client + {PRIMARY_PROVIDER}Adapter flow
More from sd0xdev/sd0x-dev-flow
statusline-config
Customize Claude Code statusline. Use when: user says 'statusline', 'status line', 'customize statusline', 'modify statusline', 'statusline settings', 'statusline theme', 'change theme', 'color scheme', wants to add/remove/change segments (cost, git, model, context), switch color themes (catppuccin, dracula, nord), or asks what can be shown in the statusline.
52tech-spec
Tech spec generation and review. Use when: designing features, writing specs, spec review. Not for: requirements analysis (use req-analyze), implementation (use feature-dev), architecture advice (use codex-architect). Output: numbered tech spec document.
45security-review
Security review via Codex MCP. Use when: OWASP Top 10 audit, dependency vulnerability check, security-sensitive changes. Not for: code review (use codex-code-review), test review (use test-review). Output: security findings + audit report.
7project-audit
Project health audit with deterministic scoring. Use when: evaluating project quality, onboarding to new codebase, periodic health checks. Not for: runtime performance analysis, security-specific audits (use /codex-security). Output: 5-dimension score + actionable findings.
6request-tracking
Request tracking knowledge base. Use when: querying request status, managing document references, tracking progress. Not for: creating requests (use create-request), tech specs (use tech-spec). Output: status report + progress tracking.
6load-pr-review
Load GitHub PR review comments into AI session — analyze, triage, plan. Default: analysis-only (no auto-fix). Use when: reviewing PR feedback, planning fixes, addressing review comments, replying to reviewers. Not for: creating reviews (use codex-review-fast), creating PRs (use create-pr), viewing PR status (use pr-summary).
6