mcpField
B
bounded-deploy

bounded-deploy

github.com/bounded-sh云与 DevOps075 次安装2 天前更新
代码仓库

关于 bounded-deploy

用于初始化、发布、配置和共享 Bounded 应用的部署技能,提供命令行流程及任务和故障路由。面向应用发布与维护人员,并强调发布前检查、错误处理和凭据安全。

主要功能

  1. 01初始化项目并部署 Bounded 应用
  2. 02配置账户登录、环境和托管站点
  3. 03检查部署状态与发布前条件
  4. 04处理部署、访问和域名问题
  5. 05通过角色分享控制面访问

适用场景

  1. 01创建新应用并执行常规发布
  2. 02发布网站并配置自定义域名
  3. 03排查部署状态、权限或信用额度问题
  4. 04为团队成员分配应用管理角色

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bounded-sh/skill --skill bounded-deploy

安装后在 Claude Code 中输入/bounded-deploy确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

docs/
access-playbook.md
accounts.md
cli-reference.md
domains.md
environments.md
key-and-account-safety.md
porting-an-existing-app.md
quickstart.md
source-sync.md

详细介绍

Bounded 部署

使用此技能来初始化、发布、配置和分享 Bounded 应用。 策略编写应在 bounded-backend 中进行;客户端代码和应用用户身份验证 应在 bounded-frontend 中进行。

默认工作流

对于新项目或常规发布,请阅读 docs/quickstart.md。预期流程如下:

bounded init
bounded deploy --create --name my-app

bounded init 会复用已保存的 Web 会话,或打开托管浏览器登录。它会 写入公开的 bounded.json(其中 "sourcePush": true,因此部署时会同步项目源代码)和 policy.json;凭据绝不能写入这两个文件。

任务路由

只阅读当前任务所需的参考文档。

任务阅读
首次设置、常规部署、发布网站、从一个项目使用多个应用 IDdocs/quickstart.md
常规 Web 账号登录、刷新会话、无头 OTP、切换账号docs/accounts.md
托管 Web 前端、预览、私有/公开访问frontend-hosting.md
多环境策略:各环境的应用 ID、常量、计划执行频率、函数作用范围docs/environments.md
根据提示词构建应用、使用 edit 迭代、监视/取消/设定运行门槛docs/cli-reference.md(提示词驱动的构建)
源代码同步、--with-source、克隆、拉取docs/source-sync.md
将现有应用(Supabase、Firebase、Express、Next、持有密钥的后端)迁移到 Bounded;确定哪些内容应成为规则、函数、计划任务或能力docs/porting-an-existing-app.md
第三方 API 的发现、就绪状态和请求:bounded services search/describe/request/statusdocs/cli-reference.md(能力)
oApp 打开前必须通过的检查项的试运行:bounded oapp preflightdocs/cli-reference.md(开放应用)
自定义域名和个性化 slugdocs/domains.md
分享、访问、所有者不匹配、401/403docs/access-playbook.md
永久删除应用(通过浏览器确认,且仅限所有者)docs/cli-reference.md(apps delete)
不常用的命令或精确查询标志docs/cli-reference.md
本地签名密钥、配置档、CI 密钥身份验证、旧版密钥所有权应用docs/key-and-account-safety.md

常规入门流程中不要加载本地密钥参考文档。对于明确要求本地签名、CI 密钥身份验证、账号配置档或恢复现有密钥所有权应用的用户,这是一种高级替代方案。

