📦 C.R.A.B Deploy Agent — 全栈应用多步骤部署代理

v1.1.0

该技能提供一个多步骤的部署流程,支持从构建、测试到部署到 GitHub 和 Cloudflare Pages,每一步都需要人工审批。它适用于全栈应用的自动化部署,确保每个阶段的安全和可靠性。

2· 5.5k·0 当前·0 累计
by @sherajdev·MIT-0
下载技能包
License
MIT-0
最后更新
2026/1/19
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能的部署目的与代码大致匹配,但存在多个关于所需依赖和读取凭证/配置的不匹配,以及一个令人惊讶的默认域名,需要谨慎处理。
评估建议
该技能实现了部署工作流,但在安装前应审查以下不匹配和默认设置: - 脚本和 SKILL.md 使用 jq 和 npm,预期 wrangler Cloudflare 配置 (~/.wrangler.toml) 和已认证的 gh/wrangler CLI,但注册元数据未声明这些依赖。确保您有并信任这些 CLI 和配置。 - SKILL.md 设置默认自定义域名为 {name}.sheraj.org。不要允许自动使用第三方域名;显式提供自己的域名或确认域名分配方式。 - 检查 scripts/deploy-agent.sh(特别是推送/部署部分),了解将运行哪些 gh、git 和 wrangler 命令,以及是否联系了超出 GitHub/Cloudflare 的网络端点。 - 首先在安全环境(本地沙盒或一次性账号)中运行该工具,并验证它使用您的认证 gh/wrangler 凭证,而不是尝试读取无关机密。 - 如果需要更多保证,请向发布者询问:所需二进制文件和配置路径的完整列表,默认域名选择的解释,以及确认没有联系隐藏的远程端点。鉴于这些不一致性,请在验证脚本的操作和域名行为后再继续——这些问...
详细分析 ▾
用途与能力
该技能的名称/描述承诺了一个多步骤的部署流程到 GitHub 和 Cloudflare,脚本实现了这一点(使用 gh、wrangler、git)。然而,技能元数据省略了脚本实际使用的实用工具:SKILL.md 和脚本引用 'jq' 和 'npm'(脚本调用 npm list、grep 等),但注册元数据仅列出 gh、wrangler、git 作为所需二进制文件。SKILL.md 还引用了 ~/.wrangler.toml 中的 Cloudflare 令牌和默认域名 {name}.sheraj.org — 既注册元数据中未声明配置路径,也未声明外部默认域名。这些差异意味着声明的要求与技能实际需要不完全匹配。
指令范围
运行时指令和包含的脚本在 ~/.clawdbot/skills/deploy-agent 下执行本地状态读/写,并调用外部 CLI 以访问用户的 GitHub 和 Cloudflare 凭证(gh、wrangler)。这对于部署工具是预期的,但 SKILL.md 提供了一个令人惊讶的默认域名(sheraj.org),这意味着如果用户不覆盖,则将在第三方域名下发布 — 这是意外的,应进行验证。指令还假设用户的工具/配置已经认证(无指导用于保护令牌)。
安装机制
无安装规格(仅指令 + 捆绑脚本) — 来自任意网络安装的低风险。文件随技能提供(脚本 + SKILL.md),因此安装时不需要获取任何内容。这是较低风险的安装模式。
凭证需求
注册元数据未声明所需的环境变量或配置路径,但 SKILL.md 和脚本预期 Cloudflare 配置(wrangler whoami 和 ~/.wrangler.toml),并依赖用户的认证 'gh' 和 'wrangler' CLI 状态来推送仓库和部署。脚本还使用 jq 和 npm,但这些未在所需二进制文件中声明。该技能通过 CLI 隐式请求访问服务(GitHub、Cloudflare),但元数据未记录这些依赖关系或配置位置 — 这是一种降低透明度的疏漏。
持久化与权限
该技能将状态存储在用户的主目录下 (~/.clawdbot/skills/deploy-agent/state),不请求提升或系统范围的权限。'always' 为 false,它不声称修改其他技能或超出使用现有 CLI 工具/配置的系统配置。对于这种类型的工具,在用户主目录中持久存储状态是预期的。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.1.02026/1/19
无害

安装命令

点击复制
官方npx clawhub@latest install deploy-agent
镜像加速npx clawhub@latest install deploy-agent --registry https://cn.longxiaskill.com

技能文档

通过多步骤工作流部署全栈应用程序,在每个阶段都需要人工审批。

快速开始

# 通过 ClawdHub 安装
clawdhub install deploy-agent

# 初始化新部署 deploy-agent init my-app

# 检查状态 deploy-agent status my-app

# 继续执行步骤 deploy-agent continue my-app

工作流步骤

步骤命令描述需要审批
1deploy-agent init 开始部署✅ 设计阶段
2deploy-agent build 构建应用✅ 测试之前
3deploy-agent test 本地测试✅ 推送 GitHub 之前
4deploy-agent push 推送到 GitHub✅ 部署到 Cloudflare 之前
5deploy-agent deploy 部署到 Cloudflare✅ 最终确认

命令

初始化部署

deploy-agent init my-app

