Files
my-pi/pi-worktree/AGENTS.md
T
云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 0c45b1a438 docs: 拆分 AGENTS.md,根文件只保留全局规则
根 AGENTS.md 从约 78KB 压缩到约 10KB,避免作为常驻规则加载时被截断:
只保留仓库定位、扩展清单、跨扩展硬规则与通用验证命令。各扩展的维护
约定与验证命令移入对应目录的 AGENTS.md(新增 extensions/AGENTS.md 承载
系统提示词与根目录 TS/LSP 约定),上游来源记录统一放进各目录的中文
UPSTREAM.md,并补齐 pi-permission-system 与 pi-rtk-optimizer 的来源记录。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-20 19:43:22 -07:00

1.8 KiB
Raw Blame History

my-pi 维护约定(pi-worktree)

  • 完全自维护(无上游)的斜杠命令 git worktree 管理扩展,提供 /wt(别名 /worktree)的 new / merge / switch / list / remove / prune 子命令,实现「一键拆分」与「一键合并」;不注册模型可调用工具。
  • git 操作由用户显式触发,经 execFile argv 直接调用(带超时、不经 shell),按设计绕过 Bash 工具权限策略,不新增权限审批层。
  • 状态登记位于 <agentDir>/pi-worktree/state.json(目录 700、文件 600、原子写入),不放 <agentDir>/my-pi/ 下;Pi 不能修改进程 cwd,会话切换通过 SessionManager.forkFrom(或为空会话写入最小 header)生成 cwd 指向目标目录的新会话文件再 ctx.switchSession 重建运行时,切换后的收尾只能在新 ctx 的 withSession 回调中执行。
  • 合并流程固定为先确认、再 rebase 到来源分支、最后默认 --ff-only 合并(--squash 可选压缩),冲突时可选择中止或保留后用 /wt merge --continue / --abort 处理,来源改动用 stash 兜底,永远不会 push;登记文件写入走 state.json.lock 锁文件串行化;worktree 根目录与分支前缀由组合包 config/pi-worktree.json 的 root / branchPrefix 配置。
  • 来源 checkout 的 .pi/worktree.json(version: 1)声明环境复刻:copy 只复制未跟踪文件、link 只软链 gitignore 目标、env 渲染为 600 权限环境文件、postCreate 仅在 ctx.isProjectTrusted() 时以 argv 形式 execFile(绝不走 shell),任一失败即停并可用 /wt reopen 增量重跑;未被 .gitignore 覆盖的软链/环境文件写入 .git/info/exclude(仓库各 worktree 共享),保证 /wt merge 不会提交它们。