# Principle Dry

> 识别并消除知识重复，确保系统中每条知识有唯一权威表示。当需要重构代码、整理文档、优化配置、建立单一数据源时使用。覆盖代码重复、数据冗余、文档重复三大维度，提供具体消除策略和权衡建议。

- Skill: `majiayu000/principle-dry` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/principle-dry`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/principle-dry/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/principle-dry

---


# DRY Principle Skill

> **Scope**: COMMON（全阶段通用）
>
> **版本**: 0.1.0（占位）| **创建日期**: 2025-11-27

---

## 概述

DRY（Don't Repeat Yourself）是软件开发的核心原则：

```
┌─────────────────────────────────────────────────────┐
│              🔄 DRY Principle                       │
├─────────────────────────────────────────────────────┤
│  "Every piece of knowledge must have a single,     │
│   unambiguous, authoritative representation        │
│   within a system."                                │
│                        — Andy Hunt & Dave Thomas   │
└─────────────────────────────────────────────────────┘
```

---

## 检查维度

### 代码重复

- [ ] 是否有复制粘贴的代码块
- [ ] 相似逻辑是否抽象为函数/方法
- [ ] 常量是否集中定义

### 数据重复

- [ ] 同一数据是否在多处定义
- [ ] 配置是否有单一来源（SSOT）
- [ ] 数据库是否有冗余字段

### 文档重复

- [ ] 同一信息是否在多个文档中维护
- [ ] API 文档是否从代码自动生成
- [ ] 注释是否与代码重复

### 知识重复

- [ ] 业务规则是否集中管理
- [ ] 验证逻辑是否在多处实现
- [ ] 错误消息是否统一定义

---

## 分级检查策略

### L1-STREAMLINED
- 每维度检查 1 个核心点（共 4 项）
- 关注明显重复
- 通过标准：4 项中 3 项通过（≥75%）

### L2-BALANCED
- 每维度检查 2-3 个关键点（共 8-12 项）
- 使用工具扫描代码重复率
- 通过标准：8 项中 7 项通过（≥87.5%）

### L3-RIGOROUS
- 全面检查所有子项（12+ 项）
- 量化重复率指标（目标 < 5%）
- 识别 SSOT 候选并记录
- 通过标准：12 项中 11 项通过（≥91.7%）

---

## >> 命令

```
>>dry_check_l1       # DRY 快速检查（4维度各1个关键点）
>>dry_scan_code      # 扫描代码重复
>>dry_find_ssot      # 识别需要 SSOT 的地方
```

---

## 相关 Skills

- **同类**: principle-kiss, principle-yagni, principle-soc（设计原则家族）
- **应用**: refactoring（消除重复的重构技术）
- **验证**: code-review（代码审查时检查 DRY）
- **文档**: document-quality（文档中避免重复）

---

**TODO**: 待细化重复检测规则和重构建议

