VNStock Free Expert
Use this skill when the user needs advanced Vietnam stock analysis with vnstock, while staying safe on free-tier limits.
Important packaging note
This skill is self-contained and does not require shipping a separate vnstock/ docs folder.
All operational knowledge needed by the agent is stored under:
references/
Read order
- Read
references/capabilities.md. - Read
references/method_matrix.mdfor exact class/method mapping. - Read
references/free_tier_playbook.mdbefore large runs.
Scope and constraints
- Library:
vnstockonly. - Preferred sources:
kbsfirst,vcifallback. - Never use
tcbs. - Treat
Screener APIas unavailable unless user confirms it is restored in their installed version.
Free-tier operating rules
- No API key: target <= 20 requests/minute.
- Free API key: target <= 60 requests/minute.
- Safe default pacing in scripts: 3.2s/request.
- Reuse cached artifacts between steps.
Shared confidence rubric (required)
Report confidence as High / Medium / Low using this standard:
High: universe coverage >= 95%, critical metrics coverage >= 80%, and hard errors <= 5% of symbols.Medium: universe coverage >= 80%, critical metrics coverage >= 60%, and hard errors <= 15%.Low: belowMediumthresholds or material missing fields that can flip ranking results.
Always output:
- Confidence level.
- Coverage stats (
symbols_requested,symbols_scored,% missing by key metric). - Top missing fields that may change conclusions.
API key configuration (implemented)
- Skill-local key file:
.env - Variable:
VNSTOCK_API_KEY - All API-calling scripts auto-load this key and call vnstock auth setup before requests.
- You can override per run with
--api-key "...".
Execution workflow (ordered)
- Validate environment (
python,vnstock,pandas) and load optional API key from.env. - Build a universe using
scripts/build_universe.py(group,exchange, orsymbolsmode). - Collect market data with
scripts/collect_market_data.pyusing safe pacing. - Collect fundamentals with
scripts/collect_fundamentals.py. - Score and rank using
scripts/score_stocks.py. - Generate analyst-style memo with
scripts/generate_report.py. - Apply confidence rubric, disclose missing fields, and summarize risks.
Downstream handoff bundle (required when doing single-ticker deep dive)
When the user request is about valuing or building a memo for a specific ticker (or a small list), output a compact JSON bundle that downstream skills can reuse:
ticker,as_of_date,currencyfinancials(income/balance/cashflow + key ratios if available)price_history(returns 1m/3m/6m/12m)peer_set(if you built one)metadata.sourceanddata_quality_notes
This bundle is designed to feed equity-valuation-framework and portfolio-risk-manager.
Script map
A) Discovery and universal invocation (for broad feature coverage)
catalog_vnstock.pyPath:scripts/catalog_vnstock.py
Use when:
- You need to inspect available classes/methods in the installed
vnstockversion. - You want to confirm compatibility before running a method.
invoke_vnstock.pyPath:scripts/invoke_vnstock.py
Use when:
- You need to call any supported class/method beyond the prebuilt valuation pipeline.
- You want one generic entry point for
Listing,Quote,Company,Finance,Trading,Fund, or other exported classes.
This script supports dynamic invocation by class name and method name with JSON kwargs.
B) Valuation pipeline scripts
-
build_universe.pyUse when building symbol universe from index/exchange/custom symbol list. Input: source + mode + group/exchange/symbols. Output:outputs/universe_*.csvand latest pointers. -
collect_market_data.pyUse when collecting OHLCV/momentum fields (3M, 6M, 12M returns). Input: universe CSV path. Output:outputs/market_data_*.csv+ per-symbol errors in JSON. -
collect_fundamentals.pyUse when collecting valuation and quality metrics from finance/company APIs. Input: universe CSV path. Output:outputs/fundamentals_*.csv+ per-symbol errors in JSON. -
score_stocks.pyUse when ranking symbols with composite scoring. Input: market + fundamentals CSV files. Output:outputs/ranking_*.csv. -
generate_report.pyUse when converting ranking output to analyst-style markdown memo. Input: ranking CSV file. Output:outputs/investment_memo_*.md. -
run_pipeline.pyUse when running the end-to-end pipeline in one command. Input: source + universe mode. Output: all artifacts above in one run.
Error handling rules
- Log symbol-level failures and continue processing remaining symbols.
- Do not claim missing metrics as zeros; mark them as missing.
- If a critical step fails, stop and report failed step + command + suggested retry scope.
Recommended decision logic
- If request is “standard valuation/ranking”: run pipeline scripts.
- If request needs a specific vnstock capability not in pipeline: use
catalog_vnstock.pytheninvoke_vnstock.py. - If request volume is large: apply
free_tier_playbook.mdthrottling and chunking strategy.
Confidence aggregation (required)
When output includes ranking and valuation interpretation:
- Compute data confidence from coverage metrics (
symbols_scored, missing key fields, error ratio). - Compute model confidence from method robustness (single metric vs multi-factor consistency).
- Final confidence = lower of data confidence and model confidence.
- In
Lowconfidence cases, provide directional output only and list required missing inputs.
Required output template
What Was Run: scripts, source, universe scope, and pacing profile.Coverage: requested symbols, scored symbols, and missingness by key field.Top Results: ranked list with score columns.Key Risks: concentration, stale data, missing metrics, or provider limitations.Confidence and Gaps: final confidence + exact blockers.
Quick command examples
python scripts/catalog_vnstock.py --outdir ./outputs
python scripts/invoke_vnstock.py --class-name Quote --init-kwargs '{"source":"kbs","symbol":"VCB"}' --method history --method-kwargs '{"start":"2024-01-01","end":"2024-12-31","interval":"1D"}' --outdir ./outputs
python scripts/run_pipeline.py --source kbs --mode group --group VN30 --outdir ./outputs
Trigger examples
- "Analyze VN30 using vnstock but keep it free-tier safe."
- "Rank Vietnamese stocks by value/quality/momentum with KBS data."
- "Run a full vnstock pipeline and return top candidates with risk notes."