mcpField
B
boring-new-app

boring-new-app

github.com/hachej云与 DevOps160 次安装2 天前更新
代码仓库

关于 boring-new-app

面向维护者的技能,用于创建或接入由 Boring Factory 管理的应用仓库,并指导配置密钥、验证工作流及交接给专家。

主要功能

  1. 01从模板初始化应用
  2. 02接入现有仓库
  3. 03配置密钥和设置
  4. 04验证工作流与检查
  5. 05向专家交接

适用场景

  1. 01创建新的应用仓库
  2. 02将现有仓库接入 Factory
  3. 03排查设置和工作流故障

安装

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

$npx skills add https://github.com/hachej/boring-stack --skill boring-new-app

安装后在 Claude Code 中输入/boring-new-app确认已加载。

详细介绍

从头到尾设置新的应用仓库

你代表维护者(Factory 的所有者)行事。最终将得到一个仓库,专家的 Agent 可以在其中启动功能开发,之后由 Factory 接手完成后续工作。请自行完成每个步骤;只在下方所列的决策和需要对方使用浏览器的事项上询问对方。

0. 一次性向对方询问所有决策

  • 仓库:OWNER/NAME(新仓库)——或现有仓库(随后转到 §6)。
  • 应用的标题。
  • 运行时:vm(你拥有的主机上的容器;Agent 在应用中运行),或 cloudflare(带有 D1 的 Worker;其 Agent 以声明式方式定义,由 hub 运行,不含代码 Agent,也没有任务)。默认值为 vm。
  • 专家:对方的 GitHub 登录名。不能是 bot 的账户(GitHub 禁止批准自己的拉取请求,而 bot 会创建契约拉取请求)。
  • Bot:其令牌为 FACTORY_TOKEN 的账户(默认值:维护者)。

1. 前置条件(检查并修复可处理的问题)

gh auth status                       # signed in as the maintainer, scopes repo + workflow
gh auth setup-git                    # git (and npx github:…) use gh's credentials
gh api repos/hachej/boring-factory --jq .full_name    # read access to the factory
gh api repos/hachej/boring-app --jq .is_template      # the app template: must print true
gh api repos/hachej/boring-factory/actions/permissions/access --jq .access_level   # must be "user"

如果访问级别不是 user,其他仓库就无法调用 Factory 的工作流:gh api -X PUT repos/hachej/boring-factory/actions/permissions/access -f access_level=user。

请对方确认一次(无法通过令牌检查):

2. 三个机密

绝不要打印机密;请通过管道将其传给 gh secret set。

机密来源
FACTORY_TOKENBot 的令牌。当 bot 是已登录的维护者时:gh auth token
CURSOR_API_KEY维护者的 Cursor 密钥(从你的机密存储中获取)
CLAUDE_CODE_OAUTH_TOKEN仅限对方操作:在其设备上运行 claude setup-token(Claude Pro/Max)。绝不要要求对方将其粘贴到聊天中:由对方自行运行 gh secret set CLAUDE_CODE_OAUTH_TOKEN --repo OWNER/NAME,或在 §3 前将其导出

在 §3 前导出你能提供的值,以便 init 设置这些机密:

export FACTORY_TOKEN="$(gh auth token)"
export CURSOR_API_KEY="…"            # read from your secret store, never echoed

3. 创建仓库

先试运行,将计划用三行转述给对方,然后创建仓库:

npx -y github:hachej/boring-factory init OWNER/NAME --expert EXPERT --bot BOT --title "TITLE" --runtime vm
npx -y github:hachej/boring-factory init OWNER/NAME --expert EXPERT --bot BOT --title "TITLE" --runtime vm --yes

