豆豆桌宠·自由创作编辑器

Vibe Coding

# 用代码制作一个会互动的桌宠包

这个页面面向开发者和 AI Coding 工具：先把行为想法写成插件，再通过本程序提供的 Creator API 校验、预览和打包。

阅读 AI Quickstart Creator API 文档 返回入口

## 如何使用 AI Coding 工具

把下面提示词复制到 Codex、Cursor、Claude Code 或其他 AI Coding 工具，再把方括号里的内容替换成你的宠物玩法。

## 基础提示词

    请先阅读 docs/creator-api/AI_QUICKSTART.md、docs/creator-api/API_REFERENCE.md、docs/creator-api/PERMISSIONS.md 和 docs/creator-api/SAFETY_RULES.md。

    我要制作一个豆豆桌宠 Vibe Coding 插件，并打包成可安装的 .petpack 宠物包：
    - 宠物想法：[宠物想法]
    - 触发场景：[触发场景]
    - 希望动作：[希望动作]
    - 本地资源路径：[本地资源路径，例如 my-plugin/plugin/assets/footprint.png；没有素材就写暂无]
    - 宠物包目标：输出一个可安装的 .petpack 宠物包

    请帮我生成 plugin/plugin.json 和 plugin/main.js，并确认需要打包进宠物包的资源都放在 plugin/assets/。
    要求：
    1. 使用 definePetPlugin。
    2. 只声明真正需要的 permissions。
    3. 只使用我列出的资源路径；不要读取任意本地文件，不要使用 fs、child_process、process.env、eval 或动态 import。
    4. 如果有更安全的 API，优先使用更安全的 API。
    5. 生成完成后先运行 npm run creator:check，并根据报错继续修复。
    6. 校验通过后运行 npm run creator:pack my-plugin/plugin，制作宠物包。

## 使用步骤

- 1. 先读 API 文档：让 AI 先看 `docs/creator-api/AI_QUICKSTART.md`、`API_REFERENCE.md`、`PERMISSIONS.md` 和 `SAFETY_RULES.md`。
- 2. 写清楚玩法和资源：把 [宠物想法]、[触发场景]、[希望动作]、[本地资源路径] 换成自己的内容。本地资源路径只填写插件内可打包的 `plugin/assets/` 文件或目录。
- 3. 交给 AI 生成：让 AI 写 `plugin.json` 和 `main.js`，不要先手动加高风险权限。
- 4. 运行校验：生成完成后先运行 npm run creator:check，确认结构、权限和 API 调用合法。
- 5. 继续修复：如果校验失败，把报错继续发给 AI，让它按错误解释修改。
- 6. 制作宠物包：校验通过后运行 `npm run creator:preview`，满意后再运行 `npm run creator:pack my-plugin/plugin`，输出一个可安装的 .petpack 宠物包。

## 制作流程

从阅读 API 文档、填写本地资源路径，到插件校验和宠物包打包，每一步都对应当前仓库里的命令。

Step 1

## 描述玩法

说明宠物要响应什么场景，例如鼠标靠近、专注计时、前台应用变化或提醒到期。

Step 2

## 生成插件

让 AI 根据 Creator API 写出 `plugin.json` 和 `main.js`，并声明必要权限。

Step 3

## 校验修复

运行校验命令，根据错误解释补齐权限或改用更安全的 API。

Step 4

## 预览打包

在桌宠开发者预览环境里测试行为，再打包成可安装的宠物扩展。

## Creator API 能做什么

- ctx.pet 控制动画、说话、移动、缩放、心情和自主行为。
- ctx.desktop 创建临时便签、贴纸、图片、足迹和小面板。
- ctx.mouse 读取鼠标位置、速度和是否靠近宠物。
- ctx.windows / ctx.apps 读取前台应用和窗口上下文。
- ctx.widgets 读取番茄钟、休息、水提醒和久坐提醒状态。

## 最小示例

    import { definePetPlugin } from "@pixelpet/creator-api";

    export default definePetPlugin({
      async onStart(ctx) {
        await ctx.pet.say("Ready.");
        await ctx.pet.play("idle");
      },
      async onReminderDue(ctx) {
        await ctx.desktop.spawnNote({
          title: "休息一下",
          text: "喝水、眨眼、伸展。"
        });
      }
    });

## 开发命令

    npm run creator:new my-plugin
    npm run creator:check my-plugin/plugin
    npm run creator:preview my-plugin/plugin
    npm run creator:pack my-plugin/plugin
    npm run creator:explain-errors my-plugin/plugin

## 权限声明

插件必须在 `plugin.json` 里声明权限。高风险能力会被校验器拦截，并需要用户明确同意。

    {
      "permissions": [
        "pet.control",
        "desktop.overlay",
        "mouse.read",
        "app.foreground"
      ]
    }