Upkeep 仓库审计技能
为代码仓库配备一支 AI 审计小组,自动发现文档、规格与资产随代码漂移的问题,并附带证据输出报告——只报告,从不改动文件。
技能声明为纯输出型(从不修改目标仓库),明确要求报告写入目标仓库之外,回滚策略(缓存检出可丢弃重克隆)清晰,数据流(克隆 wei18/upkeep、npm ci、本地运行 claude CLI)披露充分。扣分点:首次使用会自动从远程仓库克隆并执行 npm ci 与 claude 子进程,未经用户显式确认;对 ~/.cache/upkeep 内容的供应链完整性未做校验(无固定 revision/校验和),故未达满分。
SKILL.md 路径清晰:检出缺失/分叉均有处理分支,npm ci 幂等要求明确,需求缺失时要求告知用户而非静默失败。扣分点:关键路径(local-audit.sh、reviewer 子进程)未在静态审查中可复现验证,异常输入下的失败反馈质量只能凭文档推断,触顶10分。
description 精确声明触发场景(审计仓库、检查 docs/spec/asset 漂移、无 CI 运行 upkeep),非适配范围(不修改代码)明确;支持 en 与 zh-TW rubric。扣分点:核心功能完全依赖 claude CLI 订阅与 GitHub 克隆,对无订阅用户不可用;简体中文仅在文档层,rubric 语言不含 zh-CN。
MIT 许可、版本号 2.1.1、多语言文档、设计文档齐备,配置分层(workflow inputs vs .claude/audit.yml)说明清楚。扣分点:package. 版本为 0.0.0 与 plugin. 2.1.1 不一致;维护者单人(wei18),更新路径依赖个人仓库,未声明长期维护责任。
输出形态明确(按严重度分组的终端摘要 + 自包含 HTML 报告),与 CI 等价、与手动运行对比清晰,'永不编辑' 的定位有差异化价值。扣分点:静态审查无法验证报告实际可用性与正确性,每次审计消耗订阅额度,成本收益证据有限,触顶7分以下取6。
仓库含真实 CI(ci.yml 运行 build+test)与提交的测试套件(action-pins、all-rubrics、ci-workflow-structure 测试覆盖 rubric 完整性与 workflow 权限),并引用自审计 run 作为执行证据。扣分点:测试覆盖的是仓库自身规范性而非审计产出质量,skill 关键路径的第三方复现证据仍缺失,静态上限5分。
- 首次运行会自动克隆远程仓库并执行 npm ci 与 claude 子进程,建议首次使用前人工检查 wei18/upkeep 的脚本内容。
- 核心功能依赖 Claude Pro/Max 订阅与 GitHub 可达性;中国大陆网络访问 GitHub 可能不稳定,且无独立 API 计费选项。
- rubric 语言仅支持 en/zh-TW,简体中文用户获得的是英文审计输出;README 有简中翻译但产品本身不含 zh-CN。
- ~/.cache/upkeep 缓存无固定 revision 或校验和,运行内容随上游仓库变动。
- package. 版本(0.0.0)与 plugin. 版本(2.1.1)不一致,升级追踪时以 plugin. 为准需自行确认。
这个 Skill 能做什么,适合哪些场景?
Upkeep 是一个以 Agent Skill 形式安装的仓库级语义漂移审计工具。它并行派出多个聚焦的 AI 审查器,检查过时文档、与实现不符的规格、孤立资产、多语言 README 不同步等问题,并以证据和严重程度分级输出结果。它完全只读:报告漂移但绝不编辑或删除目标仓库的任何文件。可以在本地用 claude CLI 运行(复用 Claude Pro/Max 订阅,无需单独的 API 账单),也可以作为可复用的 GitHub Actions 工作流或 Marketplace Action 定期在 CI 中执行,并在 GitHub 上维护一个不重复的跟踪 issue。
首次运行时将 Upkeep 引擎克隆到 ~/.cache/upkeep 并安装依赖;随后对目标仓库执行完整的审计流水线(发现 → 并行审查器 → 汇总 → HTML 报告)。审查器包括 docs_staleness(文档漂移与多语言 README 失同步)、code_hygiene(死代码、无用导出、永久遗留的注释块)、spec_flow(规格/图表与实现不符)、visual_icon(过时图片与图标)、duplicate_orphan(重复文件与未引用资产)、convention(违反仓库自身约定)以及默认关闭的 i18n。输出为聊天中的分级摘要和一份自包含的 upkeep-report.html;CI 模式下额外生成一个会被更新(而非重复创建)的 GitHub issue。审查器启用与严重度阈值通过被审计仓库中的 .claude/audit.yml 配置。
- 维护活跃开源项目的开发者,想在每周定时 CI 中自动发现 README 承诺与代码行为不一致的语义漂移
- 维护多语言文档(如英文 + 简体中文/繁体中文/日文/韩文 README)的团队,需要检查译文是否与原文失同步
- 接手他人遗留代码库的工程师,想先全面盘点死代码、孤立资产和违规约定,再开始重构
- 已订阅 Claude Pro/Max、不想为代码审查另付 API 费用的独立开发者,可在本地对任意仓库路径按需运行审计
- 使用 Cursor、Copilot 等 70+ 种支持 skills 标准代理的用户,希望通过 npx skills add 安装同一套审计能力
这个 Skill 有哪些优点和局限?
- 只输出报告,绝不修改或删除目标仓库的任何文件,可放心对任意路径运行
- 复用 Claude Pro/Max 订阅,无需 Anthropic API key 或按 token 计费
- 整仓库语义审计:能发现 linter 和 PR 审查机器人覆盖不到的文档—代码漂移
- 同一套流水线提供三种运行方式:Agent Skill、本地脚本、可复用 CI 工作流或 Marketplace Action
- CI 中以 upsert 方式维护单个跟踪 issue,不会重复堆积;HTML 报告自包含、便于归档
- 硬性依赖已登录的 claude CLI(Claude Pro/Max 订阅),没有该订阅完全无法使用
- 审计需运行数分钟,且审查器以多个 claude -p 子进程并行执行,本地资源占用较高
- Marketplace Action 模式下审查器串行执行,速度慢于可复用工作流的并行模式
- 来源中未提供独立的测试套件或第三方基准数据,审计准确度无法事先验证
- CI 的 HTML 报告以 workflow artifact 形式保存,会随仓库保留策略过期
如何安装这个 Skill?
Claude Code:在会话中依次执行 /plugin marketplace add wei18/upkeep 和 /plugin install upkeep@upkeep。其他代理(Cursor、Copilot 等):运行 npx skills add wei18/upkeep --skill upkeep-audit。也可手动把 skills/upkeep-audit/ 目录复制到 ~/.claude/skills/。前置要求:已登录的 claude CLI(Pro/Max 订阅)、Node 20+、git;CI 模式另需仓库 secret CLAUDE_CODE_OAUTH_TOKEN(用 claude setup-token 生成)。
如何使用这个 Skill?
安装后在任意会话中直接说:"Run an upkeep audit on /path/to/repo"。技能会自动克隆引擎到 ~/.cache/upkeep、安装依赖,然后运行审计(需要几分钟,审查器以并行 claude -p 子进程执行),最后按严重程度(高→中→低)逐条给出问题及其文件路径,并给出 upkeep-report.html 的绝对路径。也可不走代理,直接运行脚本:./scripts/local-audit.sh /path/to/repo --out ~/upkeep-report.html;注意若当前目录在目标仓库内,需用 --out 把报告写到仓库外,因为审计绝不向目标仓库写入。本地运行不会创建 GitHub issue。
这个 Skill 与同类方案有什么区别?
README 自己明确区分了同类工具:Danger 只检查你手写规则的 PR diff;Copilot/Cursor 的 PR 审查只看 diff 中的代码问题并建议修改;Upkeep 则是整仓库的语义漂移审计器,按仓库自身约定出报告、从不改代码,按计划或按需运行而非按 PR 触发。