gardener 是 joelhooks/rat-stack 仓库中的维护技能,目标是让 rat-stack 持续保持最新版本并保持整洁。它承载 Lauren Tan 的 gardener 循环:清除技术债、只保留一种受支持的实现模式,并用 lint 拒绝被禁止的写法。其原则是“每当看到技术债或坏模式,就该写一条 lint 规则来阻止它”,并按执行强度排序修正位置:代码库、静态分析、规则、技能、风格指南。
使用前先阅读 AGENTS.md,并在 origin/main 的干净克隆中工作,不要在有他人未提交文件的检出中操作。主要流程包括:检查核心依赖 pin(位于各 package.json 和 pnpm-workspace.yaml 的 minimumReleaseAgeExclude),并与 npm 上已发布版本比较,查询 registry 时需在仓库外执行;逐个依赖族更新,Effect 运行时包与适配器一起移动,XState 与其 Effect 桥接一起移动,每个 Effect 族更新单独提交;遵守 release-age 策略,用新的精确包版本替换旧的 minimumReleaseAgeExclude 条目,不要把范围放宽到包名或版本区间;安装前检查 peer 范围,锁文件由 pnpm install 生成,不得手改;依赖变更后运行 pnpm install --frozen-lockfile 再执行门禁。
还需定期运行 find-peers 技能刷新 peers,更新 .brain/data/peers.json 中的精确版本、检查日期、层级和依据,并检查最旧的 peer 检查日期,超过十四天则先刷新。清理阶段运行站点生成命令,读取未链接提及数据,处理技术债,如重复逻辑、已有受支持模式下的第二实现、未检查的 unknown 值、未使用的导出、不断言任何内容的测试。对每个问题先写会失败的 lint 规则或测试,再修复所有现存实例,使规则从零发现开始;无法由 lint 捕获的模式则在代码库中修复,最后才退回文档说明。
最终报告需列出每个 pin 的变更前后、影响到的上游变化、研究过的 peer 及采纳或拒绝的内容、新增的 lint 规则及其消除的发现、以及未完成事项,并说明复制 rat-stack 的应用需要做哪些改动。资料未提供定价、平台支持范围或独立安装命令等细节。