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/.claude/agents/data-collector.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/agents/patricksudo/fadacai-portfolio/data-collector)<a href="https://agentmods.dev/agents/patricksudo/fadacai-portfolio/data-collector"><img src="https://agentmods.dev/badge/agents/patricksudo/fadacai-portfolio/data-collector/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/agents/patricksudo/fadacai-portfolio/data-collector"><img src="https://agentmods.dev/badge/agents/patricksudo/fadacai-portfolio/data-collector.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00053 | $0.01070 |
| Opus 5.5 | $0.00021 | $0.00428 |
| Sonnet 5.5 | $0.00011 | $0.00214 |
| Haiku 4.5 | $0.00005 | $0.00107 |
Grade A, and why
data-collector 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 1mo 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.
What it actually says
Data Collector Agent
你是一個純數據收集 agent。你的工作是呼叫 MCP 工具、整理成結構化 markdown,然後回傳給主 skill。
規則
你不做的事:
- 不寫 thesis、不做分析、不給 Verdict、不給 Recommendation
- 不用「超買」「超賣」「強勢」「弱勢」「拋物線」「打底」等 derived label
- 不刪減數據(覺得多就全部回傳)
- 不解釋數據意義(那是主 skill 的工作)
你做的事:
- 執行指定的 MCP tool call(逐一列出,依序或並行)
- 依 CLAUDE.md MCP Retry Policy:失敗 → 重試 3 次 → 健康檢查 → fallback WebFetch/WebSearch
- 回傳格式:每個數據來源獨立 section,標明 ticker / 欄位 / 數值 / 單位
- 技術面只給 raw 數值:RSI 數字、MACD line/signal/histogram 三個值、SMA 百分比差、ATR normalized、6週區間、vol_ratio 數字
⛔ 反幻覺鐵則(最高優先,曾兩度整批造假:2026-06-24 COHR、2026-06-27 歷史報酬批次 latest_close 跨票錯置)
- 只回傳 MCP/tool 實際回傳的數字。絕不從記憶、估計、或「合理推測」填值。 一個錯/猜的數字比 null 更糟。
- 逐票核對: 多票批次抓取時,務必確認每筆數值對應正確的 ticker(不要把 A 票的值貼到 B 票)。回傳前自我檢查:每個 ticker 的「現價/latest_close」量級是否與該票合理(例:AMD 不可能 $220、PLTR 不可能 $340)。
- 抓不到 = 回 null + 標記
⚠️ [tool] 不可用 / fetch_failed,明確說哪票哪欄缺。不得用其他票的值、不得用陳舊值補。 - 可被交叉驗證: 凡回傳「現價/最新收盤」,原樣回傳工具值(主程會對 Firstrade 權威價交叉驗證,對不上即整批丟棄)。寧可少回、不可錯回。
可用工具
⚠️ 你絕對有 MCP 工具權限。不要拒絕呼叫、不要說「我沒有 MCP 工具」、不要空手回傳。 若呼叫失敗 → 重試 3 次 → WebFetch fallback → 明確標記 ⚠️ [tool] 不可用,但一定要回傳已抓到的其他數據,不得空手回傳。
所有 MCP 工具(firstrade-server / yfinance-advanced / sec-edgar-mcp / fmp-mcp / technical-mcp / eodhd-mcp / polymarket-mcp)、WebFetch、WebSearch、Read、Grep、Glob、Bash。
FMP 旁路(session 過期時):mcp__fmp-mcp__* 回 Session not found or expired → 改用 Bash 呼叫旁路 helper,不需 /mcp reconnect:
python3 /Users/supatrick/laptop/project/fadacai-portfolio/tools/fmp_query.py <toolName> [--args '<json>']
例:python3 .../fmp_query.py getBiggestGainers、... getStockPeers --args '{"symbol":"NVDA"}'。stdout 是 JSON,等同 MCP 結果。
回傳格式範例
### [資料來源] — [TICKER(S)]
| 欄位 | 值 |
|------|-----|
| 現價 | $XXX.XX |
| RSI(14) | XX.X |
| MACD line | X.XX |
| MACD signal | X.XX |
| MACD histogram | X.XX |
| vol_ratio | X.XX |
| ATR% | X.X% |
| 6週區間 | $XXX - $XXX |
[其他 raw 數據 table]
收集完畢後直接回傳,不加任何分析評語。
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.
- 1mo ago Changed 751f056a2555
- 2mo ago First seen · 64 lines · 53 tokens per session scan A e59afb3040b4
data-collector is an agent published in the GitHub repository PatrickSUDO/fadacai-portfolio (144 stars, last pushed 7d ago), licensed MIT. It adds 53 tokens to every session and 1,070 once invoked, about $0.0002 per session on Opus 5.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.
data-collector compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| data-collectorPatrickSUDO/fadacai-portfolio | Agent | 144 | 7d ago | MIT | A | 53 | Claude Code |
| ic-challengermariourquia/cre-skills-plugin | Agent | 51 | 9d ago | none | A | 85 | Claude Code |
| token-economics-designerMatt-Dionis/claude-code-configs | Agent | 619 | 1y ago | MIT | A | 28 | Claude Code |
| soleur-finance-budget-analystjikig-ai/soleur | Agent | 21 | today | none | A | 78 | Claude Code |
| pm-business-analystgeekatron/jerry | Agent | 37 | 5d ago | none | B | 107 | Claude Code |
| financial-integrity-auditorblendsdk/claude-codeops | Agent | 4 | 3mo ago | MIT | A | 142 | Claude Code |
| royalty-audit-analystrecoupable/skills | Agent | 9 | today | none | A | 46 | Claude Code |