关于 building-edgespark-apps
building-edgespark-apps 是面向 EdgeSpark 开发流程和实现规范的 Agent Skill。它帮助开发者在修改应用代码前查阅生成类型与项目文件,并建议通过源码、CLI 帮助或文档核实具体 API。
主要功能
- 01指导 EdgeSpark 开发工作流
- 02要求依据生成类型和项目定义修改代码
- 03提供服务端与浏览器端实现规范
- 04涵盖认证、数据库、存储和架构变更
- 05建议通过源码和 CLI 帮助核实具体行为
适用场景
- 01开发现有 EdgeSpark 项目
- 02基于 EdgeSpark 新脚手架开展开发
- 03使用 @edgespark/web 实现浏览器认证
- 04修改架构、存储或运行时配置
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ edgesparkhq/ agent-skills --skill building-edgespark-apps安装后在 Claude Code 中输入/building-edgespark-apps确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/auth-patterns.mddev-workflow.mdproject-structure.mdserver-patterns.mdweb-patterns.md详细介绍
EdgeSpark 应用开发
将此技能用于 EdgeSpark 特定的实现和工作流决策。
此技能不是 EdgeSpark 文档。有关确切的约定,请查阅源代码、生成的类型、CLI 帮助和 docs/Mintlify MCP。此技能用于工作流、保护措施和防错。
此仓库中可靠的公共接口是:
edgesparkCLIedgespark init生成的项目结构- 生成的
src/__generated__/edgespark.d.ts - 生成的
src/__generated__/server-types.d.ts @edgespark/web浏览器 SDK
除非明确要求自定义表单,否则请将 @edgespark/web 和 authUI.mount() 作为此仓库默认的浏览器身份验证方案。
阅读顺序
仅阅读任务所需的内容:
edgespark.toml- 仓库或项目 Agent 指令文件(
AGENTS.md、CLAUDE.md或GEMINI.md) src/__generated__/edgespark.d.tssrc/__generated__/server-types.d.tssrc/defs/index.ts、src/defs/db_schema.ts、src/defs/db_relations.ts、src/defs/runtime.ts、src/defs/storage_schema.ts- 若已安装,则查阅
node_modules/@edgespark/web/dist/index.d.ts,了解浏览器 SDK 的准确类型 - 若已安装,则查阅
node_modules/@edgespark/web/README.md,了解托管身份验证外观变量的含义和默认值
然后加载所需的具体参考资料:
- 按界面划分的日常开发工作流:dev-workflow.md
- 脚手架布局和生成文件规则:project-structure.md
- 容易出错的服务端用法模式:server-patterns.md
@edgespark/web的简明 Web 用法模式:web-patterns.md- 身份验证配置、OAuth 提供商、回调 URL、托管身份验证主题设置和 Google One Tap:auth-patterns.md
硬性规则
- 在假设标志或具体行为之前,先运行
edgespark <command> --help。 - 代表用户运行
edgespark命令。仅将明确需要人工浏览器操作的步骤交给用户。 - 切勿并行运行多个
edgespark命令。 - 在
edgespark pull types填充脚手架生成的src/__generated__/edgespark.d.ts和src/__generated__/server-types.d.ts之前,应将它们视为占位文件。 - 不要编辑
src/__generated__/下的文件。 - 新的浏览器代码请使用
@edgespark/web。 - 应用 API 调用请使用
es.api.fetch(),不要使用裸fetch()调用同源应用路由。 - 除非明确要求自定义表单,否则请使用
authUI.mount()显示托管身份验证界面。 - 对托管身份验证进行主题设置时,请使用
@edgespark/web中的appearance.theme和appearance.variables;不要建议用户为了常规的明暗主题或品牌主题设置而编辑 SDK CSS。 - 对于自定义浏览器身份验证流程,请使用
@edgespark/web中的client.auth,不要手动调用/api/_es/auth/*。 - 从
edgespark/http导入auth,不要从edgespark导入。 - 身份验证是托管服务,路径为
/api/_es/auth/。OAuth 回调 URL 使用/api/_es/auth/callback/<provider>,而不是/api/auth/。 - 除非用户明确在调试,否则应将
/api/_es/auth/*、存储提供商详情和部署内部机制视为平台实现细节。 - 不要在
src/defs/**中从edgespark导入运行时 SDK 值。 - 使用
db.batch(),不要使用db.transaction()。 - 修改架构时使用迁移工作流。不要通过
edgespark db sql执行 DDL。 - 在数据库中存储 S3 URI,并向客户端返回预签名 URL。
- 对于客户端发起的上传,请生成预签名 PUT URL,不要通过 Worker 流式传输文件。
- 使用
vars.get()或secret.get()之前,请先更新src/defs/runtime.ts。 - 有关确切的命令语法,请使用
edgespark ... --help,不要在此技能中重复帮助文本。 - 如果不确定具体行为,请优先查阅源代码、生成的类型或 docs MCP,不要猜测。
默认工作流
有关各领域的操作工作流,请阅读 dev-workflow.md。
现有项目
- 先阅读生成的类型文件。
- 更改 schema、存储或运行时键之前,先阅读相关的 defs 文件。
- 修改身份验证或浏览器 API 代码之前,先阅读 Web SDK 类型。
全新脚手架
- 检查
edgespark.toml,确认是仅服务端还是全栈布局。 - 如果生成的文件只是占位内容,请先运行
edgespark pull types,再对 SDK 作出假设。 - 遵循脚手架生成的根目录、
server/和web/Agent 指令文件中有关包边界的说明。
遇到问题时
- 再次阅读生成的类型文件,然后再判断 API 的形态。
- 先运行相关的
edgespark ... --help命令,再猜测标志参数。 - 使用 docs/Mintlify MCP 查询产品文档详情。
快速开始
服务端:
import { db, storage, vars, secret, ctx } from "edgespark";
import { auth } from "edgespark/http";
import { posts, buckets } from "@defs";
import { Hono } from "hono";
import { eq } from "drizzle-orm";
const app = new Hono()
.get("/api/posts", async (c) => {
return c.json(await db.select().from(posts));
})
.post("/api/posts", async (c) => {
const data = await c.req.json();
const [post] = await db.insert(posts)
.values({ ...data, user_id: auth.user!.id })
.returning();
return c.json(post, 201);
});
export default app;
Web:
import { createEdgeSpark } from "@edgespark/web";
import "@edgespark/web/styles.css";
const es = createEdgeSpark();
es.authUI.mount(document.getElementById("auth")!, {
redirectTo: "/dashboard",
});
const res = await es.api.fetch("/api/posts");
const posts = await res.json();
评论
支持 Markdown