BC global-market-analyst
Global asset investment analysis and advisory — VN & US stocks, forex, gold, oil, crypto, ETF, DCA. Combines real-time technical analysis (RSI, MACD, EMA, Bollinger Bands) from TradingView with fundamental analysis (P/E, ROE, Sharpe, CAGR, sector valuation). Use when: (1) user asks about VN or global stock prices, (2) user wants to know which assets to buy, (3) user asks about portfolio management, (4) user wants to calculate monthly DCA accumulation, (5) user asks how much to invest per month, (6) user wants to estimate returns over time, (7) user wants to compare global asset classes, (8) user asks about gold, crypto, S&P 500, ETF, (9) user asks about swing trading, scalping, day trading VN, (10) user asks about forex EUR/USD, USD/JPY, (11) user asks about commodities oil WTI, silver, (12) user asks about US stocks AAPL, NVDA, TSLA, MSFT, (13) user wants to analyze/rebalance an existing portfolio, (14) user wants to scan markets for a new optimal portfolio, (15) user asks about portfolio optimization, Markowitz, asset allocation.
As a process C 54/100 · Has gaps — weak spots: when it triggers, inputs and preconditions, consistency
How to improve
- Shorten the description to 1024 characters.
- The SKILL.md body is over 5,000 tokens: move reference detail into references/ and load it when needed.
- Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
- A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.
Guard findings · 0
✓ No critical or high findings
Files scanned: 22. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
- error
description-longdescription is 1047 chars, limit 1024 - warning
body-longSKILL.md body ≈ 5558 tokens (recommended < 5000); move details to references/
Process rating: all ten parameters 54/100
- 0Inputs and preconditions. Does not say what the process needs to start
- 0Progress reporting. Says nothing while it works
- 20When it triggers. No condition that starts the skill
- 40Consistency. Frontmatter name (global-market-analyst) differs from the folder (market-analyst)
- 55Failures and branches. 1 branches
- 60Tools and files. Uses tools (web) that frontmatter does not declare
- 60Result and completion. Output format stated, no completion criterion
- 70Execution cost. Instruction body is 5558 tokens
- 100Steps. 169 steps
- 100Running it twice. Mutating operations check current state
- low 17 top-level sections: this looks like several domains in one skill
Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.
Quality signals
- +5Description has no quoted example phrases that should trigger the skill
- +4Description does not say when NOT to use the skill (false activations)
- +3Description length 1047: 120–800 characters recommended
- -239 emoji in the instructions: noise for the model
- +1No license
- +2Single-language instructions
- +4Structure: 67 headings
- +3Step-by-step instructions: 169 items
- +3Output format is stated explicitly
- +4Has examples (18 code blocks)
- +4Reference files are cited in the instructions (12 of 12)
- +3All 7 scripts are documented
Quality base 70; lint remarks subtract, signals add up to 100. Result: 54.