CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

wx-channel-engagement

微信视频号已发布作品数据抓取,写入 published-track 的 pub_wx_channel 表。wechat-channel session 登录。

Quality

69%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./crews/main/skills/expert-wx-channel/tools/wx-channel-engagement/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

70%Weight 40%Scale 1-5

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

The body is a strong operational document: exact commands, exit codes, a QR-login flow with explicit stop-and-wait gates and recovery loops, wujie shadow-DOM gotchas, and concrete pitfalls. Its main weaknesses are heavy verbatim repetition of the same session/cookie constraints across four sections and a complete failure to reference the bundled implementation script (scripts/fetch_engagement.py), leaving the CLI-to-code mapping implicit.

Suggestions

Reference the implementation explicitly in the CLI section, e.g. 「实现:scripts/fetch_engagement.py(python3 scripts/fetch_engagement.py <subcommand> …)」, so the commands map to the actual bundle file

Consolidate the repeated session constraints (不导出 cookie/UA/token, fail-first 队列, --session wechat-channel --persistent) into the single Session 共享约束 section and reference it from elsewhere instead of restating each 3-4 times

Specify what 「归一化匹配」 means for matching row.title against the 作品管理页 descriptions (e.g. whitespace/case/emoji normalization) so step 5 of the fetch flow is reproducible

DimensionReasoningScore

Conciseness

The body is dense and operational with no explanations of concepts Claude already knows, but core constraints are restated 3-4 times: 「不导出 cookie/UA/token」 appears in the Session 共享约束, 抓取流程 notes 2 and 3, and 约束 sections; 「fail-first 队列…不自动 close」 appears in four places (lines 26, 101, 161, 185-188); 「--session wechat-channel --persistent」 is repeated at lines 36, 101, 119, and 200. This matches anchor 3 ("mostly efficient but could be tightened"): not 4 because the duplication is substantial rather than minor; not 2 because there is no padding or tutorial-style explanation.

3 / 5

Actionability

Concrete, executable guidance throughout: exact CLI commands with arguments (「wx-channel-engagement fetch --row-id <id>」), an exit-code table (0/1/2/3), exact URLs, a copy-paste eval snippet (「document.querySelector('wujie-app').shadowRoot.innerText」), the innerText structure template, and a full output JSON example. Anchor 4 ("mostly executable guidance... with minor gaps"): not 5 because the body never states how the `wx-channel-engagement` commands map to the bundled `scripts/fetch_engagement.py`, and 「按完整视频描述归一化匹配」 does not define the normalization; not 3 because the commands are real and executable, not pseudocode.

4 / 5

Workflow Clarity

The fetch flow has explicit validation branches (「redirect URL 跳 login/扫码页 → exit 2」) and a guaranteed cleanup step (「finally: close session」), and the login flow has a hard user-confirmation gate (「Stop and wait:等用户回复…再往下走,不盲轮询」) plus a full error-recovery loop (「exit 2 = 未就位 → 提示用户点确认后重跑;已确认仍未就位 → 重跑 login 生成新二维码」). The 后台 DOM 改版 pitfall supplies a probe → inspect dumps → adjust-parser feedback loop, and the 报错约束 mandates verbatim stderr + exit code reporting. This matches anchor 5 ("clear sequence with explicit validation steps; feedback loops for error recovery"); not 4 because checkpoints and recovery branches are explicit at every fragile step rather than mostly present.

5 / 5

Progressive Disclosure

The bundle contains one implementation file (scripts/fetch_engagement.py) yet the body never references, links, or names it — the CLI section presents `wx-channel-engagement` commands with no pointer to where the code lives, so an agent cannot discover the script from the document. In-body sectioning itself is good (numbered sections, pitfall entries, exit-code table), which fits anchor 3 ("some structure but could be better organized" with references not clearly signaled — here the bundle reference is entirely absent): not 4 because a provided bundle file is completely unsignaled; not 2 because the body is well-sectioned rather than a minimal monolith.

3 / 5

Total

15

/

20

Passed

Description

53%Weight 40%Scale 1-5

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

The description is specific about its niche (WeChat Channels published-work metrics into pub_wx_channel) with a clear "what", but it entirely lacks a "when to use" clause and misses the natural engagement-metric trigger terms (播放量/点赞/评论) users would say. It is distinctive within its tool family but reads more like an internal tool label than a triggerable skill description.

Suggestions

Add an explicit trigger clause, e.g. 「Use when 需要抓取微信视频号已发布视频的播放/点赞/评论/分享/收藏数据或刷新 pub_wx_channel 的互动指标」

Enumerate the concrete metrics captured (plays/likes/comments/shares/favorites) so the capability coverage and natural trigger terms (播放量、点赞、互动数据) are both present

Drop the mechanism note 「wechat-channel session 登录」 from the description — it is implementation detail, not capability or trigger information

DimensionReasoningScore

Specificity

Quotes: "微信视频号已发布作品数据抓取,写入 published-track 的 pub_wx_channel 表" — it names a specific domain (WeChat Channels published works), a concrete destination (pub_wx_channel table), and 1-2 actions (scrape, write). It matches anchor 3 ("Names domain and 1-2 concrete actions, but not comprehensive"): not 4 because it never enumerates the metrics captured (plays/likes/comments/shares/favorites) or the subcommands (list/fetch/fetch-all); not 2 because the domain and target are specific, not generic.

3 / 5

Completeness

The "what" is clear (scrape published-work data for WeChat Channels and write it to pub_wx_channel), but there is no "when" at all — no "Use when..." / 「何时使用」 clause or equivalent trigger guidance; "wechat-channel session 登录" is a mechanism note, not a usage trigger. Per the guideline, a missing 'Use when...' clause caps completeness at 3; not 4 because 4 requires both what and when to be present.

3 / 5

Trigger Term Quality

Natural terms present: "微信视频号", "已发布作品", "数据抓取", "pub_wx_channel". However common variations a user would actually say — 播放量, 点赞, 评论数, 互动数据, engagement — are all missing, matching anchor 3 ("Some relevant keywords but missing common variations or synonyms"). Not 4 because the engagement-metric vocabulary that would trigger this skill is absent.

3 / 5

Distinctiveness Conflict Risk

Clear niche: 视频号 + published-track's pub_wx_channel + wechat-channel session is highly specific and distinguishable from sibling skills (e.g. a 公众号/wx-mp engagement tool). Anchor 4 ("Mostly distinct; minor overlap risk with closely related skills") fits: not 5 because there are closely related sibling skills sharing the same session/platform vocabulary (wechat-channels-publish shares the wechat-channel session) and no explicit distinct trigger phrases; not 3 because the specific platform and table naming cleanly separates it from similar skills.

4 / 5

Total

13

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

TeamWiseFlow/xiaobei

Path

crews/main/skills/expert-wx-channel/tools/wx-channel-engagement/SKILL.md

Reviewed

Table of Contents

Is this your skill?

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