ワンクリックで
portfolio-report
AUTO-INVOKE when user says 'port' (exactly). Runs the live portfolio report script and returns output verbatim.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
AUTO-INVOKE when user says 'port' (exactly). Runs the live portfolio report script and returns output verbatim.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
AUTO-INVOKE for fast technical scans and market briefs. Triggers: scan TICKER (or 扫 TICKER, quick TICKER) for single/multi quick analysis; port health (or port-health, 持仓健康) for batch portfolio scan; market brief HK/US (or brief HK/US, 市场简报 HK/US) for index+sector overview. Output is a DSA-style 决策看板 / 市场简报 emitted on stdout for you to deliver.
Policy-constrained Portfolio Manager (PM) decision workflow — compute investable/bucket weights, diagnose drifts and breaches, and emit three-layer recommendations with audit + chat rendering.
Deterministic portfolio valuation and chat-friendly push using Yahoo multi-endpoint fallbacks (v7 quote → v8 chart → v7 spark), static valuation for MMF/StructNote/CODE items, at-cost valuation for HSBC 2028 bond, FX overrides, MMF safety allocation, ringfenced obligations, liabilities deduction, separate lots for duplicate tickers (e.g., 0700.HK A/B), JSON snapshotting, and cron scheduling at SGT 18:00 with manual /888 trigger.
AUTO-INVOKE when user says ta [ticker], research [ticker], or 研究 [ticker]. Runs the real TradingAgents multi-agent framework (analysts + debate + risk + PM) for a single stock ticker.
AIsa Last30Days — 30天多源社交媒体扫描。覆盖 Reddit、X/Twitter、YouTube、TikTok、Instagram、Hacker News、Polymarket、Web Search 八个平台。为 Writer(WH文豪) 提供热点选题发现能力。
AIsa MarketPulse — 美股完整金融数据:价格、财报、SEC文件、内幕交易、机构持仓、分析师预估、股票筛选器、宏观利率。通过统一 AISA_API_KEY 调用。
| name | portfolio-report |
| description | AUTO-INVOKE when user says 'port' (exactly). Runs the live portfolio report script and returns output verbatim. |
This is a hard rule with no exceptions. When the user's message is exactly port (case-insensitive, may have leading/trailing spaces, no other words):
You MUST invoke this skill immediately using the skills tool (skill_view then execute it). Do NOT describe the portfolio from memory. Do NOT use delegate_task. The skill runs the live portfolio script with real-time prices.
OUTPUT RULE: The script produces a pre-formatted report. Your response MUST be the exact text between __REPORT_START__ and __REPORT_END__ markers — copy it character-for-character. Do NOT add any intro, summary, or commentary.
Generates a live portfolio snapshot with real-time prices and FX rates. Runtime ≈ 30 seconds.
Step 1 — Tell the user: Fetching live portfolio data...
Step 2 — Call the execute_code tool ONCE. The code argument MUST be exactly the following Python (do NOT wrap it in another print(...) call, do NOT wrap it in extra quotes, pass the code body directly):
import subprocess, sys
result = subprocess.run(
[sys.executable, "{{PORTFOLIO_DIR}}/portfolio_report.py"],
capture_output=True, text=True, timeout=300
)
if result.returncode != 0:
print("__REPORT_START__")
print("ERROR: " + (result.stderr or "exit " + str(result.returncode))[-500:])
print("__REPORT_END__")
else:
print("__REPORT_START__")
print(result.stdout.strip())
print("__REPORT_END__")
Step 3 — MANDATORY OUTPUT VALIDATION (before you reply to the user): Look at the tool result. It MUST satisfy ALL of:
__REPORT_START____REPORT_END____DATA_SOURCE__: (emitted by the real script)IMPORTANT: Portfolio Truth Verification
The authoritative set of holdings is whatever is defined in {{PORTFOLIO_DIR}}/portfolio_truth.json. Do NOT assume any specific tickers — the script reads that file and prices it live. The presence of the __DATA_SOURCE__: line (emitted only by the real script) is the canonical proof that the output came from the configured truth file and not from memory or fabrication.
If the report is missing the __DATA_SOURCE__: line, OR it lists holdings that do not appear in {{PORTFOLIO_DIR}}/portfolio_truth.json, treat the data as fabricated and reject it.
If ANY check fails → reply ONLY with:
ERROR: 持仓报告执行失败(数据源校验未通过),请检查 portfolio_report.py 日志。
Do NOT fabricate data. Do NOT retry. Do NOT summarise. Stop.
If ALL checks pass → reply with the EXACT text between __REPORT_START__ and __REPORT_END__, verbatim, character-for-character. No preamble, no summary, no closing remark.
port request.