将静态HTML、ZIP压缩包或目录发布到MyVibe。适用于发布网页内容的需求。
MyVibe Publish: publish 网页内容( HTML 文件、 ZIP 存档或目录) 到 MyVibe.是一项面向实际任务的技能,主要用于Prerequists.;Node.js 18 或以后;
使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
将网页内容(HTML 文件、ZIP 压缩包或目录)发布至 MyVibe。
sandbox_permissions=require_escalated 参数,以确保启用网络权限。/myvibe:myvibe-publish --file ./dist.zip # 发布 ZIP /myvibe:myvibe-publish --file ./index.html # 发布 HTML /myvibe:myvibe-publish --dir ./dist # 发布目录 /myvibe:myvibe-publish --url https://example.com/app # 从 URL 导入并发布 /myvibe:myvibe-publish --dir ./dist --new # 强制创建新 Vibe /myvibe:myvibe-publish --dir ./dist --did z2qaXXX # 更新指定 Vibe
| 选项 | 别名 | 说明 |
|---|---|---|
--file |
-f |
HTML 文件或 ZIP 压缩包路径 |
--dir |
-d |
待压缩并发布的目录路径 |
--url |
-u |
待导入并发布的 URL |
--hub |
-h |
MyVibe URL(默认值:https://www.myvibe.so/) |
--title |
-t |
项目标题 |
--desc |
项目描述 | |
--visibility |
-v |
可见性:public 或 private(默认值:public) |
--did |
Vibe DID,用于显式版本更新(覆盖自动识别) | |
--new |
强制创建新 Vibe,忽略历史发布记录 |
首次工具调用 —— 并行执行:
Read:读取源文件,或目录下的主文件Bash:git remote get-url origin 2>/dev/null || echo "Not a git repo"Bash:node {skill_path}/scripts/utils/fetch-tags.mjs --hub {hub}| 检查项 | 项目类型 | 下一步 |
|---|---|---|
--file 指向 HTML/ZIP 文件 |
单文件 | → 启动截图,随后进入步骤 3 |
存在 dist/、build/ 或 out/ 目录,且含 index.html |
预构建 | → 步骤 2(确认是否重建) |
存在含 build 脚本的 package.json,但无输出目录 |
可构建 | → 步骤 2(先构建) |
存在多个 package.json 或 workspace 配置 |
Monorepo | → 步骤 2(选择应用) |
根目录下存在 index.html,且无 package.json |
静态 | → 启动截图,随后进入步骤 3 |
针对无需构建的项目启动截图任务(run_in_background: true):
若源为目录(--dir):
node {skill_path}/scripts/utils/generate-screenshot.mjs --dir {publish_target} --hub {hub}
若源为单文件(--file):
node {skill_path}/scripts/utils/generate-screenshot.mjs --file {publish_target} --hub {hub}
重要提示:当源为单个 HTML 文件时,请使用 --file;当源为目录时,请使用 --dir。该标志必须与发布配置中的 source.type 保持一致,以确保两个脚本对截图结果文件计算出相同的哈希值。
启动截图后台任务后,请使用 TaskOutput(设置 block: false)检查任务输出,再继续后续流程。若输出中包含 "agent-browser is not installed" 或 "Chromium is not installed":
npm install -g agent-browser && agent-browser installTaskOutput(block: false)检查,确认其已正常运行此举可确保截图在后台顺利完成,同时您可继续进行元数据分析。
根据 lock 文件识别包管理器,根据 package.json 中的 scripts 字段识别构建命令。
使用 AskUserQuestion 进行确认:
构建完成后,在后台启动截图任务(检查逻辑同步骤 1:使用 TaskOutput(block: false)验证 agent-browser 是否可用;如不可用则安装;再重试),随后进入步骤 3。
优先级顺序: → og:title → package.json 中的 name 字段 → 第一个 标签内容
涵盖三方面:为何(动机)→ 为何物(功能)→ 历程(可选)
信息来源:对话历史、README.md、源代码、package.json、git log
撰写指南:
来源为 git 远程仓库地址或 package.json 中的 repository 字段。SSH 地址需转换为 HTTPS 格式。
获取标签列表:node {skill_path}/scripts/utils/fetch-tags.mjs --hub {hub}
| 标签类型 | 匹配方式 |
|---|---|
| techStackTags | 将 package.json 中的依赖项与标签 slug 进行匹配 |
| platformTags | 依据对话上下文(如 Claude Code、Cursor 等)确定 |
| modelTags | 依据对话上下文(如 Claude 3.5 Sonnet、GPT-4 等)确定 |
| categoryTags | 根据项目推断(如含游戏库 → game;含图表组件 → viz) |
展示元数据,并使用 AskUserQuestion 交互:
Publishing to MyVibe: ────────────────────── Title: [value] Description: [50–150 字叙事描述] GitHub: [URL 或 "Not detected"] Cover Image: [若已就绪则包含] Tags: Tech Stack: [...] | Platform: [...] | Category: [...] | Model: [...]
可选项:“Publish” / “Edit details”
检查依赖项:若 scripts/node_modules 缺失,则先运行 npm install。
发布脚本将自动读取截图结果文件。请直接执行发布命令:
通过 stdin 传入配置:
node {skill_path}/scripts/publish.mjs --config-stdin <<'EOF'
{
"source": { "type": "dir", "path": "./dist", "did": "z2qaXXXX" },
"hub": "https://www.myvibe.so",
"metadata": {
"title": "My App",
"description": "Story description here",
"visibility": "public",
"githubRepo": "https://github.com/user/repo",
"platformTags": [1, 2],
"techStackTags": [3, 4],
"categoryTags": [5],
"modelTags": [6]
}
}
EOF
did 为可选字段 —— 仅用于显式版本更新coverImage 自动从 /tmp/myvibe-screenshot-{hash}.json 读取发布脚本执行完毕后,请检查脚本输出 中是否包含以下消息:
响应中必须始终包含 Vibe URL:
Published successfully! 🔗 [URL]
当更新已有 Vibe 但未启用版本历史功能时,脚本会打印如下升级提示:
📦 Previous version overwritten. Want to keep version history?
Upgrade to Creator → {hub}/pricing
若脚本输出中包含此提示,您必须将其完整呈现在对用户的响应中。 这有助于免费版用户了解版本历史功能。
| 错误 | 操作 |
|---|---|
| 缺少依赖项 | 在 scripts 目录下运行 npm install |
| 401/403 认证错误 | 令牌将被自动清除,请重新运行以完成授权 |
| 构建失败 | 分析错误原因,提供修复建议,或按原样发布源码 |
| 截图失败 | 跳过 coverImage,继续发布流程 |
| agent-browser 缺失 | 运行 npm install -g agent-browser && agent-browser install |
| 脚本执行失败(网络/沙箱限制) | 检查是否启用了网络权限。添加 sandbox_permissions=require_escalated 后重试 |
| Private mode 仅限 Creator 和 Studio 用户使用 | 参见下方“Private Mode 错误处理” |
当使用 visibility: private 发布失败并提示“Private mode is only available for Creator and Studio users”时,请使用 AskUserQuestion 让用户选择后续操作:
问题:“私有发布需要 Creator 或 Studio 订阅。您希望如何继续?”
| 选项 | 标签 | 说明 |
|---|---|---|
| 1 | Publish as Public | 您的 Vibe 将对所有人可见。您可在升级后随时更改此设置。 |
| 2 | View Upgrade Options | 打开定价页面,查看支持私有发布的订阅方案。 |
根据用户选择执行的操作:
visibility: "public" 重新运行发布命令,并告知用户 Vibe 已设为公开{hub}/pricing,并终止当前发布流程~/.myvibe/published.yaml,用于自动版本更新--new 可强制创建新 Vibe,而非更新已有 Vibe