创建新的部署状态并等待设计输入。

检查状态

deploy-agent status my-app

显示当前步骤、审批信息和部署详情。

继续

deploy-agent continue my-app

获取当前步骤的下一步操作指导。

构建(第 2 步)

deploy-agent build my-app

使用 C.R.A.B 设计完成后,运行此命令构建应用。

测试(第 3 步)

deploy-agent test my-app

在推送之前验证应用是否在本地正常运行。

推送到 GitHub(第 4 步)

deploy-agent push my-app [repo-name]

创建 GitHub 仓库并推送代码。默认仓库名称 = 应用名称。

部署到 Cloudflare(第 5 步)

deploy-agent deploy my-app [custom-domain]

部署到 Cloudflare Pages。默认域名:{name}.sheraj.org

取消

deploy-agent cancel my-app

中止并清理部署。

列表

deploy-agent list

显示所有活动部署。

示例会话

# 开始新部署
$ deploy-agent init my-blog
🚀 Deployment initialized: my-blog
Step 1: Design your app with C.R.A.B

# ... 使用 C.R.A.B 进行设计阶段 ...

$ deploy-agent build my-blog 🚀 Build complete! Step 2: Local Testing Start dev server: cd my-blog && npm run dev

# ... 本地测试 ...

$ deploy-agent push my-blog 🚀 GitHub repository ready! Say 'deploy-agent deploy my-blog' to deploy to Cloudflare

$ deploy-agent deploy my-blog my-blog.sheraj.org 🎉 Deployment complete! App live at: https://my-blog.sheraj.org

状态管理

状态存储在:~/.clawdbot/skills/deploy-agent/state/{deployment-name}.json

{
  "name": "my-blog",
  "step": 5,
  "status": "deployed",
  "created_at": "2026-01-18T08:00:00Z",
  "repo_url": "https://github.com/user/my-blog",
  "domain": "https://my-blog.sheraj.org"
}

需求

工具用途
ghGitHub 仓库创建和管理
wranglerCloudflare Pages 部署
git版本控制
jqJSON 解析(用于状态管理)

配置

Cloudflare 令牌应在 ~/.wrangler.toml 中配置:

[account]
api_token = "your-cloudflare-token"

注意事项

  • 每个部署都是独立的
  • 状态在会话之间持久保存
  • 每个主要步骤都需要人工审批
  • 随时可以使用 "cancel" 中止

Next.js + Cloudflare D1 部署指南

本节介绍在 Cloudflare Pages 上部署 Next.js 应用与 D1 时的常见陷阱和修复方法。

部署前检查清单

检查项命令失败时的修复
Next.js 版本npm list nextnpm install next@15.5.2
Package lock 同步rm -rf node_modules package-lock.json && npm install提交 lock 文件
Cloudflare 适配器npm list @cloudflare/next-on-pagesnpm install -D @cloudflare/next-on-pages
wrangler 已安装npm list wranglernpm install -D wrangler

必需配置

1. package.json

{
  "dependencies": {
    "next": "15.5.2",
    "react": "^18.3.1",
    "react-dom": "^18.3.1"
  },
  "devDependencies": {
    "@cloudflare/next-on-pages": "^1.13.16",
    "wrangler": "^4.x"
  }
}

2. wrangler.toml

name = "my-app"
compatibility_date = "2026-01-18"
compatibility_flags = ["nodejs_compat"]

[[d1_databases]] binding = "DB" database_name = "my-db" database_id = "your-db-id"

3. API 路由(每个文件)

import { getRequestContext } from '@cloudflare/next-on-pages';

export const runtime = 'edge';

export async function GET() { const { env } = getRequestContext(); const { results } = await env.DB.prepare("SELECT * FROM tasks").all(); return Response.json({ data: results }); }

Cloudflare Pages 构建设置

设置
构建命令npx @cloudflare/next-on-pages
输出目录.vercel/output/static
Functions启用(用于 D1 API 路由)

常见问题与修复

问题错误信息修复
Lock 文件不匹配npm ci can only install packages when your package.json and package-lock.json are in syncrm -rf node_modules package-lock.json && npm install && git add package-lock.json
Next.js 版本@cloudflare/next-on-pages 要求 peer next@">=14.3.0 && <=15.5.2"降级到 next: "15.5.2"
API 路由不是 edgeThe following routes were not configured to run with the Edge Runtime添加 export const runtime = 'edge';
D1 访问模式使用 context.env.DB使用 getRequestContext().env.DB
缺少类型D1 绑定的 TypeScript 错误创建 env.d.ts 并包含 CloudflareEnv 接口

CSS 修复(滚动条闪烁)

html {
  overflow-x: hidden;
  scrollbar-gutter: stable;
}

body { overflow-x: hidden; }

部署后

  • Cloudflare Dashboard → Settings → Functions
  • 添加 D1 绑定:变量名 DB → 选择你的数据库

参考文档

  • 完整指南:docs/issues/nextjs-cloudflare-d1-deployment.md
  • Cloudflare 文档:https://developers.cloudflare.com/pages/framework-guides/nextjs/
数据来源ClawHub ↗ · 中文优化:龙虾技能库