pi-git-agent

extensionskillmaintained

AI-first Git CLI automation — atomic AI commits, co-change relations (git-agent related), native extension guard for git commit/add, and workspace initialization (native /git-agent menu, no skill surface)

by — · v0.7.3 · published 4w ago

$ pi install npm:pi-git-agent
downloads/mo
273
stars
0
last push
2w ago
open issues
0

Signals

license: MITtestspi manifest: missinginstall size: —deps: 0peer deps: 0

Download trend

773 downloads · last 12 weeks (weekly)

README

Git Agent for Pi

Version License

English | 简体中文

一个 Pi 编码代理包,把 git-agent 变成原生的 /git-agent 命令菜单:原子 AI 提交、共同变更分析,以及阻止裸 git commit、引导使用原子提交流程的防护。无 skill 面。

概览

  • 原子提交:把暂存的改动拆成最多 5 个逻辑独立的提交,用 AI 生成 Conventional Commit 消息(git-agent commit)。
  • 共同变更分析:从 git 历史中挖掘一起变化的文件和测试套件(git-agent related)。
  • 原生扩展防护:extensions/validate-commit.ts 只拦截裸 git commit 工具调用,在阻断原因中本地注入有长度限制的 session context,并直接引导代理执行 git-agent --intent;普通 git add 调用保持允许。根目录 index.ts 负责为 Pi 组合注册所有扩展模块。
  • 会话驱动的提交:extensions/session-context.ts 提供 session_context 工具,读取当前会话记录,让提交意图来自用户实际提出的请求,而不是一句压缩的话。
  • 自动模型身份识别:git-agent 自动检测代理环境变量(PI_MODEL、CLAUDE_CODE_MODEL、CODEX_MODEL、MODEL),无需手动传递 co-author 标志。

用法

输入 /git-agent 打开原生菜单:

git-agent workflows:
❯ 1. Commit changes        (procedures/commit.md)
  2. Commit and push       (procedures/commit-and-push.md)
  3. Init / optimize       (procedures/init.md)
  4. Related files & tests (procedures/related.md)

或者直接传一个工作流关键字跳过菜单:

/git-agent commit                # 用会话上下文构建 intent 提交
/git-agent commit --co-author "Alice <a@example.com>"
/git-agent related src/foo.ts    # 查询指定文件的共同变更
/git-agent related --tests src/
/git-agent init                  # 重新生成 scopes + .gitignore

每次选择都会通过 pi.sendUserMessage 把完整流程(procedures/*.md)嵌入下一条消息。提交防护完全由工具调用后的 harness 校验负责,不再注入系统提示引导。当裸 git commit 被拦截时,harness 会本地提取有长度限制的 session context,让代理无需额外一轮 session_context 调用即可执行 git-agent --intent。

安装

# 已发布版本
pi install npm:pi-git-agent
# 或本地安装:pi install /path/to/git-agent/pi-git-agent

需要 PATH 上有 git-agent CLI(由本仓库的 git-agent-cli/ 目录构建)。

文件

pi-git-agent/
├── index.ts                  # Pi 包入口
├── src/
│   └── index.ts              # 扩展组合根
├── extensions/
│   ├── menu.ts               # /git-agent 命令菜单
│   ├── session-context.ts    # session_context 工具(提交意图来源)
│   ├── validate-commit.ts    # 拦截裸 git commit 并注入 session context
│   └── lib/session-context-core.ts # 共享本地上下文提取逻辑
├── procedures/
│   ├── commit.md             # 原子 AI 提交流程
│   ├── commit-and-push.md    # 提交 + 推送流程
│   ├── init.md               # scope/.gitignore 重新生成
│   └── related.md            # 共同变更查询
└── references/
    ├── cli.md                # git-agent CLI 参考
    └── coauthor-attribution.md

License

MIT