mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-10-26 10:45:22 +00:00
根 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>
1.8 KiB
1.8 KiB
my-pi 维护约定(pi-worktree)
- 完全自维护(无上游)的斜杠命令 git worktree 管理扩展,提供
/wt(别名/worktree)的new/merge/switch/list/remove/prune子命令,实现「一键拆分」与「一键合并」;不注册模型可调用工具。 - git 操作由用户显式触发,经
execFileargv 直接调用(带超时、不经 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不会提交它们。