| name | minimal-web-baas-demo |
| description | Fast path for a minimal CloudBase Web + database demo (最小前后端 / 最小可用 fullstack / Lovable-like BaaS). Defaults to @cloudbase/js-sdk client CRUD (NoSQL app.database / PG app.rdb), MCP-only schema, preview-first, and forbids cloud functions unless secrets, cron/background jobs, or logic that security rules/RLS cannot express. Use for 搭一套 demo、留言板、Todo、Notes、Kanban, or when users say 带云函数+云数据库 but only need CRUD. NOT for production multi-service backends, CloudRun, WeChat Mini Programs, or tasks that truly need server secrets. |
| version | 2.25.10 |
| alwaysApply | false |
Sibling skills (local only)
Sibling CloudBase skills ship beside this skill. Use local relative paths such as ../web-development/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.
Minimal Web BaaS Demo (fast path)
Goal: minutes to an interactive Web + database preview, not a cloud-function middleware stack.
This skill is the product equivalent of CloudBase Sites SessionStart Rule 5 (BaaS-first data persistence).
Activation Contract
Use this first when
- The user asks for a minimal fullstack / 前后端 demo, message board, Todo, Notes, Kanban, or Lovable/Supabase-like quick app on CloudBase Web.
- The user says "带云函数+云数据库" but the real need is CRUD + preview (reinterpret as Web SDK → database).
Do NOT use for
- WeChat Mini Programs (
wx.cloud) — use ../miniprogram-development/SKILL.md.
- True server workloads: payments callbacks, SMS providers, secret third-party keys, cron/ETL, WebSockets — use
../cloud-functions/SKILL.md or ../cloudrun-development/SKILL.md.
- Large multi-module products that need
../spec-workflow/SKILL.md.
Hard rules (align with Sites SessionStart Rule 5)
-
BaaS-first data path
- Schema / admin: Prefer MCP management tools. Do not ask the user to create collections/tables in the console. If MCP tools are missing in this session, configure MCP for next time and use
tcb CLI (../cloudbase-cli/SKILL.md) for equivalent schema/admin ops.
- NoSQL:
writeNoSqlDatabaseStructure (create collection / indexes) + permission tools as needed; CLI: NoSQL commands in cloudbase-cli.
- PostgreSQL: follow
../postgresql-development-cloudbase/SKILL.md (queryPgDatabase / managePgDatabase / migrations); CLI parity via tcb db pg … when MCP is unavailable.
- Reads / writes:
@cloudbase/js-sdk in the browser.
- NoSQL:
app.database() → db.collection(...).get()/add()/update()/watch(...).
- PG:
app.rdb().from(...).
- Prefer the template helper (often
src/utils/cloudbase.ts). Do not invent a second SDK wrapper.
-
Cloud functions are forbidden by default
- Todo / Notes / Chat / Kanban / "最小前后端 demo" → zero cloud functions.
- Even if the user says "带云函数", deliver Web SDK → DB and explain in one sentence that cloud functions are not required for CRUD.
- Create a cloud function only when:
- (a) the logic cannot be expressed as database security rules / RLS, and
- (b) it needs server-side secrets / third-party API keys, or it is a scheduled / background job not triggered by a user click.
-
Package discipline
- Browser:
@cloudbase/js-sdk only.
- Never install
@cloudbase/node-sdk (or random stubs) in frontend code.
-
Preview first, deploy second
- Ship local list + add (or equivalent CRUD) before static hosting / CloudApp deploy.
- Custom domains, DNS, rollback runbooks → only if the user explicitly asks.
- Skip Playwright / agent-browser unless the user asks to test.
-
UI ceremony for this path
const auth = app.auth
const { error } = await auth.signInAnonymously()
if (error) throw error
const db = app.database()
await db.collection('messages').get()
Capability sniff order (partners + agents)
Use this order for every minimal Web + DB demo. Do not reorder. Cloud functions stay off the critical path.
0. Connector pre-enabled (or shortest Trust path) ← host / partner packaging
1. Template warmup // parallel with credential wait ← downloadTemplate + install
2. envQuery(action="info") ← sniff env + RuntimeBackends
3. Lock ONE DB plane (NoSQL | PG | MySQL) ← no mid-flight thrash
4. MCP schema + minimal permissions ← writeNoSql* / PG migrate / MySQL manage
5. Browser @cloudbase/js-sdk CRUD ← app.database() / app.rdb()
6. Local preview (list + add) ← then ask before deploy
7. Cloud functions ← skip (count = 0) unless secrets/cron/rules-cannot-express
Stack priority for this path: Web SDK CRUD > MCP schema > template warmup > cloud functions.
Standard playbook
- Warm template in parallel with credentials (see partner notes below):
downloadTemplate (react default, vue if requested) → npm install / pnpm install.
envQuery(action="info") → lock one DB plane (NoSQL or PG or MySQL). Do not thrash between them.
- MCP: create the collection/table + minimal permissions.
- Frontend: ensure session (
auth.signInAnonymously() or equivalent), then wire list + create with @cloudbase/js-sdk (see Hard rule 6).
- Start / report preview URL; ask before deploy.
- Cloud function count for this path = 0.
On-demand skills (fetch only when needed)
| Need | Skill |
|---|
| Web scaffold / hosting | ../web-development/SKILL.md |
| NoSQL browser CRUD | ../cloudbase-document-database-web-sdk/SKILL.md |
| PG browser CRUD + MCP schema | ../postgresql-development-cloudbase/SKILL.md |
| Auth provider readiness | ../auth-tool-cloudbase/SKILL.md then ../auth-web-cloudbase/SKILL.md |
Prefer searchKnowledgeBase(mode="skill", skillName="minimal-web-baas-demo") (or the sibling dir id) when local skill files are unavailable. Do not dump every CloudBase skill at session start.
WorkBuddy / partner packaging notes (XDF and beyond)
Any partner host (WorkBuddy, CodeBuddy connectors, vertical expert prompts, ISV wrappers) should treat this skill as the compact fast-path brief. Reuse the sniff order above; do not invent a cloud-function-first demo path.
| Host capability | Recommended packaging |
|---|
| Full CloudBase Sites plugin | Rely on SessionStart Rule 5 injection + this skill on demand for non-Sites cwd demos. |
| WorkBuddy with SessionStart (supported) | Prefer plugin/workbuddy-template-prewarm (or enable Sites with CLOUDBASE_SITES_AUTO_INIT=1): background React zip + install + Sites preview (ports 17173..17272) overlaps credential/Trust wait; inject this skill pointer via additionalContext. Never guess 5173 — read .cloudbase-sites/preview.json. |
| WorkBuddy / connector without hooks | Pre-enable the CloudBase MCP connector for the tenant when possible; inject a short system brief that points here; warm downloadTemplate + npm install during credential/Trust wait (do not idle). |
| Expert / vertical prompts (XDF or other ISVs) | Ship a thin pack: expert Agent markdown (no frontmatter hooks) + settings/hooks merge for SessionStart prewarm. Reference example: plugin/xdf-workbuddy-expert-pack + sibling prewarm plugin. Replace any "必须云函数中转 / 前端绝不直连库" language with this BaaS-first contract. |
WorkBuddy SessionStart: https://www.workbuddy.ai/docs/cli/hooks (same additionalContext schema as CodeBuddy/Claude Code). Empty-dir Sites auto-init stays passive unless opted in — do not assume enabling Sites alone warms templates during credential wait.
Do not block first preview on custom domains or org DNS health. DNS issues are a post-preview concern.
One-screen partner paste (optional)
For 最小前后端 / Lovable-like demos: FIRST call
searchKnowledgeBase(mode="skill", skillName="minimal-web-baas-demo"), then Read.
Do not rely only on ad-hoc expert-prompt brief text.
Order: connector ready → template warmup during credential wait → envQuery →
lock one DB → MCP schema → auth.signInAnonymously() (or session) →
@cloudbase/js-sdk CRUD → preview.
Do not dump all CloudBase skills. Do not create cloud functions for CRUD.
NoSQL without session → gateway 401.