Agent skill
principle-dry
识别并消除知识重复,确保系统中每条知识有唯一权威表示。当需要重构代码、整理文档、优化配置、建立单一数据源时使用。覆盖代码重复、数据冗余、文档重复三大维度,提供具体消除策略和权衡建议。
Install this agent skill to your Project
npx add-skill https://github.com/tikazyq/agentic-spec-forge/tree/main/AGENTIC_SPEC_FORGE/spec_stage_skill/common_normal/principle-dry
SKILL.md
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: 待细化重复检测规则和重构建议
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
code-review
执行代码审查流程(提交PR→自查→同行审查→反馈修改→合并),覆盖功能正确性、代码质量、测试完整性、安全合规四大维度。当提交Pull Request、进行结对编程、执行代码走查、需要知识共享时使用。支持L1/L2/L3三级审查深度。
code-quality
执行代码质量门禁检查(测试通过→覆盖率→Lint→GOAL追溯→可提交),验证单元测试覆盖率≥80%、集成测试通过率≥95%、代码规范零错误。当完成代码实现、准备提交代码、需要质量验证、进行提交前自检时使用。确保代码可合并。
tdd-cycle
执行 TDD 红绿重构循环(RED→GREEN→REFACTOR→REPEAT),通过先写失败测试、最小代码实现、保持绿色重构的节奏驱动开发。当启动功能开发、需要测试驱动节奏、进行迭代编码、追求高测试覆盖率时使用。提供检查清单和节奏控制。
refactoring
执行代码重构(识别坏味道→选择手法→小步修改→运行测试),在保持外部行为不变前提下改进内部结构。当TDD进入REFACTOR阶段、发现代码坏味道、需要消除重复代码、优化代码结构时使用。支持提取方法、类、参数对象等重构手法。
arch-options-compare
比较多个架构方案(单体/微服务等),从SOLID原则、成本、复杂度等维度评分,生成对比表和推荐方案。当需要向客户解释架构选择或ADR决策时使用。
dev-tech-view-supplement
根据设计补充Dev视角的技术细节(数据库/API/通信协议),帮助Dev快速进入实施。当L1/L2设计缺乏技术细节、或准备向Dev交付前使用。
Didn't find tool you were looking for?