pi-retro
回顾你的循环 π 编码代理设置 摩擦变成了变化,而不是振动的记忆。
它是做什么的
代理收集数据 摩擦 整整一周——工具不当,令牌/上下文痛苦,
幻觉或规范漂移,git麻烦,安全隐患,工作流程漏洞
进入成本过滤分类帐。一周一次,一个评论汇总它,判定你的
活跃的 试用,并提出 adopt / evaluate / reject 的变化。你批准;
没有什么auto-applies。
如果你每周都注意到同样的摩擦,并且从不更换,就安装它 任何东西,或者如果您正在运行多个扩展并且无法确定是哪个扩展 都在赚钱。
没有内存存储(没有经过验证的事实),没有可观察性(没有调用痕迹)- a 有一个人在循环中管理改进队列。
安装
pi install npm:@jyyyeung/pi-retro
然后重启pi(或 /reload)。
从当地的收银台:
pi install ./pi-retro
pi -e ./pi-retro/extensions/retro.ts
快速启动
- 在任意会话中击中摩擦→座席呼叫
log_friction( 捆绑friction-log技能在真正的摩擦中触发它,无需询问)。 - 运行
/retro每周。评审人员会写一份注明日期的报告,并提出修改建议。 - 那么,批准→申请
friction_archive清理已审核的分类账。
第一个 log_friction 调用引导带有标题的分类帐文件
编辑(区域配置-见下文)。 friction_stats 在那之前就可以了
报告0和它将创建的路径,并且永远不会抛出
还没有任何记录。
/retro-stats 打印聚合而不调用模型转换-最便宜的
检查每周复习是否到期的方法。(/retro 是评论本身,
由捆绑的提示模板加上 weekly-review 技能。)
作用域
| 用户(默认) | 项目 | |
|---|---|---|
| 路径 | ~/.pi/agent/meta/problems-ledger.md | <repo>/.pi/retro/ledger.md |
| 观众 | 你,跨项目 | 这个团队 |
| 为 | 个人设置摩擦(配额、主机、扩展) | 团队可以采取行动的摩擦(CI、测试、审查、工作流) |
隐私规则:条目永远不会在作用域之间复制。项目分类账为
直到有人登录才创建 scope: "project" 在回购中;团队
共享(提交)是团队的明确决策——忽略它直到
然后。
分类帐格式
每个事件一行:
YYYY-MM-DD | project | area | phase | problem | fix?
托管标记(工具编写它们;它们保持人类可读):
[x3 last 2026-10-15]-复发:同样的摩擦在30年内再次发生 天撞了一下计数器,而不是加一条线。→ RESOLVED 2026-10-14: note-分辨率:最强的积极信号 审查得到。
一个文字 | 在字段内被转义(\|),读时未转义;
所以 a || b fails 保持与写入的完全相同,而不是被重写为
a / b. 旧版本编写的条目(未转义管道)仍然可以解析。行
报告那些看起来像条目但无法解析的 friction_stats
(带有行号),而不是从总数中无声地删除。
配置保存在文件中
<!-- pi-retro: areas = tooling|tokens|hallucination|isolation|security|workflow|quality -->
编辑标题行以更改区域分类。文件是 自描述,包更新后仍然有效,并且可以根据作用域而有所不同。
工具
| 工具 | 它是做什么的 |
|---|---|
log_friction | 追加一个条目(或碰撞一个递归)。参数: project, area, phase, problem、可选 fix, cost (S / M / L), scope, force. |
friction_stats | 只读聚合:按区域/项目、打开的与已解析的、顶部重复出现的、格式错误的行计数计数。使用而不是读取整个文件。 |
friction_resolve | 向匹配明确的打开条目追加解析标记。 |
friction_archive | 将解析后的项移动到 archive/YYYY-MM-DD.md; resolvedOnly: false 还将未解析的项移动到空闲时间大于 days (默认30)。 |
每周的仪式(/retro)
friction_stats范围;读取未解析的条目。- 从试验注册表中评估ACTIVE试验(惯例:
~/.pi/agent/meta/extension-trials.md),反对他们的预先登记 成功标准→每次试验保留/删除/延长。 - 可选地研究顶端摩擦区域的趋势。
- 写一份注明日期的报告(
~/.pi/agent/meta/weekly-reviews/YYYY-MM-DD.md) 与adopt/evaluate/reject桶——拒绝是有原因的, 而未来的建议则与之背道而驰。 - 的建议。业主同意。然后应用,存档,并促进持久 项目文档中的经验教训。
建议是有证据支持的 fix 摩擦入口的场IS
以摩擦为理由的建议。故意没有
自由形式的建议收件箱。
范围和非目标
- 没有记忆。 分类帐中没有任何内容被视为已证实的事实;这个 特工的记忆系统是另一回事。
- 不是可观察性。 没有呼叫跟踪,计时,或令牌会计-一个 每个摩擦事件的线,只有当它确实花费了你一些东西的时候。
- 不是自动的。 审查建议;你批准。没有包配置 它本身是因为一个复古的说法。
- 不是共享收件箱。 范围永远不会合并:个人摩擦永远是私人的, 团队摩擦留在您选择共享的回购中。
安全与信任
- 没有网络访问,没有遥测,除了pi的主机提供之外没有任何依赖 packages(仅限peerDependencies)。
- 写操作仅限于分类帐文件及其
archive/目录;否 工具接受一个路径参数。 - 附加使用
O_APPEND;重写写临时文件并重命名,这样就崩溃了 写入中间不能截断分类帐。 - 足够小,可以一次阅读(约850行) 它的分类模块)-请这样做。
要求
| 要求 | 所需 | 如果失踪 |
|---|---|---|
| PI≥1.3 | 工具和 /retro | - - - - - - |
| 节点≥20(22.6+才能运行测试) | 一切 | - - - - - - |
一个可写的 ~/.pi/agent/meta/ (或 PI_RETRO_LEDGER) | 用户分类账 | log_friction 报告无法写入的路径 |
故障排除
friction_stats 说账簿不存在。 预计在第一次之前
日志:它报告0加上它将创建的路径。 log_friction 白手起家
第一次使用时的文件(带有可编辑的头文件)。
我手工编辑的那一行在总数中少了。 它无法解析。运行
friction_stats 同样,格式错误的行现在用行号列出
而不是被默默丢弃。通常的原因是现场秩序的改变;这个
格式是 date | project | area | phase | problem | fix?.
/retro 没有发表任何报告。 /retro 是提示模板加
weekly-review 技巧,所以它需要一个模型转弯。 /retro-stats 给你
没有模型参与的相同聚合,和 friction_stats 把它作为
工具调用。
账簿转错回购账户了。 项目条目从会话中解析
慢性消耗病。 PI_RETRO_LEDGER 覆盖用户分类账路径;项目分类账如下
<repo>/.pi/retro/ledger.md 只有登录后才会出现
scope: "project".
相关的包
针对同一个问题(代理会话共享一个签出)的五个扩展 覆盖不同时刻:
| 包 | 时刻 | 防范 |
|---|---|---|
| pi-rc-gate | 在执行 | 故障信号被销毁,因此红色命令被报告为绿色 |
| pi-checkout-guard | 在 | 并发会话擦除彼此未提交的工作 |
| pi-closeout | 会话结束时 | 会话为下一个会话留下的脏状态 |
| pi-retro (这) | 每周 | 摩擦不断出现,因为没人写下来 |
| pi-handoff | 之间的会话 | 会话结束时上下文丢失 |
开发
npm install
npm run typecheck # tsc --noEmit
npm test # node --test (type-stripped TS, node >= 22.6)
许可证
MIT©jyyyeung