init 会基于模板 hachej/boring-app 创建私有仓库(gh repo create --template),推送一个提交,将其配置为该应用(名称、标题、端口、运行时:scripts/init-app.mjs 只保留 deploy/<runtime>/;CODEOWNERS;在 project.md 中设置专家),应用标签和设置,邀请专家,设置从环境中找到的机密以及 FACTORY_BOT 变量。然后设置它报告缺失的任何机密(§2)。应用不包含任何技能,也不会固定版本:其工作流会以 @main 调用 boring-factory。

之后需手动从应用中的 deploy/<runtime>/DEPLOY.md 配置生产环境;init 会打印相关命令。在 Cloudflare 上,生产令牌仅存放在 GitHub 环境 production 中(限制为 main),绝不能设为仓库机密;预览环境则使用另一个账户的令牌。

4. 验证,不要想当然

gh secret list --repo OWNER/NAME                     # the three names
gh variable list --repo OWNER/NAME                   # FACTORY_BOT
gh label list --repo OWNER/NAME --limit 100 | wc -l  # 26 or more
gh api repos/OWNER/NAME/invitations --jq '.[].invitee.login'
gh run list --repo OWNER/NAME --limit 5

main 上的首次 ci 运行:

  • paths 会显示红色,这是预期的:自定义提交直接推送到了 main。
  • check 必须为绿色。如果显示红色,请阅读 gh run view <id> --log-failed,先在模板 hachej/boring-app 中修复原因(所有新应用都会受到影响),然后再通过拉取请求在应用中修复。

5. 移交给专家

将以下内容填写完整后发送给对方:

接受加入 OWNER/NAME 的邀请,然后在你的设备上: npx skills add hachej/boring-stack --skill boring-pm -g 和 gh repo clone OWNER/NAME,在克隆目录中打开你的 Agent(Claude Code、Codex 或 Cursor),并描述你想要的内容。

告知维护者需要关注的事项:Actions 标签页中的 factory 工作流(context → ci → triage → checks → gates → build)、triage 对每个事件只发表一条评论,以及每个拉取请求上的检查 boring/ci 和 boring/proof。

6. 改用现有仓库

npx -y github:hachej/boring-factory sync OWNER/NAME --dry-run
npx -y github:hachej/boring-factory sync OWNER/NAME --yes     # labels + the "Adopt the Boring Factory" pull request

拉取请求只会添加仓库缺少的文件,这些文件均复制自模板(factory.yml 调用方、表单、PR 模板、CODEOWNERS、ask 规则、project.md)。在该分支的 project.md 中填写 setup 和 check,手动合并一次(Factory 在合并前不会启用),然后按 §2、§4、§5 操作。这是一次性迁移:之后不会再跟踪或更新任何内容。

出现故障时

症状原因解决方法
factory / context 报错 gh api …: Not Found (404)Factory 有缺陷,或令牌无权访问查看日志中的确切路径;如果令牌正常,请在 boring-factory 的 main 分支中修复(应用通过 @main 调用它)
任务提示无法使用 hachej/boring-factory/.github/workflows/…Factory 的工作流未共享按 §1 操作,将访问级别设为 user
新应用的 check 失败模板有缺陷在 hachej/boring-app 中修复,然后在应用中修复
Cloudflare 应用上的 check 拒绝 AgentAgent 或聊天包含 index.mjs、任务,或服务端代码中包含 Node将 Agent 改为声明式,或选择 runtime: vm
Triage 或 claude worker 始终未运行缺少或已过期的 CLAUDE_CODE_OAUTH_TOKEN按 §2 操作
专家无法批准契约 PR专家使用的是 bot 账号为专家使用其他账号
Cursor 任务立即失败Cursor 配额或 GitHub 集成问题启用按需用量;连接仓库;或为任务添加 builder:claude 标签
npx github:hachej/boring-factory 无法获取内容git 没有凭据执行 gh auth setup-git

如果问题源自 boring-factory(流程)或 hachej/boring-app(模板),请在对应位置修复原因,以免下一个应用遇到同样的问题;切勿只在应用中打补丁。

评论

支持 Markdown