一键导入
create-module
Scaffold a new Vobase business module with schema, routes, jobs, and pages
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Scaffold a new Vobase business module with schema, routes, jobs, and pages
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Operate a live vobase tenant from the terminal with the `vobase` CLI — debug and improve agent behavior, manage an agent's instructions / working memory / skills / allowlist, mutate drive docs, contacts, and conversations, set staff attributes, simulate lead routing, and run end-to-end agent tests (including the blocking `agents debug wake-sync`). Use whenever the user wants to debug or improve the agent, test what it says, change its instructions or knowledge, manage skills, reassign or set the owner of a conversation, or run `vobase` commands (`auth login`, `drive propose`, `agents …`, `conv …`, `team …`, `routing …`) against a tenant.
Generate a Voltade-branded 1-page or 2-page demo onboarding guide (Markdown source + print-ready PDF) for a new client demo or sandbox. Use this skill whenever the user says "make an onboarding guide", "write an onboarding doc", "create a 1-pager", "create a 2-pager", "demo handout", "demo onboarding", "client handoff doc", or names a specific client + asks for an onboarding artefact (e.g. "draft the onboarding for the {client} demo"). Also use when the user says "spin up the onboarding PDF", "give me the onboarding doc for {project}", "do the {client} handout", or asks to update an existing onboarding guide. Baked-in: Voltade design system tokens (mauve + purple-9, Source Serif 4 / DM Sans / IBM Plex Mono), the one-italic-accent-word rule, the running-header pattern, the standard sections (ACCESS · TRY THE AI ON WHATSAPP · SUGGESTED PROMPTS · WHAT'S PRE-LOADED · TWO THINGS WORTH NOTICING for 1-pagers; ACCESS · TRY THE AI · "What the system does" cluster for 2-pagers), and a markdown→HTML→PDF pipeline via hea
Wire a module's resource into the generic change-proposal / change-history pipeline so every mutation is auditable, agent-proposable, and (optionally) gated behind staff approval. Use this skill when adding a new resource type that needs proposal-plus-decide semantics, a propose-CLI verb, or a tamper-evident edit history. Also use when the user says "make this auditable", "agents should propose changes to X", "needs an approval queue", "track edits to Y", "register a materializer", or "add a propose-change verb for module Z".
Bespoke per-module list page pattern using DiceUI DataTable + useDataTable + nuqs URL state + RelativeTimeCard for dates + module-typed Hono RPC for rows. Use this skill when adding a new top-level list page (e.g., `/widgets`, `/orders`) inside a vobase module, or when refactoring an old free-form list view into the standard data-table layout. Also use when the user says "list page", "make a table for X", "data table for module Y", "filter pills for the list", or "URL-shareable filters".
defineCliVerb registration pattern for vobase modules. Use this skill when adding, modifying, or debugging CLI verbs (`vobase contacts list`, `vobase messaging reply`, etc.), wiring custom verb groups into a tenant module, or troubleshooting why a verb is missing from the binary's catalog. Also use when the user says "register a CLI verb", "add a vobase command", "module-side CLI handler", "verb dispatcher", or "make this RPC available on the binary".
Skill for integrating Better Auth - the comprehensive TypeScript authentication framework.
| name | create-module |
| description | Scaffold a new Vobase business module with schema, routes, jobs, and pages |
| disable-model-invocation | true |
| arguments | [{"name":"module-name","description":"Lowercase hyphenated module name (e.g. \"sales-orders\")","required":true}] |
Scaffold a new Vobase module following established conventions.
/^[a-z0-9-]+$/)auth, mcp, health, api, systeminteger (cents), never floatCreate module directory at src/modules/{module-name}/
Create schema (schema.ts):
import { integer, sqliteTable, text } from 'drizzle-orm/sqlite-core';
import { nanoid } from '@vobase/core';
export const {tableName} = sqliteTable('{table_name}', {
id: text('id').primaryKey().$defaultFn(nanoid),
// Add domain columns here
createdAt: integer('created_at', { mode: 'timestamp' }).$defaultFn(() => new Date()),
});
Create routes (routes.ts):
import { Hono } from 'hono';
import { getCtx } from '@vobase/core';
import { eq } from 'drizzle-orm';
import { {tableName} } from './schema';
const routes = new Hono();
routes.get('/', async (c) => {
const { db } = getCtx(c);
const items = await db.select().from({tableName});
return c.json(items);
});
export { routes };
Create module definition (index.ts):
import { defineModule } from '@vobase/core';
import * as schema from './schema';
import { routes } from './routes';
export const {moduleName}Module = defineModule({
name: '{module-name}',
schema,
routes,
});
Register the module in the app's module list (typically server.ts or app.ts).
Sync schema: Remind user to run bunx drizzle-kit push (dev) or generate a migration.
jobs.ts with JobDefinition[] and add to defineModule({ jobs }).pages record mapping route paths to component paths.seed async function for dev data.