CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cloud-storage-web

Complete guide for CloudBase cloud storage using Web SDK (@cloudbase/js-sdk) - upload, download, temporary URLs, file management, and best practices.

Quality

68%

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

Fix and improve this skill with Tessl

tessl review fix ./config/.claude/skills/cloud-storage-web/SKILL.md

The canonical home for this skill is cloud-storage-web in TencentCloudBase/CloudBase-AI-Toolkit

SKILL.md
Quality
Evals
Security

Quality

Content

56%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 dense with genuinely non-obvious, high-value operational knowledge (error-code triage, domain whitelisting recipes, PG vs NoSQL API differences) delivered as executable code with strong validation loops. Its weaknesses are structural: the same prerequisite is repeated five times, advanced PG material is inlined instead of split into a reference file, and the workflow must be assembled from scattered, overlapping sections.

Suggestions

State the bucket-existence prerequisite once in the "Bucket existence prerequisite" section and reference it from the checklist, gotchas, and Upload rules instead of restating it — this alone would remove roughly a fifth of the body.

Move the PG-mode deep material (RLS SQL, Supabase parity table, return-shape table, URL-resolution strategies) into a references/ file (e.g. references/storage-pg.md) and keep only the routing decision (PG → app.storage.from(bucket), NoSQL → app.uploadFile) plus a one-line pointer in SKILL.md.

Consolidate the scattered pre-upload guidance (Minimal checklist, Local dev recipe, pre-upload steps, security-domain reminder) into one ordered workflow, and add the missing executable examples: a deleteFile per-file result check and the DO $$ / IF NOT EXISTS re-run-safe RLS block.

DimensionReasoningScore

Conciseness

The bucket-existence prerequisite is restated in at least five places ("Common mistakes", "Minimal checklist", the entire "Bucket existence prerequisite" section, the "PG mode upload" section, and "Upload rules"), and the "Just like Supabase" parity framing is repeated three times — noticeably verbose, padded duplication rather than occasional slack. The material itself is non-obvious domain knowledge (error codes, whitelist formats), so this is verbosity from repetition rather than from explaining concepts Claude already knows, which keeps it at 2 rather than 1.

2 / 5

Actionability

Concrete, executable code throughout — init, uploadFile, getTempFileURL, deleteFile, downloadFile, progress, error handling, RLS SQL, and MCP tool JSON — with exact PG vs NoSQL call shapes ("app.storage.from('covers').upload('file', file)"). Minor gaps: no complete end-to-end PG-mode example, and "Always inspect per-file results" for deletes is asserted without a code example.

4 / 5

Workflow Clarity

Strong explicit validation and feedback loops ("poll queryEnv(action="domains") rather than blind-sleeping", "stop editing frontend code and fix the environment-side storage resource first… then retry", inspecting the failed upload-info POST's `code` field) plus a pre-flight checklist and per-file delete inspection. Held at 4 because the workflow is fragmented across overlapping sections rather than one coherent sequence, and the RLS re-run guard (`IF NOT EXISTS` in a `DO $$` block) is described but missing from the SQL actually shown.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are all absent), and PG-mode deep material — the RLS SQL, Supabase parity table, return-shape table, and URL-resolution strategies — is inlined in SKILL.md where it belongs one level deep in a reference file; the body even points to postgresql-development-cloudbase/references/storage-pg.md for templates, showing awareness of the pattern. Section headers and clearly signaled sibling references ("Then also read") provide real structure, so this is not a 2.

3 / 5

Total

13

/

20

Passed

Description

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

A specific, well-targeted description that names the domain, SDK, and several concrete operations, but it entirely lacks a "Use when…" trigger clause, capping completeness and weakening distinctiveness against sibling CloudBase storage skills. Trimming "Complete guide… and best practices" filler in favor of explicit trigger phrases would raise it substantially.

Suggestions

Add an explicit trigger clause, e.g. "Use when a browser/Web app must upload, download, or manage CloudBase storage files, or when the request mentions uploadFile, getTempFileURL, or deleteFile in frontend code."

Replace the generic tail "file management, and best practices" with the concrete remaining operations (delete files, trigger browser downloads, signed/public URLs) so coverage is comprehensive.

Drop the "Complete guide for…" opener — it is padded framing that adds no trigger value — and lead with the actions in third person.

DimensionReasoningScore

Specificity

Lists several concrete actions — "upload, download, temporary URLs, file management" — plus the specific SDK "(@cloudbase/js-sdk)", but "file management" is generic and "best practices" is padding, leaving minor gaps in coverage (no delete or error-handling terms).

4 / 5

Completeness

The "what" is clear and specific, but there is no "Use when…" clause or equivalent explicit trigger guidance anywhere in the description, which caps this dimension at 3 per the rubric.

3 / 5

Trigger Term Quality

Good natural keyword coverage ("CloudBase", "cloud storage", "upload", "download", "temporary URLs", the SDK package name), but common variations users would actually say — "delete files", "getTempFileURL", file IDs — are missing.

4 / 5

Distinctiveness Conflict Risk

"using Web SDK (@cloudbase/js-sdk)" carves a clear niche distinct from Mini Program or MCP-side storage skills, but without any when-clause the trigger framing that would fully separate it from closely related sibling skills is absent.

4 / 5

Total

15

/

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/.claude/skills/cloud-storage-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.