{"id":"cc001f1e-fb1c-487a-9fad-6ca3d55e6d2b","entityType":"agent","slug":"clawhub-skills-aigeneralstore-portfolio-tracking-skill","name":"portfolio-tracker","canonicalUrl":"https://www.xpersona.co/agent/clawhub-skills-aigeneralstore-portfolio-tracking-skill","canonicalPath":"/agent/clawhub-skills-aigeneralstore-portfolio-tracking-skill","generatedAt":"2026-10-10T02:13:49.665Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/. --- name: portfolio-tracker description: An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/. --- Portfolio Tracker Skill An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/. Architecture - **Data**: ~/.portfolio-tracker/data.json (portfolios, assets, prices) - **Config**: ~/.portfolio-tracker/config.json (API keys, wallet","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"clawhub skill install skills:aigeneralstore:portfolio-tracking-skill","sourceUrl":"https://github.com/openclaw/skills/tree/main/skills/aigeneralstore/portfolio-tracking-skill","homepage":null,"primaryLinks":[{"label":"View on ClawHub","url":"https://github.com/openclaw/skills/tree/main/skills/aigeneralstore/portfolio-tracking-skill","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":50,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/. --- name: portfolio-tracker description: An investment port"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No source adoption metrics were available."},"stars":null,"forks":null,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-25T05:57:02.489Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-25T05:57:02.489Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-26T05:57:02.489Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install skills:aigeneralstore:portfolio-tracking-skill","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aigeneralstore-portfolio-tracking-skill/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aigeneralstore-portfolio-tracking-skill/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aigeneralstore-portfolio-tracking-skill/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-aigeneralstore-portfolio-tracking-skill/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-aigeneralstore-portfolio-tracking-skill/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-aigeneralstore-portfolio-tracking-skill/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T02:13:49.665Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aigeneralstore-portfolio-tracking-skill/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aigeneralstore-portfolio-tracking-skill/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aigeneralstore-portfolio-tracking-skill/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aigeneralstore-portfolio-tracking-skill/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"---\nname: portfolio-tracker\ndescription: An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/.\n---\n\n# Portfolio Tracker Skill\n\nAn investment portfolio tracker that runs entirely locally. All data stays in `~/.portfolio-tracker/`.\n\n## Architecture\n\n- **Data**: `~/.portfolio-tracker/data.json` (portfolios, assets, prices)\n- **Config**: `~/.portfolio-tracker/config.json` (API keys, wallet addresses, user profile)\n- **Scripts**: TypeScript CLI tools in `<skill-path>/scripts/`, run via `npx tsx`\n\n## First-Time Setup\n\nBefore running any script, ensure dependencies are installed:\n\n```bash\nnpm install --prefix <skill-path>/scripts\n```\n\nReplace `<skill-path>` with the actual installed path of this skill.\n\n## How Scripts Work\n\nEach script is a standalone CLI tool. Run them with:\n\n```bash\nnpx tsx <skill-path>/scripts/<script>.ts <command> [args]\n```\n\nScripts read from stdin when needed and output JSON to stdout.\n\n### data-store.ts\n- `load` — Read portfolio data (creates default if missing)\n- `save` — Write portfolio data (JSON from stdin)\n- `load-config` — Read config\n- `save-config` — Write config (JSON from stdin)\n\n### fetch-prices.ts\n- `crypto <symbol>` — Get crypto price (Binance → CoinGecko)\n- `stock <symbol>` — Get stock price (Yahoo Finance)\n- `fx` — Get USD/CNY/HKD exchange rates\n- `historical <symbol>` — Get 3yr monthly historical data\n- `search <query>` — Search for assets by name/symbol\n- `refresh` — Batch refresh prices (assets JSON from stdin)\n\n### binance-sync.ts\n- `sync <apiKey> <apiSecret>` — Fetch all Binance balances (6 account types)\n- `validate <apiKey> <apiSecret>` — Validate API credentials\n\n### ibkr-sync.ts\n- `sync <token> <queryId>` — Fetch IBKR positions via Flex Query\n- `validate <token> <queryId>` — Validate IBKR credentials\n\n### blockchain-sync.ts\n- `sync <address> [chain]` — Fetch wallet balances (single chain or all 5 EVM chains)\n- `validate <address>` — Validate EVM address\n\n## Data Types\n\n### Asset\n```json\n{\n  \"id\": \"unique-id\",\n  \"type\": \"CRYPTO | USSTOCK | HKSTOCK | ASHARE | CASH\",\n  \"symbol\": \"BTC\",\n  \"name\": \"Bitcoin\",\n  \"quantity\": 1.5,\n  \"avgPrice\": 40000,\n  \"currentPrice\": 50000,\n  \"currency\": \"USD | CNY | HKD\",\n  \"transactions\": [],\n  \"source\": { \"type\": \"manual | binance | wallet | ibkr\" }\n}\n```\n\n### Portfolio\n```json\n{\n  \"id\": \"unique-id\",\n  \"name\": \"Main\",\n  \"assets\": [...]\n}\n```\n\n## Workflow Patterns\n\n### Viewing Portfolio\n1. Load data via `data-store.ts load`\n2. Find current portfolio by `currentPortfolioId`\n3. Calculate total value using `quantity * currentPrice` per asset\n4. Convert to display currency using `exchangeRates`\n5. Present as a formatted table\n\n### Adding Assets\n1. Load data\n2. Search for the asset using `fetch-prices.ts search <query>`\n3. Get current price via `fetch-prices.ts crypto/stock <symbol>`\n4. Add asset to current portfolio with a generated unique ID\n5. Save data\n\n### Refreshing Prices\n1. Load data\n2. Pipe current portfolio assets to `fetch-prices.ts refresh` via stdin\n3. Also run `fetch-prices.ts fx` for exchange rates\n4. Update each asset's `currentPrice` and the `exchangeRates`\n5. Set `lastPriceRefresh` to current ISO timestamp\n6. Save data\n\n### Syncing from Exchange/Wallet\n1. Load config to get credentials\n2. Run the appropriate sync script\n3. Merge results: update existing assets (match by symbol+source), add new ones\n4. Save data\n\n## Commands\n\nAvailable user commands:\n- `/portfolio` — View and manage portfolios\n- `/prices` — Refresh all prices\n- `/setup` — Configure API keys and wallets\n- `/sync-binance` — Sync from Binance\n- `/sync-ibkr` — Sync from Interactive Brokers\n- `/sync-wallet` — Sync from blockchain wallet\n- `/advise` — Get AI investment advice\n","readmeExcerpt":"--- name: portfolio-tracker description: An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/. --- Portfolio Tracker Skill An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/. Architecture - **Data**: ~/.portfolio-tracker/data.json (portfolios, assets, prices) - **Config**: ~/.portfolio-tracker/config.json (API keys, wallet","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"npm install --prefix <skill-path>/scripts"},{"language":"bash","snippet":"npx tsx <skill-path>/scripts/<script>.ts <command> [args]"},{"language":"json","snippet":"{\n  \"id\": \"unique-id\",\n  \"type\": \"CRYPTO | USSTOCK | HKSTOCK | ASHARE | CASH\",\n  \"symbol\": \"BTC\",\n  \"name\": \"Bitcoin\",\n  \"quantity\": 1.5,\n  \"avgPrice\": 40000,\n  \"currentPrice\": 50000,\n  \"currency\": \"USD | CNY | HKD\",\n  \"transactions\": [],\n  \"source\": { \"type\": \"manual | binance | wallet | ibkr\" }\n}"},{"language":"json","snippet":"{\n  \"id\": \"unique-id\",\n  \"name\": \"Main\",\n  \"assets\": [...]\n}"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"CLAWHUB","editorialOverview":"An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/. --- name: portfolio-tracker description: An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/. --- Portfolio Tracker Skill An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/. Architecture - **Data**: ~/.portfolio-tracker/data.json (portfolios, assets, prices) - **Config**: ~/.portfolio-tracker/config.json (API keys, wallet","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":370,"uniquenessScore":63,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T02:13:49.665Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}