{"slug":"portfolio-risk-review","title":"portfolio-risk-review","summary":"Single-pass holdings analysis for kcn using workspace files and the local fetch chain. Use for portfolio review, position risk ranking, US-HK cross-market read, leverage ETF risk assessment, and one-shot actionable reports based on portfolio.json plus fresh quotes from `clawock a","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-08-23T09:00:38.081651Z","repo":{"url":"https://github.com/KCNyu/clawock","stars":15,"forks":0,"license":"MIT","updatedAt":"2026-09-25T07:36:11Z"},"bodyHtml":"<hr>\n<h2>name: portfolio-risk-review\ndescription: Single-pass holdings analysis for kcn using workspace files and the local fetch chain. Use for portfolio review, position risk ranking, US-HK cross-market read, leverage ETF risk assessment, and one-shot actionable reports based on portfolio.json plus fresh quotes from <code>clawock analyze-us</code> / <code>clawock analyze-hk</code>.</h2>\n<h1>Portfolio Risk Review</h1>\n<p>Single-pass portfolio review. For multi-role analyst framework, use <code>portfolio-swarm-review</code> instead.</p>\n<h2>Required reads</h2>\n<p>In this order:</p>\n<ol>\n<li><code>/root/.openclaw/workspace/MEMORY.md</code> — rules, traps, user preferences</li>\n<li><code>/root/.openclaw/workspace/portfolio.json</code> — authoritative holdings</li>\n<li><code>/root/.openclaw/workspace/memory/current-portfolio-summary.md</code> — active ticker list (also lists exited names so you know what NOT to analyze)</li>\n<li><code>/root/.openclaw/workspace/memory/theses/*.json</code> — canonical thesis state when present</li>\n<li><code>../daily-deep-brief/references/technical-playbooks.md</code> — read before any add / average-down plan</li>\n<li>Recent <code>memory/YYYY-MM-DD.md</code> entries when recent trades matter</li>\n<li><code>/root/.openclaw/workspace/TOOLS.md</code> — data chain reference if anything fails</li>\n</ol>\n<p>The thesis registry is read-only during a portfolio review. Missing files mean\n<code>unknown</code>, not permission to reconstruct a baseline from prior prose. Price moves\nmay change valuation but cannot by themselves change business, moat, or management.</p>\n<h2>Fresh data rule</h2>\n<p><strong>Always refresh quotes before judging the book. Use the workspace scripts.</strong></p>\n<pre><code># US: 7-route fallback, RSI/MA/news/signal, writes back to portfolio.json\n/root/.local/bin/clawock analyze-us\n/root/.local/bin/clawock analyze-us --no-news    # skip news\n\n# HK: Tencent primary + Eastmoney full-batch independent cross-check/fallback → stooq → yfinance\n/root/.local/bin/clawock analyze-hk\n/root/.local/bin/clawock analyze-hk --no-news\n</code></pre>\n<p>If any leg of the fallback fails for a holding, mark that line stale in the output. Special trap: <strong>00100 only has Tencent</strong> — Tencent down means 00100 is stale.</p>\n<p>KR linkage names are no longer tracked (07709/07747 exited per <code>current-portfolio-summary.md</code>). Do not run any KR fetch.</p>\n<h2>Holdings bucketing</h2>\n<p><strong>Do not hardcode tickers here</strong> — names rotate. Pull the active list from <code>portfolio.json</code> (<code>shares &gt; 0</code>) and <code>current-portfolio-summary.md</code>, then bucket by category each run:</p>\n<table>\n<thead>\n<tr>\n<th>Bucket</th>\n<th>What goes in</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>US growth / single-name beta</strong></td>\n<td>Active US non-leveraged names (typically aggressive growth)</td>\n</tr>\n<tr>\n<td><strong>US leverage ETF</strong></td>\n<td>Anything in <code>portfolio.json</code> flagged <code>is_leveraged_etf: true</code> (SOXL, RKLX, MSFU, ROBN-class names; rotates over time)</td>\n</tr>\n<tr>\n<td><strong>US theme / special situation</strong></td>\n<td>Regulatory / catalyst-driven (e.g. CRCL ~ GENIUS Act stablecoin)</td>\n</tr>\n<tr>\n<td><strong>HK lower-beta core</strong></td>\n<td>Index / sector ETFs without leverage (currently 03032, 03033)</td>\n</tr>\n<tr>\n<td><strong>HK single-name</strong></td>\n<td>Individual HK equities (currently 00100 AI, 02208 wind)</td>\n</tr>\n<tr>\n<td><strong>HK leverage ETF</strong></td>\n<td>2x/3x recipes (currently 07226 南方2x恒科)</td>\n</tr>\n</tbody>\n</table>\n<p>The framing is stable; the contents drift. Verify each session against <code>current-portfolio-summary.md</code>.</p>\n<h2>Four-lens analysis</h2>\n<h3>Lens A — PnL and position quality</h3>\n<p>For each active holding:</p>\n<ul>\n<li>gain/loss in $ and %</li>\n<li>distance to breakeven</li>\n<li>thesis status: intact / weakening / broken</li>\n<li>holdable / trim / T-only / cut</li>\n</ul>\n<h3>Lens B — Cross-market linkage</h3>\n<p>US side (typically):</p>\n<ul>\n<li>NASDAQ / 纳指夜盘 tone — drives next-day HK tech open</li>\n<li>Specific theme threads (e.g. stablecoin reg for CRCL, space/defense for RKLB)</li>\n</ul>\n<p>HK side:</p>\n<ul>\n<li>恒科指数方向 — primary driver for 03032 / 03033 / 07226</li>\n<li>南向资金当日净流向 (web search when material)</li>\n<li>Sector policy: 风电 for 02208, AI capex for 00100</li>\n</ul>\n<p>Note explicit \"supportive / neutral / weak\" tag for each chain.</p>\n<h3>Lens C — Concentration and drawdown risk</h3>\n<ul>\n<li>Largest $ loss contributors right now</li>\n<li>Leverage decay risk (any 2x/3x ETF held &gt; 5 trading days?)</li>\n<li>Correlation clusters (e.g. multiple 杠杆 ETF + single high-beta name = one bet)</li>\n<li>One-bad-day worst case for the book</li>\n</ul>\n<h3>Lens D — Action priority</h3>\n<p>Sort positions into:</p>\n<ul>\n<li><strong>Hold and watch</strong> — thesis intact</li>\n<li><strong>Trim on rebound</strong> — thesis weakening but not broken; wait for strength</li>\n<li><strong>T-only</strong> — don't add, exit on bounces, no overnight conviction</li>\n<li><strong>Add only on trigger</strong> — define the trigger explicitly (price, MA cross, earnings, policy)</li>\n</ul>\n<p>Keep <code>core_position</code>, <code>tactical_entry</code>, and <code>risk_rebalance</code> separate. A concentrated\nnon-leveraged core may remain held while one packet-approved tactical tranche is added;\nloss alone never qualifies. For HK, state board lots and use whole-lot multiples; missing\n<code>lot_size</code> blocks an add. For US, use integer shares under the current ledger contract.</p>\n<h2>Output structure</h2>\n<h3>Portfolio snapshot</h3>\n<ul>\n<li>总 US PnL / 总 HK PnL</li>\n<li>最大盈利位 / 最大亏损位</li>\n<li>主要风险源 (one line)</li>\n</ul>\n<h3>Position-by-position</h3>\n<p>Table format:</p>\n<table>\n<thead>\n<tr>\n<th>Ticker</th>\n<th>Price</th>\n<th>PnL ($)</th>\n<th>PnL (%)</th>\n<th>One-line verdict</th>\n</tr>\n</thead>\n</table>\n<h3>Cross-market read</h3>\n<ul>\n<li><strong>US side</strong>: tone + key threads</li>\n<li><strong>HK side</strong>: 恒科方向 + 南向 + sector policy notes</li>\n</ul>\n<h3>Top 3 risks (ranked)</h3>\n<p>Highest to lowest, each with concrete cause.</p>\n<h3>Action plan</h3>\n<p>Four buckets from Lens D, with concrete triggers/levels where applicable.</p>\n<h2>Style rules</h2>\n<ul>\n<li>Direct, practical, no academic hedging</li>\n<li>Tie every conclusion to actual holdings (no hypothetical names)</li>\n<li>Respect the user's aggressive style — but call real risk plainly</li>\n<li>Tables for any 3+ data points</li>\n<li>Cite data freshness: \"数据: clawock analyze-us / clawock analyze-hk \"</li>\n<li>Flag stale legs loudly with ⚠️ before any conclusion drawn from them</li>\n<li>Do not substitute external \"best practice\" frameworks for the workspace data chain</li>\n</ul>\n","files":[{"path":"SKILL.md","sizeBytes":5816,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-08-27T19:22:07.290691Z","sha256":"9F5088662B209E34599B53531854F0217528866F8DAAAF38FFD1846D12F9A95D","sizeBytes":3107},"review":null,"source":{"repositoryUrl":"https://github.com/KCNyu/clawock","path":"skills/portfolio-risk-review","license":"MIT","commit":"d504fce9bd4bf8b44a0239a21f94978319394c5e","subtreeSha":"0E1AA5862A2469193DDFCC7FE01C9E45878780A86FD09D7AE61137A6A307ACBB","lastSyncedAt":"2026-09-25T07:38:16.512244Z"},"reviewedAt":"2026-08-27T19:22:22.20578Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/KCNyu/clawock/tree/master/skills/portfolio-risk-review"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install kcnyu-clawock@llmmart"},{"target":"git","command":"git clone https://github.com/KCNyu/clawock.git"}]}