CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

ai-model-wechat

Use this skill for WeChat Mini Program AI via wx.cloud.extend.AI (小程序, wx.cloud apps). Covers generateText and streamText with callbacks (onText, onEvent, onFinish); streamText needs a data wrapper, generateText returns the raw response. Also covers multimodal image input (image_url content blocks, OCR and form extraction) — vision-capable models only. Models via wx.cloud.extend.AI.createModel with groups cloudbase (main managed, also 小程序成长计划 with `hy4-preview` / `hy3` / `deepseek-v4.1-flash`), the legacy hunyuan-v3 / hunyuan-exp, or custom-*; model id goes in the `model` field. MUST run two-step preflight before code — see body. NOT for browser/Web (use ai-model-web), Node.js backend (use ai-model-nodejs), or image generation (use ai-model-nodejs).

Quality

89%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

The canonical home for this skill is ai-model-wechat in TencentCloudBase/CloudBase-AI-Toolkit

SKILL.md
Quality
Evals
Security

Quality

Content

77%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 operationally excellent — executable code for every API call, a fixed-order preflight with hit criteria, on-miss recovery paths, and explicit validation feedback loops — making it highly actionable with a crystal-clear workflow. Its weaknesses are redundancy (the createModel guard and model rosters are each repeated three-plus times) and a fully monolithic structure with no reference files despite ~560 lines of material. Tightening the repetition and splitting the API/type/onboarding detail into references/ would lift both trailing dimensions.

Suggestions

State the four legal createModel(provider) values once — in the STOP table — and cross-reference it from the section-B warning and Best Practice #2 instead of re-enumerating all four (plus the wrong-value list) in each place.

Move the Type Definitions, the JS/Node-vs-Mini-Program API comparison, and the Custom Onboarding walkthrough into a references/ file (e.g. references/api-and-custom-onboarding.md) and link to it one level deep, keeping SKILL.md as an overview.

Consolidate the Growth Plan model roster (hy4-preview / hy3 / deepseek-v4.1-flash) into a single authoritative table; it is currently repeated in the preflight table, provider table A, the eligibility note, and Best Practice #4.

DimensionReasoningScore

Conciseness

The body is fact-dense (nothing explains concepts Claude already knows), but key material is repeated: the four legal createModel values are fully enumerated in the STOP table, again in the section-B warning ("⚠️ Common Mini Program mistake: writing createModel(\"deepseek\") ..."), and a third time in Best Practice #2; the Growth Plan roster (hy4-preview / hy3 / deepseek-v4.1-flash) appears in the preflight table, table A, the eligibility notes, and Best Practice #4. Time-sensitive specifics ("went offline on 2026-05-31", base library 3.15.1+) sit inline rather than in a consolidated deprecation note. This matches anchor 3 ("mostly efficient but ... could be tightened") better than anchor 4 — the redundancy is more than minor, though none of it is empty padding, which keeps it above anchor 2.

3 / 5

Actionability

Fully executable, copy-paste-ready guidance throughout: complete callCloudApi payloads for DescribeActivityInfo, DescribeEnvPostpayPackage, DescribeAIModels, UpdateAIModel, and CreateAIModel (with "⚠️ Models is a FULL REPLACEMENT, not incremental" semantics); working generateText/streamText/multimodal code with callbacks and [DONE] termination; a decision table mapping user intent to exact provider/model/actions; and defensive JSON-fence stripping for OCR output. Anchor 5 ("specific examples cover the common cases") is matched — text, streaming, vision, custom endpoints, and error handling are all covered with runnable code.

5 / 5

Workflow Clarity

The Mandatory Two-Step Preflight is an explicitly sequenced workflow with fixed order ("① eligibility → ② group readiness. Do not swap the two"), per-step hit criteria ("attendRecords contains at least one entry where activityName === ...", "postpayPackageId starts with pkg_tcb_tokencredits_"), explicit on-miss recovery actions (enable via UpdateAIModel, purchase link, plan enrollment URL), and post-registration validation ("Run DescribeAIModels to confirm the GroupName exists with Status=1"). Error-recovery loops are stated (casing retry on InvalidParameter, "merge the old list + new entries before passing" for the full-replacement footgun) plus a final self-verify checklist (Best Practice 13). This matches anchor 5's "explicit validation steps; feedback loops for error recovery".

5 / 5

Progressive Disclosure

There are no bundle files at all (no references/, scripts/, or assets/), and the entire 557-line skill is inlined in SKILL.md: TypeScript definitions, the JS/Node-vs-Mini-Program comparison table, the custom-onboarding walkthrough, and the full provider/model catalog all live inline. Section headers and the STOP pre-read provide decent in-file navigation, so this is above anchor 2's "minimal structure" — but content that clearly belongs in separate reference files is inline with zero one-level-deep references, which is exactly anchor 3 ("could be better organized ... content that should be separate is inline"). It falls short of anchor 4, which expects most bulk content appropriately split out.

3 / 5

Total

16

/

20

Passed

Description

100%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.

An exemplary description: it names concrete capabilities with API-level specifics, provides bilingual and model-level trigger terms, explicitly states both what it does and when to use it, and cleanly fences off sibling skills. Its only weakness is density — at ~140 words it borders on padded — but every clause carries a capability, trigger, or boundary rather than fluff, so no dimension is materially penalized.

DimensionReasoningScore

Specificity

The description lists multiple specific concrete actions with comprehensive coverage: "Covers generateText and streamText with callbacks (onText, onEvent, onFinish)", "multimodal image input (image_url content blocks, OCR and form extraction)", and model configuration via "wx.cloud.extend.AI.createModel with groups cloudbase ... hunyuan-v3 / hunyuan-exp, or custom-*". It even documents API contract specifics ("streamText needs a data wrapper, generateText returns the raw response"). This clearly matches anchor 5; anchor 4 would require minor coverage gaps, and none are evident — every capability in the body is represented.

5 / 5

Completeness

It explicitly answers both questions: "what" via the enumerated capabilities (generateText/streamText with callbacks, multimodal image input, model/group configuration) and "when" via the explicit trigger clause "Use this skill for WeChat Mini Program AI via wx.cloud.extend.AI (小程序, wx.cloud apps)" plus a mandatory-process pointer ("MUST run two-step preflight before code"). It also adds explicit not-for boundaries. Anchor 5's "clearly and explicitly answers both what AND when with concrete trigger phrases" is matched exactly; anchor 4 would require the 'when' to be less explicit.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage including synonyms in two languages and exact API tokens a user would type: "WeChat Mini Program AI", "小程序", "wx.cloud apps", "generateText", "streamText", "OCR", "form extraction", "cloudbase", "hunyuan-v3", "deepseek-v4.1-flash". A user needing this skill would naturally say nearly all of these. Anchor 4 ("a few natural terms missing") fits worse — the description even covers model-id-level triggers, so 5 is the best fit.

5 / 5

Distinctiveness Conflict Risk

The niche is unambiguous — WeChat Mini Program client via the wx.cloud.extend.AI namespace — and it explicitly de-conflicts with sibling skills: "NOT for browser/Web (use ai-model-web), Node.js backend (use ai-model-nodejs), or image generation (use ai-model-nodejs)". Distinct triggers (小程序, wx.cloud, Mini Program) make wrong-skill triggering minimal, matching anchor 5; anchor 4 would require residual overlap with closely related skills, which the explicit redirects eliminate.

5 / 5

Total

20

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (557 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

14

/

16

Passed

Repository

TencentCloudBase/CloudBase-AI-Toolkit

Path

config/.claude/skills/ai-model-wechat/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.