事件路由

  • deploy_in_progress、operationId 或 recoveryCommand:只能使用所有者可见的准确恢复命令,且输入保持不变,然后让 CLI 轮询。 参见部署恢复。
  • 有 code/state,但没有 recoveryCommand 的错误对该操作而言是终止状态——包括 410 policy_operation_unrecoverable,以及 abandoned、superseded、target-mismatch 和 manual-intervention 状态。重新运行恢复操作绝不可能提交该操作;请运行全新的 bounded deploy(如果消息要求操作员审核,则升级处理)。切勿为这些情况臆造恢复命令。
  • onchain_creation_pending、onchain_creation_unreadable 或 onchain_creation_superseded(均为 409):应用的主网创建尚未完成——在交易最终确认前,无法证明其链上所有者,因此无法向其部署任何内容,也没有任何内容被签名或花费。 为该应用 ID 重新运行同一个 bounded deploy:平台会恢复原始创建,并在账户最终确认后立即解除限制。 切勿重新运行 --create,也切勿创建替代应用——第一个应用的链上账户已付费,创建第二个应用会让这笔租金白白损失。
  • onchain_creation_owner_conflict(409):应用的链上账户已在一个创建时未指定的钱包下最终确认。这是完整性故障,不是可重试的状态;请升级处理并交由操作员审核。
  • 不确定适用哪种情况,或不确定全新部署是否安全:先运行只读命令 bounded deploy status --json。它会报告什么占用了部署槽位,并给出 freshDeploySafe 判定,且绝不会修改任何内容。
  • 部署前,如果要确认部署是否会成功(而不只是槽位是否空闲):运行只读命令 bounded deploy preflight --json。部署费用从应用的信用额度中扣除——每个阶段按实际 Cloudflare 基础设施成本收费(不到 1 美分;没有按层级设定的部署上限,也没有最低额度),因此信用额度不足的应用会被拒绝。Preflight 会报告信用余额以及 would_likely_admit/refuse/unknown 判定,让你能在花时间部署前告诉用户“此次部署会成功”或“请先充值”。它绝不会修改任何内容。
  • site deploy 出现 402 deploy_credit_insufficient:这是计费问题,而非身份问题。执行部署的账户没有可用于支付部署基础设施成本的可用额度。运行 bounded billing status,使用 bounded billing topup --credits <n> 添加额度,然后在同一身份下重试。切换账户无济于事。
  • DNS 配置完成后,自定义域名仍处于待处理状态:重新运行 bounded domains list --app-id <id> --env <environment> --json,以刷新状态并协调激活。 验证 DNS,并按照域名中的有界重试和升级处理步骤操作。 列出域名通常不会重新启动服务提供商验证;不要用服务提供商控制面板的说明替代公开 CLI 工作流。
  • site_control_denied(403)、所有者错误或意外的 401/403:在更改身份前,运行 bounded whoami 和 bounded access --app-id <id>。 参见访问操作指南。
  • project_daily_limit_exceeded(429):Free 账户每个滚动 24 小时最多可创建 20 个应用,而该账户已达到上限。读取 limit 和 resetsAtMs(以及 Retry-After),并告知用户何时可以创建下一个应用;等待额度重置,或重复使用经用户批准的现有应用。升级后会移除此限制; 删除应用不会释放额度。绝不要自动删除或重新利用应用。参见计费。
  • boundary_violation:切换账户无法绕过应用边界。请使用访问操作指南中的边界锁定部分。

发布规则

  • 在现有应用中,先读取 bounded.json。
  • bounded.json 指定的 policy.json 才是实际部署的文件。 在运行生成该文件的脚本之前,先将其输出与已提交的文件进行比较;如果输出删除或更改了任何非预期内容,说明生成器已过时:更新或删除它,切勿部署其输出。
  • bounded deploy 会验证并编译策略,并在更改任何内容之前拒绝无效策略;无需单独执行证明步骤。
  • 发布关键内容后执行部署时,使用 bounded apps inspect --app-id <id> --json 确认生效的策略和 运行时发布状态,然后再测量行为。
  • 从确切的站点回执或 bounded domains list --app-id <id> --env <environment> --json 获取托管 URL。不要臆造主机名。
  • 使用 bounded share <email-or-wallet> --role admin|developer|viewer|billing 共享控制平面访问权限。
  • 不要提交凭据、Web 会话、刷新令牌或提供商密钥。

评论

支持 Markdown