{"data":{"skill":{"slug":"heygen-com-talking-head-recut","name":"talking-head-recut","icon":"📦","repo":"https://github.com/heygen-com/hyperframes/tree/main/skills/talking-head-recut/","status":"approved","author":"heygen-com","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"0b3dd7f4-db24-418a-95de-1b6792fc8e0d","skill_id":"2be1315e-e315-4580-9e8f-2d40ce827fa8","version":3,"content_hash":"v2:a10676b980f5ae569a89fa8afaad5463fb42ac44:9d3fc7151bf16290e5db2040a2047040d5cc10906df30557085db270b431cd11:5637205072d5e9164a60669551fa091be94a54e54d6d67ab0a39255acfe49848:d9883b40bba9b27775777e21ac6464da","risk_level":"medium","is_blocked":false,"safe_to_publish":false,"analysis_status":"ok","agent_auto_install_policy":"confirmation_required","manual_install_policy":"allowed","summary":"Most static hits are false positives from Markdown inline code, CSS border declarations, and a bundled minified GSAP library. The real security concern is operational: the skill asks the agent to run local CLI tools, including npx HyperFrames and ffmpeg/ffprobe, against user media. No prompt injection attempt or credential exfiltration instructions were found in the reviewed files.","remediation":[{"issue":"External CLI execution","severity":"medium","suggestion":"Pin and verify the HyperFrames package version before npx use, and run commands only in a project work directory with user-approved media paths."},{"issue":"Bundled minified and binary assets","severity":"low","suggestion":"Document source versions and hashes for GSAP and fonts, or include unminified source where practical."},{"issue":"Generated HTML rendering","severity":"low","suggestion":"Keep enforcing no external URLs, no scripts in card fragments, and relative-only assets before rendering."}],"risk_factor_evidence":[{"factor":"scripts","evidence":[{"file":"assets/vendor/gsap.min.js","line_end":10,"line_start":10},{"file":"assets/vendor/gsap.min.js","line_end":10,"line_start":10}]},{"factor":"external_commands","evidence":[{"file":"assets/vendor/gsap.min.js","line_end":10,"line_start":10},{"file":"assets/vendor/gsap.min.js","line_end":10,"line_start":10},{"file":"references/frames/clean.html","line_end":7,"line_start":7},{"file":"references/frames/clean.html","line_end":10,"line_start":10},{"file":"references/frames/clean.html","line_end":15,"line_start":15},{"file":"references/layouts/split.html","line_end":4,"line_start":4},{"file":"references/layouts/split.html","line_end":5,"line_start":5},{"file":"references/layouts/split.html","line_end":6,"line_start":6},{"file":"references/layouts/stack.html","line_end":36,"line_start":36},{"file":"references/layouts/stack.html","line_end":37,"line_start":37},{"file":"references/layouts/stack.html","line_end":38,"line_start":38},{"file":"SKILL.md","line_end":13,"line_start":13},{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":18,"line_start":18},{"file":"SKILL.md","line_end":20,"line_start":20},{"file":"SKILL.md","line_end":21,"line_start":21},{"file":"SKILL.md","line_end":25,"line_start":25},{"file":"SKILL.md","line_end":26,"line_start":26},{"file":"SKILL.md","line_end":27,"line_start":27},{"file":"SKILL.md","line_end":28,"line_start":28},{"file":"SKILL.md","line_end":29,"line_start":29},{"file":"SKILL.md","line_end":30,"line_start":30},{"file":"SKILL.md","line_end":31,"line_start":31},{"file":"SKILL.md","line_end":38,"line_start":35},{"file":"SKILL.md","line_end":40,"line_start":38},{"file":"SKILL.md","line_end":40,"line_start":40},{"file":"SKILL.md","line_end":48,"line_start":41},{"file":"SKILL.md","line_end":52,"line_start":48},{"file":"SKILL.md","line_end":56,"line_start":52},{"file":"SKILL.md","line_end":56,"line_start":56},{"file":"SKILL.md","line_end":57,"line_start":57},{"file":"SKILL.md","line_end":61,"line_start":59},{"file":"SKILL.md","line_end":63,"line_start":61},{"file":"SKILL.md","line_end":65,"line_start":63},{"file":"SKILL.md","line_end":69,"line_start":65},{"file":"SKILL.md","line_end":70,"line_start":69},{"file":"SKILL.md","line_end":70,"line_start":70},{"file":"SKILL.md","line_end":77,"line_start":73},{"file":"SKILL.md","line_end":81,"line_start":77},{"file":"SKILL.md","line_end":88,"line_start":81},{"file":"SKILL.md","line_end":90,"line_start":88},{"file":"SKILL.md","line_end":90,"line_start":90},{"file":"SKILL.md","line_end":91,"line_start":91},{"file":"SKILL.md","line_end":97,"line_start":95},{"file":"SKILL.md","line_end":100,"line_start":97},{"file":"SKILL.md","line_end":100,"line_start":100},{"file":"SKILL.md","line_end":106,"line_start":105},{"file":"SKILL.md","line_end":106,"line_start":106},{"file":"SKILL.md","line_end":111,"line_start":107},{"file":"SKILL.md","line_end":111,"line_start":111},{"file":"SKILL.md","line_end":114,"line_start":114},{"file":"SKILL.md","line_end":119,"line_start":115},{"file":"SKILL.md","line_end":119,"line_start":119},{"file":"SKILL.md","line_end":126,"line_start":120},{"file":"SKILL.md","line_end":161,"line_start":126},{"file":"SKILL.md","line_end":167,"line_start":161},{"file":"SKILL.md","line_end":168,"line_start":167},{"file":"SKILL.md","line_end":169,"line_start":168},{"file":"SKILL.md","line_end":169,"line_start":169},{"file":"SKILL.md","line_end":171,"line_start":170},{"file":"SKILL.md","line_end":172,"line_start":171},{"file":"SKILL.md","line_end":173,"line_start":172},{"file":"SKILL.md","line_end":174,"line_start":173},{"file":"SKILL.md","line_end":174,"line_start":174},{"file":"SKILL.md","line_end":180,"line_start":176},{"file":"SKILL.md","line_end":181,"line_start":180},{"file":"SKILL.md","line_end":182,"line_start":181},{"file":"SKILL.md","line_end":183,"line_start":182},{"file":"SKILL.md","line_end":184,"line_start":183},{"file":"SKILL.md","line_end":186,"line_start":184},{"file":"SKILL.md","line_end":188,"line_start":186},{"file":"SKILL.md","line_end":190,"line_start":188},{"file":"SKILL.md","line_end":190,"line_start":190},{"file":"SKILL.md","line_end":225,"line_start":222},{"file":"SKILL.md","line_end":242,"line_start":225},{"file":"SKILL.md","line_end":243,"line_start":242},{"file":"SKILL.md","line_end":245,"line_start":243},{"file":"SKILL.md","line_end":248,"line_start":245},{"file":"SKILL.md","line_end":248,"line_start":248},{"file":"SKILL.md","line_end":261,"line_start":260},{"file":"SKILL.md","line_end":262,"line_start":261},{"file":"SKILL.md","line_end":263,"line_start":262},{"file":"SKILL.md","line_end":263,"line_start":263},{"file":"SKILL.md","line_end":264,"line_start":264},{"file":"SKILL.md","line_end":265,"line_start":265},{"file":"SKILL.md","line_end":270,"line_start":270},{"file":"SKILL.md","line_end":278,"line_start":271},{"file":"SKILL.md","line_end":280,"line_start":278},{"file":"SKILL.md","line_end":281,"line_start":280},{"file":"SKILL.md","line_end":297,"line_start":281},{"file":"SKILL.md","line_end":297,"line_start":297},{"file":"SKILL.md","line_end":299,"line_start":298},{"file":"SKILL.md","line_end":302,"line_start":299},{"file":"SKILL.md","line_end":304,"line_start":302},{"file":"SKILL.md","line_end":339,"line_start":304},{"file":"SKILL.md","line_end":359,"line_start":339},{"file":"SKILL.md","line_end":361,"line_start":359},{"file":"SKILL.md","line_end":367,"line_start":361},{"file":"SKILL.md","line_end":395,"line_start":367},{"file":"SKILL.md","line_end":399,"line_start":395},{"file":"SKILL.md","line_end":399,"line_start":399},{"file":"SKILL.md","line_end":400,"line_start":400},{"file":"SKILL.md","line_end":412,"line_start":408},{"file":"SKILL.md","line_end":412,"line_start":412},{"file":"SKILL.md","line_end":413,"line_start":413},{"file":"SKILL.md","line_end":414,"line_start":414},{"file":"SKILL.md","line_end":420,"line_start":416},{"file":"SKILL.md","line_end":420,"line_start":420},{"file":"SKILL.md","line_end":422,"line_start":421},{"file":"SKILL.md","line_end":423,"line_start":422},{"file":"SKILL.md","line_end":428,"line_start":423},{"file":"SKILL.md","line_end":435,"line_start":428},{"file":"SKILL.md","line_end":436,"line_start":435},{"file":"SKILL.md","line_end":437,"line_start":436},{"file":"SKILL.md","line_end":438,"line_start":437},{"file":"SKILL.md","line_end":439,"line_start":438},{"file":"SKILL.md","line_end":446,"line_start":439},{"file":"SKILL.md","line_end":446,"line_start":446},{"file":"SKILL.md","line_end":447,"line_start":447},{"file":"SKILL.md","line_end":448,"line_start":448},{"file":"SKILL.md","line_end":449,"line_start":449},{"file":"SKILL.md","line_end":469,"line_start":457},{"file":"SKILL.md","line_end":469,"line_start":469},{"file":"SKILL.md","line_end":478,"line_start":474},{"file":"SKILL.md","line_end":482,"line_start":478},{"file":"SKILL.md","line_end":485,"line_start":482},{"file":"SKILL.md","line_end":485,"line_start":485},{"file":"SKILL.md","line_end":486,"line_start":486},{"file":"SKILL.md","line_end":490,"line_start":490},{"file":"SKILL.md","line_end":491,"line_start":491},{"file":"SKILL.md","line_end":492,"line_start":492},{"file":"SKILL.md","line_end":493,"line_start":493},{"file":"SKILL.md","line_end":494,"line_start":494},{"file":"SKILL.md","line_end":495,"line_start":495},{"file":"SKILL.md","line_end":497,"line_start":497},{"file":"SKILL.md","line_end":498,"line_start":498},{"file":"SKILL.md","line_end":499,"line_start":499},{"file":"SKILL.md","line_end":509,"line_start":501},{"file":"SKILL.md","line_end":510,"line_start":509},{"file":"SKILL.md","line_end":513,"line_start":510},{"file":"SKILL.md","line_end":516,"line_start":513},{"file":"SKILL.md","line_end":520,"line_start":516},{"file":"SKILL.md","line_end":520,"line_start":520},{"file":"SKILL.md","line_end":521,"line_start":521},{"file":"SKILL.md","line_end":522,"line_start":522},{"file":"SKILL.md","line_end":529,"line_start":524},{"file":"SKILL.md","line_end":531,"line_start":529},{"file":"SKILL.md","line_end":534,"line_start":531},{"file":"SKILL.md","line_end":534,"line_start":534},{"file":"SKILL.md","line_end":536,"line_start":536},{"file":"SKILL.md","line_end":538,"line_start":537},{"file":"SKILL.md","line_end":540,"line_start":538},{"file":"SKILL.md","line_end":542,"line_start":540},{"file":"SKILL.md","line_end":542,"line_start":542},{"file":"SKILL.md","line_end":546,"line_start":543},{"file":"SKILL.md","line_end":547,"line_start":546},{"file":"SKILL.md","line_end":556,"line_start":547},{"file":"SKILL.md","line_end":556,"line_start":556},{"file":"SKILL.md","line_end":559,"line_start":558},{"file":"SKILL.md","line_end":561,"line_start":559},{"file":"SKILL.md","line_end":563,"line_start":561},{"file":"SKILL.md","line_end":566,"line_start":563},{"file":"SKILL.md","line_end":566,"line_start":566},{"file":"SKILL.md","line_end":569,"line_start":567},{"file":"SKILL.md","line_end":570,"line_start":569},{"file":"SKILL.md","line_end":570,"line_start":570},{"file":"SKILL.md","line_end":572,"line_start":572},{"file":"SKILL.md","line_end":574,"line_start":574},{"file":"SKILL.md","line_end":575,"line_start":575},{"file":"SKILL.md","line_end":576,"line_start":576},{"file":"SKILL.md","line_end":577,"line_start":577},{"file":"SKILL.md","line_end":580,"line_start":579},{"file":"SKILL.md","line_end":583,"line_start":580},{"file":"SKILL.md","line_end":586,"line_start":583},{"file":"SKILL.md","line_end":588,"line_start":586},{"file":"SKILL.md","line_end":589,"line_start":588},{"file":"SKILL.md","line_end":590,"line_start":589},{"file":"SKILL.md","line_end":591,"line_start":590},{"file":"SKILL.md","line_end":592,"line_start":591},{"file":"SKILL.md","line_end":594,"line_start":592},{"file":"SKILL.md","line_end":595,"line_start":594},{"file":"SKILL.md","line_end":599,"line_start":595},{"file":"SKILL.md","line_end":607,"line_start":599},{"file":"SKILL.md","line_end":608,"line_start":607},{"file":"SKILL.md","line_end":608,"line_start":608},{"file":"SKILL.md","line_end":610,"line_start":609},{"file":"SKILL.md","line_end":611,"line_start":610},{"file":"SKILL.md","line_end":611,"line_start":611},{"file":"SKILL.md","line_end":615,"line_start":615},{"file":"SKILL.md","line_end":616,"line_start":616},{"file":"SKILL.md","line_end":622,"line_start":618},{"file":"SKILL.md","line_end":623,"line_start":622},{"file":"SKILL.md","line_end":626,"line_start":623},{"file":"SKILL.md","line_end":643,"line_start":626},{"file":"SKILL.md","line_end":645,"line_start":643},{"file":"SKILL.md","line_end":651,"line_start":645},{"file":"SKILL.md","line_end":656,"line_start":651},{"file":"SKILL.md","line_end":692,"line_start":656},{"file":"SKILL.md","line_end":694,"line_start":692},{"file":"SKILL.md","line_end":696,"line_start":694},{"file":"SKILL.md","line_end":697,"line_start":696},{"file":"SKILL.md","line_end":698,"line_start":697},{"file":"SKILL.md","line_end":699,"line_start":698},{"file":"SKILL.md","line_end":699,"line_start":699},{"file":"SKILL.md","line_end":701,"line_start":700},{"file":"SKILL.md","line_end":702,"line_start":701},{"file":"SKILL.md","line_end":704,"line_start":702},{"file":"SKILL.md","line_end":705,"line_start":704},{"file":"SKILL.md","line_end":705,"line_start":705},{"file":"SKILL.md","line_end":711,"line_start":710},{"file":"SKILL.md","line_end":725,"line_start":711},{"file":"SKILL.md","line_end":734,"line_start":725},{"file":"SKILL.md","line_end":736,"line_start":734},{"file":"SKILL.md","line_end":746,"line_start":736},{"file":"SKILL.md","line_end":749,"line_start":746},{"file":"SKILL.md","line_end":751,"line_start":749},{"file":"SKILL.md","line_end":755,"line_start":751},{"file":"SKILL.md","line_end":755,"line_start":755},{"file":"SKILL.md","line_end":756,"line_start":756},{"file":"SKILL.md","line_end":757,"line_start":757},{"file":"SKILL.md","line_end":758,"line_start":758},{"file":"SKILL.md","line_end":760,"line_start":759},{"file":"SKILL.md","line_end":760,"line_start":760},{"file":"SKILL.md","line_end":761,"line_start":761},{"file":"SKILL.md","line_end":762,"line_start":762},{"file":"SKILL.md","line_end":763,"line_start":763},{"file":"SKILL.md","line_end":764,"line_start":764},{"file":"SKILL.md","line_end":765,"line_start":765},{"file":"SKILL.md","line_end":766,"line_start":766},{"file":"SKILL.md","line_end":767,"line_start":767},{"file":"SKILL.md","line_end":771,"line_start":769},{"file":"SKILL.md","line_end":775,"line_start":771},{"file":"SKILL.md","line_end":777,"line_start":775},{"file":"SKILL.md","line_end":790,"line_start":777},{"file":"SKILL.md","line_end":794,"line_start":790},{"file":"SKILL.md","line_end":852,"line_start":794},{"file":"SKILL.md","line_end":1051,"line_start":852},{"file":"SKILL.md","line_end":1055,"line_start":1051},{"file":"SKILL.md","line_end":1057,"line_start":1055},{"file":"SKILL.md","line_end":1061,"line_start":1057},{"file":"SKILL.md","line_end":1061,"line_start":1061},{"file":"SKILL.md","line_end":1062,"line_start":1062},{"file":"SKILL.md","line_end":1063,"line_start":1063},{"file":"SKILL.md","line_end":1064,"line_start":1064},{"file":"SKILL.md","line_end":1065,"line_start":1065},{"file":"SKILL.md","line_end":1066,"line_start":1066},{"file":"SKILL.md","line_end":1067,"line_start":1067},{"file":"SKILL.md","line_end":1068,"line_start":1068},{"file":"SKILL.md","line_end":1069,"line_start":1069},{"file":"SKILL.md","line_end":1070,"line_start":1070},{"file":"SKILL.md","line_end":1073,"line_start":1072},{"file":"SKILL.md","line_end":1073,"line_start":1073},{"file":"SKILL.md","line_end":1078,"line_start":1076},{"file":"SKILL.md","line_end":1079,"line_start":1078},{"file":"SKILL.md","line_end":1081,"line_start":1079},{"file":"SKILL.md","line_end":1083,"line_start":1081},{"file":"SKILL.md","line_end":1083,"line_start":1083},{"file":"SKILL.md","line_end":1086,"line_start":1084},{"file":"SKILL.md","line_end":1088,"line_start":1086},{"file":"SKILL.md","line_end":1091,"line_start":1088},{"file":"SKILL.md","line_end":1091,"line_start":1091},{"file":"SKILL.md","line_end":1094,"line_start":1093},{"file":"SKILL.md","line_end":1097,"line_start":1094},{"file":"SKILL.md","line_end":1099,"line_start":1097},{"file":"SKILL.md","line_end":1099,"line_start":1099},{"file":"SKILL.md","line_end":1100,"line_start":1100},{"file":"SKILL.md","line_end":1101,"line_start":1101},{"file":"SKILL.md","line_end":1102,"line_start":1102},{"file":"SKILL.md","line_end":1103,"line_start":1103},{"file":"SKILL.md","line_end":1104,"line_start":1104},{"file":"SKILL.md","line_end":1125,"line_start":1109},{"file":"SKILL.md","line_end":1127,"line_start":1125},{"file":"SKILL.md","line_end":1129,"line_start":1127},{"file":"SKILL.md","line_end":1130,"line_start":1130},{"file":"SKILL.md","line_end":1139,"line_start":1131},{"file":"SKILL.md","line_end":1140,"line_start":1139},{"file":"SKILL.md","line_end":1140,"line_start":1140},{"file":"SKILL.md","line_end":1141,"line_start":1141},{"file":"SKILL.md","line_end":1143,"line_start":1142},{"file":"SKILL.md","line_end":1143,"line_start":1143},{"file":"SKILL.md","line_end":1146,"line_start":1144},{"file":"SKILL.md","line_end":1146,"line_start":1146},{"file":"SKILL.md","line_end":1147,"line_start":1147},{"file":"SKILL.md","line_end":1148,"line_start":1148},{"file":"SKILL.md","line_end":1158,"line_start":1152},{"file":"SKILL.md","line_end":1160,"line_start":1158},{"file":"SKILL.md","line_end":1160,"line_start":1160},{"file":"SKILL.md","line_end":1161,"line_start":1161},{"file":"SKILL.md","line_end":1170,"line_start":1168},{"file":"SKILL.md","line_end":1177,"line_start":1170},{"file":"SKILL.md","line_end":1178,"line_start":1177},{"file":"SKILL.md","line_end":1179,"line_start":1178},{"file":"SKILL.md","line_end":1180,"line_start":1179},{"file":"SKILL.md","line_end":1185,"line_start":1180},{"file":"SKILL.md","line_end":1187,"line_start":1185},{"file":"SKILL.md","line_end":1188,"line_start":1187},{"file":"SKILL.md","line_end":1189,"line_start":1188},{"file":"SKILL.md","line_end":75,"line_start":75},{"file":"SKILL.md","line_end":77,"line_start":73}]},{"factor":"network","evidence":[{"file":"assets/vendor/gsap.min.js","line_end":3,"line_start":3},{"file":"assets/vendor/gsap.min.js","line_end":6,"line_start":6},{"file":"assets/vendor/gsap.min.js","line_end":10,"line_start":10}]},{"factor":"filesystem","evidence":[{"file":"SKILL.md","line_end":974,"line_start":974}]}],"critical_findings":[],"high_findings":[],"medium_findings":[{"title":"Local External Tool Execution Workflow","locations":[{"file":"SKILL.md","line_end":41,"line_start":35},{"file":"SKILL.md","line_end":96,"line_start":81},{"file":"SKILL.md","line_end":1169,"line_start":1152}],"confidence":0.9,"description":"The workflow instructs agents to invoke HyperFrames through npx, plus ffmpeg and ffprobe, then render local HTML to MP4. This is expected for video processing, but it creates command execution and package supply-chain exposure when inputs or tools are untrusted.","review_kind":"security","source_category":"semantic","source_severity":"medium","confidence_reasoning":"SKILL.md explicitly documents npx HyperFrames, ffmpeg, and ffprobe commands. The risk is contextual execution and dependency trust, not hidden malicious intent."}],"low_findings":[{"title":"Unscanned file (binary) — manual review required","locations":[{"file":"assets/fonts/Inter-700-latin.woff2","line_end":1,"line_start":1}],"confidence":1,"description":"[unscanned: binary]","review_kind":"security","source_category":"metadata","source_severity":"low","confidence_reasoning":"Force-confirmed metadata/low static finding; AI false-positive verdict rejected."},{"title":"Unscanned file (binary) — manual review required","locations":[{"file":"assets/fonts/Caveat-700-latin.woff2","line_end":1,"line_start":1}],"confidence":1,"description":"[unscanned: binary]","review_kind":"security","source_category":"metadata","source_severity":"low","confidence_reasoning":"Force-confirmed metadata/low static finding; AI false-positive verdict rejected."},{"title":"Unscanned file (binary) — manual review required","locations":[{"file":"assets/fonts/LXGWWenKaiTC-400-latin.woff2","line_end":1,"line_start":1}],"confidence":1,"description":"[unscanned: binary]","review_kind":"security","source_category":"metadata","source_severity":"low","confidence_reasoning":"Force-confirmed metadata/low static finding; AI false-positive verdict rejected."},{"title":"Unscanned file (binary) — manual review required","locations":[{"file":"assets/fonts/Inter-400-latin.woff2","line_end":1,"line_start":1}],"confidence":1,"description":"[unscanned: binary]","review_kind":"security","source_category":"metadata","source_severity":"low","confidence_reasoning":"Force-confirmed metadata/low static finding; AI false-positive verdict rejected."},{"title":"Unscanned file (binary) — manual review required","locations":[{"file":"assets/fonts/Caveat-400-latin.woff2","line_end":1,"line_start":1}],"confidence":1,"description":"[unscanned: binary]","review_kind":"security","source_category":"metadata","source_severity":"low","confidence_reasoning":"Force-confirmed metadata/low static finding; AI false-positive verdict rejected."},{"title":"Unscanned file (binary) — manual review required","locations":[{"file":"assets/fonts/Virgil.woff2","line_end":1,"line_start":1}],"confidence":1,"description":"[unscanned: binary]","review_kind":"security","source_category":"metadata","source_severity":"low","confidence_reasoning":"Force-confirmed metadata/low static finding; AI false-positive verdict rejected."}],"dangerous_patterns":[],"files_scanned":21,"total_lines":4081,"audit_model":"codex","audited_at":"2026-07-08T04:20:19.541+00:00","created_at":"2026-07-08T05:00:13.258686+00:00","static_findings":[{"id":"scripts:assets/vendor/gsap.min.js:10:direct-proto-assignment","file":"assets/vendor/gsap.min.js","pattern":"Direct __proto__ assignment","snippet":"!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof de","category":"scripts","line_end":10,"severity":"high","line_start":10},{"id":"scripts:assets/vendor/gsap.min.js:10:python-exec-function","file":"assets/vendor/gsap.min.js","pattern":"Python exec() function","snippet":"!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof de","category":"scripts","line_end":10,"severity":"high","line_start":10},{"id":"external_commands:assets/vendor/gsap.min.js:10:process-exec","file":"assets/vendor/gsap.min.js","pattern":"Process exec","snippet":"!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof de","category":"external_commands","line_end":10,"severity":"high","line_start":10},{"id":"external_commands:assets/vendor/gsap.min.js:10:shell-command-substitution","file":"assets/vendor/gsap.min.js","pattern":"Shell command substitution","snippet":"!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof de","category":"external_commands","line_end":10,"severity":"medium","line_start":10},{"id":"network:assets/vendor/gsap.min.js:3:hardcoded-url","file":"assets/vendor/gsap.min.js","pattern":"Hardcoded URL","snippet":"* https://gsap.com","category":"network","line_end":3,"severity":"low","line_start":3},{"id":"network:assets/vendor/gsap.min.js:6:hardcoded-url","file":"assets/vendor/gsap.min.js","pattern":"Hardcoded URL","snippet":"* Subject to the terms at https://gsap.com/standard-license.","category":"network","line_end":6,"severity":"low","line_start":6},{"id":"network:assets/vendor/gsap.min.js:10:hardcoded-url","file":"assets/vendor/gsap.min.js","pattern":"Hardcoded URL","snippet":"!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof de","category":"network","line_end":10,"severity":"low","line_start":10},{"id":"sensitive:assets/vendor/gsap.min.js:10:certificate-key-files","file":"assets/vendor/gsap.min.js","pattern":"Certificate/key files","snippet":"!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof de","category":"sensitive","line_end":10,"severity":"high","line_start":10},{"id":"blocker:assets/vendor/gsap.min.js:10:system-reconnaissance","file":"assets/vendor/gsap.min.js","pattern":"System reconnaissance","snippet":"!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof de","category":"blocker","line_end":10,"severity":"low","line_start":10},{"id":"blocker:references/DESIGN_INDEX.md:37:system-reconnaissance","file":"references/DESIGN_INDEX.md","pattern":"System reconnaissance","snippet":"| `academic`   | [styles/academic.html](styles/academic.html)     | warm paper · grid · serif · blue","category":"blocker","line_end":37,"severity":"low","line_start":37},{"id":"external_commands:references/frames/clean.html:7:ruby-shell-backtick-execution","file":"references/frames/clean.html","pattern":"Ruby/shell backtick execution","snippet":"- Required over the `overlay` layout (decorative frames clash with full-bleed video).","category":"external_commands","line_end":7,"severity":"medium","line_start":7},{"id":"external_commands:references/frames/clean.html:10:ruby-shell-backtick-execution","file":"references/frames/clean.html","pattern":"Ruby/shell backtick execution","snippet":"No extra HTML — just leave #video-wrap without the `framed` class.","category":"external_commands","line_end":10,"severity":"medium","line_start":10},{"id":"external_commands:references/frames/clean.html:15:ruby-shell-backtick-execution","file":"references/frames/clean.html","pattern":"Ruby/shell backtick execution","snippet":"Even with `clean`, PiPs benefit from a 14px border-radius + soft shadow","category":"external_commands","line_end":15,"severity":"medium","line_start":15},{"id":"blocker:references/frames/clean.html:62:system-reconnaissance","file":"references/frames/clean.html","pattern":"System reconnaissance","snippet":"border: 1px solid rgba(255, 255, 255, 0.45);","category":"blocker","line_end":62,"severity":"low","line_start":62},{"id":"blocker:references/frames/hairline.html:38:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":".frame-deco .tick.tl { top: -3px; left: -3px;     border-top: 4px solid var(--frame-accent); border-","category":"blocker","line_end":38,"severity":"low","line_start":38},{"id":"blocker:references/frames/hairline.html:39:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":".frame-deco .tick.tr { top: -3px; right: -3px;    border-top: 4px solid var(--frame-accent); border-","category":"blocker","line_end":39,"severity":"low","line_start":39},{"id":"blocker:references/frames/hairline.html:40:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":".frame-deco .tick.bl { bottom: -3px; left: -3px;  border-bottom: 4px solid var(--frame-accent); bord","category":"blocker","line_end":40,"severity":"low","line_start":40},{"id":"blocker:references/frames/hairline.html:41:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":".frame-deco .tick.br { bottom: -3px; right: -3px; border-bottom: 4px solid var(--frame-accent); bord","category":"blocker","line_end":41,"severity":"low","line_start":41},{"id":"blocker:references/frames/hairline.html:89:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":"border: 1px solid rgba(255, 255, 255, 0.45);","category":"blocker","line_end":89,"severity":"low","line_start":89},{"id":"blocker:references/frames/hairline.html:119:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":"border-top: 4px solid var(--frame-accent, #2557a7);","category":"blocker","line_end":119,"severity":"low","line_start":119},{"id":"blocker:references/frames/hairline.html:120:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":"border-left: 4px solid var(--frame-accent, #2557a7);","category":"blocker","line_end":120,"severity":"low","line_start":120},{"id":"blocker:references/frames/hairline.html:125:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":"border-top: 4px solid var(--frame-accent, #2557a7);","category":"blocker","line_end":125,"severity":"low","line_start":125},{"id":"blocker:references/frames/hairline.html:126:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":"border-right: 4px solid var(--frame-accent, #2557a7);","category":"blocker","line_end":126,"severity":"low","line_start":126},{"id":"blocker:references/frames/hairline.html:131:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":"border-bottom: 4px solid var(--frame-accent, #2557a7);","category":"blocker","line_end":131,"severity":"low","line_start":131},{"id":"blocker:references/frames/hairline.html:132:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":"border-left: 4px solid var(--frame-accent, #2557a7);","category":"blocker","line_end":132,"severity":"low","line_start":132},{"id":"blocker:references/frames/hairline.html:137:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":"border-bottom: 4px solid var(--frame-accent, #2557a7);","category":"blocker","line_end":137,"severity":"low","line_start":137},{"id":"blocker:references/frames/hairline.html:138:system-reconnaissance","file":"references/frames/hairline.html","pattern":"System reconnaissance","snippet":"border-right: 4px solid var(--frame-accent, #2557a7);","category":"blocker","line_end":138,"severity":"low","line_start":138},{"id":"blocker:references/frames/polaroid.html:2:system-reconnaissance","file":"references/frames/polaroid.html","pattern":"System reconnaissance","snippet":"Frame: polaroid — white photo frame + Caveat label + blue washi tape (no tilt)","category":"blocker","line_end":2,"severity":"low","line_start":2},{"id":"blocker:references/frames/polaroid.html:9:system-reconnaissance","file":"references/frames/polaroid.html","pattern":"System reconnaissance","snippet":"- In portrait PiP (narrow video bubble), polaroid gets cramped — prefer hairline.","category":"blocker","line_end":9,"severity":"low","line_start":9},{"id":"blocker:references/frames/polaroid.html:12:system-reconnaissance","file":"references/frames/polaroid.html","pattern":"System reconnaissance","snippet":"Earlier iterations of the design tilted the polaroid by -1.4° / 5°. User","category":"blocker","line_end":12,"severity":"low","line_start":12},{"id":"blocker:references/frames/polaroid.html:13:system-reconnaissance","file":"references/frames/polaroid.html","pattern":"System reconnaissance","snippet":"explicitly removed the tilt (chat L770–790). Keep the polaroid card,","category":"blocker","line_end":13,"severity":"low","line_start":13},{"id":"blocker:references/frames/polaroid.html:17:system-reconnaissance","file":"references/frames/polaroid.html","pattern":"System reconnaissance","snippet":"Replace the bare #video-wrap with a wrapper div that draws the polaroid","category":"blocker","line_end":18,"severity":"low","line_start":17},{"id":"blocker:references/frames/polaroid.html:18:system-reconnaissance","file":"references/frames/polaroid.html","pattern":"System reconnaissance","snippet":"around it. The polaroid card has its own background + padding; the video","category":"blocker","line_end":18,"severity":"low","line_start":18},{"id":"blocker:references/frames/polaroid.html:36:system-reconnaissance","file":"references/frames/polaroid.html","pattern":"System reconnaissance","snippet":"The video bounds in storyboard.json should be the OUTER polaroid bounds.","category":"blocker","line_end":36,"severity":"low","line_start":36},{"id":"blocker:references/frames/polaroid.html:40:system-reconnaissance","file":"references/frames/polaroid.html","pattern":"System reconnaissance","snippet":".frame-deco--polaroid { position: absolute; }","category":"blocker","line_end":40,"severity":"low","line_start":40},{"id":"blocker:references/frames/polaroid.html:74:system-reconnaissance","file":"references/frames/polaroid.html","pattern":"System reconnaissance","snippet":"<title>frame · polaroid (white photo frame + caveat label, no tilt)</title>","category":"blocker","line_end":74,"severity":"low","line_start":74},{"id":"blocker:references/frames/polaroid.html:95:system-reconnaissance","file":"references/frames/polaroid.html","pattern":"System reconnaissance","snippet":"padding: 8px 14px; border: 1px solid rgba(255,255,255,.45);","category":"blocker","line_end":95,"severity":"low","line_start":95},{"id":"blocker:references/layouts/overlay.html:139:system-reconnaissance","file":"references/layouts/overlay.html","pattern":"System reconnaissance","snippet":"border: 1.5px solid rgba(255, 255, 255, 0.7);","category":"blocker","line_end":139,"severity":"low","line_start":139},{"id":"blocker:references/layouts/overlay.html:148:system-reconnaissance","file":"references/layouts/overlay.html","pattern":"System reconnaissance","snippet":"border: 1px solid rgba(255, 255, 255, 0.3);","category":"blocker","line_end":148,"severity":"low","line_start":148},{"id":"blocker:references/layouts/pip.html:123:system-reconnaissance","file":"references/layouts/pip.html","pattern":"System reconnaissance","snippet":"border: 1.5px solid currentColor;","category":"blocker","line_end":123,"severity":"low","line_start":123},{"id":"blocker:references/layouts/pip.html:132:system-reconnaissance","file":"references/layouts/pip.html","pattern":"System reconnaissance","snippet":"border: 1px solid currentColor;","category":"blocker","line_end":132,"severity":"low","line_start":132},{"id":"external_commands:references/layouts/split.html:4:ruby-shell-backtick-execution","file":"references/layouts/split.html","pattern":"Ruby/shell backtick execution","snippet":"Real schema only has `card.zone` (5 enum values) — there is NO","category":"external_commands","line_end":4,"severity":"medium","line_start":4},{"id":"external_commands:references/layouts/split.html:5:ruby-shell-backtick-execution","file":"references/layouts/split.html","pattern":"Ruby/shell backtick execution","snippet":"`card.layout` field, and video bounds are composition-level","category":"external_commands","line_end":5,"severity":"medium","line_start":5},{"id":"external_commands:references/layouts/split.html:6:ruby-shell-backtick-execution","file":"references/layouts/split.html","pattern":"Ruby/shell backtick execution","snippet":"(`videoTrack.bounds`, one-time). The \"split look\" is implemented by:","category":"external_commands","line_end":6,"severity":"medium","line_start":6},{"id":"blocker:references/layouts/split.html:99:system-reconnaissance","file":"references/layouts/split.html","pattern":"System reconnaissance","snippet":"border: 1.5px solid currentColor;","category":"blocker","line_end":99,"severity":"low","line_start":99},{"id":"external_commands:references/layouts/stack.html:36:ruby-shell-backtick-execution","file":"references/layouts/stack.html","pattern":"Ruby/shell backtick execution","snippet":"- The `lower-third` zone resolves to bottom 30% by default","category":"external_commands","line_end":36,"severity":"medium","line_start":36},{"id":"external_commands:references/layouts/stack.html:37:ruby-shell-backtick-execution","file":"references/layouts/stack.html","pattern":"Ruby/shell backtick execution","snippet":"(`resolveZoneBounds`); for a 48% card adjust the GSAP tween to also","category":"external_commands","line_end":37,"severity":"medium","line_start":37},{"id":"external_commands:references/layouts/stack.html:38:ruby-shell-backtick-execution","file":"references/layouts/stack.html","pattern":"Ruby/shell backtick execution","snippet":"move card-host height, or use `zone=\"whiteboard-area\"` + custom CSS.","category":"external_commands","line_end":38,"severity":"medium","line_start":38},{"id":"blocker:references/layouts/stack.html:98:system-reconnaissance","file":"references/layouts/stack.html","pattern":"System reconnaissance","snippet":"border: 1.5px solid currentColor;","category":"blocker","line_end":98,"severity":"low","line_start":98},{"id":"blocker:references/styles/audit.html:83:system-reconnaissance","file":"references/styles/audit.html","pattern":"System reconnaissance","snippet":"border-bottom: 2px solid var(--ink);","category":"blocker","line_end":83,"severity":"low","line_start":83},{"id":"blocker:references/styles/audit.html:120:system-reconnaissance","file":"references/styles/audit.html","pattern":"System reconnaissance","snippet":"border-top: 1px solid var(--muted);","category":"blocker","line_end":120,"severity":"low","line_start":120},{"id":"blocker:references/styles/audit.html:130:system-reconnaissance","file":"references/styles/audit.html","pattern":"System reconnaissance","snippet":"border: 4px solid var(--accent);","category":"blocker","line_end":130,"severity":"low","line_start":130},{"id":"blocker:references/styles/editorial.html:16:system-reconnaissance","file":"references/styles/editorial.html","pattern":"System reconnaissance","snippet":"frames:  clean, polaroid","category":"blocker","line_end":17,"severity":"low","line_start":16},{"id":"blocker:references/styles/editorial.html:147:system-reconnaissance","file":"references/styles/editorial.html","pattern":"System reconnaissance","snippet":"border: 4px solid var(--accent2);","category":"blocker","line_end":147,"severity":"low","line_start":147},{"id":"blocker:references/styles/spotlight.html:15:system-reconnaissance","file":"references/styles/spotlight.html","pattern":"System reconnaissance","snippet":"frames:  clean (skip hairline/polaroid — clashes with glow)","category":"blocker","line_end":15,"severity":"low","line_start":15},{"id":"blocker:references/styles/terminal.html:82:system-reconnaissance","file":"references/styles/terminal.html","pattern":"System reconnaissance","snippet":"border: 2px solid #2c333e;","category":"blocker","line_end":82,"severity":"low","line_start":82},{"id":"blocker:references/styles/xhs.html:15:system-reconnaissance","file":"references/styles/xhs.html","pattern":"System reconnaissance","snippet":"frames:  clean, polaroid","category":"blocker","line_end":16,"severity":"low","line_start":15},{"id":"blocker:references/styles/xhs.html:147:system-reconnaissance","file":"references/styles/xhs.html","pattern":"System reconnaissance","snippet":"border-top: 1px solid rgba(0, 0, 0, 0.06);","category":"blocker","line_end":147,"severity":"low","line_start":147},{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`hyperframes`. There is no fixed archetype list and no prescribed card structure —","category":"external_commands","line_end":13,"severity":"medium","line_start":13},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> **Confirm the route before you build.** This skill packages an **existing talking-head clip** with","category":"external_commands","line_end":16,"severity":"medium","line_start":16},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> **Graphic-packaging sibling of `embedded-captions`.** Captions add the _spoken words_","category":"external_commands","line_end":18,"severity":"medium","line_start":18},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> Plain subtitles → `embedded-captions`. Build a video from scratch → the creation","category":"external_commands","line_end":20,"severity":"medium","line_start":20},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> workflows (`product-launch-video` / `faceless-explainer` / ...).","category":"external_commands","line_end":21,"severity":"medium","line_start":21},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `metadata.json` — duration / width / height / fps","category":"external_commands","line_end":25,"severity":"medium","line_start":25},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `audio.mp3` — extracted audio","category":"external_commands","line_end":26,"severity":"medium","line_start":26},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `transcript.json` — a flat **word array** `[{ text, start, end }, ...]` (Whisper; no `segments`, n","category":"external_commands","line_end":27,"severity":"medium","line_start":27},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `storyboard.json` — lightweight card outline (the agent's plan)","category":"external_commands","line_end":28,"severity":"medium","line_start":28},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `public/cards/card-XX.html` — one HTML fragment per card","category":"external_commands","line_end":29,"severity":"medium","line_start":29},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `public/index.html` — final assembled composition","category":"external_commands","line_end":30,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `output.mp4` — rendered video","category":"external_commands","line_end":31,"severity":"medium","line_start":31},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":38,"severity":"medium","line_start":35},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":40,"severity":"medium","line_start":38},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"This skill runs entirely on the **hyperframes** CLI plus system `ffmpeg` / `ffprobe`.","category":"external_commands","line_end":40,"severity":"medium","line_start":40},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Transcription is local **Whisper** via `hyperframes transcribe` — no third-party","category":"external_commands","line_end":48,"severity":"medium","line_start":41},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":52,"severity":"medium","line_start":48},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":56,"severity":"medium","line_start":52},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `ffmpeg` / `ffprobe` (system)","category":"external_commands","line_end":56,"severity":"medium","line_start":56},{"id":"external_commands:SKILL.md:57:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `<SKILL_DIR>/assets/fonts/*.woff2`, `<SKILL_DIR>/assets/vendor/gsap.min.js` (bundled inside this s","category":"external_commands","line_end":57,"severity":"medium","line_start":57},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Transcription needs no key — `hyperframes transcribe` runs Whisper locally (Step 4).","category":"external_commands","line_end":61,"severity":"medium","line_start":59},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Strongly recommended on macOS for `hyperframes render`:","category":"external_commands","line_end":63,"severity":"medium","line_start":61},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":65,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":69,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"All artifacts live under `videos/<project-name>/` — the same convention as the other","category":"external_commands","line_end":70,"severity":"medium","line_start":69},{"id":"external_commands:SKILL.md:70:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"video workflows (`product-launch-video` / `faceless-explainer` / `pr-to-video`). Keep","category":"external_commands","line_end":70,"severity":"medium","line_start":70},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":77,"severity":"medium","line_start":73},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":81,"severity":"medium","line_start":77},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":88,"severity":"medium","line_start":81},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":90,"severity":"medium","line_start":88},{"id":"external_commands:SKILL.md:90:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Outputs: `metadata.json` (read `width`/`height`/`duration`; fps = the `r_frame_rate`","category":"external_commands","line_end":90,"severity":"medium","line_start":90},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"fraction evaluated, e.g. `30000/1001 → 29.97`) + `audio.mp3`.","category":"external_commands","line_end":91,"severity":"medium","line_start":91},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":97,"severity":"medium","line_start":95},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":100,"severity":"medium","line_start":97},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`transcript.json` into the work dir (word `text` + `start` / `end` timestamps).","category":"external_commands","line_end":100,"severity":"medium","line_start":100},{"id":"external_commands:SKILL.md:105:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Clamp to media duration.** Whisper can return the final word's `end` a hair past the","category":"external_commands","line_end":106,"severity":"medium","line_start":105},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"actual clip length — clamp every card `endSec` and `composition.durationSeconds` to the","category":"external_commands","line_end":106,"severity":"medium","line_start":106},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`metadata.json` duration, or the render will show a black tail past the video.","category":"external_commands","line_end":111,"severity":"medium","line_start":107},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`transcript.json` is a **flat array of word objects** — `[{ \"text\": \"...\", \"start\": s, \"end\": s }, .","category":"external_commands","line_end":111,"severity":"medium","line_start":111},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Edit a word's `text` in place; **preserve its `start` / `end`** timestamps","category":"external_commands","line_end":114,"severity":"medium","line_start":114},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- There is no pre-grouped `segments` array — **group words into sentences yourself** (split at termi","category":"external_commands","line_end":119,"severity":"medium","line_start":115},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**No CLI involved.** Read `transcript.json` + `metadata.json` and design","category":"external_commands","line_end":119,"severity":"medium","line_start":119},{"id":"external_commands:SKILL.md:120:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"cards directly. `storyboard.json` is an agent-internal planning artifact","category":"external_commands","line_end":126,"severity":"medium","line_start":120},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":161,"severity":"medium","line_start":126},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":167,"severity":"medium","line_start":161},{"id":"external_commands:SKILL.md:167:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `id`                    | string                                     | stable id used in card HTML","category":"external_commands","line_end":168,"severity":"medium","line_start":167},{"id":"external_commands:SKILL.md:168:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `intent`                | string                                     | natural-language descriptio","category":"external_commands","line_end":169,"severity":"medium","line_start":168},{"id":"external_commands:SKILL.md:169:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `startSec` / `endSec`   | number                                     | times in seconds (endSec > ","category":"external_commands","line_end":169,"severity":"medium","line_start":169},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `accentIndex`           | 0 \\| 1 \\| 2 \\| 3 \\| 4                      | which of the 5 theme accent","category":"external_commands","line_end":171,"severity":"medium","line_start":170},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `zone`                  | enum (see below)                           | where on the canvas the car","category":"external_commands","line_end":172,"severity":"medium","line_start":171},{"id":"external_commands:SKILL.md:172:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `contentHints`          | object                                     | free-form bag; agent puts k","category":"external_commands","line_end":173,"severity":"medium","line_start":172},{"id":"external_commands:SKILL.md:173:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `archetype` (optional)  | string                                     | free-form label you may att","category":"external_commands","line_end":174,"severity":"medium","line_start":173},{"id":"external_commands:SKILL.md:174:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `transition` (optional) | enum: `cut` \\| `fade` \\| `slide` \\| `wipe` | declarative card-to-card tr","category":"external_commands","line_end":174,"severity":"medium","line_start":174},{"id":"external_commands:SKILL.md:176:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Five `zone` values:**","category":"external_commands","line_end":180,"severity":"medium","line_start":176},{"id":"external_commands:SKILL.md:180:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `fullscreen`      | covers whole canvas                            | hero moments, big numbers, ma","category":"external_commands","line_end":181,"severity":"medium","line_start":180},{"id":"external_commands:SKILL.md:181:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `whiteboard-area` | inset 40px margin (or 45% of portrait height)  | dense data / annotated conten","category":"external_commands","line_end":182,"severity":"medium","line_start":181},{"id":"external_commands:SKILL.md:182:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `lower-third`     | bottom 30% band                                | annotation over visible video","category":"external_commands","line_end":183,"severity":"medium","line_start":182},{"id":"external_commands:SKILL.md:183:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `side-panel`      | right 42% (landscape) or bottom 40% (portrait) | data side, video other side  ","category":"external_commands","line_end":184,"severity":"medium","line_start":183},{"id":"external_commands:SKILL.md:184:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `video-overlay`   | full canvas, expects mostly-transparent card   | annotation overlays on full-b","category":"external_commands","line_end":186,"severity":"medium","line_start":184},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"When you assemble the composition in Step 9, resolve each card's `zone`","category":"external_commands","line_end":188,"severity":"medium","line_start":186},{"id":"external_commands:SKILL.md:188:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Video bounds are set **once** at composition level (`videoTrack.bounds`);","category":"external_commands","line_end":190,"severity":"medium","line_start":188},{"id":"external_commands:SKILL.md:190:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`#video-wrap` in the composition's `<script>` (see Step 9).","category":"external_commands","line_end":190,"severity":"medium","line_start":190},{"id":"external_commands:SKILL.md:222:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":225,"severity":"medium","line_start":222},{"id":"external_commands:SKILL.md:225:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":242,"severity":"medium","line_start":225},{"id":"external_commands:SKILL.md:242:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`data-composition-src`) so the GSAP timeline per file stays manageable","category":"external_commands","line_end":243,"severity":"medium","line_start":242},{"id":"external_commands:SKILL.md:243:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"— see the `timeline_track_too_dense` HyperFrames lint warning.","category":"external_commands","line_end":245,"severity":"medium","line_start":243},{"id":"external_commands:SKILL.md:245:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`content` can be a plain string (\"Title: annualized 5.69%\\nNotes: ...\") or any JSON","category":"external_commands","line_end":248,"severity":"medium","line_start":245},{"id":"external_commands:SKILL.md:248:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Optional outro.** This skill ships **no fixed brand outro**. If the user wants a closing card, des","category":"external_commands","line_end":248,"severity":"medium","line_start":248},{"id":"external_commands:SKILL.md:260:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. **`recommendedRatio`** from the source video's aspect ratio","category":"external_commands","line_end":261,"severity":"medium","line_start":260},{"id":"external_commands:SKILL.md:261:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"(`metadata.json` width / height):","category":"external_commands","line_end":262,"severity":"medium","line_start":261},{"id":"external_commands:SKILL.md:262:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `sourceAspect = width / height`","category":"external_commands","line_end":263,"severity":"medium","line_start":262},{"id":"external_commands:SKILL.md:263:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `sourceAspect ≥ 1.5` (≥ ~3:2 wide) → recommend **`16:9`**","category":"external_commands","line_end":263,"severity":"medium","line_start":263},{"id":"external_commands:SKILL.md:264:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `sourceAspect ≤ 0.7` (≤ ~9:13 tall) → recommend **`9:16`**","category":"external_commands","line_end":264,"severity":"medium","line_start":264},{"id":"external_commands:SKILL.md:265:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `0.7 < sourceAspect < 1.5` (near-square) → recommend **`4:5`**","category":"external_commands","line_end":265,"severity":"medium","line_start":265},{"id":"external_commands:SKILL.md:270:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. **`autoCount`** from Step 6 (`max(5, round(videoSec / (basePace ×","category":"external_commands","line_end":270,"severity":"medium","line_start":270},{"id":"external_commands:SKILL.md:271:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"densityMultiplier)))`) so the \"auto\" option's label can show the","category":"external_commands","line_end":278,"severity":"medium","line_start":271},{"id":"external_commands:SKILL.md:278:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. **`AskUserQuestion`** (Claude Code, Anthropic Console) — use the","category":"external_commands","line_end":280,"severity":"medium","line_start":278},{"id":"external_commands:SKILL.md:280:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. **Other native clarification tool** (e.g. `ask_question`,","category":"external_commands","line_end":281,"severity":"medium","line_start":280},{"id":"external_commands:SKILL.md:281:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`request_user_input`, IDE-specific prompt) — use that tool with the","category":"external_commands","line_end":297,"severity":"medium","line_start":281},{"id":"external_commands:SKILL.md:297:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"the question entirely** and use: `recommendedRatio`, `layout=\"stack\"`","category":"external_commands","line_end":297,"severity":"medium","line_start":297},{"id":"external_commands:SKILL.md:298:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"(safest cross-ratio default), `style` chosen from transcript tone in","category":"external_commands","line_end":299,"severity":"medium","line_start":298},{"id":"external_commands:SKILL.md:299:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"the most neutral group (editorial/data), `autoCount`. Tell the user","category":"external_commands","line_end":302,"severity":"medium","line_start":299},{"id":"external_commands:SKILL.md:302:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Channel A — native `AskUserQuestion`:**","category":"external_commands","line_end":304,"severity":"medium","line_start":302},{"id":"external_commands:SKILL.md:304:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":339,"severity":"medium","line_start":304},{"id":"external_commands:SKILL.md:339:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"// rows below, so picking a group resolves both `style` group AND the","category":"external_commands","line_end":359,"severity":"medium","line_start":339},{"id":"external_commands:SKILL.md:359:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":361,"severity":"medium","line_start":359},{"id":"external_commands:SKILL.md:361:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**About \"Other\"** — `AskUserQuestion` automatically adds an \"Other\" option to the card count questio","category":"external_commands","line_end":367,"severity":"medium","line_start":361},{"id":"external_commands:SKILL.md:367:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":395,"severity":"medium","line_start":367},{"id":"external_commands:SKILL.md:395:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":399,"severity":"medium","line_start":395},{"id":"external_commands:SKILL.md:399:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Accept loose formats: `\"1A 2C 3B 4A\"`, `\"A C B A\"`, `\"16:9 / pip /","category":"external_commands","line_end":399,"severity":"medium","line_start":399},{"id":"external_commands:SKILL.md:400:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"data / auto\"`, full sentences, or `default`.","category":"external_commands","line_end":400,"severity":"medium","line_start":400},{"id":"external_commands:SKILL.md:408:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"exact `storyboard.composition.width / height` values to write:","category":"external_commands","line_end":412,"severity":"medium","line_start":408},{"id":"external_commands:SKILL.md:412:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `16:9`      | **1920 × 1080**            | `\"landscape\"`                                          ","category":"external_commands","line_end":412,"severity":"medium","line_start":412},{"id":"external_commands:SKILL.md:413:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `9:16`      | **1080 × 1920**            | `\"portrait\"`                                           ","category":"external_commands","line_end":413,"severity":"medium","line_start":413},{"id":"external_commands:SKILL.md:414:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `4:5`       | **1080 × 1350**            | `\"portrait\"` (schema treats 4:5 as portrait — height > ","category":"external_commands","line_end":414,"severity":"medium","line_start":414},{"id":"external_commands:SKILL.md:416:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"For **4:5 bounds inside `references/layouts/*.html`** — those files","category":"external_commands","line_end":420,"severity":"medium","line_start":416},{"id":"external_commands:SKILL.md:420:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`1350/1920 ≈ 0.703`. Example: `overlay` portrait card =","category":"external_commands","line_end":420,"severity":"medium","line_start":420},{"id":"external_commands:SKILL.md:421:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`{ x: 24, y: 1280, w: 1032, h: 564 }` → 4:5 card =","category":"external_commands","line_end":422,"severity":"medium","line_start":421},{"id":"external_commands:SKILL.md:422:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`{ x: 24, y: round(1280 × 0.703), w: 1032, h: round(564 × 0.703) }`","category":"external_commands","line_end":423,"severity":"medium","line_start":422},{"id":"external_commands:SKILL.md:423:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"= `{ x: 24, y: 900, w: 1032, h: 397 }`.","category":"external_commands","line_end":428,"severity":"medium","line_start":423},{"id":"external_commands:SKILL.md:428:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"inside the group, send a second `AskUserQuestion` with those 2–4","category":"external_commands","line_end":435,"severity":"medium","line_start":428},{"id":"external_commands:SKILL.md:435:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Auto (recommended)      | the `autoCount` you already computed      |","category":"external_commands","line_end":436,"severity":"medium","line_start":435},{"id":"external_commands:SKILL.md:436:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Fewer                   | `max(5, round(autoCount × 0.6))`          |","category":"external_commands","line_end":437,"severity":"medium","line_start":436},{"id":"external_commands:SKILL.md:437:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| More                    | `round(autoCount × 1.5)` (no upper clamp) |","category":"external_commands","line_end":438,"severity":"medium","line_start":437},{"id":"external_commands:SKILL.md:438:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Other = \"<n>\" (integer) | `max(5, parseInt(n))`                     |","category":"external_commands","line_end":439,"severity":"medium","line_start":438},{"id":"external_commands:SKILL.md:439:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Other = anything else   | fall back to `autoCount`                  |","category":"external_commands","line_end":446,"severity":"medium","line_start":439},{"id":"external_commands:SKILL.md:446:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `split`   | `polaroid`                                                  | `hairline`              ","category":"external_commands","line_end":446,"severity":"medium","line_start":446},{"id":"external_commands:SKILL.md:447:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `stack`   | `polaroid`                                                  | `hairline`              ","category":"external_commands","line_end":447,"severity":"medium","line_start":447},{"id":"external_commands:SKILL.md:448:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `pip`     | `clean` (pip pill already has chrome)                       | `clean`                 ","category":"external_commands","line_end":448,"severity":"medium","line_start":448},{"id":"external_commands:SKILL.md:449:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `overlay` | `clean` (full-bleed forbids deco frames)                    | `clean`                 ","category":"external_commands","line_end":449,"severity":"medium","line_start":449},{"id":"external_commands:SKILL.md:457:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"matching `references/<dim>/<key>.html` for tokens and structure.","category":"external_commands","line_end":469,"severity":"medium","line_start":457},{"id":"external_commands:SKILL.md:469:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`object-fit: cover` and is clipped to `#video-wrap`'s tween bounds.","category":"external_commands","line_end":469,"severity":"medium","line_start":469},{"id":"external_commands:SKILL.md:474:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **`card.zone` per card**: derive from your chosen composition layout","category":"external_commands","line_end":478,"severity":"medium","line_start":474},{"id":"external_commands:SKILL.md:478:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **`accentIndex` per card**: each card pulls one of the 5 theme accent","category":"external_commands","line_end":482,"severity":"medium","line_start":478},{"id":"external_commands:SKILL.md:482:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`data-anim` kinds (see the table later) and stick to them so the","category":"external_commands","line_end":485,"severity":"medium","line_start":482},{"id":"external_commands:SKILL.md:485:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Pick from these `themeId` palettes (use them as `--accent-N` /","category":"external_commands","line_end":485,"severity":"medium","line_start":485},{"id":"external_commands:SKILL.md:486:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`--bg` / `--text` CSS variables in your composition `<style>` block):","category":"external_commands","line_end":486,"severity":"medium","line_start":486},{"id":"external_commands:SKILL.md:490:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| classic | `#1971c2 #e03131 #2f9e44 #e8590c #9c36b5` | `#FFF9E3` (paper) | `#1e1e1e` |","category":"external_commands","line_end":490,"severity":"medium","line_start":490},{"id":"external_commands:SKILL.md:491:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| noir    | `#4cc9f0 #f72585 #4ade80 #fb923c #a78bfa` | `#1a1a1a`         | `#f1f1f1` |","category":"external_commands","line_end":491,"severity":"medium","line_start":491},{"id":"external_commands:SKILL.md:492:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| mint    | `#0077b6 #d62828 #2d6a4f #e76f51 #7209b7` | `#e8faf0`         | `#1b4332` |","category":"external_commands","line_end":492,"severity":"medium","line_start":492},{"id":"external_commands:SKILL.md:493:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| craft   | `#bf5700 #d62728 #6c757d #e9b54a #3d5a80` | `#f6efe1`         | `#2d2d2d` |","category":"external_commands","line_end":493,"severity":"medium","line_start":493},{"id":"external_commands:SKILL.md:494:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| slate   | `#0ea5e9 #ef4444 #22c55e #f97316 #a855f7` | `#1e293b`         | `#f1f5f9` |","category":"external_commands","line_end":494,"severity":"medium","line_start":494},{"id":"external_commands:SKILL.md:495:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| mono    | `#000 #555 #888 #aaa #ccc`                | `#fff`            | `#000`    |","category":"external_commands","line_end":495,"severity":"medium","line_start":495},{"id":"external_commands:SKILL.md:497:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Available fonts (woff2 in `<SKILL_DIR>/assets/fonts/`, staged to work dir in Step 9): `Caveat` (hand","category":"external_commands","line_end":497,"severity":"medium","line_start":497},{"id":"external_commands:SKILL.md:498:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`LXGW WenKai TC` (Chinese hand-script), `Inter` (modern sans), `Virgil`","category":"external_commands","line_end":498,"severity":"medium","line_start":498},{"id":"external_commands:SKILL.md:499:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"(geometric hand). Reference via `@font-face` or `font-family` directly.","category":"external_commands","line_end":499,"severity":"medium","line_start":499},{"id":"external_commands:SKILL.md:501:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"For inspiration on visual patterns, `<SKILL_DIR>/references/styles/`","category":"external_commands","line_end":509,"severity":"medium","line_start":501},{"id":"external_commands:SKILL.md:509:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Beyond the composition-level `themeId`, the skill ships a richer **reference","category":"external_commands","line_end":510,"severity":"medium","line_start":509},{"id":"external_commands:SKILL.md:510:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"library** at `<SKILL_DIR>/references/` covering three **orthogonal**","category":"external_commands","line_end":513,"severity":"medium","line_start":510},{"id":"external_commands:SKILL.md:513:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":516,"severity":"medium","line_start":513},{"id":"external_commands:SKILL.md:516:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":520,"severity":"medium","line_start":516},{"id":"external_commands:SKILL.md:520:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| **style**  | `academic` `editorial` `minimal` `spotlight` `geom` `whiteboard` `audit` `terminal` `","category":"external_commands","line_end":520,"severity":"medium","line_start":520},{"id":"external_commands:SKILL.md:521:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| **layout** | `split` `stack` `pip` `overlay`                                                      ","category":"external_commands","line_end":521,"severity":"medium","line_start":521},{"id":"external_commands:SKILL.md:522:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| **frame**  | `clean` `hairline` `polaroid`                                                        ","category":"external_commands","line_end":522,"severity":"medium","line_start":522},{"id":"external_commands:SKILL.md:524:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Read `<SKILL_DIR>/references/DESIGN_INDEX.md`","category":"external_commands","line_end":529,"severity":"medium","line_start":524},{"id":"external_commands:SKILL.md:529:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/styles/<key>.html` — self-contained card fragment with that","category":"external_commands","line_end":531,"severity":"medium","line_start":529},{"id":"external_commands:SKILL.md:531:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"takeaway. Copy the `.card[data-card-id=\"ref-<key>\"]` style block, rename","category":"external_commands","line_end":534,"severity":"medium","line_start":531},{"id":"external_commands:SKILL.md:534:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/layouts/<key>.html` — exact `videoBounds` + `cardBounds` for","category":"external_commands","line_end":534,"severity":"medium","line_start":534},{"id":"external_commands:SKILL.md:536:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`storyboard.json`'s per-card `layout` field.","category":"external_commands","line_end":536,"severity":"medium","line_start":536},{"id":"external_commands:SKILL.md:537:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/frames/<key>.html` — decorative HTML to add as a sibling of","category":"external_commands","line_end":538,"severity":"medium","line_start":537},{"id":"external_commands:SKILL.md:538:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`#video-wrap`, plus placement instructions for the composition CSS.","category":"external_commands","line_end":540,"severity":"medium","line_start":538},{"id":"external_commands:SKILL.md:540:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Pick `style × layout × frame` **per card** — you can change all three","category":"external_commands","line_end":542,"severity":"medium","line_start":540},{"id":"external_commands:SKILL.md:542:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"open `editorial × overlay × clean`, switch to `audit × split × hairline`","category":"external_commands","line_end":542,"severity":"medium","line_start":542},{"id":"external_commands:SKILL.md:543:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"for the data card, close on `whiteboard × pip × polaroid`.","category":"external_commands","line_end":546,"severity":"medium","line_start":543},{"id":"external_commands:SKILL.md:546:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"they don't need to be declared in `storyboard.composition`; they live","category":"external_commands","line_end":547,"severity":"medium","line_start":546},{"id":"external_commands:SKILL.md:547:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"inside each card's HTML. The `themeId` field can still pick a","category":"external_commands","line_end":556,"severity":"medium","line_start":547},{"id":"external_commands:SKILL.md:556:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **`card.zone`** (declared in `storyboard.json`) — one of the 5 schema","category":"external_commands","line_end":556,"severity":"medium","line_start":556},{"id":"external_commands:SKILL.md:558:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"you write the card-host wrapper's inline `style` in Step 9.","category":"external_commands","line_end":559,"severity":"medium","line_start":558},{"id":"external_commands:SKILL.md:559:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **`#video-wrap` bounds at this card's time window** (declared","category":"external_commands","line_end":561,"severity":"medium","line_start":559},{"id":"external_commands:SKILL.md:561:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`#video-wrap` to a target rect for each layout transition.","category":"external_commands","line_end":563,"severity":"medium","line_start":561},{"id":"external_commands:SKILL.md:563:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Schema does NOT store per-card video bounds. `videoTrack.bounds` is","category":"external_commands","line_end":566,"severity":"medium","line_start":563},{"id":"external_commands:SKILL.md:566:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`index.html`. There is no `card.layout` field — earlier versions of this","category":"external_commands","line_end":566,"severity":"medium","line_start":566},{"id":"external_commands:SKILL.md:567:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"doc invented one; the real schema only has `card.zone`.","category":"external_commands","line_end":569,"severity":"medium","line_start":567},{"id":"external_commands:SKILL.md:569:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**4 composition layouts** (from `references/layouts/`) — each is a","category":"external_commands","line_end":570,"severity":"medium","line_start":569},{"id":"external_commands:SKILL.md:570:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"recipe pairing a `zone` with a `#video-wrap` tween target:","category":"external_commands","line_end":570,"severity":"medium","line_start":570},{"id":"external_commands:SKILL.md:572:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| composition layout | recommended `card.zone` | GSAP target for `#video-wrap` (landscape 1920×1080)","category":"external_commands","line_end":572,"severity":"medium","line_start":572},{"id":"external_commands:SKILL.md:574:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `split`            | `side-panel`            | `{ left: 960, top: 0, width: 960, height: 1080 }`  ","category":"external_commands","line_end":574,"severity":"medium","line_start":574},{"id":"external_commands:SKILL.md:575:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `stack`            | `lower-third`           | `{ left: 14, top: 14, width: 1892, height: 548 }` (","category":"external_commands","line_end":575,"severity":"medium","line_start":575},{"id":"external_commands:SKILL.md:576:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `pip`              | `fullscreen`            | `{ left: 1480, top: 760, width: 400, height: 300 }`","category":"external_commands","line_end":576,"severity":"medium","line_start":576},{"id":"external_commands:SKILL.md:577:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `overlay`          | `video-overlay`         | `{ left: 0, top: 0, width: 1920, height: 1080 }` (f","category":"external_commands","line_end":577,"severity":"medium","line_start":577},{"id":"external_commands:SKILL.md:579:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"For 4:5 (1080×1350), scale portrait y/h values by `1350/1920 ≈ 0.703`","category":"external_commands","line_end":580,"severity":"medium","line_start":579},{"id":"external_commands:SKILL.md:580:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"(see Step 7.0 Channel A / Channel B `recommendedRatio` resolution","category":"external_commands","line_end":583,"severity":"medium","line_start":580},{"id":"external_commands:SKILL.md:583:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Other zone values for one-off variants** (still uses `card.zone`; no","category":"external_commands","line_end":586,"severity":"medium","line_start":583},{"id":"external_commands:SKILL.md:586:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `zone`            | resolved bounds                                        | common use           ","category":"external_commands","line_end":588,"severity":"medium","line_start":586},{"id":"external_commands:SKILL.md:588:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `fullscreen`      | covers whole canvas                                    | hero card, video twee","category":"external_commands","line_end":589,"severity":"medium","line_start":588},{"id":"external_commands:SKILL.md:589:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `whiteboard-area` | inset 40px margin (landscape) or bottom 45% (portrait) | dense data card, free","category":"external_commands","line_end":590,"severity":"medium","line_start":589},{"id":"external_commands:SKILL.md:590:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `lower-third`     | bottom 30% band                                        | talking-head annotati","category":"external_commands","line_end":591,"severity":"medium","line_start":590},{"id":"external_commands:SKILL.md:591:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `side-panel`      | right 42% (landscape) or bottom 40% (portrait)         | sidebar / \"split\" rec","category":"external_commands","line_end":592,"severity":"medium","line_start":591},{"id":"external_commands:SKILL.md:592:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `video-overlay`   | full canvas; expect transparent card root              | glass overlay on full","category":"external_commands","line_end":594,"severity":"medium","line_start":592},{"id":"external_commands:SKILL.md:594:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"You can mix recipes per card — choose `card.zone` based on what suits","category":"external_commands","line_end":595,"severity":"medium","line_start":594},{"id":"external_commands:SKILL.md:595:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"the moment, then write the GSAP tween for `#video-wrap` between cards.","category":"external_commands","line_end":599,"severity":"medium","line_start":595},{"id":"external_commands:SKILL.md:599:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`storyboard.json` is an agent-internal planning artifact — no CLI","category":"external_commands","line_end":607,"severity":"medium","line_start":599},{"id":"external_commands:SKILL.md:607:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `schemaVersion: 3`","category":"external_commands","line_end":608,"severity":"medium","line_start":607},{"id":"external_commands:SKILL.md:608:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `composition: { fps, width, height, durationSeconds, layout, themeId, seed }` — note `durationSeco","category":"external_commands","line_end":608,"severity":"medium","line_start":608},{"id":"external_commands:SKILL.md:609:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `videoTrack: { sourcePath, startSec, endSec, bounds? }` — video bounds default to full canvas","category":"external_commands","line_end":610,"severity":"medium","line_start":609},{"id":"external_commands:SKILL.md:610:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `subtitles: { enabled, ... }`","category":"external_commands","line_end":611,"severity":"medium","line_start":610},{"id":"external_commands:SKILL.md:611:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `cards[]` — each card has the 6 required fields: `id`, `intent`, `startSec`, `endSec`, `accentInde","category":"external_commands","line_end":611,"severity":"medium","line_start":611},{"id":"external_commands:SKILL.md:615:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Card times stay inside `composition.durationSeconds` and should not overlap unless intentional (us","category":"external_commands","line_end":615,"severity":"medium","line_start":615},{"id":"external_commands:SKILL.md:616:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Visual details live in card HTML fragments (Step 8), NOT in `contentHints`. `contentHints` is your","category":"external_commands","line_end":616,"severity":"medium","line_start":616},{"id":"external_commands:SKILL.md:618:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Agent-side decisions like \"I picked overlay × geom × clean\" do NOT belong in `storyboard.json` — k","category":"external_commands","line_end":622,"severity":"medium","line_start":618},{"id":"external_commands:SKILL.md:622:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"recipe, pip recipe, or any `card.zone = 'lower-third' | 'video-overlay'`","category":"external_commands","line_end":623,"severity":"medium","line_start":622},{"id":"external_commands:SKILL.md:623:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"moment), the card's `.root` MUST NOT paint a full opaque background —","category":"external_commands","line_end":626,"severity":"medium","line_start":623},{"id":"external_commands:SKILL.md:626:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```css","category":"external_commands","line_end":643,"severity":"medium","line_start":626},{"id":"external_commands:SKILL.md:643:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":645,"severity":"medium","line_start":643},{"id":"external_commands:SKILL.md:645:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"For `side-panel`-zone cards (split recipe), the card-host is already","category":"external_commands","line_end":651,"severity":"medium","line_start":645},{"id":"external_commands:SKILL.md:651:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Create `$WORK_DIR/public/cards/{card-id}.html` for each card. Each file","category":"external_commands","line_end":656,"severity":"medium","line_start":651},{"id":"external_commands:SKILL.md:656:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```html","category":"external_commands","line_end":692,"severity":"medium","line_start":656},{"id":"external_commands:SKILL.md:692:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":694,"severity":"medium","line_start":692},{"id":"external_commands:SKILL.md:694:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Hard rules** (`hyperframes` lint will reject violations):","category":"external_commands","line_end":696,"severity":"medium","line_start":694},{"id":"external_commands:SKILL.md:696:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Single root `<div class=\"card\" data-card-id=\"{cardId}\">`","category":"external_commands","line_end":697,"severity":"medium","line_start":696},{"id":"external_commands:SKILL.md:697:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Inline `<style>` rules MUST be prefixed with the scope selector above","category":"external_commands","line_end":698,"severity":"medium","line_start":697},{"id":"external_commands:SKILL.md:698:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **No `<script>` tags**","category":"external_commands","line_end":699,"severity":"medium","line_start":698},{"id":"external_commands:SKILL.md:699:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **No external URLs** in `src=` / `href=` (no CDN, no remote fonts)","category":"external_commands","line_end":699,"severity":"medium","line_start":699},{"id":"external_commands:SKILL.md:700:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **No inline event handlers** (`onclick=` etc.)","category":"external_commands","line_end":701,"severity":"medium","line_start":700},{"id":"external_commands:SKILL.md:701:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- All assets via relative paths into the same `public/` directory","category":"external_commands","line_end":702,"severity":"medium","line_start":701},{"id":"external_commands:SKILL.md:702:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Colors via `var(--accent-N)` etc. for portability across themes","category":"external_commands","line_end":704,"severity":"medium","line_start":702},{"id":"external_commands:SKILL.md:704:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Animations are declared, not coded.** Use `data-anim-*` attributes","category":"external_commands","line_end":705,"severity":"medium","line_start":704},{"id":"external_commands:SKILL.md:705:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"only; never write `<script>` to animate. You compile every `data-anim-*`","category":"external_commands","line_end":705,"severity":"medium","line_start":705},{"id":"external_commands:SKILL.md:710:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"The 10 `references/styles/*.html` are sized for a **1920×1080 landscape**","category":"external_commands","line_end":711,"severity":"medium","line_start":710},{"id":"external_commands:SKILL.md:711:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"preview. When `storyboard.layout = \"portrait\"` (1080×1920, the dominant","category":"external_commands","line_end":725,"severity":"medium","line_start":711},{"id":"external_commands:SKILL.md:725:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Rule of thumb:** `portraitPx = round(landscapePx × 1.3)`, then floor","category":"external_commands","line_end":734,"severity":"medium","line_start":725},{"id":"external_commands:SKILL.md:734:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"prefer a `@container` query on the card root over hard-coding sizes:","category":"external_commands","line_end":736,"severity":"medium","line_start":734},{"id":"external_commands:SKILL.md:736:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```css","category":"external_commands","line_end":746,"severity":"medium","line_start":736},{"id":"external_commands:SKILL.md:746:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":749,"severity":"medium","line_start":746},{"id":"external_commands:SKILL.md:749:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"table column that matches the storyboard's `layout` field.","category":"external_commands","line_end":751,"severity":"medium","line_start":749},{"id":"external_commands:SKILL.md:751:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"#### Available `data-anim` Kinds","category":"external_commands","line_end":755,"severity":"medium","line_start":751},{"id":"external_commands:SKILL.md:755:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `fade-in`       | enter               | `at`, `duration`, `ease?`                                 ","category":"external_commands","line_end":755,"severity":"medium","line_start":755},{"id":"external_commands:SKILL.md:756:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `fade-out`      | exit                | `at`, `duration`, `ease?`                                 ","category":"external_commands","line_end":756,"severity":"medium","line_start":756},{"id":"external_commands:SKILL.md:757:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `slide-in`      | slide enter         | `at`, `duration`, `from=left\\|right\\|top\\|bottom`, `distan","category":"external_commands","line_end":757,"severity":"medium","line_start":757},{"id":"external_commands:SKILL.md:758:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `kinetic-chars` | per-char pop        | `at`, `duration`, `stagger`, `pattern=pop\\|fade` — element","category":"external_commands","line_end":758,"severity":"medium","line_start":758},{"id":"external_commands:SKILL.md:759:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `typewriter`    | per-char fade       | same as kinetic-chars but slower default stagger          ","category":"external_commands","line_end":760,"severity":"medium","line_start":759},{"id":"external_commands:SKILL.md:760:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `count-up`      | animate number      | `at`, `duration`, `from`, `to`, `format=.0f\\|.1f\\|.2f\\|,d`","category":"external_commands","line_end":760,"severity":"medium","line_start":760},{"id":"external_commands:SKILL.md:761:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `draw-path`     | SVG path reveal     | `at`, `duration` — element should be a `<path>`           ","category":"external_commands","line_end":761,"severity":"medium","line_start":761},{"id":"external_commands:SKILL.md:762:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `grow-y`        | bar height          | `at`, `duration`, `target-h` (px) — element starts `height","category":"external_commands","line_end":762,"severity":"medium","line_start":762},{"id":"external_commands:SKILL.md:763:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `grow-x`        | bar width           | `at`, `duration`, `target-w` (px) — element starts `width:","category":"external_commands","line_end":763,"severity":"medium","line_start":763},{"id":"external_commands:SKILL.md:764:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `scale-pop`     | pop entrance        | `at`, `duration`                                          ","category":"external_commands","line_end":764,"severity":"medium","line_start":764},{"id":"external_commands:SKILL.md:765:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `blur-in`       | unfocused → focused | `at`, `duration`                                          ","category":"external_commands","line_end":765,"severity":"medium","line_start":765},{"id":"external_commands:SKILL.md:766:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `mask-reveal`   | clip reveal         | `at`, `duration`, `direction=left\\|right\\|top\\|bottom`    ","category":"external_commands","line_end":766,"severity":"medium","line_start":766},{"id":"external_commands:SKILL.md:767:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `morph-to`      | tween any CSS       | `at`, `duration`, `props='{...JSON...}'`                  ","category":"external_commands","line_end":767,"severity":"medium","line_start":767},{"id":"external_commands:SKILL.md:769:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`data-anim-at` is **seconds relative to the card's startSec** — when you","category":"external_commands","line_end":771,"severity":"medium","line_start":769},{"id":"external_commands:SKILL.md:771:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"card's `startSec` to get the absolute time and quantize to 1/fps.","category":"external_commands","line_end":775,"severity":"medium","line_start":771},{"id":"external_commands:SKILL.md:775:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Stage the assets and write `$WORK_DIR/public/index.html`:","category":"external_commands","line_end":777,"severity":"medium","line_start":775},{"id":"external_commands:SKILL.md:777:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":790,"severity":"medium","line_start":777},{"id":"external_commands:SKILL.md:790:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":794,"severity":"medium","line_start":790},{"id":"external_commands:SKILL.md:794:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```html","category":"external_commands","line_end":852,"severity":"medium","line_start":794},{"id":"external_commands:SKILL.md:852:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"resolving fonts, so a var-only chain triggers `font_family_without_font_face`","category":"external_commands","line_end":1051,"severity":"medium","line_start":852},{"id":"external_commands:SKILL.md:1051:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":1055,"severity":"medium","line_start":1051},{"id":"external_commands:SKILL.md:1055:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Compile each `data-anim` attribute into a GSAP statement. Times are","category":"external_commands","line_end":1057,"severity":"medium","line_start":1055},{"id":"external_commands:SKILL.md:1057:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Selector is `.card[data-card-id=\"X\"] #elementId`.","category":"external_commands","line_end":1061,"severity":"medium","line_start":1057},{"id":"external_commands:SKILL.md:1061:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `fade-in`                       | `tl.fromTo(SEL, { opacity: 0 }, { opacity: 1, duration: D, ease:","category":"external_commands","line_end":1061,"severity":"medium","line_start":1061},{"id":"external_commands:SKILL.md:1062:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `fade-out`                      | `tl.to(SEL, { opacity: 0, duration: D, ease: 'power2.in' }, T);`","category":"external_commands","line_end":1062,"severity":"medium","line_start":1062},{"id":"external_commands:SKILL.md:1063:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `slide-in` (from=left, dist=80) | `tl.fromTo(SEL, { opacity: 0, x: -80 }, { opacity: 1, x: 0, dura","category":"external_commands","line_end":1063,"severity":"medium","line_start":1063},{"id":"external_commands:SKILL.md:1064:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `kinetic-chars` (pop)           | `tl.from(SEL + ' .char', { opacity: 0, y: 8, scale: 0.8, duratio","category":"external_commands","line_end":1064,"severity":"medium","line_start":1064},{"id":"external_commands:SKILL.md:1065:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `count-up`                      | `(function(){const o={v:FROM};tl.to(o,{v:TO,duration:D,ease:'pow","category":"external_commands","line_end":1065,"severity":"medium","line_start":1065},{"id":"external_commands:SKILL.md:1066:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `draw-path`                     | `(function(){const el=document.querySelector(SEL);if(el){const L","category":"external_commands","line_end":1066,"severity":"medium","line_start":1066},{"id":"external_commands:SKILL.md:1067:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `grow-x` (target-w=W)           | `tl.fromTo(SEL, { width: 0 }, { width: W, duration: D, ease: 'po","category":"external_commands","line_end":1067,"severity":"medium","line_start":1067},{"id":"external_commands:SKILL.md:1068:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `grow-y` (target-h=H)           | `tl.fromTo(SEL, { height: 0 }, { height: H, duration: D, ease: '","category":"external_commands","line_end":1068,"severity":"medium","line_start":1068},{"id":"external_commands:SKILL.md:1069:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `scale-pop`                     | `tl.fromTo(SEL, { opacity: 0, scale: 0.6 }, { opacity: 1, scale:","category":"external_commands","line_end":1069,"severity":"medium","line_start":1069},{"id":"external_commands:SKILL.md:1070:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `mask-reveal` (direction=left)  | `tl.fromTo(SEL, { clipPath: 'inset(0 100% 0 0)' }, { clipPath: '","category":"external_commands","line_end":1070,"severity":"medium","line_start":1070},{"id":"external_commands:SKILL.md:1072:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Quantize: `T = Math.round(absSec * fps) / fps`. At 30fps the smallest","category":"external_commands","line_end":1073,"severity":"medium","line_start":1072},{"id":"external_commands:SKILL.md:1073:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"step is `1/30 ≈ 0.0333s`; rounding to 4 decimals (`.toFixed(4)`) is fine","category":"external_commands","line_end":1073,"severity":"medium","line_start":1073},{"id":"external_commands:SKILL.md:1076:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"#### Video Framing Reference (per `layout` value)","category":"external_commands","line_end":1078,"severity":"medium","line_start":1076},{"id":"external_commands:SKILL.md:1078:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"The selector for the video container is `#video-wrap`. Animate its","category":"external_commands","line_end":1079,"severity":"medium","line_start":1078},{"id":"external_commands:SKILL.md:1079:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"bounds between cards using `tl.to('#video-wrap', { ...bounds }, T)`.","category":"external_commands","line_end":1081,"severity":"medium","line_start":1079},{"id":"external_commands:SKILL.md:1081:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"layout. Pick a transition duration of 0.5–0.7s with `ease: 'power2.inOut'`.","category":"external_commands","line_end":1083,"severity":"medium","line_start":1081},{"id":"external_commands:SKILL.md:1083:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Decorative frames** (`clean` / `hairline` / `polaroid`) sit as a","category":"external_commands","line_end":1083,"severity":"medium","line_start":1083},{"id":"external_commands:SKILL.md:1084:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**sibling** of `#video-wrap` and follow it through layout transitions.","category":"external_commands","line_end":1086,"severity":"medium","line_start":1084},{"id":"external_commands:SKILL.md:1086:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"[`references/frames/`](references/frames/) for each frame's placement","category":"external_commands","line_end":1088,"severity":"medium","line_start":1086},{"id":"external_commands:SKILL.md:1088:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`overlay` layout suppresses decorative frames (the full-bleed video","category":"external_commands","line_end":1091,"severity":"medium","line_start":1088},{"id":"external_commands:SKILL.md:1091:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"top of `split` / `stack`.","category":"external_commands","line_end":1091,"severity":"medium","line_start":1091},{"id":"external_commands:SKILL.md:1093:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**GSAP target lookup table** for `#video-wrap` per composition layout","category":"external_commands","line_end":1094,"severity":"medium","line_start":1093},{"id":"external_commands:SKILL.md:1094:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"(landscape 1920×1080 — for portrait & 4:5 see `references/layouts/*.html`","category":"external_commands","line_end":1097,"severity":"medium","line_start":1094},{"id":"external_commands:SKILL.md:1097:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| composition layout                   | typical card.zone | `#video-wrap` GSAP target              ","category":"external_commands","line_end":1099,"severity":"medium","line_start":1097},{"id":"external_commands:SKILL.md:1099:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `split`                              | `side-panel`      | `{ left: 960, top: 0, width: 960, heigh","category":"external_commands","line_end":1099,"severity":"medium","line_start":1099},{"id":"external_commands:SKILL.md:1100:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `stack`                              | `lower-third`     | `{ left: 14, top: 14, width: 1892, heig","category":"external_commands","line_end":1100,"severity":"medium","line_start":1100},{"id":"external_commands:SKILL.md:1101:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `pip` (bottom-right)                 | `fullscreen`      | `{ left: 1480, top: 760, width: 400, he","category":"external_commands","line_end":1101,"severity":"medium","line_start":1101},{"id":"external_commands:SKILL.md:1102:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `pip` (top-left)                     | `fullscreen`      | `{ left: 40, top: 40, width: 400, heigh","category":"external_commands","line_end":1102,"severity":"medium","line_start":1102},{"id":"external_commands:SKILL.md:1103:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `overlay` (video full-bleed)         | `video-overlay`   | `{ left: 0, top: 0, width: 1920, height","category":"external_commands","line_end":1103,"severity":"medium","line_start":1103},{"id":"external_commands:SKILL.md:1104:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| **hide video** (pure-graphic moment) | `fullscreen`      | `{ opacity: 0 }` (or move off-canvas)  ","category":"external_commands","line_end":1104,"severity":"medium","line_start":1104},{"id":"external_commands:SKILL.md:1109:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```js","category":"external_commands","line_end":1125,"severity":"medium","line_start":1109},{"id":"external_commands:SKILL.md:1125:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":1127,"severity":"medium","line_start":1125},{"id":"external_commands:SKILL.md:1127:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Card-host bounds match the zone**. Resolve the card's `zone` into","category":"external_commands","line_end":1129,"severity":"medium","line_start":1127},{"id":"external_commands:SKILL.md:1130:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"height:Hpx;...\"`. For `video-overlay` zone (overlay recipe), the","category":"external_commands","line_end":1130,"severity":"medium","line_start":1130},{"id":"external_commands:SKILL.md:1131:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"card-host fills the full canvas — your CSS inside `.card .root`","category":"external_commands","line_end":1139,"severity":"medium","line_start":1131},{"id":"external_commands:SKILL.md:1139:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Register one paused master timeline as `window.__timelines[\"talking-head-recut\"]`.","category":"external_commands","line_end":1140,"severity":"medium","line_start":1139},{"id":"external_commands:SKILL.md:1140:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Build timelines synchronously at page load; no `async`, `setTimeout`, Promises, or media `play()` ","category":"external_commands","line_end":1140,"severity":"medium","line_start":1140},{"id":"external_commands:SKILL.md:1141:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Do not use `Math.random()` or `Date.now()` in render paths.","category":"external_commands","line_end":1141,"severity":"medium","line_start":1141},{"id":"external_commands:SKILL.md:1142:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Do not use `repeat: -1`; calculate finite repeats from the video duration.","category":"external_commands","line_end":1143,"severity":"medium","line_start":1142},{"id":"external_commands:SKILL.md:1143:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Prefer GSAP transforms and opacity (`x`, `y`, `scale`, `rotation`, `opacity`) over layout properti","category":"external_commands","line_end":1143,"severity":"medium","line_start":1143},{"id":"external_commands:SKILL.md:1144:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Animate wrappers such as `#video-wrap`, not the video element dimensions directly.","category":"external_commands","line_end":1146,"severity":"medium","line_start":1144},{"id":"external_commands:SKILL.md:1146:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Use `data-track-index`, not `data-layer`; use `data-duration`, not `data-end`.","category":"external_commands","line_end":1146,"severity":"medium","line_start":1146},{"id":"external_commands:SKILL.md:1147:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Every timed element (`card-host`, sub-composition, etc.) MUST include `class=\"clip\"` alongside its","category":"external_commands","line_end":1147,"severity":"medium","line_start":1147},{"id":"external_commands:SKILL.md:1148:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- For body / global `font-family`, list **concrete font names** (`'Inter', 'Caveat', ...`) — not a C","category":"external_commands","line_end":1148,"severity":"medium","line_start":1148},{"id":"external_commands:SKILL.md:1152:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":1158,"severity":"medium","line_start":1152},{"id":"external_commands:SKILL.md:1158:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":1160,"severity":"medium","line_start":1158},{"id":"external_commands:SKILL.md:1160:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`hyperframes render <dir>` reads `<dir>/index.html` and produces the MP4.","category":"external_commands","line_end":1160,"severity":"medium","line_start":1160},{"id":"external_commands:SKILL.md:1161:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"The flag `PRODUCER_BROWSER_GPU_MODE=hardware` (or `--browser-gpu`) is","category":"external_commands","line_end":1161,"severity":"medium","line_start":1161},{"id":"external_commands:SKILL.md:1168:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":1170,"severity":"medium","line_start":1168},{"id":"external_commands:SKILL.md:1170:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":1177,"severity":"medium","line_start":1170},{"id":"external_commands:SKILL.md:1177:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `storyboard.json` (the card outline you designed)","category":"external_commands","line_end":1178,"severity":"medium","line_start":1177},{"id":"external_commands:SKILL.md:1178:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `public/cards/*.html` (one HTML per card)","category":"external_commands","line_end":1179,"severity":"medium","line_start":1178},{"id":"external_commands:SKILL.md:1179:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `public/index.html` (the assembled composition)","category":"external_commands","line_end":1180,"severity":"medium","line_start":1179},{"id":"external_commands:SKILL.md:1180:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `output.mp4` (the final video)","category":"external_commands","line_end":1185,"severity":"medium","line_start":1180},{"id":"external_commands:SKILL.md:1185:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Optional live preview (on request only).** The clip plays unchanged inside `public/index.html` wit","category":"external_commands","line_end":1187,"severity":"medium","line_start":1185},{"id":"external_commands:SKILL.md:1187:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":1188,"severity":"medium","line_start":1187},{"id":"external_commands:SKILL.md:1188:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"(cd \"$WORK_DIR/public\" && npx hyperframes preview)   # or `npx hyperframes play` for a shareable lin","category":"external_commands","line_end":1189,"severity":"medium","line_start":1188},{"id":"external_commands:SKILL.md:75:shell-command-substitution","file":"SKILL.md","pattern":"Shell command substitution","snippet":"WORK_DIR=\"videos/$(basename \"$VIDEO_PATH\" | sed 's/\\.[^.]*$//')\"","category":"external_commands","line_end":75,"severity":"medium","line_start":75},{"id":"external_commands:SKILL.md:73:template-literal-with-command-substitution","file":"SKILL.md","pattern":"Template literal with command substitution","snippet":"```bash","category":"external_commands","line_end":77,"severity":"medium","line_start":73},{"id":"filesystem:SKILL.md:974:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"if (typeof fmt === \"string\" && /^\\.[0-9]+f$/.test(fmt)) {","category":"filesystem","line_end":974,"severity":"medium","line_start":974},{"id":"blocker:SKILL.md:167:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"| `id`                    | string                                     | stable id used in card HTML","category":"blocker","line_end":167,"severity":"low","line_start":167},{"id":"blocker:SKILL.md:343:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"{ label: \"clinical / cold (clinical)\",   description: \"audit magazine · swiss grid · terminal CLI · ","category":"blocker","line_end":343,"severity":"low","line_start":343},{"id":"blocker:SKILL.md:532:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"the data-card-id to your card's id, swap the placeholder content for the","category":"blocker","line_end":532,"severity":"low","line_start":532},{"id":"blocker:SKILL.md:727:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"×1.4; small meta text stays at ×1.2 to avoid crowding.","category":"blocker","line_end":727,"severity":"low","line_start":727},{"id":"blocker:SKILL.md:1145:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- Avoid animating the same property on the same element from multiple timelines at the same time.","category":"blocker","line_end":1145,"severity":"low","line_start":1145},{"id":"metadata:assets/fonts/Inter-700-latin.woff2:1:unscanned-file-binary-manual-review-required","file":"assets/fonts/Inter-700-latin.woff2","pattern":"Unscanned file (binary) — manual review required","snippet":"[unscanned: binary]","category":"metadata","line_end":1,"severity":"low","line_start":1},{"id":"metadata:assets/fonts/Caveat-700-latin.woff2:1:unscanned-file-binary-manual-review-required","file":"assets/fonts/Caveat-700-latin.woff2","pattern":"Unscanned file (binary) — manual review required","snippet":"[unscanned: binary]","category":"metadata","line_end":1,"severity":"low","line_start":1},{"id":"metadata:assets/fonts/LXGWWenKaiTC-400-latin.woff2:1:unscanned-file-binary-manual-review-required","file":"assets/fonts/LXGWWenKaiTC-400-latin.woff2","pattern":"Unscanned file (binary) — manual review required","snippet":"[unscanned: binary]","category":"metadata","line_end":1,"severity":"low","line_start":1},{"id":"metadata:assets/fonts/Inter-400-latin.woff2:1:unscanned-file-binary-manual-review-required","file":"assets/fonts/Inter-400-latin.woff2","pattern":"Unscanned file (binary) — manual review required","snippet":"[unscanned: binary]","category":"metadata","line_end":1,"severity":"low","line_start":1},{"id":"metadata:assets/fonts/Caveat-400-latin.woff2:1:unscanned-file-binary-manual-review-required","file":"assets/fonts/Caveat-400-latin.woff2","pattern":"Unscanned file (binary) — manual review required","snippet":"[unscanned: binary]","category":"metadata","line_end":1,"severity":"low","line_start":1},{"id":"metadata:assets/fonts/Virgil.woff2:1:unscanned-file-binary-manual-review-required","file":"assets/fonts/Virgil.woff2","pattern":"Unscanned file (binary) — manual review required","snippet":"[unscanned: binary]","category":"metadata","line_end":1,"severity":"low","line_start":1},{"id":"obfuscation:assets/vendor/gsap.min.js:10:heuristic-extremely-long-line-72712-chars-likely","file":"assets/vendor/gsap.min.js","pattern":"[HEURISTIC] Extremely long line (72712 chars) - likely obfuscated","snippet":"!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof de","category":"obfuscation","line_end":10,"severity":"high","line_start":10},{"id":"obfuscation:assets/vendor/gsap.min.js:1:heuristic-multiple-bracket-chains-61-jsfuck-obfu","file":"assets/vendor/gsap.min.js","pattern":"[HEURISTIC] Multiple bracket chains (61) - JSFuck/obfuscation pattern","snippet":"{})}(, ])}}(, ()})}","category":"obfuscation","line_end":1,"severity":"high","line_start":1}],"finding_verdicts":[{"id":"scripts:assets/vendor/gsap.min.js:10:direct-proto-assignment","reason":"GSAP uses prototype-chain setup inside its library internals. This is not prototype pollution from attacker-controlled object keys.","verdict":"false_positive","confidence":0.86},{"id":"scripts:assets/vendor/gsap.min.js:10:python-exec-function","reason":"The hit is inside minified JavaScript and is not a Python exec call. It is a scanner token collision in a browser animation library.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:assets/vendor/gsap.min.js:10:process-exec","reason":"The bundled GSAP file is browser JavaScript and does not invoke child processes or a shell. The pattern is a token collision in minified code.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:assets/vendor/gsap.min.js:10:shell-command-substitution","reason":"The bundled GSAP file is browser JavaScript and does not invoke child processes or a shell. The pattern is a token collision in minified code.","verdict":"false_positive","confidence":0.93},{"id":"network:assets/vendor/gsap.min.js:3:hardcoded-url","reason":"The URL-like text appears in GSAP license or browser/CSS handling context. No fetch, beacon, XMLHttpRequest, or other network call is shown for exfiltration.","verdict":"false_positive","confidence":0.9},{"id":"network:assets/vendor/gsap.min.js:6:hardcoded-url","reason":"The URL-like text appears in GSAP license or browser/CSS handling context. No fetch, beacon, XMLHttpRequest, or other network call is shown for exfiltration.","verdict":"false_positive","confidence":0.9},{"id":"network:assets/vendor/gsap.min.js:10:hardcoded-url","reason":"The URL-like text appears in GSAP license or browser/CSS handling context. No fetch, beacon, XMLHttpRequest, or other network call is shown for exfiltration.","verdict":"false_positive","confidence":0.9},{"id":"sensitive:assets/vendor/gsap.min.js:10:certificate-key-files","reason":"The scanner matched generic key-related text in GSAP internals. No certificate, private key, or credential material is present in the cited snippet.","verdict":"false_positive","confidence":0.92},{"id":"blocker:assets/vendor/gsap.min.js:10:system-reconnaissance","reason":"The cited GSAP code performs browser animation setup, not host reconnaissance. No collection of OS, user, network, or environment data is shown.","verdict":"false_positive","confidence":0.88},{"id":"blocker:references/DESIGN_INDEX.md:37:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:references/frames/clean.html:7:ruby-shell-backtick-execution","reason":"The cited reference file contains comments, HTML, CSS, or GSAP examples for visual layout. Backticks are documentation markup, not shell execution.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:references/frames/clean.html:10:ruby-shell-backtick-execution","reason":"The cited reference file contains comments, HTML, CSS, or GSAP examples for visual layout. Backticks are documentation markup, not shell execution.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:references/frames/clean.html:15:ruby-shell-backtick-execution","reason":"The cited reference file contains comments, HTML, CSS, or GSAP examples for visual layout. Backticks are documentation markup, not shell execution.","verdict":"false_positive","confidence":0.91},{"id":"blocker:references/frames/clean.html:62:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:38:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:39:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:40:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:41:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:89:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:119:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:120:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:125:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:126:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:131:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:132:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:137:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/hairline.html:138:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/polaroid.html:2:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/polaroid.html:9:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/polaroid.html:12:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/polaroid.html:13:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/polaroid.html:17:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/polaroid.html:18:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/polaroid.html:36:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/polaroid.html:40:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/polaroid.html:74:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/frames/polaroid.html:95:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/layouts/overlay.html:139:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/layouts/overlay.html:148:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/layouts/pip.html:123:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/layouts/pip.html:132:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:references/layouts/split.html:4:ruby-shell-backtick-execution","reason":"The cited reference file contains comments, HTML, CSS, or GSAP examples for visual layout. Backticks are documentation markup, not shell execution.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:references/layouts/split.html:5:ruby-shell-backtick-execution","reason":"The cited reference file contains comments, HTML, CSS, or GSAP examples for visual layout. Backticks are documentation markup, not shell execution.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:references/layouts/split.html:6:ruby-shell-backtick-execution","reason":"The cited reference file contains comments, HTML, CSS, or GSAP examples for visual layout. Backticks are documentation markup, not shell execution.","verdict":"false_positive","confidence":0.91},{"id":"blocker:references/layouts/split.html:99:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:references/layouts/stack.html:36:ruby-shell-backtick-execution","reason":"The cited reference file contains comments, HTML, CSS, or GSAP examples for visual layout. Backticks are documentation markup, not shell execution.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:references/layouts/stack.html:37:ruby-shell-backtick-execution","reason":"The cited reference file contains comments, HTML, CSS, or GSAP examples for visual layout. Backticks are documentation markup, not shell execution.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:references/layouts/stack.html:38:ruby-shell-backtick-execution","reason":"The cited reference file contains comments, HTML, CSS, or GSAP examples for visual layout. Backticks are documentation markup, not shell execution.","verdict":"false_positive","confidence":0.91},{"id":"blocker:references/layouts/stack.html:98:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/styles/audit.html:83:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/styles/audit.html:120:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/styles/audit.html:130:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/styles/editorial.html:16:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/styles/editorial.html:147:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/styles/spotlight.html:15:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/styles/terminal.html:82:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/styles/xhs.html:15:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/styles/xhs.html:147:system-reconnaissance","reason":"The cited reference content is CSS, layout guidance, or design terminology such as borders and frames. It is not system reconnaissance.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:57:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:70:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:90:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:105:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:120:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:167:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:168:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:169:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:172:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:173:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:174:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:176:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:180:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:181:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:182:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:183:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:184:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:188:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:190:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:222:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:225:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:242:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:243:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:245:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:248:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:260:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:261:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:262:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:263:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:264:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:265:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:270:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:271:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:278:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:280:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:281:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:297:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:298:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:299:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:302:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:304:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:339:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:359:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:361:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:367:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:395:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:399:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:400:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:408:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:412:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:413:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:414:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:416:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:420:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:421:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:422:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:423:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:428:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:435:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:436:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:437:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:438:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:439:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:446:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:447:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:448:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:449:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:457:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:469:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:474:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:478:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:482:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:485:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:486:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:490:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:491:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:492:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:493:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:494:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:495:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:497:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:498:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:499:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:501:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:509:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:510:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:513:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:516:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:520:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:521:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:522:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:524:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:529:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:531:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:534:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:536:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:537:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:538:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:540:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:542:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:543:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:546:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:547:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:556:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:558:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:559:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:561:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:563:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:566:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:567:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:569:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:570:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:572:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:574:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:575:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:576:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:577:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:579:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:580:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:583:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:586:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:588:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:589:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:590:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:591:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:592:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:594:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:595:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:599:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:607:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:608:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:609:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:610:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:611:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:615:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:616:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:618:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:622:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:623:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:626:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:643:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:645:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:651:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:656:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:692:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:694:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:696:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:697:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:698:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:699:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:700:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:701:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:702:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:704:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:705:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:710:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:711:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:725:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:734:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:736:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:746:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:749:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:751:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:755:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:756:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:757:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:758:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:759:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:760:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:761:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:762:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:763:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:764:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:765:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:766:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:767:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:769:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:771:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:775:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:777:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:790:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:794:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:852:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1051:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1055:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1057:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1061:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1062:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1063:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1064:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1065:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1066:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1067:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1068:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1069:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1070:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1072:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1073:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1076:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1078:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1079:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1081:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1083:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1084:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1086:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1088:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1091:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1093:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1094:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1097:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1099:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1100:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1101:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1102:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1103:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1104:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1109:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1125:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1127:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1130:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1131:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1139:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1140:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1141:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1142:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1143:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1144:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1146:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1147:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1148:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1152:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1158:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1160:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1161:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1168:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1170:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1177:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1178:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1179:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1180:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1185:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1187:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:1188:ruby-shell-backtick-execution","reason":"The scanner matched Markdown backticks, code fences, or documentation tables in SKILL.md. These are not Ruby backtick execution sites.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:75:shell-command-substitution","reason":"The line is a documented shell example deriving a work directory with quoted input and fixed basename/sed commands. It does not execute untrusted command text.","verdict":"false_positive","confidence":0.82},{"id":"external_commands:SKILL.md:73:template-literal-with-command-substitution","reason":"The hit comes from a Markdown shell example, not a JavaScript template literal executed by the skill. Real CLI use is covered separately as a semantic workflow risk.","verdict":"false_positive","confidence":0.88},{"id":"filesystem:SKILL.md:974:hidden-file-access","reason":"The cited line is a JavaScript regular expression for numeric formats such as .2f. It does not access dotfiles or hidden filesystem paths.","verdict":"false_positive","confidence":0.96},{"id":"blocker:SKILL.md:167:system-reconnaissance","reason":"The cited SKILL.md text is schema, design, or animation documentation. It does not instruct the agent to inventory the host system or exfiltrate environment details.","verdict":"false_positive","confidence":0.88},{"id":"blocker:SKILL.md:343:system-reconnaissance","reason":"The cited SKILL.md text is schema, design, or animation documentation. It does not instruct the agent to inventory the host system or exfiltrate environment details.","verdict":"false_positive","confidence":0.88},{"id":"blocker:SKILL.md:532:system-reconnaissance","reason":"The cited SKILL.md text is schema, design, or animation documentation. It does not instruct the agent to inventory the host system or exfiltrate environment details.","verdict":"false_positive","confidence":0.88},{"id":"blocker:SKILL.md:727:system-reconnaissance","reason":"The cited SKILL.md text is schema, design, or animation documentation. It does not instruct the agent to inventory the host system or exfiltrate environment details.","verdict":"false_positive","confidence":0.88},{"id":"blocker:SKILL.md:1145:system-reconnaissance","reason":"The cited SKILL.md text is schema, design, or animation documentation. It does not instruct the agent to inventory the host system or exfiltrate environment details.","verdict":"false_positive","confidence":0.88},{"id":"metadata:assets/fonts/Inter-700-latin.woff2:1:unscanned-file-binary-manual-review-required","reason":"The cited file is an expected WOFF2 font asset used by the video templates. It is binary and should keep provenance metadata, but it is not executable code.","verdict":"false_positive","confidence":0.74},{"id":"metadata:assets/fonts/Caveat-700-latin.woff2:1:unscanned-file-binary-manual-review-required","reason":"The cited file is an expected WOFF2 font asset used by the video templates. It is binary and should keep provenance metadata, but it is not executable code.","verdict":"false_positive","confidence":0.74},{"id":"metadata:assets/fonts/LXGWWenKaiTC-400-latin.woff2:1:unscanned-file-binary-manual-review-required","reason":"The cited file is an expected WOFF2 font asset used by the video templates. It is binary and should keep provenance metadata, but it is not executable code.","verdict":"false_positive","confidence":0.74},{"id":"metadata:assets/fonts/Inter-400-latin.woff2:1:unscanned-file-binary-manual-review-required","reason":"The cited file is an expected WOFF2 font asset used by the video templates. It is binary and should keep provenance metadata, but it is not executable code.","verdict":"false_positive","confidence":0.74},{"id":"metadata:assets/fonts/Caveat-400-latin.woff2:1:unscanned-file-binary-manual-review-required","reason":"The cited file is an expected WOFF2 font asset used by the video templates. It is binary and should keep provenance metadata, but it is not executable code.","verdict":"false_positive","confidence":0.74},{"id":"metadata:assets/fonts/Virgil.woff2:1:unscanned-file-binary-manual-review-required","reason":"The cited file is an expected WOFF2 font asset used by the video templates. It is binary and should keep provenance metadata, but it is not executable code.","verdict":"false_positive","confidence":0.74},{"id":"obfuscation:assets/vendor/gsap.min.js:10:heuristic-extremely-long-line-72712-chars-likely","reason":"The file is a bundled minified GSAP browser animation library with license headers. The long line and bracket density are expected minification, not evidence of hidden malware.","verdict":"false_positive","confidence":0.78},{"id":"obfuscation:assets/vendor/gsap.min.js:1:heuristic-multiple-bracket-chains-61-jsfuck-obfu","reason":"The file is a bundled minified GSAP browser animation library with license headers. The long line and bracket density are expected minification, not evidence of hidden malware.","verdict":"false_positive","confidence":0.78}],"semantic_findings":[{"title":"Local External Tool Execution Workflow","severity":"medium","locations":[{"file":"SKILL.md","line_end":41,"line_start":35},{"file":"SKILL.md","line_end":96,"line_start":81},{"file":"SKILL.md","line_end":1169,"line_start":1152}],"confidence":0.9,"description":"The workflow instructs agents to invoke HyperFrames through npx, plus ffmpeg and ffprobe, then render local HTML to MP4. This is expected for video processing, but it creates command execution and package supply-chain exposure when inputs or tools are untrusted.","confidence_reasoning":"SKILL.md explicitly documents npx HyperFrames, ffmpeg, and ffprobe commands. The risk is contextual execution and dependency trust, not hidden malicious intent."}],"subject_marketplace_commit_sha":null,"subject_content_hash":null,"subject_tree_hash":null,"subject_plugin_path":null,"audit_payload_hash":null,"confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":null,"contentHash":null,"treeHash":null,"pluginPath":null,"auditPayloadHash":null},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"confirmed_risk_level does not match the canonical trust resolver"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"medium","confirmedFindingCount":1,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"confirmation_required","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}