agentleFS
bushuhuibushuhui/skills/pd-rules-check/SKILL.md

pd-rules-check

Skill2 starsChanged 5 months agoMITView on GitHub

基于 18 套经典软件工程书籍和语言规范,对项目进行代码质量审计。支持两种模式:(A) 先扫描项目特征再自动推荐规范,(B) 用户手动选择规范集。输出结构化审计报告。Use when 用户要求审查代码质量、检查代码规范、评估项目架构、推荐编码规则、或提到 pd-rule-check。

The file

Files
SKILL.md

PD Rules Check

基于 18 套经典软件工程书籍和语言规范的编码规范审计工具。扫描项目或按用户选择,对照规范检查代码,输出带具体规则引用的结构化审计报告。

可用规范集

微观代码层(函数/变量级)

#名称核心问题mini 规则数
1clean-code能跑的代码 ≠ 干净的代码29
2code-complete构造质量不是偶然的38
3refactoring重构 ≠ 重写 ≠ 改需求31
4refactoring-guru具体重构手法与代码异味46

中观模块层(模块/API级)

#名称核心问题mini 规则数
5a-philosophy-of-software-design功能实现 ≠ 设计完成28
6patterns-of-enterprise-application-architecture选对模式,不要意外混合职责36
7working-effectively-with-legacy-code没测试的代码就是遗留代码32
15python-patterns能跑的 Python ≠ Pythonic15
16fastapi-patterns能跑的 FastAPI ≠ 生产就绪10
17api-design能用的 API ≠ 好用的 API12
18cpp-coding-standards能编译的 C++ ≠ 安全的 C++18

宏观架构层

#名称核心问题mini 规则数
8clean-architecture不要让细节成为架构31
9domain-driven-design业务语言 ≠ 代码变量名30
10domain-driven-design-distilledDDD 够用就好,不要过度38
11implementing-domain-driven-designDDD 是实现的,不是命名的39
12designing-data-intensive-applications不要假设读写都是本地有序新鲜的37
13release-it跑通 happy path ≠ 生产就绪30

全局工程思维

#名称核心问题mini 规则数
14the-pragmatic-programmer拥有结果,不要只优化局部47

工作流

模式 A:先扫描 → 后推荐(用户说"帮我看看项目")

Step 1 — 项目快速扫描(L0 + L1)

扫描内容:
- 语言/框架识别: package.json, requirements.txt, go.mod, pom.xml, Cargo.toml 等
- 目录结构: 是否有 domain/, controller/, service/, test/, model/, repository/ 等
- 热点统计: 最大文件(行数)、最长函数(行数)、最深嵌套(层级)、最多参数
- 快速问题: 框架泄漏(grep import)、无超时外调(grep fetch/axios/requests)、无测试文件

Step 2 — 项目画像生成

生成表格:

  • 语言、框架、推测架构
  • 文件数、总行数、测试覆盖率
  • 热点: 超过阈值的具体文件和函数
  • 快速发现的问题清单

Step 3 — 规范推荐

根据项目特征匹配推荐(参见下方「匹配规则引擎」)。每条推荐标注优先级(高/中/低)和原因。

Step 4 — 用户确认

展示推荐清单,询问用户:

  • 是否接受全部推荐
  • 是否要调整(添加/删除某些规范)
  • 是否要查看某个规范的详细说明

Step 5 — 深度审计

根据用户确认的规范集,读取 references/{book}/{book}.mini.md,逐条对照代码扫描,输出报告到 docs/pd-rule-check.md。

模式 B:用户选择 → 后审计(用户说"列出所有规范")

Step 1 — 展示规范目录

向用户展示上方「可用规范集」完整列表,包含编号、名称、核心问题、规则数。

提示用户:

请输入编号选择 (如: 1,8,13)
或输入 "all" 全选
或输入编号查看规范详情 (如: "?1")

Step 2 — 查看规范详情(可选)

用户输入 ?N 时,读取 references/{book}/{book}.mini.md,展示:

  • 适用场景 / 不适用场景
  • 纠偏焦点
  • Decision rules 和 Trigger rules 要点
  • 与其他规范的兼容性

Step 3 — 兼容性检查

读取 references/COMPATIBILITY.md,检查用户选择的规范组合:

  • ❌ 冲突: 警告用户并说明原因,让用户选择以哪个为准
  • 🔁 重叠: 提示可能有重复检查,建议保留一个
  • ✅ 互补: 通过

Step 4 — 执行审计

读取选中的 references/{book}/{book}.mini.md,对照项目代码逐条检查,输出报告到 docs/pd-rule-check.md。

直接模式:指定规范 + 指定路径

用户说"用 clean-code 审查 src/"时:

  1. 直接读取 references/clean-code/clean-code.mini.md
  2. 只扫描指定目录
  3. 输出精简版报告

匹配规则引擎

项目特征 → 推荐规范的映射:

