Claude Code Plugins

Community-maintained marketplace

Feedback

识别并消除过度设计,确保只实现当前明确需要的功能。当需要评审功能范围、重构冗余代码、权衡技术债务时使用。覆盖功能必要性、过度设计信号、技术债务权衡三大维度,提供具体的识别标准和删减建议。

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name principle-yagni
description 识别并消除过度设计,确保只实现当前明确需要的功能。当需要评审功能范围、重构冗余代码、权衡技术债务时使用。覆盖功能必要性、过度设计信号、技术债务权衡三大维度,提供具体的识别标准和删减建议。
stage COMMON
level_supported L1-STREAMLINED, L2-BALANCED, L3-RIGOROUS

YAGNI Principle Skill

Scope: COMMON(全阶段通用)

版本: 0.1.0(占位)| 创建日期: 2025-11-27


概述

YAGNI(You Ain't Gonna Need It)是极限编程(XP)的核心原则:

┌─────────────────────────────────────────────────────┐
│              🎯 YAGNI Principle                     │
├─────────────────────────────────────────────────────┤
│  "Always implement things when you actually need   │
│   them, never when you just foresee that you       │
│   need them."                                      │
│                              — Ron Jeffries        │
└─────────────────────────────────────────────────────┘

检查维度

功能必要性

  • 这个功能是当前需求明确要求的吗?
  • 是否有用户/业务方确认需要?
  • 删除这个功能会影响当前交付吗?

过度设计信号

  • 是否为"将来可能需要"而设计?
  • 是否有未使用的接口/参数/配置?
  • 是否有"以防万一"的代码?
  • 是否有过度抽象?

技术债务权衡

  • 简单实现 vs 过度设计的成本
  • 重构成本 vs 预测性设计成本
  • 维护负担 vs 灵活性收益

YAGNI 违反示例

❌ 不好的做法:

  • 为"未来扩展"添加未使用的参数
  • 创建只有一个实现的接口
  • 预留"可能需要"的配置项
  • 实现"完整"功能但只用 20%

✅ 好的做法:

  • 实现当前需要的最简方案
  • 需要时再重构扩展
  • 保持代码精简可读

分级检查策略

L1-STREAMLINED

  • 检查 3 个核心问题
  • 关注明显过度设计
  • 通过标准:3 项中 2 项通过(≥67%)

L2-BALANCED

  • 检查 6-8 个关键点
  • 扫描未使用的代码/接口
  • 通过标准:6 项中 5 项通过(≥83%)

L3-RIGOROUS

  • 全面检查所有子项(10+ 项)
  • 量化未使用代码比例(目标 < 3%)
  • 记录技术债务和简化建议
  • 通过标准:10 项中 9 项通过(≥90%)

>> 命令

>>yagni_check_l1     # YAGNI 快速检查
>>yagni_unused       # 识别未使用的代码/功能
>>yagni_overdesign   # 过度设计检测

相关 Skills

  • 同类: principle-kiss, principle-dry, principle-soc(设计原则家族)
  • 前置: vertical-slice(只实现当前切片需要的)
  • 应用: task-breakdown(只分解当前需要的任务)
  • 验证: code-review(检查过度设计)

TODO: 待细化过度设计的检测规则