这个项目能做什么

# Gremlins Gremlins 是一个 Rust CLI 工具,可启动后台编码代理(称为“gremlins”),自主执行完整的软件开发周期:plan → implement → review-code → address-code。给定一个目标或 GitHub issue,一个 gremlin 会端到端无人值守运行,将产物写入每用户状态目录,并可选地打开拉取请求。舰队管理器跟踪运行中、停滞和已完成的 gremlins,提供 stop、land 和 close 等操作。 **状态:** 全新且正在积极开发中。预计会有粗糙边缘、流超时,以及并行 gremlins 偶尔产生的合并冲突。 ## 主要特性 - **自主流水线:** 无需人工干预即可运行 plan、implement、review 和 address-code 阶段。 - **舰队管理:** 通过 CLI 子命令跟踪、停止、落地、关闭和清理 gremlins。 - **多仓库支持:** 可从不同仓库启动 gremlins;状态按 gremlin 隔离。 - **队列系统:** 添加、列出、运行、重新排队和清除排队的 gremlin 启动任务。 - **并行执行:** 以扇出/扇入语义并发运行多个 review 或其他阶段。 - **产物绑定:** 通过 URI(file、git、opaque)和插值在阶段之间传递数据。 - **可自定义定义:** 基于 YAML 的阶段定义,支持可复用模式、提示词和客户端覆盖。 - **GitHub 集成:** 通过 `gh` CLI 打开 PR、请求 Copilot 审查、等待 CI 检查并合并。 ## CLI 子命令 - `launch <name>` — 按定义名称启动后台 gremlin。 - `resume` — 从记录的阶段重新生成现有 gremlin。 - `stop` — 向运行中的 gremlin 发送 SIGTERM。 - `land` — 将已完成的 gremlin 落地到当前分支。 - `rm` — 删除 gremlin 的状态目录和工作树。 - `close` — 将 gremlin 标记为已关闭。 - `log` — 跟踪 gremlin 的日志文件。 - `ack` / `skip` — 确认或跳过等待人工输入的 gremlin。 - `queue` — 管理启动队列(add、list、run、requeue、clear、set-state、stop)。 - `prompt-for-assistant` — 打印助手设置提示词。 - `artifacts` — 检查产物键和绑定。 - `clean` — 清理已完成的 gremlin 状态目录。 ## 配置 Gremlins 使用带阶段的 YAML 定义。关键配置元素包括: - **`default_client`:** 必需的 `provider:model` 字符串(例如 `xai:grok-4`)。 - **`base_ref`:** 用于分支工作树的 Git ref(默认 `current`)。 - **`github_integration`:** 启用 `gh` CLI 集成。 - **`bootstrap`:** CLI 源标志、启动命令、每工作树命令和产物绑定。 - **`prompts` / `prompt_dir`:** 命名提示词映射和用于提示词解析的目录。 - **`stage-definitions`:** 可复用的命名阶段模式。 - **`land`:** 用于落地的自定义 exec 阶段(例如 `gh pr merge`)。 - **`stages`:** 阶段或并行组的有序列表。 ### 阶段类型 **原语:** `agent`、`exec`、`loop`、`parallel`、`sequence`。 **配方:** 预定义的 YAML 阶段,如 `plan`、`plan-gh`、`implement`、`verify`、`github-open-pr`、`github-push-to-pr-branch`、`github-request-copilot-review`、`github-wait-copilot`、`github-wait-ci`。 ### 并行组 使用 `type: parallel` 和 `body:` 列表并发运行同级阶段。支持 `max_concurrent`、`cancel_on_error` 和 `error_policy`(any/all)。 ### 产物绑定 阶段可以通过 URI 绑定和插值产物: - `file://session/<name>` — 会话产物文件。 - `git://ref/<name>` — Git ref 名称。 - `git://commit/<sha>` — 提交 SHA。 - `git://range/<base>..<head>` — 提交范围/日志。 - `opaque://pr/<n>` — 不透明 PR 标识符。 ## 安装 需要 `gh`(GitHub CLI)和 `git`。使用 `cargo build` 构建。Make 目标包括 `test`、`rust-test`、`rust-fmt`、`rust-fmt-check`、`rust-clippy` 和 `check`。 ## 示例 ```sh gremlins launch local # 捆绑的 local.yaml gremlins launch gh # 捆绑的 gh.yaml gremlins launch gh --plan '#42' --wait ``` 项目本地定义可以通过 `.gremlins/<name>.yaml` 覆盖捆绑定义。 ## 用例 - 从 GitHub issue 自动执行常规代码变更。 - 使用不同模型或重点运行并行代码审查。 - 跨仓库管理多个自主编码代理。 - 与 CI/CD 和 GitHub 工作流集成(PR 创建、Copilot 审查、CI 检查)。