项目特征推荐规范原因
controller/ + service/ + model/ 目录clean-architecture, PoEAA典型三层架构
model/ 中有框架引用clean-architecture框架泄漏
无 test/ 目录WELC, clean-code遗留代码风险
HTTP client / fetch / axios 调用release-it超时/重试检查
数据库 + 循环内查询PoEAA, release-itN+1 风险
文件 >300 行 / 函数 >30 行clean-code, refactoring-guru代码异味
domain/ 或 aggregate/ 目录DDD, IDDD领域驱动检查
Kafka / Redis / 消息队列DDIA, release-it分布式数据 + 生产就绪
service 中大量 if/elsePoEAA, clean-code策略/状态模式需求
shared/ 或 common/ 大包clean-architecture, APoSD浅模块风险
前端项目 (React/Vue)clean-code, refactoring组件设计
CRUD / 内部工具clean-code, code-complete日常质量
CLI 工具code-complete, pragmatic-programmer构造纪律
*.cpp/*.h / CMakeLists.txt / Makefilecpp-coding-standardsC++ 规范检查
*.py + 无框架python-patternsPython 惯用法
FastAPI / fastapi importfastapi-patterns, python-patternsFastAPI 生产模式
/api/ 路由 + REST 端点api-designREST API 设计质量
requirements.txt + pydanticpython-patterns类型提示和模式

兼容性矩阵(精简)

从 references/COMPATIBILITY.md 读取。关键冲突:

组合状态说明
DDD + PoEAA❌ 冲突领域模型 vs 事务脚本哲学对立
DDD + IDDD🔁 重叠IDDD 是 DDD 的实操版,选一个
DDD + DDD Distilled🔁 重叠Distilled 是轻量版,选一个
Clean Code + Code Complete🔁 重叠部分规则重合
Clean Code + Pragmatic Programmer🔁 重叠通用工程指导重叠
Release It + 其他✅ 全部互补运维层面不干扰
fastapi-patterns + python-patterns🔁 部分重叠fastapi 是 python 的子集,建议同时加载
fastapi-patterns + api-design✅ 互补框架实现 vs API 设计哲学
api-design + 其他✅ 全部互补接口契约层,不干扰内部实现
cpp-coding-standards + 其他✅ 全部互补语言专属规则,不跨语言冲突
python-patterns + 其他(非C++)✅ 全部互补语言专属规则,不冲突

审计扫描规则

可自动检测的(60%)

检测项方法规范来源
超长函数 (>30 行)解析函数定义,统计行数clean-code
超长参数列表 (>3 个)解析函数签名clean-code
深层嵌套 (>3 层)缩进/AST 分析clean-code
布尔标志参数模式匹配 func(x, true/false)clean-code
大文件 (>300 行)wc -lclean-code, refactoring-guru
模糊命名单字母函数名、tmp/data/info 等clean-code
依赖方向错误分析各层 import 语句clean-architecture
框架泄漏grep 业务层中的框架引用clean-architecture
无超时外调grep 网络调用,检查 timeoutrelease-it
N+1 查询循环内数据库调用PoEAA
无测试覆盖检查 test 目录存在性WELC

需人工判断的(40%)

判断项规范来源处理方式
模块深度是否足够APoSD展示模块 API/实现比,引导用户判断
统一语言一致性DDD扫描变量名与业务术语匹配度
聚合边界合理性IDDD展示候选边界,引导用户判断
业务模式选择PoEAA展示代码特征,建议匹配的模式

审计报告格式

输出到 docs/pd-rule-check.md,结构:

# 代码规范审计报告

> 生成时间: YYYY-MM-DD
> 项目: /path/to/project
> 使用规范: xxx.mini, yyy.mini

## 一、项目概况
## 二、适用性分析
## 三、审计结果
  ### 🔴 严重问题
  ### 🟡 警告
  ### 🟢 建议
## 四、规范覆盖率统计
## 五、优先级建议
  ### 立即修复
  ### 短期改进
  ### 长期规划

每条发现必须包含:

  • 规范来源 (具体到规则编号)
  • 文件路径 + 行号
  • 问题描述
  • 影响分析
  • 修复建议(含示例代码)

References

所有规范原始文件位于 references/ 目录:

references/
├── COMPATIBILITY.md                    # 兼容性矩阵
├── clean-code/
│   ├── clean-code.md                   # full 版
│   ├── clean-code.mini.md              # mini 版 (审计用)
│   └── clean-code.nano.md              # nano 版
├── clean-architecture/
├── a-philosophy-of-software-design/
├── code-complete/
├── domain-driven-design/
├── domain-driven-design-distilled/
├── implementing-domain-driven-design/
├── patterns-of-enterprise-application-architecture/
├── refactoring/
├── refactoring-guru/
├── release-it/
├── designing-data-intensive-applications/
├── the-pragmatic-programmer/
├── the-pragmatic-programmer/
├── working-effectively-with-legacy-code/
├── cpp-coding-standards/
│   ├── cpp-coding-standards.mini.md
│   └── cpp-coding-standards.nano.md
├── python-patterns/
│   ├── python-patterns.mini.md
│   └── python-patterns.nano.md
├── api-design/
│   ├── api-design.mini.md
│   └── api-design.nano.md
└── fastapi-patterns/
    ├── fastapi-patterns.mini.md
    └── fastapi-patterns.nano.md

审计时优先使用 .mini.md 版本。.md (full) 用于深度参考。.nano.md 用于快速提醒。

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.

Reviews can't be read right now.

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.