{"id":"cmrodmmvq1k8fad08ois0hr3e","slug":"stock-strategy-backtester-cleanskill","publicId":"0ef7006b-2515-462e-8065-1c6e4dc9df10","name":"stock-strategy-backtester-clean/SKILL","description":"Backtest stock trading strategies on historical OHLCV data and report win rate, return, CAGR, drawdown, Sharpe ratio, and trade logs. Use when evaluating or comparing strategy rules (SMA crossover, RSI mean reversion, breakout), quantifying transaction-cost impact, tuning parameters, or generating performance summaries from CSV data. Trigger for requests like \"回测股票策略胜率\", \"测收益率\", \"compare two strategy backtests\", and \"build a strategy report from historical prices\".","version":"","author":null,"license":"","compatibility":"","status":"completed","overallGrade":"A","scannerVersion":1,"fileCount":0,"hasSkillMd":false,"hasScripts":false,"hasReferences":false,"hasEvals":false,"hasAssets":false,"sourceType":"cli","sourceUrl":"","createdAt":"2026-07-17T03:26:52.301Z","completedAt":"2026-07-17T03:26:50.822Z","visibility":"public","publishedAt":"2026-07-28T14:04:29.676Z","category":"","frameworks":[],"badgeStatus":"vettd","downloadCount":0,"verdictRationale":null,"verdictPolicyVersion":null,"skillId":"cmrodmm0p1jp8ad08bxsu6t5u","findings":[{"id":"cmrodmt621q22ad08toj0czqn","source":"vettd","category":"security","label":"No external URLs in skill definition","detail":"SKILL.md and references/ files do not reference external URLs","severity":"info","ruleId":"VTD-0093","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"ae07c3d33479da3c78284ef25d62be79","filepath":""},{"id":"cmrodmt621q21ad08ogri1zvx","source":"vettd","category":"security","label":"No prompt injection or jailbreak signals detected","detail":"Scanned text content for instruction override, jailbreak framing, credential solicitation, and embedded injection markers","severity":"info","ruleId":"VTD-0092","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"ee5675c6452295fc92108d4c30cfebf6","filepath":""},{"id":"cmrodmt611q1rad08mm3ybrd4","source":"vettd","category":"security","label":"No repository link","detail":"No repository field found in SKILL.md frontmatter. Skills without a verifiable source repository cannot be externally audited.","severity":"info","ruleId":"VTD-0083","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"e09767e7943872a2754f559ba01ef7db","filepath":""},{"id":"cmrodmt621q20ad08b9sbbuq1","source":"vettd","category":"security","label":"No secrets or unsafe code patterns detected","detail":"Scanned all files for credentials, private keys, and code-level risks (eval, shell exec, destructive ops)","severity":"info","ruleId":"VTD-0091","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"2e3428ecd3c04cac33cabd959f51437a","filepath":""},{"id":"cmrodmt611q1oad088dskbqoj","source":"vettd","category":"structure","label":"assets/ directory present","detail":"Static resources (templates, schemas, etc.) found","severity":"info","ruleId":"VTD-0098","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"c6cdaf8e0e4e9cde741d5b4eb338b72e","filepath":""},{"id":"cmrodmt611q1nad08x0883eab","source":"vettd","category":"structure","label":"references/ directory present","detail":"Additional documentation files available for progressive disclosure","severity":"info","ruleId":"VTD-0097","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"a5f22b7185c58877c3d5a94338930d62","filepath":""},{"id":"cmrodmt611q1mad08bvvawuqi","source":"vettd","category":"structure","label":"scripts/ directory present","detail":"Bundled executable scripts found","severity":"info","ruleId":"VTD-0096","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"21a167b473d29b0a653734953d43b2fc","filepath":""},{"id":"cmrodmt611q1lad0872o5rar9","source":"vettd","category":"structure","label":"SKILL.md present","detail":"Required skill definition file found","severity":"info","ruleId":"VTD-0095","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"c4ab14319b89c3d0802fadf0dd105bac","filepath":""},{"id":"cmrodmt611q1qad08z8rnjr73","source":"vettd","category":"structure","label":"Valid name field","detail":"Name \"stock-strategy-backtester-clean\" follows spec (lowercase, hyphens, ≤64 chars)","severity":"info","ruleId":"VTD-0099","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"5ba54eca0b3e299a99112de98cbcd97f","filepath":""},{"id":"cmrodmt611q1tad08kt7uqox9","source":"vettd","category":"description","label":"Description includes usage context","detail":"Good: description explains when to activate the skill","severity":"info","ruleId":"VTD-0111","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"e325ab773f2c18f6f9d864add6464110","filepath":""},{"id":"cmrodmt611q1sad08d6yrg7ww","source":"vettd","category":"description","label":"Description within character limit","detail":"469/1024 characters used","severity":"info","ruleId":"VTD-0110","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"66553d595a652c45a6f0d4353184b37e","filepath":""},{"id":"cmrodmt611q1vad087r8irgm1","source":"vettd","category":"best-practices","label":"Examples included","detail":"Found code blocks, input/output samples, or an examples section — concrete samples help agents pattern-match effectively","severity":"info","ruleId":"VTD-0103","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"c2ceb48c4af3c87dafa32ec2596251b8","filepath":""},{"id":"cmrodmt611q1yad08pfq92v9u","source":"vettd","category":"best-practices","label":"Progressive disclosure used","detail":"SKILL.md body references files in references/, scripts/, or assets/ — agents can load additional context on demand instead of consuming everything upfront","severity":"info","ruleId":"VTD-0107","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"6fd5870d64ef20cb2bbaf421f8655a32","filepath":""},{"id":"cmrodmt611q1uad08m4s44pmu","source":"vettd","category":"best-practices","label":"SKILL.md body length is reasonable","detail":"117 lines (recommended: under 500)","severity":"info","ruleId":"VTD-0101","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"42debaa072535bf5650f90d3168f0b93","filepath":""},{"id":"cmrodmt611q1wad083apft2wi","source":"vettd","category":"best-practices","label":"Step-by-step workflow found","detail":"Structured procedures improve reliability for complex tasks","severity":"info","ruleId":"VTD-0106","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"2368c9a31ac52269c854f105795cf28c","filepath":""},{"id":"cmrodmt611q1xad086ue97gn5","source":"vettd","category":"best-practices","label":"Validation loop referenced","detail":"Instructions for the agent to validate its own work before proceeding","severity":"info","ruleId":"VTD-0105","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"e5a31b775d1df438cbeb1e3fcb2ff503","filepath":""},{"id":"cmrodmt611q1zad08axze0n1t","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/backtest_strategy.py: Script documents its interface via --help or argument parsing","severity":"info","ruleId":"VTD-0114","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"bacfb1a11efd590203ff7c5670ad38d8","filepath":""},{"id":"cmrodmt611q1pad08onnxnk07","source":"vettd","category":"evals","label":"No evaluation test cases","detail":"Add an evals/ directory with test prompts and expected outputs to measure skill quality","severity":"info","ruleId":"VTD-0118","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"41d019e0494a4a9763fc23c948d14e09","filepath":""}],"scannerRuns":[{"source":"vettd","status":"success","verdict":null,"grade":null,"findingCount":18,"criticalCount":0,"highCount":0}],"user":{"name":"Justin Pacella","image":"https://avatars.githubusercontent.com/u/97124458?v=4"},"repository":null,"freshness":null,"signalCategories":[{"category":"safety","label":"Safety","form":"graded","verdict":null,"rows":[]},{"category":"reliability","label":"Reliability & Quality","form":"graded","verdict":null,"rows":[]},{"category":"performance","label":"Performance","form":"measured","verdict":null,"rows":[]},{"category":"cost","label":"Cost","form":"measured","verdict":null,"rows":[]},{"category":"compatibility","label":"Compatibility","form":"unjudged","verdict":null,"rows":[]},{"category":"sentiment","label":"Popularity","form":"unjudged","verdict":null,"rows":[]},{"category":"characteristics","label":"Characteristics","form":"unjudged","verdict":null,"rows":[]}],"signalCount":18,"publisherSupplied":["name","description","author","version","license"]}