Heidi Labs
GitHub TrendingGitHub Trending 项目约 7 分钟2,687 字

shadcn/improve:代码库审计与实施计划技能

本文目录

improve#

一个智能体技能(agent skill),可审计任何代码库,并编写实施计划供其他智能体执行。

理念:把智能叠加的部分——理解代码库、判断什么值得做、编写规格——交给能力最强的模型,把执行交给更便宜的模型。该技能本身从不实施任何东西。计划就是产品。

你 → /improve(昂贵模型,提供建议)
plans/ → 001-fix-n-plus-one.md(自包含的规格)
其他智能体 → 实施、测试、交付(便宜模型,执行)

安装#

npx skills add shadcn/improve

适用于任何支持 Agent Skills 格式的智能体。它编写的计划是纯 Markdown,因此任何智能体(或人类)都可以接手。

用法#

/improve                     完整审计 → 按优先级排列的发现 → 计划
/improve quick               廉价的快速检查:热点、仅最重要的发现
/improve deep                穷尽式:每个包、每个类别
/improve security            聚焦安全审计(也支持:perf、tests、bugs 等)
/improve branch              只审计当前分支改动的部分
/improve next                功能建议——项目接下来该往哪走
/improve plan <description>  跳过审计,直接为一个事项编写规格
/improve review-plan <file>  批判并收紧现有计划
/improve execute <plan>      派发更便宜的执行者,审查其工作
/improve reconcile           刷新待办:验证、解除阻塞、淘汰
/improve ... --issues        同时将计划发布为 GitHub issue

如何使用#

一次典型的首次运行,从头到尾:

  1. 在仓库中打开你的智能体并运行 /improve(或运行 /improve quick 以保持低成本)。
  2. 它会绘制仓库结构、进行审计,并返回一张发现表。回复你想要制定计划的项目——「plan 1、3 和 5」。
  3. 计划落在 plans/ 中——每个文件一个,外加一个给出推荐顺序的索引。阅读它们;它们本来就是供审查的。
  4. 把计划交给任何智能体(「implement plans/001-*.md」),或让技能运行它:/improve execute 001。它会在隔离的 worktree 中派发一个更便宜的模型,对照计划审查 diff,并带回结论。合并仍由你决定。
  5. 下一次会话运行 /improve reconcile 清理待办:验证已经落地的内容、刷新偏离的计划、解除卡住的事项。
  6. 提交 PR 前,/improve branch 做同样的事,但仅针对分支改动的范围。

示例#

一次针对 shadcn/ui 的运行返回了这样的发现:

#发现类别工作量置信度
1shadow-config 在 search.ts/view.ts 中重复,副本已经漂移(search.ts:31 有 TODO)技术债MHIGH
2O(n²) 图标迁移(migrate-icons.ts:168)性能SHIGH

……并驳回了一些发现,同时记录原因,以免它们在下次运行时再次出现:

- [SEC-01] https_proxy 环境变量「SSRF」:设计如此——标准代理约定,
  每个 CLI 都遵循它。不是发现。

选择 #1 后生成了这份计划——摘录当前代码、确切步骤、将仓库自身的测试/lint 命令作为验证门,以及当现实与计划不符时的 STOP 条件。

工作原理#

侦察(Recon):绘制仓库结构:技术栈、约定,以及确切的构建/测试/lint 命令——这些将成为每份计划中的验证门。它还会在存在时读取意图和设计文档——ADR(docs/adr/)、PRD、CONTEXT.md、DESIGN.md、PRODUCT.md——这样已决定的权衡不会被重新标记为发现,方向建议始终扎根于已声明的产品意图,计划也使用仓库自己的词汇。可与任何已维护这些文档的仓库组合使用。

审计(Audit):在九个类别中并行展开子智能体:正确性、安全性、性能、测试覆盖率、技术债、依赖与迁移、开发者体验、文档和方向(功能建议——每条都必须引用仓库自身的证据,不允许泛泛的想法垃圾)。每条发现都带有 file:line 证据、影响、工作量和置信度。

核查(Vet):子智能体容易过度报告,因此顾问会在向你展示任何内容之前,亲自重读每个被引用的位置——误报被剔除,错误归因被纠正,驳回被记录。

排序(Prioritize):发现进入一张按杠杆(影响 ÷ 工作量,并按置信度加权)排序的表。你选择哪些变成计划。

计划(Plan):每个选中的发现对应一个文件,写入 plans/,并带有索引、优先级顺序和依赖图。

为什么这些计划可执行#

计划是为最弱的可能执行者编写的——一个从未见过顾问会话、可能小得多的模型。三个特性支撑了这一点:

  • 自包含:所有上下文都内联:确切文件路径、当前状态代码摘录、仓库约定及示例文件、已验证的命令。没有「如上所述」。
  • 验证门:每一步都以命令及其预期输出结束。完成标准可机器检查。执行者永远不必判断自己是否成功。
  • 硬边界:明确的范围外列表,以及 STOP 条件——「如果 X,停止并报告」——而不是让小模型在现实与计划不符时即兴发挥。

每份计划还记录其编写时对应的 git 提交,因此执行者在动手前会运行机械的漂移检查。

闭环#

计划不是「发射后不管」:

  • execute <plan> 在隔离的 git worktree 中启动更便宜的执行者子智能体,把计划交给它,然后像技术负责人一样审查结果——重新运行每个完成标准、检查范围合规性、对照意图阅读 diff。结论:批准(合并仍由你决定)、退回修订(最多 2 轮),或阻止并改进计划。
  • reconcile 处理此后发生的事:验证 DONE 计划仍然成立、调查 BLOCKED 计划并绕过障碍重写、刷新漂移的计划、淘汰已被独立修复的发现。
  • --issues 将计划发布为 GitHub issue——同样是自包含的正文,因此任何智能体或人类都可以在工作所在之处接手。

硬性规则#

  • 从不自行修改源代码。唯一的写入是 plans/;执行者只在一次性 worktree 中编辑,合并始终由你完成。
  • 从不运行会改变工作树的命令——只进行读取、搜索和只读分析。
  • 从不复制秘密值。只记录位置和凭证类型,并始终建议轮换。
  • 被要求实施时?它会拒绝并指向计划(或提议执行)。

许可证#

MIT © shadcn

关于#

用你能力最强的模型审计代码库,并为更便宜的模型编写可执行的计划。

资源:Readme、MIT license

活动:10.8k stars、29 watching、442 forks