Borrowing it
Nothing to install: this file belongs to PatrickSUDO/fadacai-portfolio. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/PatrickSUDO/fadacai-portfolio/main/.agents/skills/portfolio-review/SKILL.mdgit clone --depth 1 https://github.com/PatrickSUDO/fadacai-portfolioWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/patricksudo/fadacai-portfolio/portfolio-review)<a href="https://agentmods.dev/skills/patricksudo/fadacai-portfolio/portfolio-review"><img src="https://agentmods.dev/badge/skills/patricksudo/fadacai-portfolio/portfolio-review/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/patricksudo/fadacai-portfolio/portfolio-review"><img src="https://agentmods.dev/badge/skills/patricksudo/fadacai-portfolio/portfolio-review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Excessive Agency · line 5 Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.Fix: Remove the model/provider override or disclose it prominently and require explicit operator approval before invoking an external coding CLI or billed model.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00037 | $0.12233 |
| Opus 5 | $0.00018 | $0.06117 |
| Sonnet 5 | $0.00007 | $0.02447 |
| Haiku 4.5 | $0.00004 | $0.01223 |
Grade A, and why
portfolio-review scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 700 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Portfolio Review
Generate a comprehensive portfolio report from the user's live brokerage positions (via the firstrade-server MCP).
Step 0: 配置同步 & 倉位偵測
執行 AGENTS.md 的 Step 0 統一規範(0a → 0b → 0c → 0d → 0e)。
- 讀
plan.md+feedback/*.md(必做);在後續分析中引用板塊目標與策略佇列 - 呼叫
get_account_position取即時持倉 - 今日 journal 不存在 → 執行 gap-fill + 變動偵測 + 自動建立 journal
- 0e 第一性原理紀律:在「下一步建議」之前必須完成「組合層級 thesis / 證偽條件 / 機率分布」三題(見 AGENTS.md 0e)
Step 0.5: Macro + Earnings + Fundamentals Cache Load
讀以下四份 cache(由各預載腳本維護):
briefing-out/cache/macro-snapshot.json— 供 Step 0e 與 probability-honesty-checker Step 1ibriefing-out/cache/earnings-history.json— 供 Section F Key Alerts、Section G 個股 thesis、及 probability-honesty-checker Step 1d base ratebriefing-out/cache/earnings-dates.json— 供 Section F earnings window 警示briefing-out/cache/fundamentals-snapshot.json(TTL 24h,tools/fetch_fundamentals.py預載)— 供 Section G3.5 三錨點估值、probability-honesty-checker Step 1d/1hbriefing-out/cache/leading-indicators.json(TTL 20h,tools/fetch_leading.py預載,配置research/leading-config.json)— 供 Section F 🚦 regime-break / 台股月營收轉負 / revision decel 旗標(display-only,記錄不阻擋,同影子訊號 A4);revision_delta.status == "warming_up"→ 不產生 decel 旗標;blockcarried_forward→ 標前日值
判定 fundamentals cache:
status == "ok"且 mtime < 30h → 使用(Section G3.5 三錨點計算直接取 highlights)status == "skipped"/ mtime > 30h / 缺失 → 標⚠️ Fundamentals cache stale/missing,派 Agent 即時補抓(同 briefing Deep 模式):Agent(subagent_type="data-collector"): 呼叫 mcp__eodhd-mcp__get_fundamentals_snapshot 對所有 >3% 持倉 (TICKER.US) 回傳 dict {ticker: {snapshot:{...}, base_rate:{...}}}pe_ratio == 0.0 / null→ 丟棄 A1 錨;peg_ratio == 0.0 / null→ 丟棄 A2 錨;不猜測
若 macro status == "skipped" → Section K 第一性檢查標記 Macro: unavailable,probability-honesty-checker 1i 填 unavailable。
若 earnings cache 過期 > 36h → 加註 ⚠️ cache stale (X h)。
若 cache 缺某 ticker → Section F 該 ticker earnings 列 (unavailable),prompt 提示手動 python3 tools/earnings_history.py --force。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed 2d997e35f386
- 12d ago First seen · 700 lines · 37 tokens per session scan A 5da9f7a5d537
portfolio-review is a skill published in the GitHub repository PatrickSUDO/fadacai-portfolio (139 stars, last pushed 3d ago), licensed MIT. It adds 37 tokens to every session and 12,233 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
sector-rotation
An analysis framework for comparing industries in the Chinese A-share stock market, using business conditions, price momentum, valuation, and money flows. It produces rankings and higher- or lower-allocation suggestions.
strategy-pivot-designer
Detect backtest iteration stagnation and generate structurally different strategy pivot proposals when parameter tuning reaches a local optimum.
twitter-reader
Read Twitter/X for financial research using opencli (read-only). Use this skill whenever the user wants to read their Twitter feed, search for financial tweets, view bookmarks, look up user profiles, or gather market sentiment from Twitter/X. Triggers include: "check my feed", "search Twitter for", "show my…
chenhao-limit-up
A framework for judging Chinese A-share stocks that have reached the daily price-rise limit, using market mood, sector leadership, and trading momentum.
furusato
A Japanese hometown-tax donation manager for furusato nozei, a system where donations to municipalities can qualify for an income-tax or local-tax deduction. It reads donation receipts, stores donation records, and calculates deduction limits.
reading-receipt
An image-reading workflow for extracting structured information from receipts, invoices, and hometown-tax donation certificates. It can first extract text from PDFs and otherwise read their images.