{"id":"cmrodgqra0ekkad080a1ynxfu","slug":"cms-tbs-trainingskill","publicId":"34d15432-87da-4c4d-9b14-d7b372e273c0","name":"cms-tbs-training/SKILL","description":"TBS训战平台用户端API封装，支持首页聚合、药品场景查询、PPT演讲、训战记录、学习视频、GPTS交互、训练发起等功能","version":"","author":null,"license":"","compatibility":"","status":"completed","overallGrade":"B","scannerVersion":1,"fileCount":0,"hasSkillMd":false,"hasScripts":false,"hasReferences":false,"hasEvals":false,"hasAssets":false,"sourceType":"cli","sourceUrl":"","createdAt":"2026-07-17T03:22:17.486Z","completedAt":"2026-07-17T03:22:15.787Z","visibility":"public","publishedAt":"2026-07-28T14:40:43.626Z","category":"","frameworks":[],"badgeStatus":"conditional","downloadCount":0,"verdictRationale":null,"verdictPolicyVersion":null,"skillId":"cmrodgpzk0dkvad08ehgyyozu","findings":[{"id":"cmrodgye40lwmad08hmrx9dze","source":"vettd","category":"security","label":"References external URL — review for indirect prompt injection risk","detail":"External URL(s) detected in SKILL.md — referenced content can change after audit","severity":"medium","ruleId":"VTD-0088","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"885bf1b4de9a77b02bbb1cdf717927d5","filepath":""},{"id":"cmrodgye40lwlad08ijnotdn2","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":"cmrodgye10lucad08vy40qel2","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":"cmrodgye40lwkad08vli9xmxo","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":"cmrodgye10lu9ad085fgy8cgh","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":"cmrodgye10lu8ad08n77xnokc","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":"cmrodgye10lubad08hsxpx1if","source":"vettd","category":"structure","label":"Valid name field","detail":"Name \"cms-tbs-training\" follows spec (lowercase, hyphens, ≤64 chars)","severity":"info","ruleId":"VTD-0099","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"5ba54eca0b3e299a99112de98cbcd97f","filepath":""},{"id":"cmrodgye10luead08l8g4qzn7","source":"vettd","category":"description","label":"Description lacks usage context","detail":"Add context like \"Use this skill when...\" to help agents know when to activate it","severity":"info","ruleId":"VTD-0111","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"e325ab773f2c18f6f9d864add6464110","filepath":""},{"id":"cmrodgye10lufad08p1ux8vc2","source":"vettd","category":"description","label":"Description too brief","detail":"A few sentences covering scope and trigger conditions improves activation accuracy","severity":"info","ruleId":"VTD-0112","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"592614385df5fc41eb1336fc0e003c01","filepath":""},{"id":"cmrodgye10ludad08nx3gl609","source":"vettd","category":"description","label":"Description within character limit","detail":"60/1024 characters used","severity":"info","ruleId":"VTD-0110","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"66553d595a652c45a6f0d4353184b37e","filepath":""},{"id":"cmrodgye10luhad085fgg9x4d","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":"cmrodgye10lujad08zgvzpkpr","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":"cmrodgye10lugad08jestxee9","source":"vettd","category":"best-practices","label":"SKILL.md body length is reasonable","detail":"208 lines (recommended: under 500)","severity":"info","ruleId":"VTD-0101","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"42debaa072535bf5650f90d3168f0b93","filepath":""},{"id":"cmrodgye10luiad08knla0gbn","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":"cmrodgye10lukad08ko6s7br4","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/basic/gpt-id.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":"cmrodgye10lumad08cgccs5lj","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/basic/tts-config.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":"cmrodgye10luoad086n1544bt","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/dialogue-flow/get-flow-detail.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":"cmrodgye10luqad08pcwpzfdt","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/drug/drug-list.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":"cmrodgye20lusad08ebfsowai","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/drug/scene-doctor-titles.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":"cmrodgye20luuad08arruyt4s","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/drug/scene-hotwords.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":"cmrodgye20luwad08rz1y3sob","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/drug/scene-list-by-drug.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":"cmrodgye20luyad08lddk1t6q","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/drug/scene-list.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":"cmrodgye20lv0ad08n5wai3cg","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/feedback/app-detail.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":"cmrodgye20lv2ad08m4jklrjw","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/feedback/gpt-id.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":"cmrodgye20lv4ad08nx5cxdmh","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/file/upload-by-url.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":"cmrodgye20lv6ad083t5ky8y2","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/gpts/app-detail.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":"cmrodgye20lv8ad089kxji4gc","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/gpts/del-user-token.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":"cmrodgye20lvaad08m0w8k7tz","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/gpts/session.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":"cmrodgye20lvcad0832s710nq","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/gpts/speech-feedback.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":"cmrodgye20lvead08nmyhjmew","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/gpts/sse-suggest.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":"cmrodgye20lvgad08a0bgns0i","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/gpts/training-feedback.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":"cmrodgye20lviad08pqrvfrc0","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/gpts/training-interact.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":"cmrodgye30lvkad082d7rnubu","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/home/learning-videos.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":"cmrodgye30lvmad0859i428im","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/home/product-scenes.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":"cmrodgye30lvoad08v1ezskrf","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/home/summary.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":"cmrodgye30lvqad08jkq1cucc","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/learning/video-detail.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":"cmrodgye30lvsad082fuazsdb","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/learning/video-progress-get.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":"cmrodgye30lvuad08lf7m2sv2","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/learning/video-progress-save.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":"cmrodgye30lvwad08n2ekpf94","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/prepare/opening-guidance-clear.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":"cmrodgye30lvyad08fh9vzw6w","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/prepare/opening-guidance.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":"cmrodgye30lw0ad08d4nhj2gn","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/scene-image/reset.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":"cmrodgye30lw2ad08xoac5hxi","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/speech/speech-detail.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":"cmrodgye30lw4ad080vjs1fol","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/speech/speech-finish.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":"cmrodgye30lw6ad08f2v6wvpz","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/speech/speech-records.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":"cmrodgye40lw8ad08jvqh8li9","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/training-flow/drugs.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":"cmrodgye40lwaad08ff3gvyth","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/training-flow/records.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":"cmrodgye40lwcad082sr6clwr","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/training-flow/scenes.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":"cmrodgye40lwead08liew1db0","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/training/my-stats.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":"cmrodgye40lwgad08865dklx4","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/training/records-detail.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":"cmrodgye40lwiad08ktsge7m6","source":"vettd","category":"scripts","label":"CLI help supported","detail":"scripts/training/records.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":"cmrodgye10lulad083psplk8g","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/basic/gpt-id.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye10lunad08k412guet","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/basic/tts-config.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye10lupad08y6vxdz90","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/dialogue-flow/get-flow-detail.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lurad08umv9d5zl","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/drug/drug-list.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lutad08bwkf74d7","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/drug/scene-doctor-titles.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20luvad080tijhpyt","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/drug/scene-hotwords.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20luxad088mosw82d","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/drug/scene-list-by-drug.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20luzad08559pk2bo","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/drug/scene-list.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lv1ad08r6v0nhxn","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/feedback/app-detail.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lv3ad08btunva61","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/feedback/gpt-id.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lv5ad086sxttla7","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/file/upload-by-url.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lv7ad08ym06s7r1","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/gpts/app-detail.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lv9ad08nk3679om","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/gpts/del-user-token.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lvbad0821o12ept","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/gpts/session.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lvdad08rxnjo6m6","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/gpts/speech-feedback.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lvfad08cf3qxfd2","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/gpts/sse-suggest.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye20lvhad08dan2ddi8","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/gpts/training-feedback.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lvjad08ejyk22nk","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/gpts/training-interact.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lvlad08ymn49tuo","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/home/learning-videos.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lvnad08vuvxkzq8","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/home/product-scenes.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lvpad0894r28uqt","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/home/summary.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lvrad083wyehd9q","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/learning/video-detail.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lvtad089mlum6hs","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/learning/video-progress-get.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lvvad08guw10pj8","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/learning/video-progress-save.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lvxad08rndhr5sr","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/prepare/opening-guidance-clear.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lvzad08hojhaqhx","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/prepare/opening-guidance.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lw1ad0898yezy1c","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/scene-image/reset.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lw3ad082lcwou4t","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/speech/speech-detail.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye30lw5ad08iqqv6rtn","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/speech/speech-finish.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye40lw7ad0842satkzf","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/speech/speech-records.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye40lw9ad08qnxfuhmu","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/training-flow/drugs.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye40lwbad08bqrsyfwr","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/training-flow/records.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye40lwdad089coeh7lo","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/training-flow/scenes.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye40lwfad082upqlb9k","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/training/my-stats.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye40lwhad083r19awob","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/training/records-detail.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye40lwjad08ctzmeat7","source":"vettd","category":"scripts","label":"Structured output format","detail":"scripts/training/records.py: Uses JSON/CSV output which is easily parseable by agents","severity":"info","ruleId":"VTD-0116","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"4ec02baf55eb1cec6e7af5f4773039a2","filepath":""},{"id":"cmrodgye10luaad08j8sj5vs3","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":87,"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":87,"publisherSupplied":["name","description","author","version","license"]}