Install any skill in seconds. Free to start, no credit card required.
Get Started Free →[Deprecated] Use when building frontend Web apps that talk to CloudBase Relational Database via @cloudbase/js-sdk – provides the canonical init pattern so you can then use Supabase-style queries from the browser. New environments should use PostgreSQL with app.rdb() — see postgresql-development skill instead.
.claude/skills/tencentcloudbase-relational-database-web-cloudbase/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -1% | 0% |
Sibling CloudBase skills ship beside this skill. Use local relative paths such as ../auth-tool-cloudbase/SKILL.md.
If a referenced sibling skill file is missing from this environment, ask the user to install the full CloudBase plugin (or the missing skill). Do not HTTP-fetch remote skill or protocol markdown into the agent context.
@cloudbase/js-sdk.../relational-database-mcp-cloudbase/SKILL.md../auth-web-cloudbase/SKILL.md../web-development/SKILL.mdapp itself as the relational database client.relational-database-mcp-cloudbase. If the task says PostgreSQL, CloudBase PG, PG mode, app.rdb(), queryPgDatabase, managePgDatabase, or RLS, route to postgresql-development-cloudbase instead.This skill standardizes the browser-side initialization pattern for CloudBase Relational Database.
After initialization, use db with Supabase-style query patterns.
bashnpm install @cloudbase/js-sdk
javascriptimport cloudbase from "@cloudbase/js-sdk"; const app = cloudbase.init({ env: "your-env-id" }); const auth = app.auth; // Handle login separately const db = app.rdb();
import("@cloudbase/js-sdk") unless the framework absolutely requires it.db client and reuse it.cloudbase.init() options.db clientrelational-database-mcp-cloudbase instead whenpostgresql-development-cloudbase instead whenapp.rdb(), queryPgDatabase, managePgDatabase, PostgREST, or RLSjavascriptimport cloudbase from "@cloudbase/js-sdk"; const app = cloudbase.init({ env: "your-env-id" }); export const db = app.rdb();
javascriptconst { data, error } = await db .from("posts") .select("*") .order("created_at", { ascending: false }); if (error) { console.error("Failed to load posts", error.message); }
javascriptawait db.from("posts").insert({ title: "Hello" }); await db.from("posts").update({ title: "Updated" }).eq("id", 1); await db.from("posts").delete().eq("id", 1);
app.rdb() gives you the relational database client.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 13,497 | 7,254 | -46% | 1 | 1 | 0% | 2,316 | 2,492 | +8% | 0 | 0 | — |
case-02 | fail→pass | 10,789 | 4,680 | -57% | 1 | 1 | 0% | 1,899 | 1,935 | +2% | 0 | 0 | — |
case-03 | fail→pass | 14,943 | 9,193 | -38% | 1 | 1 | 0% | 3,244 | 2,946 | -9% | 0 | 0 | — |
case-04 | fail→pass | 17,320 | 14,396 | -17% | 1 | 1 | 0% | 3,253 | 3,266 | +0% | 0 | 0 | — |
case-05 | pass→pass | 10,972 | 5,031 | -54% | 1 | 1 | 0% | 1,714 | 1,925 | +12% | 0 | 0 | — |
case-06 | pass→pass | 18,751 | 12,863 | -31% | 1 | 1 | 0% | 3,049 | 2,456 | -19% | 0 | 0 | — |
case-07 | fail→pass | 23,780 | 7,142 | -70% | 1 | 1 | 0% | 2,363 | 2,341 | -1% | 0 | 0 | — |
case-08 | fail→pass | 12,985 | 5,121 | -61% | 1 | 1 | 0% | 2,310 | 2,101 | -9% | 0 | 0 | — |
case-09 | fail→pass | 10,621 | 5,853 | -45% | 1 | 1 | 0% | 1,939 | 1,955 | +1% | 0 | 0 | — |
case-10 | fail→pass | 12,554 | 5,323 | -58% | 1 | 1 | 0% | 1,976 | 1,978 | +0% | 0 | 0 | — |
case-11 | fail→pass | 19,376 | 6,019 | -69% | 1 | 1 | 0% | 1,692 | 2,185 | +29% | 0 | 0 | — |
case-12 | fail→pass | 14,017 | 7,283 | -48% | 1 | 1 | 0% | 2,269 | 2,260 | -0% | 0 | 0 | — |
case-13 | fail→pass | 12,420 | 8,997 | -28% | 1 | 1 | 0% | 2,297 | 2,837 | +24% | 0 | 0 | — |
case-14 | fail→pass | 12,812 | 6,930 | -46% | 1 | 1 | 0% | 2,175 | 2,324 | +7% | 0 | 0 | — |
case-15 | fail→pass | 5,928 | 2,733 | -54% | 1 | 1 | 0% | 969 | 1,543 | +59% | 0 | 0 | — |
case-16 | fail→pass | 6,392 | 4,563 | -29% | 1 | 1 | 0% | 1,254 | 1,933 | +54% | 0 | 0 | — |
case-17 | pass→pass | 8,679 | 2,490 | -71% | 1 | 1 | 0% | 1,427 | 1,417 | -1% | 0 | 0 | — |
case-18 | pass→pass | 12,754 | 5,339 | -58% | 1 | 1 | 0% | 2,181 | 1,972 | -10% | 0 | 0 | — |
case-19 | fail→pass | 15,776 | 3,866 | -75% | 1 | 1 | 0% | 2,486 | 1,750 | -30% | 0 | 0 | — |
case-20 | fail→pass | 11,861 | 4,284 | -64% | 1 | 1 | 0% | 2,198 | 1,792 | -18% | 0 | 0 | — |
case-21 | pass→pass | 7,756 | 3,890 | -50% | 1 | 1 | 0% | 1,349 | 1,755 | +30% | 0 | 0 | — |
case-22 | fail→pass | 10,194 | 4,667 | -54% | 1 | 1 | 0% | 1,946 | 1,934 | -1% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +77 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/3/2026 | +82% |
Other measured skills in the registry, with their headline benchmark lift.