agentleFS
70asunflower70asunflower/70asunflower-skills/project-review/SKILL.md

project-review

Skill1 starsChanged 14 days agoMITView on GitHub

项目规范审查器(六维审计报告 + 评分)。当用户说"审查项目、项目审查、review、审计、质量检查、审查报告、给我审一下、打个分、git 审查、修改审查、命名审查、敏感信息、密钥泄漏、验收一下"等时使用。对项目做阶段性审查:A 文档完整性(顶层文档、占位/空壳文档、失效引用、README 门面、功能文档与台账一致、测试/审核记录可证、AI 痕迹)、B 命名与存放(占位名、特殊字符、版本副本、文件名含日期、根目录散落、存放错位、交付快照缺版本号、内容完全重复)、C 修改留痕(.log.md 缺失/空壳、git 改了文档但日志无对应条目、日志日期异常)、D git 规范(未入库、commit 消息合规、大杂烩提交、未跟踪文件、.env/密钥文件入库、大文件入库、项目停滞)、E 敏感信息(AKIA/sk-/私钥/Token 高置信泄漏,明文口令、手机号待复核)、F 代码可移植性(硬编码绝对路径、用第三方库缺依赖清单、TODO 债务)。透明扣分 0-100 分 + A/B/C/D 等级 + 按优先级修复清单,--out 落盘为正式审查报告(自动配 .log.md),--scan 批量评分。与 project-init 分工:init 的 check 是开发中 lint,本 skill 是阶段性审计报告;**新项目 init 后必跑一次留基线分**,两者独立安装均可运行。

  • Reads credentials

15 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Files
SKILL.md

project-review —— 项目规范审查(六维评分 + 审计报告)

对项目做阶段性审查并产出给人看的审计报告:透明扣分制评分(六维加权 0-100,A≥90 / B≥75 / C≥60 / 其余 D)、问题清单(E 必须修复 / W 建议修复 / I 提示)、按优先级的修复建议。独立自包含,不依赖 project-init;规范基准对齐 project-init AGENTS.md v2.1.0。结构判定读项目自己的 AGENTS.md 结构表(1.x 老项目按 docs/code/tmp 兜底),命名、AI 痕迹、逐文件日志、代码注释都按该表声明的目录扫,不假定 docs/code 一定存在。脚本仅用 Python 标准库。

何时必须触发

  • 新项目基线:project-init 初始化或接管项目跑完就立刻跑一次本 skill,把起始分数记进当日日日志。没有基线,后面说「变差了」无从比较。
  • 阶段性复查:一个功能收尾、一次交付前、或用户问「现在项目质量怎么样 / 打个分」时。
  • 整改验证:按上一份报告的修复清单改完后复跑,对比分数与问题数变化。

首次使用(或换了机器)时,先确认全局记忆里已登记「新建项目必跑 project-init + project-review」这条规则;没有就运行 project-init 技能里的 scripts/ensure_rule.py --apply(两个技能共用这一条规则,只有一份正文)。

六个审查维度

维度权重审什么
A 文档完整性25%程序项目四份顶层文档;memory/MEMORY.md 与项目日日志 memory/<日期>.md 是否在(底线项,E 级);占位残留与空壳文档(只有标题没有正文);Markdown 失效引用;README 门面未完成;功能文档存在性、状态字段、与台账一致;声称「测试通过/已审核」但测试表/审核表无记录;正式产出的 AI 痕迹、emoji、正文内修订历史
B 命名与存放15%占位/无意义名、空格与特殊字符、(1) 重复副本、版本副本(以上 E 级硬伤);文件名含日期(W 级,数据文件可能属内容本身);根目录散落;存放错位(.py 在 docs/、.docx 在 code/);交付快照缺版本号(releases/ 命名须含 v\d+);内容完全重复的文件对
C 修改留痕20%每个正式文件有同名 .log.md(缺失即 E);日志非空壳;每条日志必须写明「模型:」(缺失即 E,无法追溯是谁改的);git 联动:文档最后提交日期晚于日志最后条目(改了不记日志,E 级);日志条目日期在未来(异常)
D git 规范20%是否纳入 git;commit 消息合规率(语义化前缀,空泛消息计违规);单次 >30 文件的大杂烩提交;未跟踪正式文件;密钥文件入库(.env/.pem/.key);大文件入库(>30MB);项目停滞(>30 天无提交,I 级)
E 敏感信息10%高置信密钥泄漏(AWS AKIA、sk- 形态、私钥块、GitHub/Slack Token,E 级并建议吊销轮换);明文口令赋值、疑似手机号(W 级待人工复核)
F 代码可移植性10%硬编码绝对路径(C:/Users/…、/home/…);用了第三方库(requests/pandas/torch 等)却无 requirements.txt/pyproject.toml;TODO/FIXME 债务计数(≥10 提示)

