这个项目能做什么
# 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 检查)。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。