为OPC/中小微企业量身打造的自媒体获客智能体
This report presents the forensic synthetic code analysis of TeamWiseFlow/xiaobei, a Python project with 8,374 GitHub stars. SynthScan v2.0 examined 75,272 lines of code across 476 source files, recording 643 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 20.0 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 643 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …er/skills/bilibili-publish/scripts/publish_bilibili.py | 29 | # ── 常量 ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …er/skills/bilibili-publish/scripts/publish_bilibili.py | 39 | # ── env 校验 ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …er/skills/bilibili-publish/scripts/publish_bilibili.py | 58 | # ── Multipart 构建 ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …er/skills/bilibili-publish/scripts/publish_bilibili.py | 120 | # ── Relay HTTP 调用 ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …er/skills/bilibili-publish/scripts/publish_bilibili.py | 168 | # ── main ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …-engineer/skills/icp-exemption/scripts/generate_pdf.py | 112 | # ── Title ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …-engineer/skills/icp-exemption/scripts/generate_pdf.py | 120 | # ── 账户信息 ────────────────────────────────────────── | COMMENT |
| MEDIUM | …-engineer/skills/icp-exemption/scripts/generate_pdf.py | 139 | # ── App 信息 ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …-engineer/skills/icp-exemption/scripts/generate_pdf.py | 156 | # ── 声明 ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …-engineer/skills/icp-exemption/scripts/generate_pdf.py | 180 | # ── 签署 ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …-engineer/skills/icp-exemption/scripts/generate_pdf.py | 212 | # ── 注意事项 ───────────────────────────────────────── | COMMENT |
| MEDIUM | …s/main/skills/wx-mp-publisher/scripts/publish_wx_mp.py | 44 | # ── 凭据 ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …s/main/skills/wx-mp-publisher/scripts/publish_wx_mp.py | 89 | # ── relay env ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …s/main/skills/wx-mp-publisher/scripts/publish_wx_mp.py | 99 | # ── 主题解析 ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/main/skills/wx-mp-publisher/scripts/publish_wx_mp.py | 147 | # ── multipart 构建 ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/main/skills/wx-mp-publisher/scripts/publish_wx_mp.py | 247 | # ── 主流程 ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 42 | # ── 常量 ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 57 | # ── 平台工具 ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 304 | # ── 子命令实现 ────────────────────────────────────────────────────────────── | STRING |
| MEDIUM | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 698 | # ── main ───────────────────────────────────────────────────────────────────── | STRING |
| MEDIUM | crews/main/skills/video-product/scripts/check.py | 64 | # ── Media probing ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crews/main/skills/video-product/scripts/check.py | 210 | # ── Blank/Black Frame Detection ──────────────────────────────────────── | COMMENT |
| MEDIUM | crews/main/skills/video-product/scripts/check.py | 263 | # ── Target Duration Calculation ──────────────────────────────────────── | COMMENT |
| MEDIUM | crews/main/skills/video-product/scripts/check.py | 351 | # ── Main ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crews/main/skills/wx-mp-hunter/scripts/wx_mp_hunter.ts | 243 | // ── Accounts cache ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crews/main/skills/wx-mp-hunter/scripts/wx_mp_hunter.ts | 271 | // ── camoufox-cli 辅助 ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crews/main/skills/viral-chaser/scripts/viral_chaser.ts | 32 | // ── Helpers ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crews/main/skills/viral-chaser/scripts/viral_chaser.ts | 52 | // ── Key frame extraction (ffmpeg seek, one frame per timestamp) ──────────── | COMMENT |
| MEDIUM | crews/main/skills/viral-chaser/scripts/viral_chaser.ts | 98 | // ── Main ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crews/main/skills/viral-chaser/scripts/transcriber.ts | 49 | // ── 估算分段(当 ASR 未返回 utterances 时的兜底)────────────────────────────── | COMMENT |
| MEDIUM | …main/skills/viral-chaser/scripts/platforms/bilibili.ts | 33 | // ── WBI key 拉取 + 缓存(归 client,relay 不拉 nav)────────────────────────── | COMMENT |
| MEDIUM | …main/skills/viral-chaser/scripts/platforms/bilibili.ts | 62 | // ── HTTP helpers ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …main/skills/viral-chaser/scripts/platforms/bilibili.ts | 113 | // ── Video detail ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crews/main/skills/viral-chaser/scripts/platforms/xhs.ts | 46 | // ── Public API ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/main/skills/viral-chaser/scripts/platforms/douyin.ts | 25 | // ── Signed GET request(a_bogus + COMMON_PARAMS 走 _shared)──────────────── | COMMENT |
| MEDIUM | …s/main/skills/viral-chaser/scripts/platforms/douyin.ts | 42 | // ── Video detail ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 66 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 68 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 93 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 95 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 234 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 236 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 44 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 46 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 136 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 138 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 243 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 245 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 70 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 72 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 170 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 172 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 352 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 354 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 35 | # ── 常量 ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 80 | # ── 平台行查询 / 更新 ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 138 | # ── wx-mp-hunter 集成(探活) ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 154 | # ── camoufox-cli 集成 ─────────────────────────────────────────────────────── | COMMENT |
| 174 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 407 | var found = null; | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 409 | if (found || depth > 10 || !o || typeof o !== 'object') return; | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 414 | && v != null && v !== '' && typeof v !== 'object') { found = String(v); return; } | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 419 | } catch(e) { return null; } | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 423 | window.__publishDebug.push({ | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 548 | var id = it.aweme_id || it.item_id; | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 549 | var ct = it.create_time || 0; | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 551 | try {{ title = (it.aweme_desc && it.aweme_desc.text) || it.desc || it.title || ''; }} catch(e) {{}} | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 551 | try {{ title = (it.aweme_desc && it.aweme_desc.text) || it.desc || it.title || ''; }} catch(e) {{}} | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 553 | }}).filter(function(x) {{ return x.id && x.id.length > 5; }}); | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 557 | if (!top) return JSON.stringify({{sc: sc, id: null}}); | CODE |
| HIGH⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 559 | }} catch(e) {{ return JSON.stringify({{sc: -1, id: null, err: String(e)}}); }} | CODE |
| HIGH | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 218 | js = f"document.body && document.body.innerText && document.body.innerText.indexOf({json.dumps(text)}) >= 0" | CODE |
| HIGH | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 268 | if (!el.innerText || el.innerText.trim().length < 2) {{ | CODE |
| HIGH | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 394 | window.__capturedAwemeId = null; | CODE |
| HIGH | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 439 | var id = null; try { id = extract(JSON.parse(txt)); } catch(e) {} | CODE |
| HIGH | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 457 | var id = null; try { id = extract(JSON.parse(self.responseText)); } catch(e) {} | CODE |
| HIGH | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 602 | return window.__capturedAwemeId || null; | CODE |
| HIGH | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 602 | return window.__capturedAwemeId || null; | CODE |
| HIGH | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 663 | return null; | CODE |
| HIGH⚡ | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 146 | mock_eval.return_value = '{"sc": 8, "id": null}' | CODE |
| HIGH⚡ | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 155 | mock_eval.side_effect = ['{"sc": 8, "id": null}', '{"sc": 0, "id": "999", "title": "ok"}'] | CODE |
| HIGH⚡ | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 162 | mock_eval.return_value = '{"sc": 0, "id": null}' | CODE |
| HIGH⚡ | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 269 | if (nextIdx < lines.length && lines[nextIdx] === '已修改') { | CODE |
| HIGH⚡ | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 272 | if (nextIdx < lines.length && typeWords.has(lines[nextIdx])) { | CODE |
| HIGH⚡ | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 279 | while (j < lines.length && lines[j] === '已修改') j++; | CODE |
| HIGH⚡ | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 281 | nums.push(parseInt(lines[j])); | CODE |
| HIGH⚡ | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 285 | articles.push({ | CODE |
| HIGH | …in/skills/twitter-interact/scripts/twitter_interact.py | 212 | " if(u.protocol!=='https:'||!__isHost(u.hostname.toLowerCase())) return null;" | CODE |
| HIGH | …in/skills/twitter-interact/scripts/twitter_interact.py | 213 | " return (u.pathname.match(__pathRe)||[])[1]||null; } catch(e){ return null; } };" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 119 | " if (!window.lib || !window.lib.mtop || typeof window.lib.mtop.request !== 'function')" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 128 | " const ret = (e && e.ret) || [];" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 129 | " const detail = clean(Array.isArray(ret) ? ret.join(' | ') : (e && e.message) || String(e));" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 132 | " const ret = (response && response.ret) || [];" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 134 | " if (retCode && retCode !== 'SUCCESS')" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 136 | " const list = (response && response.data && Array.isArray(response.data.resultList))" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 137 | " ? response.data.resultList : null;" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 141 | " const itemNode = (entry && entry.data && entry.data.item) || {};" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 143 | " const args = (main.clickParam && main.clickParam.args) || {};" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 144 | " const ex = main.exContent || itemNode.exContent || {};" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 145 | " const itemId = clean(args.item_id || args.id || '');" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 146 | " const title = clean(ex.title || (ex.detailParams && ex.detailParams.title) || '');" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 148 | " const priceYuan = clean(args.price || args.displayPrice || '');" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 151 | " items.push({" | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 154 | " condition: cleanFirst(ex.condition, ex.stuffStatus, ex.detailParams && ex.detailParams.condition)," | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 155 | " brand: cleanFirst(ex.brand, ex.brandName, ex.detailParams && ex.detailParams.brand)," | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 156 | " location: city || area," | CODE |
| HIGH⚡ | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 157 | " want: clean(args.wantNum || ex.want || '')," | CODE |
| HIGH | docs/nodriver_helper_reference.py | 261 | const text = element.innerText || element.textContent || element.value || ''; | STRING |
| HIGH | docs/nodriver_helper_reference.py | 473 | const text = (node.innerText || node.textContent || node.value || '').trim(); | STRING |
| HIGH | docs/nodriver_helper_reference.py | 475 | values.push(text); | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crews/content-producer/BOOTSTRAP.md | 5 | ## Step 1: User Preferences | COMMENT |
| LOW | crews/content-producer/BOOTSTRAP.md | 14 | ## Step 2: Environment Verification | COMMENT |
| LOW | crews/content-producer/skills/ui-demo/SKILL.md | 266 | // Step 1 - 登录(cookies 已注入,通常直接跳过;若目标应用跨域或 cookie 失效则执行表单登录) | COMMENT |
| LOW⚡ | crews/content-producer/skills/ui-demo/SKILL.md | 365 | // Step 1 - 登录 | COMMENT |
| LOW⚡ | crews/content-producer/skills/ui-demo/SKILL.md | 375 | // Step 2 - 概览 | COMMENT |
| LOW⚡ | crews/content-producer/skills/ui-demo/SKILL.md | 380 | // Step 3 - 主要流程 | COMMENT |
| LOW⚡ | crews/content-producer/skills/ui-demo/SKILL.md | 384 | // Step 4 - 结果 | COMMENT |
| LOW | crews/it-engineer/skills/alicloud-find-skills/SKILL.md | 97 | ### Step 1: 理解需求 | COMMENT |
| LOW | crews/it-engineer/skills/alicloud-find-skills/SKILL.md | 104 | ### Step 2: 搜索 Skills | COMMENT |
| LOW | crews/it-engineer/skills/alicloud-find-skills/SKILL.md | 145 | ### Step 3: 迭代搜索 | COMMENT |
| LOW | crews/it-engineer/skills/alicloud-find-skills/SKILL.md | 156 | ### Step 4: 查看详情(可选) | COMMENT |
| LOW | crews/it-engineer/skills/alicloud-find-skills/SKILL.md | 165 | ### Step 5: 安装(仅用户要求时) | COMMENT |
| LOW | crews/main/HEARTBEAT.md | 48 | #### Step 1: 通过 published-track 读取所有已启用打分(cal_enabled=1)的已发布内容 | COMMENT |
| LOW | crews/main/HEARTBEAT.md | 62 | #### Step 2: 依次获取已发布内容的互动数据并更新到 published-track | COMMENT |
| LOW | crews/main/HEARTBEAT.md | 97 | #### Step 3: content-calibrator 复盘 | COMMENT |
| LOW | crews/main/HEARTBEAT.md | 116 | #### Step 4: 用户咨询回复 | COMMENT |
| LOW | crews/main/HEARTBEAT.md | 132 | #### Step 5: 汇总执行情况报告用户 | COMMENT |
| LOW⚡ | crews/main/skills/investor-hunting/SKILL.md | 42 | ### Step 1: 准备工作 | COMMENT |
| LOW⚡ | crews/main/skills/investor-hunting/SKILL.md | 48 | ### Step 2: 逐渠道搜索 | COMMENT |
| LOW⚡ | crews/main/skills/investor-hunting/SKILL.md | 57 | ### Step 3: 逐投资人判定 | COMMENT |
| LOW | crews/main/skills/investor-hunting/SKILL.md | 90 | ### Step 4: 汇总报告 | COMMENT |
| LOW | crews/main/skills/project-application/SKILL.md | 45 | ### Step 1: 问清申报项目 | COMMENT |
| LOW | crews/main/skills/project-application/SKILL.md | 53 | ### Step 2: 拆任务 + 委派子 skill | COMMENT |
| LOW | crews/main/skills/project-application/SKILL.md | 65 | ### Step 3: 时间线 + 提醒 | COMMENT |
| LOW | crews/main/skills/project-application/SKILL.md | 80 | ### Step 4: 状态跟踪 | COMMENT |
| LOW | …ain/skills/video-product/scripts/extract_and_concat.py | 427 | # Step 1: cut + normalize each segment to a temp file | COMMENT |
| LOW | crews/main/skills/video-product/scripts/assemble.py | 167 | # Step 1: normalize each video individually (scale/pad/fps/format + audio) | COMMENT |
| LOW | crews/main/skills/video-product/scripts/assemble.py | 198 | # Step 2: concat all normalized files via concat demuxer (stream copy, no re-encode) | COMMENT |
| LOW⚡ | crews/main/skills/video-product/scripts/assemble.py | 265 | # Step 1: normalize + concat. When external audio will replace, drop per-segment | COMMENT |
| LOW⚡ | crews/main/skills/video-product/scripts/assemble.py | 273 | # Step 2: mux audio if present | COMMENT |
| LOW⚡ | …main/skills/viral-chaser/scripts/platforms/bilibili.ts | 116 | // Step 1: Get video info (no WBI sign required) | COMMENT |
| LOW | …main/skills/viral-chaser/scripts/platforms/bilibili.ts | 132 | // Step 2: Get play URL (WBI sign required), request 480P MP4 format | COMMENT |
| LOW⚡ | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 306 | # Step 1: Render each slide | COMMENT |
| LOW⚡ | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 322 | # Step 2: Stitch vertically | COMMENT |
| LOW | crews/main/skills/intel-gathering/SKILL.md | 25 | ### Step 1: 准备工作 | COMMENT |
| LOW | crews/main/skills/intel-gathering/SKILL.md | 33 | ### Step 2: 逐信源采集 | COMMENT |
| LOW | crews/main/skills/intel-gathering/SKILL.md | 90 | ### Step 3: 生成交付物 | COMMENT |
| LOW | crews/main/skills/investor-pipeline/SKILL.md | 53 | ### Step 1: 模式 1 / 模式 2 跑通了吗? | COMMENT |
| LOW | crews/main/skills/investor-pipeline/SKILL.md | 62 | ### Step 2: 发掘投资人 → 委派 investor-hunting | COMMENT |
| LOW | crews/main/skills/investor-pipeline/SKILL.md | 77 | ### Step 3: 准备触达材料 → 委派 investor-materials | COMMENT |
| LOW | crews/main/skills/investor-pipeline/SKILL.md | 83 | ### Step 4: 发起接触 → 委派 investor-outreach | COMMENT |
| LOW | crews/main/skills/investor-pipeline/SKILL.md | 102 | ### Step 5: 持续跟进 + 状态推进 | COMMENT |
| LOW | crews/main/skills/investor-pipeline/SKILL.md | 115 | ### Step 6: HEARTBEAT 巡检 | COMMENT |
| LOW | crews/main/skills/lead-hunting/SKILL.md | 27 | ### Step 1: 准备工作 | COMMENT |
| LOW | crews/main/skills/lead-hunting/SKILL.md | 35 | ### Step 2: 逐平台搜索 | COMMENT |
| LOW | crews/main/skills/lead-hunting/SKILL.md | 115 | ### Step 4: 汇总报告 | COMMENT |
| LOW⚡ | crews/main/skills/wechat-channels-publish/SKILL.md | 36 | ### Step 1: 导航到发布页 | COMMENT |
| LOW⚡ | crews/main/skills/wechat-channels-publish/SKILL.md | 44 | ### Step 2: 检查登录态 | COMMENT |
| LOW⚡ | crews/main/skills/wechat-channels-publish/SKILL.md | 48 | ### Step 3: 上传视频 | COMMENT |
| LOW⚡ | crews/main/skills/wechat-channels-publish/SKILL.md | 60 | ### Step 4: 等待上传+转码完成 | COMMENT |
| LOW⚡ | crews/main/skills/wechat-channels-publish/SKILL.md | 69 | ### Step 5: 填写标题 | COMMENT |
| LOW⚡ | crews/main/skills/wechat-channels-publish/SKILL.md | 77 | ### Step 6: 填写描述 | COMMENT |
| LOW⚡ | crews/main/skills/wechat-channels-publish/SKILL.md | 87 | ### Step 7: 发布 | COMMENT |
| LOW | crews/main/skills/wechat-channels-publish/SKILL.md | 98 | ### Step 8: 确认发布成功 | COMMENT |
| LOW | crews/main/skills/wechat-channels-publish/SKILL.md | 105 | ### Step 9: 获取已发布视频链接 | COMMENT |
| LOW⚡ | …ls/published-track/scripts/fetch-and-update-metrics.sh | 165 | # Step 1: login-manager 探活(需要 cookie 的平台) | COMMENT |
| LOW | …ls/published-track/scripts/fetch-and-update-metrics.sh | 205 | # Step 2: 获取 content_id | COMMENT |
| LOW | …ls/published-track/scripts/fetch-and-update-metrics.sh | 266 | # Step 3: 调 fetch-retro-data.ts | COMMENT |
| LOW | …ls/published-track/scripts/fetch-and-update-metrics.sh | 294 | # Step 4: 解析结果 → 调 update-metrics.sh | COMMENT |
| LOW | …ls/published-track/scripts/fetch-and-update-metrics.sh | 360 | # Step 5: 调 update-metrics.sh | COMMENT |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …content-producer/skills/siliconflow-tts/scripts/tts.py | 84 | def extract_tts_requirement_text(content: str) -> str: | CODE |
| LOW | …content-producer/skills/siliconflow-tts/scripts/tts.py | 115 | def extract_tts_requirement_settings(content: str) -> dict: | CODE |
| LOW | …content-producer/skills/siliconflow-tts/scripts/tts.py | 439 | def build_multipart_form_data(file_path: Path, fields: dict[str, str], boundary: str | None = None) -> tuple[bytes, str] | CODE |
| LOW | …content-producer/skills/siliconflow-tts/scripts/tts.py | 469 | def build_transcription_request(api_base: str, api_key: str, audio_path: Path, model: str = DEFAULT_ASR_MODEL) -> urllib | CODE |
| LOW | …ilibili-publish/scripts/tests/test_publish_bilibili.py | 47 | def test_endpoint_is_relay_path(self): | CODE |
| LOW | …ilibili-publish/scripts/tests/test_publish_bilibili.py | 52 | def test_no_local_credentials(self): | CODE |
| LOW | …ilibili-publish/scripts/tests/test_publish_bilibili.py | 65 | def test_relay_base_url_required(self): | CODE |
| LOW | …ilibili-publish/scripts/tests/test_publish_bilibili.py | 88 | def test_multipart_contains_video_and_text_fields(self): | CODE |
| LOW | …ilibili-publish/scripts/tests/test_publish_bilibili.py | 117 | def test_multipart_without_cover(self): | CODE |
| LOW⚡ | …s/main/skills/wx-mp-publisher/scripts/publish_wx_mp.py | 101 | def _resolve_registered_theme_path(theme_id: str) -> Path | None: | CODE |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 228 | def camoufox_wait_for_selector(session: str, selector: str, timeout: int = TRANSCODE_MAX_WAIT_S) -> bool: | CODE |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 240 | def camoufox_wait_for_url_contains(session: str, substr: str, timeout: int = POST_PUBLISH_MAX_WAIT_S) -> bool: | CODE |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 252 | def camoufox_type_contenteditable(session: str, selector: str, text: str) -> bool: | CODE |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 278 | def camoufox_click_button_by_text(session: str, text: str) -> bool: | STRING |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 290 | def camoufox_click_leaf_by_text(session: str, text: str) -> bool: | STRING |
| LOW | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 29 | def test_upload_url_uses_douyin_creator(self): | CODE |
| LOW | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 38 | def test_no_douyin_open_platform_credentials(self): | CODE |
| LOW⚡ | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 137 | def test_success_returns_newest(self, mock_eval): | CODE |
| LOW⚡ | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 153 | def test_auth_fail_then_recover(self, mock_eval): | CODE |
| LOW⚡ | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 160 | def test_no_items_returns_none_no_retry(self, mock_eval): | CODE |
| LOW⚡ | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 172 | def test_fill_title_and_caption(self, mock_type, mock_ce, mock_eval): | CODE |
| LOW | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 196 | def test_publish_success_returns_aweme_id(self, mock_eval, mock_click, mock_wait, mock_path, mock_fetch): | CODE |
| LOW | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 214 | def test_publish_interceptor_miss_falls_back_to_work_list(self, mock_eval, mock_click, mock_wait, mock_path, mock_fe | CODE |
| LOW | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 270 | def test_get_link_fallback_manage_dom(self, mock_eval, mock_open, mock_fetch): | CODE |
| LOW | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 285 | def test_get_link_work_list_strategy(self, mock_eval, mock_open, mock_fetch): | CODE |
| LOW | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 301 | def test_get_link_no_result_returns_ok_url_none(self, mock_eval, mock_open, mock_fetch): | CODE |
| LOW | …ls/douyin-publish/scripts/tests/test_publish_douyin.py | 320 | def test_run_invokes_chain_in_order(self, mock_upload, mock_fill, mock_publish, mock_get_link): | CODE |
| LOW | …ain/skills/swcr-register/scripts/generate_form_info.py | 170 | def extract_functions_from_readme(readme_path: str) -> dict: | CODE |
| LOW | crews/main/skills/video-product/scripts/check.py | 327 | def determine_target_duration(artifacts_dir: Path, fragment_dir: Path, cli_target: float | None) -> tuple[float | None, | CODE |
| LOW | crews/main/skills/video-product/scripts/tts.py | 64 | def extract_tts_requirement_text(content: str) -> str: | CODE |
| LOW | crews/main/skills/video-product/scripts/tts.py | 94 | def extract_tts_requirement_settings(content: str) -> dict: | CODE |
| LOW | crews/main/skills/video-product/scripts/tts.py | 396 | def build_multipart_form_data(file_path: Path, fields: dict[str, str], boundary: str | None = None) -> tuple[bytes, str] | CODE |
| LOW | crews/main/skills/video-product/scripts/tts.py | 426 | def build_transcription_request(api_base: str, api_key: str, audio_path: Path, model: str = DEFAULT_ASR_MODEL) -> urllib | CODE |
| LOW | crews/main/skills/video-product/scripts/assemble.py | 147 | def _normalize_and_concat_batch(video_files: list[str], width: int, height: int, | CODE |
| LOW⚡ | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 140 | def _load_screenshots_from_dir(screenshots_dir: str) -> list[str]: | STRING |
| LOW | …witter-interact/scripts/tests/test_twitter_interact.py | 80 | def test_session_is_constant_twitter(self): | CODE |
| LOW | …witter-interact/scripts/tests/test_twitter_interact.py | 120 | def test_check_min_interval_violation(self): | CODE |
| LOW⚡ | …witter-interact/scripts/tests/test_twitter_interact.py | 131 | def test_check_daily_max_violation(self): | CODE |
| LOW⚡ | …witter-interact/scripts/tests/test_twitter_interact.py | 141 | def test_record_action_increments(self): | CODE |
| LOW | …witter-interact/scripts/tests/test_twitter_interact.py | 192 | def test_like_freq_limit_blocks(self, mock_check): | CODE |
| LOW | …witter-interact/scripts/tests/test_twitter_interact.py | 206 | def test_retweet_with_confirm(self, mock_close, mock_open, mock_click, mock_probe, | CODE |
| LOW | …witter-interact/scripts/tests/test_twitter_interact.py | 269 | def test_unfollow_with_confirm(self, mock_close, mock_open, mock_click, mock_suffix, mock_confirm): | CODE |
| LOW⚡ | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 34 | def test_price_range_min_only(self): | CODE |
| LOW⚡ | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 37 | def test_price_range_max_only(self): | CODE |
| LOW⚡ | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 40 | def test_extra_filter_province_only(self): | CODE |
| LOW⚡ | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 46 | def test_extra_filter_city_only(self): | CODE |
| LOW | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 57 | def test_expression_is_single_iife(self): | CODE |
| LOW | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 63 | def test_values_json_injected_no_string_concat(self): | CODE |
| LOW | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 78 | def test_extra_filter_injected(self): | CODE |
| LOW | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 99 | def test_pagination_collects_across_pages(self, mock_camoufox): | CODE |
| LOW | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 112 | def test_empty_page_stops_early(self, mock_camoufox): | CODE |
| LOW | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 119 | def test_limit_caps_collection(self, mock_camoufox): | CODE |
| LOW | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 133 | def test_session_expired_raises_loginwall(self, mock_camoufox): | CODE |
| LOW | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 139 | def test_mtop_not_ready_raises(self, mock_camoufox): | CODE |
| LOW | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 168 | def test_non_json_output_raises(self, mock_run): | CODE |
| LOW | docs/nodriver_helper_reference.py | 145 | def _is_transient_navigation_error(exc: Exception) -> bool: | CODE |
| LOW | docs/ai-catchup-2026-07-opencli-v1.8.6.md | 99 | def camoufox_eval_with_reliability( | CODE |
| LOW | docs/more_powerful_search_skill/extra/quark.py | 241 | def parse_life_show_general_image(data): | CODE |
| LOW | docs/more_powerful_search_skill/extra/quark.py | 367 | def parse_travel_dest_overview(data): | CODE |
| LOW | docs/more_powerful_search_skill/extra/quark.py | 375 | def parse_travel_ranking_list(data): | CODE |
| 28 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …-engineer/skills/icp-exemption/scripts/generate_pdf.py | 65 | except Exception: | CODE |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 102 | except Exception as e: | CODE |
| LOW⚡ | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 569 | except Exception: | STRING |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 500 | except Exception as e: | STRING |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 624 | except Exception: | STRING |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 694 | except Exception: | STRING |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 743 | except Exception as e: # noqa: BLE001 | STRING |
| MEDIUM⚡ | …s/main/skills/swcr-register/scripts/generate_manual.py | 250 | print("Error: python-docx is required. Install with: pip install python-docx") | CODE |
| MEDIUM⚡ | …s/main/skills/swcr-register/scripts/generate_manual.py | 257 | print(f"Error: README file not found: {args.readme}") | CODE |
| LOW⚡ | …s/main/skills/swcr-register/scripts/generate_manual.py | 259 | except Exception as exc: | CODE |
| MEDIUM⚡ | …s/main/skills/swcr-register/scripts/generate_manual.py | 260 | print(f"Error reading README: {exc}") | CODE |
| LOW | …ain/skills/swcr-register/scripts/generate_form_info.py | 92 | except Exception as exc: | CODE |
| LOW | …ain/skills/swcr-register/scripts/generate_form_info.py | 184 | except Exception: | CODE |
| MEDIUM | …ain/skills/swcr-register/scripts/generate_form_info.py | 442 | print("Error: 软件全称和简称不能相同!") | CODE |
| LOW | …main/skills/swcr-register/scripts/generate_code_doc.py | 160 | except Exception as exc: | CODE |
| MEDIUM | …main/skills/swcr-register/scripts/generate_code_doc.py | 261 | print("Error: python-docx is required. Install with: pip install python-docx") | CODE |
| MEDIUM | …main/skills/swcr-register/scripts/generate_code_doc.py | 392 | print("Error: python-docx is required. Install with: pip install python-docx") | CODE |
| MEDIUM | …main/skills/swcr-register/scripts/generate_code_doc.py | 409 | print("Error: No source code files found. Check --source-dir and --exts.") | CODE |
| LOW⚡ | crews/main/skills/viral-chaser/scripts/transcriber.ts | 134 | except Exception as e: | CODE |
| LOW⚡ | crews/main/skills/viral-chaser/scripts/transcriber.ts | 155 | except Exception as e: | CODE |
| LOW⚡ | crews/main/skills/viral-chaser/scripts/transcriber.ts | 170 | except Exception as e: | CODE |
| LOW | crews/main/skills/viral-chaser/scripts/transcriber.ts | 186 | except Exception: | CODE |
| LOW⚡ | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 309 | except Exception as e: | CODE |
| LOW⚡ | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 325 | except Exception as e: | CODE |
| LOW⚡ | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 237 | except Exception: | STRING |
| LOW | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 307 | except Exception as e: | STRING |
| LOW | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 332 | except Exception as e: | STRING |
| LOW | crews/main/skills/pitch-deck/scripts/extract_pptx.py | 50 | except Exception as e: | CODE |
| LOW | crews/main/skills/pitch-deck/scripts/extract_pptx.py | 91 | except Exception: | CODE |
| LOW | crews/main/skills/pitch-deck/scripts/extract_pptx.py | 102 | except Exception: | CODE |
| LOW | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 557 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …in/skills/twitter-interact/scripts/twitter_interact.py | 161 | except Exception: | CODE |
| LOW | …in/skills/twitter-interact/scripts/twitter_interact.py | 188 | except Exception: | CODE |
| LOW | …in/skills/twitter-interact/scripts/twitter_interact.py | 716 | except Exception as e: # noqa: BLE001 | CODE |
| LOW⚡ | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 264 | except Exception: | CODE |
| LOW | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 175 | except Exception: | CODE |
| LOW | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 252 | except Exception: | CODE |
| LOW | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 315 | except Exception: | CODE |
| LOW | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 536 | except Exception: | CODE |
| LOW | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 680 | except Exception as e: | CODE |
| LOW⚡ | …ews/main/skills/wxwork-moments/scripts/post_moments.py | 103 | except Exception: | CODE |
| LOW⚡ | …ews/main/skills/wxwork-moments/scripts/post_moments.py | 113 | except Exception: | CODE |
| LOW | docs/nodriver_helper_reference.py | 138 | except Exception as e: | CODE |
| LOW | docs/nodriver_helper_reference.py | 162 | except Exception as exc: | CODE |
| LOW | docs/nodriver_helper_reference.py | 251 | except Exception as selector_error: | CODE |
| LOW | docs/nodriver_helper_reference.py | 282 | except Exception as e: | CODE |
| LOW | docs/nodriver_helper_reference.py | 342 | except Exception as e: | CODE |
| LOW | docs/nodriver_helper_reference.py | 406 | except Exception: | CODE |
| LOW | docs/nodriver_helper_reference.py | 431 | except Exception: | CODE |
| LOW | docs/nodriver_helper_reference.py | 729 | except Exception as e: | CODE |
| LOW | docs/nodriver_helper_reference.py | 738 | except Exception as e: | CODE |
| LOW | docs/more_powerful_search_skill/rss_parsor.py | 28 | except Exception as e: | CODE |
| LOW | docs/more_powerful_search_skill/extra/wikipedia.py | 171 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | skills/email-ops/scripts/send_email.py | 97 | except Exception as e: | CODE |
| LOW | skills/pexels-footage/scripts/pexels_search.py | 70 | except Exception as e: | CODE |
| LOW | skills/pexels-footage/scripts/pexels_search.py | 107 | except Exception as e: | CODE |
| LOW | skills/pexels-footage/scripts/pexels_search.py | 160 | except Exception as e: | CODE |
| LOW | skills/pexels-footage/scripts/pexels_search.py | 189 | except Exception as e: | CODE |
| LOW | skills/pixabay-footage/scripts/pixabay_search.py | 71 | except Exception as e: | CODE |
| LOW | skills/pixabay-footage/scripts/pixabay_search.py | 108 | except Exception as e: | CODE |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crews/main/skills/viral-chaser/scripts/transcriber.ts | 101 | print(json.dumps({"ok": False, "error": f"requests 不可用: {e}"})) | CODE |
| HIGH⚡ | crews/main/skills/viral-chaser/scripts/transcriber.ts | 124 | elif app_key: | CODE |
| HIGH⚡ | crews/main/skills/viral-chaser/scripts/transcriber.ts | 128 | print(json.dumps({"ok": False, "error": "火山 ASR 凭证未配置:需 VOLC_ASR_APP_ID+VOLC_ASR_ACCESS_KEY(旧控制台双头)或 VOLC_ASR_APP_KE | CODE |
| HIGH⚡ | crews/main/skills/viral-chaser/scripts/transcriber.ts | 135 | print(json.dumps({"ok": False, "error": f"读取音频失败: {e}"})) | CODE |
| HIGH⚡ | crews/main/skills/viral-chaser/scripts/transcriber.ts | 156 | print(json.dumps({"ok": False, "error": f"请求失败: {e}"})) | CODE |
| HIGH⚡ | crews/main/skills/viral-chaser/scripts/transcriber.ts | 165 | print(json.dumps({"ok": False, "error": f"火山 ASR 失败 (status={status}, msg={msg}, logid={logid}): {snippet}"})) | CODE |
| HIGH⚡ | crews/main/skills/viral-chaser/scripts/transcriber.ts | 171 | print(json.dumps({"ok": False, "error": f"响应解析失败: {e}; raw={r.text[:500]}"})) | CODE |
| HIGH | crews/main/skills/viral-chaser/scripts/transcriber.ts | 189 | print(json.dumps({"ok": True, "text": text, "segments": segs}, ensure_ascii=False)) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …er/skills/bilibili-publish/scripts/publish_bilibili.py | 11 | CODE | |
| LOW | …er/skills/bilibili-publish/scripts/publish_bilibili.py | 19 | CODE | |
| LOW | …nt-producer/skills/html-video/scripts/content_graph.py | 11 | CODE | |
| LOW | …ntent-producer/skills/html-video/templates/registry.py | 11 | CODE | |
| LOW | …ntent-producer/skills/html-video/templates/registry.py | 13 | CODE | |
| LOW | …ntent-producer/skills/html-video/templates/registry.py | 14 | CODE | |
| LOW | …-engineer/skills/icp-exemption/scripts/generate_pdf.py | 30 | CODE | |
| LOW | …ills/awada-channel-setup/scripts/apply-awada-config.py | 8 | CODE | |
| LOW | crews/main/scripts/process_images.py | 5 | CODE | |
| LOW | …s/main/skills/wx-mp-publisher/scripts/publish_wx_mp.py | 15 | CODE | |
| LOW | …s/main/skills/sales-cs-review/scripts/scan_feedback.py | 17 | CODE | |
| LOW | …s/main/skills/sales-cs-review/scripts/scan_feedback.py | 25 | CODE | |
| LOW | …s/main/skills/douyin-publish/scripts/publish_douyin.py | 30 | CODE | |
| LOW | …s/main/skills/swcr-register/scripts/generate_manual.py | 32 | CODE | |
| LOW | crews/main/skills/video-product/scripts/gen.py | 24 | CODE | |
| LOW | …ain/skills/video-product/scripts/extract_and_concat.py | 49 | CODE | |
| LOW | …/main/skills/video-product/scripts/compress_preview.py | 18 | CODE | |
| LOW | …/main/skills/video-product/scripts/compress_preview.py | 22 | CODE | |
| LOW | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 27 | CODE | |
| LOW | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 78 | CODE | |
| LOW | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 33 | CODE | |
| LOW | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 36 | CODE | |
| LOW | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 360 | CODE | |
| LOW | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 364 | CODE | |
| LOW | crews/main/skills/pitch-deck/scripts/extract_pptx.py | 28 | CODE | |
| LOW | crews/main/skills/pitch-deck/scripts/extract_pptx.py | 34 | CODE | |
| LOW | crews/main/skills/pitch-deck/scripts/extract_pptx.py | 40 | CODE | |
| LOW | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 21 | CODE | |
| LOW | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 27 | CODE | |
| LOW | …in/skills/wx-mp-engagement/scripts/fetch_engagement.py | 33 | CODE | |
| LOW | …in/skills/twitter-interact/scripts/twitter_interact.py | 34 | CODE | |
| LOW | crews/main/skills/xianyu-ops/scripts/xianyu_search.py | 18 | CODE | |
| LOW | …/skills/xianyu-ops/scripts/tests/test_xianyu_search.py | 16 | CODE | |
| LOW | …es-cs-enablement/scripts/symlink_business_knowledge.py | 24 | CODE | |
| LOW | …lls/sales-cs-enablement/scripts/check_awada_channel.py | 11 | CODE | |
| LOW | docs/nodriver_helper_reference.py | 1 | CODE | |
| LOW | docs/more_powerful_search_skill/extra/arxiv.py | 23 | CODE | |
| LOW | docs/more_powerful_search_skill/extra/arxiv.py | 24 | CODE | |
| LOW | docs/more_powerful_search_skill/extra/bing_images.py | 10 | CODE | |
| LOW | skills/wxwork-drive/scripts/drive.py | 48 | CODE | |
| LOW | skills/siliconflow-img-gen/scripts/tests/test_gen.py | 19 | CODE | |
| LOW | skills/siliconflow-img-gen/scripts/tests/test_gen.py | 21 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …content-producer/skills/siliconflow-tts/scripts/tts.py | 182 | CODE | |
| LOW | …content-producer/skills/siliconflow-tts/scripts/tts.py | 281 | CODE | |
| LOW | …ilibili-publish/scripts/tests/test_publish_bilibili.py | 222 | CODE | |
| LOW | …nt-producer/skills/html-video/scripts/content_graph.py | 13 | CODE | |
| LOW | …ntent-producer/skills/html-video/templates/registry.py | 19 | CODE | |
| LOW | …ntent-producer/skills/html-video/templates/registry.py | 100 | CODE | |
| LOW | …s/main/skills/wx-mp-publisher/scripts/publish_wx_mp.py | 177 | CODE | |
| LOW | …s/main/skills/swcr-register/scripts/generate_manual.py | 40 | CODE | |
| LOW | …s/main/skills/swcr-register/scripts/generate_manual.py | 121 | CODE | |
| LOW | …s/main/skills/swcr-register/scripts/generate_manual.py | 148 | CODE | |
| LOW | …ain/skills/swcr-register/scripts/generate_form_info.py | 56 | CODE | |
| LOW | …ain/skills/swcr-register/scripts/generate_form_info.py | 131 | CODE | |
| LOW | …ain/skills/swcr-register/scripts/generate_form_info.py | 72 | CODE | |
| LOW | …ain/skills/swcr-register/scripts/generate_form_info.py | 147 | CODE | |
| LOW | …main/skills/swcr-register/scripts/generate_code_doc.py | 83 | CODE | |
| LOW | …main/skills/swcr-register/scripts/generate_code_doc.py | 136 | CODE | |
| LOW | …main/skills/swcr-register/scripts/generate_code_doc.py | 180 | CODE | |
| LOW | …main/skills/swcr-register/scripts/generate_code_doc.py | 96 | CODE | |
| LOW | crews/main/skills/video-product/scripts/check.py | 66 | CODE | |
| LOW | crews/main/skills/video-product/scripts/check.py | 212 | CODE | |
| LOW | crews/main/skills/video-product/scripts/check.py | 353 | CODE | |
| LOW | crews/main/skills/video-product/scripts/gen.py | 537 | CODE | |
| LOW | …ain/skills/video-product/scripts/extract_and_concat.py | 256 | CODE | |
| LOW | …ain/skills/video-product/scripts/extract_and_concat.py | 388 | CODE | |
| LOW | …ain/skills/video-product/scripts/extract_and_concat.py | 211 | CODE | |
| LOW | crews/main/skills/video-product/scripts/tts.py | 152 | CODE | |
| LOW | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 97 | CODE | |
| LOW | crews/main/skills/pitch-deck/scripts/html_to_pptx.py | 74 | CODE | |
| LOW | crews/main/skills/pitch-deck/scripts/extract_pptx.py | 37 | CODE | |
| LOW | …in/skills/twitter-interact/scripts/twitter_interact.py | 642 | CODE | |
| LOW | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 51 | CODE | |
| LOW | docs/nodriver_helper_reference.py | 199 | CODE | |
| LOW | docs/more_powerful_search_skill/rss_parsor.py | 11 | CODE | |
| LOW | docs/more_powerful_search_skill/extra/bing.py | 198 | CODE | |
| LOW | docs/more_powerful_search_skill/extra/bing_news.py | 81 | CODE | |
| LOW | docs/more_powerful_search_skill/extra/quark.py | 83 | CODE | |
| LOW | skills/pexels-footage/scripts/pexels_search.py | 196 | CODE | |
| LOW | skills/pixabay-footage/scripts/pixabay_search.py | 187 | CODE | |
| LOW | skills/youtube-publish/scripts/publish_youtube.py | 187 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ain/skills/video-product/scripts/extract_and_concat.py | 427 | # Step 1: cut + normalize each segment to a temp file | COMMENT |
| LOW | crews/main/skills/video-product/scripts/assemble.py | 167 | # Step 1: normalize each video individually (scale/pad/fps/format + audio) | COMMENT |
| LOW | crews/main/skills/video-product/scripts/assemble.py | 198 | # Step 2: concat all normalized files via concat demuxer (stream copy, no re-encode) | COMMENT |
| LOW⚡ | crews/main/skills/video-product/scripts/assemble.py | 265 | # Step 1: normalize + concat. When external audio will replace, drop per-segment | COMMENT |
| LOW⚡ | crews/main/skills/video-product/scripts/assemble.py | 273 | # Step 2: mux audio if present | COMMENT |
| LOW⚡ | …main/skills/viral-chaser/scripts/platforms/bilibili.ts | 116 | // Step 1: Get video info (no WBI sign required) | COMMENT |
| LOW | …main/skills/viral-chaser/scripts/platforms/bilibili.ts | 132 | // Step 2: Get play URL (WBI sign required), request 480P MP4 format | COMMENT |
| LOW⚡ | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 306 | # Step 1: Render each slide | COMMENT |
| LOW⚡ | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 322 | # Step 2: Stitch vertically | COMMENT |
| LOW⚡ | …ls/published-track/scripts/fetch-and-update-metrics.sh | 165 | # Step 1: login-manager 探活(需要 cookie 的平台) | COMMENT |
| LOW | …ls/published-track/scripts/fetch-and-update-metrics.sh | 205 | # Step 2: 获取 content_id | COMMENT |
| LOW | …ls/published-track/scripts/fetch-and-update-metrics.sh | 266 | # Step 3: 调 fetch-retro-data.ts | COMMENT |
| LOW | …ls/published-track/scripts/fetch-and-update-metrics.sh | 294 | # Step 4: 解析结果 → 调 update-metrics.sh | COMMENT |
| LOW | …ls/published-track/scripts/fetch-and-update-metrics.sh | 360 | # Step 5: 调 update-metrics.sh | COMMENT |
| LOW⚡ | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 270 | # Step 2: Upload parts | COMMENT |
| LOW | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 240 | # Step 1: Initiate multipart upload | COMMENT |
| LOW | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 291 | # Step 3: Complete multipart upload | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | requirements.txt | 1 | # wiseflow-client 全仓 Python 依赖(统一声明) | COMMENT |
| LOW | crews/content-producer/skills/html-video/scripts/hv.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …roducer/skills/manim-explainer/scripts/render-manim.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …skills/content-calibrator/scripts/commit-prediction.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …s/main/skills/content-calibrator/scripts/score-only.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …/skills/content-calibrator/scripts/score-and-record.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | crews/main/skills/viral-chaser/scripts/viral_chaser.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …n/skills/xhs-content-ops/scripts/fetch_note_content.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …ain/skills/published-track/scripts/fetch-retro-data.ts | 281 | console.error(` ⚠️ 快手详情获取失败: ${e}`) | COMMENT |
| LOW | …kills/published-track/scripts/set-distribute-status.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | crews/main/skills/published-track/scripts/record.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …ls/published-track/scripts/fetch-and-update-metrics.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …main/skills/published-track/scripts/get-xhs-user-id.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …main/skills/sales-cs-enablement/sales-cs-enablement.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | docker/docker-compose.yml | 1 | name: xiaobei | COMMENT |
| LOW | patches/overrides.sh | 1 | #!/bin/bash | COMMENT |
| LOW | patches/camoufox-cli/src/server.ts | 21 | private timeout: number; | COMMENT |
| LOW | docs/more_powerful_search_skill/extra/bing_news.py | 141 | COMMENT | |
| LOW | scripts/apply-addons.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/apply-addons.sh | 501 | COMMENT | |
| LOW | scripts/install.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/install.sh | 21 | # 10. camoufox-cli:npm install -g 本地 fork(ship 的 portable node)+ camoufox-cli install 下 Firefox | COMMENT |
| LOW | scripts/update.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/lib/crew-workspaces.sh | 21 | } | COMMENT |
| LOW | scripts/lib/exec-tiers.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/lib/skill-wrappers.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/lib/agent-skills.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/lib/agent-skills.sh | 281 | # +./skills/<skill>/scripts/<file> — workspace-local skill 脚本(相对路径) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crews/content-producer/skills/html-video/scripts/hv.sh | 39 | # Set CWD to html-video project root (where templates/ and projects/ live) | COMMENT |
| LOW | crews/main/skills/xhs-publish/scripts/publish_xhs.py | 335 | # Read file and get dimensions | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/main/skills/swcr-register/scripts/generate_manual.py | 114 | def set_chinese_font(doc: Document) -> None: | CODE |
| LOW | …ain/skills/swcr-register/scripts/generate_form_info.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | …main/skills/swcr-register/scripts/generate_code_doc.py | 44 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crews/main/skills/video-product/scripts/gen.py | 496 | # ---- orchestration ------------------------------------------------------------ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ls/published-track/scripts/fetch-and-update-metrics.sh | 9 | # Usage: | COMMENT |
| LOW | …main/skills/published-track/scripts/get-xhs-user-id.sh | 10 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ws/main/skills/pitch-deck/scripts/html_to_longimage.py | 252 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/more_powerful_search_skill/extra/wikipedia.py | 2 | """This module implements the Wikipedia engine. Some of this implementations | STRING |