lov-xbti-creator 用于创建自定义的 BTI 人格测试(如 LBTI、FBTI 等),基于 XBTI 架构(React + Vite),内容由 AI 生成,产出为完整、可部署的测试网站。
【用途】 当用户想要创建一个主题化的人格测试(例如面向龙虾的 LBTI、面向创始人的 FBTI),或说出“创建一个 XX 人格测试”“make a custom BTI”时使用。
【工作流程】
- 收集主题信息:通过 AskUserQuestion 获取 BTI 名称(必填)、主题(必填)、风格偏好(幽默毒舌/温暖治愈/学术严肃,必填)、人格数量(16-25,默认 20,选填)、特殊彩蛋人格(有/无,默认有,选填)、项目目录(默认 ~/projects/{NAME},选填)、是否提交到 Gallery(默认否,选填)。
- 环境准备:静默检查并自动修复环境,包括 Node.js(需 18+)、包管理器检测(pnpm/bun/npm)、git、image-creator skill、Zenmux API key、Python 依赖。可自动修复项包括安装 image-creator、安装 Python 依赖(google-genai、Pillow)。若 Node.js 缺失或 ZENMUX_API_KEY 缺失则需用户介入,环境完全就绪后才进入下一步。
- 设计维度系统:设计 5 个维度模型,每个含 3 个子维度,共 15 个维度。维度名称需主题化,每个子维度按 L/M/H 量表测量不同侧面,维度 ID 保持简短(D1-D15 或主题前缀),并为每个维度编写 L/M/H 说明。输出到 src/data/dimensions.js。
- 生成题目:生成 30 道题(每维度 2 道),每题 3 个选项(值 1、2、3,分别对应低、中、高)。题目需契合主题与语气,风格混合(直述、情境、假设),每个模型含 1-2 道记忆点/趣味题,可选加入 1-2 道触发隐藏人格类型的特殊题。输出到 src/data/questions.js。
- 设计人格类型:生成 16-25 个人格类型,每个含 code(4-6 字符英文代码)、cn(2-3 字符中文名)、pattern(15 字符 L/M/H 模式)、intro(一行标语)、desc(200-400 字符描述)。代码需主题化且有创意,模式应良好覆盖 L/M/H 空间,包含 1 个回退类型(匹配度 < 60% 时使用)与可选隐藏类型。输出到 src/data/types.js。
- 搭建项目:从 GitHub 克隆 XBTI 模板并清理(移除 .git、.vercel、image/*、CHANGELOG.md、docs/),重建 image 目录并初始化 git。处理 packageManager 字段以适配用户环境(npm 用户移除该字段,bun 用户改为 bun,pnpm 用户保持原样),用用户包管理器执行 install,然后用生成内容覆盖数据文件,并更新 index.html、src/components/IntroScreen.jsx、src/index.css、package.json 中的品牌信息。src/logic/scoring.js 保持不变(算法通用),仅在维度 ID 变化时更新导入路径。
- 生成头像图片:为每个人格类型用 lov-image-creator skill 程序化生成头像。提示词采用 nano-banana-pro 风格模板,包含主体、动作/姿态、环境、chibi 风格等要素。先生成全部提示词交给用户确认,询问“先生成一个预览确认风格,还是直接批量生成全部?”预览模式先生成一张并迭代风格;批量模式风格确认后循环生成所有类型。通过 CLI 全自动生成,不要求用户手动下载或操作任何 Web UI。使用 Read 工具向用户展示生成结果以便快速审阅,并验证所有图片存在。
- 安装与启动:在目标目录用用户的包管理器执行 install,启动开发服务器({PM} run dev 或 npx vite),告知用户开发服务器 URL(通常 http://localhost:5173)并邀请其测试完整流程。
- 提交到 XBTI Gallery(可选):若用户在步骤 1 选择提交,则向 skill-publisher/XBTI 仓库创建 PR。步骤包括 fork 并克隆仓库、创建案例目录(cases/{case_name}/images)、复制数据文件与图片、创建 index.js(重导出入口)与 case.json(合并元数据与数据)、更新 cases/registry.js 与 cases/index.json、创建分支并提交、用 gh pr create 创建 PR。完成后告知用户 PR URL 及合并后会在 xbti.example.com 上展示,并清理临时目录。
【设计原则】 主题一致性(维度、题目、类型、头像均需契合主题)、可分享性(人格描述应足够有趣以便截图分享)、平衡性(人格类型应覆盖光谱,无类型显得“客观上更好”)、幽默感(即使严肃主题也应在描述中体现机智)、完整性(输出应为完全可运行、可部署的网站)。
【运行上下文】 运行前读取 Skill 包的 skill.yaml,由宿主提供 skill-runtime/v1 上下文。字段解析顺序为:当前请求、项目上下文、个人 Preferences、品牌 Profile、通用默认值。仅使用 Manifest 声明的字段;Profile 保存公开品牌事实,Preferences 保存个人工作偏好。required: true 字段缺失时按 Manifest 的问题配置向用户提出一个聚焦问题,用户明确同意后再保存回答。报错需提供可复制的 context_id、字段路径与来源,诊断内容避开秘密、完整私人路径和原始配置。
【用户配置】 直接调用 lov-image-creator 的 gen_image.py 脚本时,应将 SKILL_IMAGE_CREATOR_DIR 设置为已安装的 lov-image-creator skill 目录;若运行时能原生调用 image-creator skill,则优先使用该方式而非文件路径。
【参考文件】 references/xbti-data-format.md — 所有文件的精确数据结构格式。
【限制】 该技能的具体定价、费用信息暂未提供;除上述流程外的其他功能暂未提供。