CtrlK
BlogDocsLog inGet started
Tessl Logo

vnpy-export

Export a Vibe-Trading backtest strategy to a runnable vnpy CtaTemplate Python class — supports A-share equities, futures, and crypto via BarGenerator + ArrayManager.

60

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Medium

Suggest reviewing before use

Fix and improve this skill with Tessl

tessl review fix ./agent/src/skills/vnpy-export/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, well-structured reference document: mostly lean, highly actionable with exact API mappings and a complete runnable template script, clearly sequenced workflows with a pre-save checklist, and a properly signaled one-level-deep bundle reference. The main improvements are eliminating duplication between the inline skeleton and scripts/cta_template.py, adding the missing imports that keep code snippets from being copy-paste ready, and turning the quality checklist into an explicit validate-fix-recheck loop.

Suggestions

Add the missing imports to code snippets (`from datetime import datetime` in the backtesting example; `Interval` in the multi-timeframe example) so they run as-is.

Trim the overlap between the inline Full Template and scripts/cta_template.py — e.g. keep a compact skeleton inline and point to the script for the full version, and drop the GitHub-stars promotional line.

Convert the Quality Checklist into an explicit feedback loop ("if any check fails, fix and re-verify before saving") to strengthen the validation checkpoint.

DimensionReasoningScore

Conciseness

The body is dense and reference-shaped — tables, skeletons, and exact mappings rather than explanations of concepts Claude already knows — with only minor trimmable padding: the promotional "39k+ GitHub stars" line and the inline skeleton that substantially duplicates scripts/cta_template.py. Not anchor 5 because a few tokens still don't earn their place; well above anchor 3's noticeable over-explanation.

4 / 5

Actionability

Highly executable guidance: a canonical class skeleton, an exact pandas/ta-lib→ArrayManager mapping table, a Signal→Order mapping table with price/volume conventions, and a concrete BacktestingEngine snippet with real parameter values. Minor gaps keep it from anchor 5: the backtest snippet omits `from datetime import datetime`, the multi-timeframe example uses `Interval` without importing it, and the main template uses {{placeholder}} tokens (justified for a generator, but not copy-paste ready).

4 / 5

Workflow Clarity

Two clearly sequenced numbered workflows (export-from-run and generate-from-description) with explicit input reads (config.json, signal_engine.py), plus a Quality Checklist serving as a pre-save validation gate. Not anchor 5 because there is no explicit fix-and-revalidate feedback loop (checklist items are stated but no "if a check fails, fix and re-check" path), though the operation is file generation, so the destructive/batch cap does not apply.

4 / 5

Progressive Disclosure

The body is well-sectioned with clear navigation, and its one bundle reference — "See scripts/cta_template.py for a complete, runnable example (MA crossover)" — is clearly signaled, one level deep, and verified to exist as a complete runnable example. Minor gap: the full inline template largely duplicates the referenced script, so content placement could be tightened; not anchor 2/3 since the structure is genuinely good and references are not buried.

4 / 5

Total

16

/

20

Passed

Description

65%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A specific, distinctive description with a concrete single action and strong domain keywords, undermined by the absence of any "Use when…" trigger clause in the frontmatter itself. Moving the body's explicit trigger sentence ("when the user asks to export to vnpy, requests a /vnpy command, or wants to run a Vibe-Trading strategy inside vnpy's CTA backtester or live trading engine") into the description would raise completeness and trigger quality substantially.

Suggestions

Append the body's trigger guidance to the frontmatter description, e.g. "Use when the user asks to export to vnpy, requests a /vnpy command, or wants to run a Vibe-Trading strategy inside vnpy's CTA backtester or live trading engine."

Add 1-2 more concrete actions to broaden capability coverage, such as "generate a strategy from a plain-language description" (the second documented workflow) alongside the export action.

Include common synonyms users would say, such as "CTA strategy" and "vnpy strategy", to improve trigger-term recall.

DimensionReasoningScore

Specificity

The description names the domain and one concrete action — "Export a Vibe-Trading backtest strategy to a runnable vnpy CtaTemplate Python class" — with scope detail ("A-share equities, futures, and crypto"), but lists only a single action rather than the several specific actions of anchor 4, and is far from the vague abstraction of anchor 1.

3 / 5

Completeness

The "what" is clear and concrete (export to a runnable vnpy CtaTemplate class), but the description field itself contains no "Use when…" clause or equivalent trigger guidance — the trigger text ("Use this skill when the user asks to export to vnpy…") lives in the body, not the frontmatter — which caps completeness at 3 per the guidelines.

3 / 5

Trigger Term Quality

Good natural keyword coverage: "vnpy", "export", "backtest strategy", "A-share", "futures", "crypto", plus jargon users of this domain actually say ("CtaTemplate"). A few natural terms are missing (e.g. "CTA strategy", "live trading", "策略回测"), so it does not reach anchor 5's comprehensive synonym/extension coverage, but it clearly exceeds anchor 3's partial coverage.

4 / 5

Distinctiveness Conflict Risk

"vnpy", "Vibe-Trading", "CtaTemplate", "A-share", and "BarGenerator + ArrayManager" define a clear niche with distinct triggers; virtually no other skill would match these terms, so conflict risk is minimal.

5 / 5

Total

15

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
HKUDS/Vibe-Trading
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.