CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

ai-model-web

Use this skill when a browser/Web app (React, Vue, Next, Nuxt, static sites, SPAs, dashboards, AI chat UI, 页面, 前端, 网页) needs AI models via @cloudbase/js-sdk. Default routing for Web/frontend AI — call directly from the browser, do NOT propose a Node.js proxy. Covers generateText and streamText; models via ai.createModel with groups cloudbase, the legacy hunyuan-v3 / hunyuan-exp, or custom-*, model id in the `model` field. MUST run two-step preflight before code — see body. NOT for Node.js backend (use ai-model-nodejs), Mini Program (use ai-model-wechat), or image generation (Node SDK only).

Quality

88%

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

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 delivers exceptionally actionable, executable guidance with a well-sequenced preflight workflow that includes real validation checkpoints and error-recovery loops — the main defect is redundancy, with the same critical rules (enable-check, full-replacement Models, casing fallback) restated across four or five sections. As a single large monolithic file it also misses the opportunity to move type definitions and legacy-group reference material into bundle files.

Suggestions

Deduplicate the repeated rules — state 'never assume a model is enabled', 'Models is a full replacement', and the PascalCase/camelCase fallback once in the preflight section, then reference that statement from the STOP table, Providers section, and Best Practices instead of restating each.

Move the Type Definitions block and the legacy `hunyuan-v3` / `hunyuan-exp` group details into reference files (e.g. references/types.md, references/legacy-groups.md) with clearly signaled one-level-deep links, keeping SKILL.md as a lean overview.

Trim the 'Available Providers and Models' section, which restates the STOP section's four legal createModel values and enable-check rules almost verbatim — collapse the two into a single authoritative section.

DimensionReasoningScore

Conciseness

Core rules are repeated many times: "Never assume a model is already enabled" appears in the STOP table, preflight ② step 2, the Providers section, and Best Practices #1-2; "Models is a full replacement" is stated 4+ times; the PascalCase/camelCase fallback note appears 3 times. Not a 4 because the repetition exceeds minor over-explanation that could be trimmed; not a 2 because there is no basic-concept padding — the content is dense with non-obvious, SDK-specific facts Claude cannot know.

3 / 5

Actionability

Fully executable throughout: exact MCP calls with complete param objects ("callCloudApi(service=\"tcb\", action=\"UpdateAIModel\", params={ EnvId, GroupName: \"cloudbase\", Models: [...], Status: 1 })" including the resend pattern), copy-paste JS for init/session-gate/generateText/streamText/error handling, full TS interfaces, and a concrete purchase-URL template. Common cases are covered with real values; nothing is pseudocode.

5 / 5

Workflow Clarity

The mandatory two-step preflight is a clearly ordered sequence (Step 0 EnvId → ① eligibility pass conditions → ② group-readiness decision tree with numbered steps and an explicit jump to custom onboarding) with explicit validation checkpoints ("verify it is present in DescribeAIModels ... before calling the SDK", "confirm with DescribeAIModels that the group is ready"), feedback loops (camelCase fallback on InvalidParameter, re-check after resource-pack purchase, full-replacement resend rule), and a final self-verify checklist (Best Practices #13: tsc --noEmit, build, browser test, non-zero usage). Matches the 5 anchor's validation + error-recovery + checklist pattern.

5 / 5

Progressive Disclosure

A single ~380-line file with no bundle files: the full TS Type Definitions block, the legacy hunyuan-v3/hunyuan-exp group details, and the DescribeManagedAIModelList field-by-field catalog documentation are all inlined, which is reference material that belongs in separate files per the rubric's structure guideline. Not a 4 because reference-type content is inline in a large monolith rather than 'mostly appropriately placed'; not a 2 because section headers, tables, and delegation to sibling skills ("../auth-tool-cloudbase/SKILL.md") keep the structure clear and navigable rather than minimal.

3 / 5

Total

16

/

20

Passed

Description

95%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 a strong example: it explicitly states what the skill covers (generateText/streamText via @cloudbase/js-sdk with the four legal createModel groups), when to trigger it (Web app frameworks, dashboards, AI chat UI, plus Chinese synonyms), and hard routing boundaries against sibling skills. The only weakness is that some capabilities are compressed into 'two-step preflight — see body' rather than enumerated.

DimensionReasoningScore

Specificity

Quotes: "Covers generateText and streamText; models via ai.createModel with groups cloudbase, the legacy hunyuan-v3 / hunyuan-exp, or custom-*, model id in the `model` field" and "MUST run two-step preflight before code" list several concrete, specific capabilities. Not a 5 because coverage has minor gaps — auth gating, pricing checks, and custom onboarding are only implied via 'two-step preflight — see body'; not a 3 because far more than 1-2 concrete actions are explicitly enumerated.

4 / 5

Completeness

Explicit 'when' clause — "Use this skill when a browser/Web app ... needs AI models via @cloudbase/js-sdk" — paired with an explicit 'what' — generateText/streamText coverage, the createModel group mechanism, and the mandatory preflight — plus negative boundaries. Both what and when are answered with concrete trigger phrases, matching the 5 anchor exactly; a 4 would require the 'when' to be less explicit.

5 / 5

Trigger Term Quality

Quotes: "browser/Web app (React, Vue, Next, Nuxt, static sites, SPAs, dashboards, AI chat UI, 页面, 前端, 网页)" plus "Web/frontend AI" — comprehensive natural trigger terms including framework names, app-type synonyms, and both English and Chinese phrasings a user would naturally say. Not a 4 because synonym coverage is unusually thorough with no significant natural variants missing.

5 / 5

Distinctiveness Conflict Risk

Quotes: "NOT for Node.js backend (use ai-model-nodejs), Mini Program (use ai-model-wechat), or image generation (Node SDK only)" and "Default routing for Web/frontend AI — call directly from the browser, do NOT propose a Node.js proxy". The niche is explicit with named sibling skills for every excluded scenario, giving minimal conflict risk; nothing overlaps ambiguously.

5 / 5

Total

19

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository

TencentCloudBase/CloudBase-AI-Toolkit

Path

config/source/skills/ai-model-web/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.