docs/releases/ 豁免 AI 痕迹/日志配对/禁副本,但必须带版本号命名;每项扣分在报告"评分明细"中可追溯。

用法(优先用脚本,不要手工逐步执行)

python "<本skill目录>/scripts/review_project.py" "<项目目录>"                    # 打印报告
python "<本skill目录>/scripts/review_project.py" "<项目目录>" --out docs/审查报告.md   # 落盘为正式报告
python "<本skill目录>/scripts/review_project.py" --scan "<工作区根>" [--depth 2]  # 批量评分
python "<本skill目录>/scripts/review_project.py" "<项目目录>" --json              # 机器可读
# --commits N   纳入 git 审查的最近提交数(默认 50)
  • --out 建议固定写 docs/审查报告.md:就地覆盖迭代,脚本自动维护同名 审查报告.log.md(首次创建,复查追加)。
  • 有 E 级问题时退出码 1;--scan 输出各项目评分表。
  • python 不可用时用 py。

触发本 skill 的 agent 必做

  1. 跑完审查后向用户转述报告要点:总分与等级、E 级问题逐条说明(位置 + 为什么算违规 + 建议动作)、最差的维度;不要只丢一句"报告已生成"。
  2. --out 落盘后,报告本身也是正式文件:复查用同一文件就地迭代,日志追加,不另存新名。
  3. W 级"需复核"项(AI 词汇、疑似手机号、明文口令)在相应主题的文档/代码里可能是正常内容——复核后再定性,不得盲目要求修改;但 E 级密钥泄漏一律先让用户确认并轮换。

修复纪律

  • E 级须修复后方可视为通过审查:状态不一致 → 与用户核对哪边是真,改正错误一方;测试/审核记录缺失 → 补做测试或补提交人工审核,不得代填"通过";修改未留痕 → 补记日志;疑似密钥泄漏 → 用户确认后吊销轮换,必要时用 git filter-repo 清历史。
  • 删除、合并、重命名属破坏性操作:先列清单征得用户同意,执行后在对应 .log.md 记录。
  • 报告只诊断不修复(修复用 project-init 的 check --fix 或按清单手工)。

与 project-init 的分工

  • project-init 的 check_project.py:开发过程中 agent 的随手 lint,管"现在干不干净",带 --fix。
  • project-review(本 skill):阶段性给人看的审计,管"这段时间规不规范、有没有风险"——增加 git 历史审查、修改留痕联动、测试/审核可证性、敏感信息、可移植性、评分与报告。
  • 两者独立安装均可运行;同机安装时结论互相印证(两者都豁免 docs/审查报告.md 自身)。
  • 同一套底线,两个时间尺度:结构基准都读项目 AGENTS.md 第 1 节的结构表;留痕都要求三层——memory/MEMORY.md(项目记忆)、memory/<日期>.md(项目日日志)、每个正式文件的同名 .log.md,条目必须带 模型:;命名硬伤(占位名、空格特殊字符、(1) 副本)两边都按 E。差别只在 init 的 check 逐条 lint + --fix,本 skill 评分、看 git 历史、看可证性与风险。
  • memory/ 下的两份记忆文件不参与 AI 痕迹与命名检查(记忆本就带口语摘要)。

自定义

  • 扣分标准与阈值:review_project.py 顶部 DIMS(权重)与各 add(...) 调用的扣分值。
  • 敏感信息模式:SECRET_E / SECRET_W;第三方库提示名单:THIRD_PARTY_HINTS;依赖清单白名单:DEP_FILES。
  • 命名/AI 痕迹启发式与 project-init 的 check_project.py 同源,修改需两处同步。

自测

python scripts/review_project.py /tmp/pi-test          # 刚初始化未填模板的项目应 B/A 级(占位被点名)
# 构造: commit -m "update"、改 docs 不记日志、功能标"测试通过"但测试表空、
#       code 放 api_key = "sk-…" 与 C:/Users/... 硬编码、docs 放 .py 与两份同内容 md、
#       git add .env 与 30MB 大文件
# → 对应 E/W 全部命中,总分明显下降,退出码 1

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.