Communitygithub.com

heyeuca/less

从文本、代码和UI代码(HTML/CSS、JSX、Tailwind)中去除没有明确存在理由的元素,同时保留正确性、必要的上下文、安全性、可访问性以及用户要求的所有内容。

less 是什么?

less 是一款 AI 助手技能,旨在帮助开发者和写作者精简内容——无论是文本、代码还是 UI 代码——同时严格保留所有必要的语义和安全要素。它的核心原则是“每个元素都必须有明确的理由存在”,否则就删除。该技能适用于 Claude Code、Cursor、Codex 等支持工具调用和自定义指令的 AI 编程环境。 less 的独特之处在于其细致的删除优先级和“永不删除”清单:它会优先移除 AI 添加的客套话、废话、多余的抽象层和未请求的选项,但绝不会删除能保持正确性的内容(如数字、日期、边界条件)、安全警告、归因、引文,或者用户明确要求的格式和长度。对于代码,它会检查所有外部调用者和测试,确保不破坏公共 API 和行为。 less 只在用户明确要求裁剪、简化、去杂时生效,不会在写草稿或新代码时自动介入。它专注于局部编辑,避免改变用户的风格或进行独立改写。如果输入内容已经通过“存在理由”测试,less 会原样返回,不会为了凑字数而乱删。该技能特别适合清理 AI 生成的冗长输出、简化 UI 组件代码、以及收紧文档中的重复和空洞内容。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/heyeuca/less/tree/HEAD/skills/less

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

less 是做什么的?

少,但更好。只保留有理由存在的东西。

测试

对于每个元素(句子、警示、标题、要点、注释、函数、参数、选项),问一句:这个有明确的理由存在吗? 如果没有,就删除它。清晰胜过简洁。不确定时就保留。判断一段内容在上下文中的作用,而不是看它是否符合某个固定短语。阅读周围的文字:一个限定词可能影响后面的句子。保持未被确认要删除的句子和代码区域不变;只允许那些删除所需的局部修补。

何时使用

仅在用户请求或出现明确提示时使用,而不是在起草或写新代码时。删除不必要的材料;只允许保持结果语法正确或可执行所需的局部编辑(例如内联一个多余的辅助函数)。不进行独立的风格或语气改写、翻译、固定长度摘要、事实核查、算法替换或性能优化工作。

不适用

返回原始输入并在末尾添加一行说明原因的标注:

  • 法律、合同或其他逐字文本;引用和转录。
  • 用户未指明的代码、配置或命令。

只修改用户指明的代码。用户设置的长度或格式不是排除理由:在其约束内工作。

删除顺序

首先对照“永不删除”检查每个候选项,尤其是用户自己的问候和结尾。

文本:

  1. 你添加的开场白、重复的问题和问候(“好问题!”)。
  2. 你添加的结尾总结和提议,或结束 PR 描述、提交信息或文档的内容(“希望这有帮助”、“你想让我...”)。
  3. 不改变任何信息的模糊词汇和填充词。
  4. 重复的观点(保留最清晰的)。
  5. 未请求的警示和替代方案,且不改变读者行为。
  6. 对长度约为 5 句以下的回答的装饰:标题、加粗、要点。
  7. 合并并缩短其余内容,保持完整的句子。在编辑用户文本时,不要合并或改写句子;只修复因删除而直接影响的语法。

代码:

  1. 重述代码的注释。
  2. 不必要的抽象:辅助函数、包装器、接口、工厂。单次使用本身不是抽象不必要的证据。
  3. 未请求的选项、标志、配置。
  4. 针对从可见代码中证明不可能发生的情况的防御性代码。否则保留。

在删除代码或选项之前,检查可用的调用方、导出和相关的测试。除非用户明确要求更改,否则保留外部使用的签名和行为。在代码编辑后运行相关现有检查;如果无法确定用法或行为,则保留候选项。

文档:逐节应用测试。保留读者导航所需的结构:标题、目录和锚点、其他地方引用的编号步骤、承载数据的表格。只有当整个部分未通过测试时才删除整个部分。除非整个部分被删除,否则保留每个标题及其目录条目;切勿将一部分合并到简介中。

设计:对于用户指明的 UI 代码,对元素和样式应用测试。仅在对 references/design.md(删除顺序和永不删除列表)进行检查后才删除。那里提到的“未请求的内容”指的是代理添加的内容,而不是用户写的内容。只修改标记和样式;不添加新美学。不用于构建新 UI、截图或 Figma 文件。

永不删除

  • 正确性:数字、单位、日期、条件、异常、否定。
  • 主张强度:不确定性、近似值、范围、因果关系和义务。保留承载意义的限定词,如“大约”、“一些”、“最多”、“可能”和“必须”;缩短不能加强或削弱主张。
  • 必要的上下文:读者行动所需的信息(前提条件、步骤、版本)。
  • 安全性:数据丢失、安全、金钱、法律、不可逆操作警告。
  • 用户的要求:请求的内容、格式、长度、约束。
  • 归属和引用。
  • 编辑用户文本时保留用户自己的语气。不要重写风格。
  • 在写给其他人的消息(电子邮件、聊天、信件)中,用户写的问候、签名和请求回复或提问的语句(“如果还有不清楚的地方请告知。”)。例如,“请随时联系我,如果仍然有任何不清楚的地方。”保留;你可以删减“随时”和“仍然”。只有问候和结尾受保护:用户文本中的其他填充词(“基本上”、“实际上”、“只是”)仍然会被删除,但保留其语气。
  • 礼貌用语:존댓말/敬語 形式、様、问候、签名。其中的堆叠软化词和强调词(정말, 혹시, 大変, 誠に, 何卒)只是候选者:只有当它们承载不确定性或社交意图时才保留。
  • 代码:行为(输出、副作用、错误);在真实边界(I/O、网络、用户输入)的错误处理;“为什么”注释、约束、安全说明;除非被要求,否则保留公共 API 和签名;影响类型检查或运行时的类型注解;仅用于测试的钩子和接缝。
  • 任何你无法确定其用途的东西。

停止

当每个元素都通过测试时,或者下一次删除会损害含义或需要猜测时,停止。将结果与源材料比较,检查主张强度是否有变化,以及对周围好的材料是否有非预期的编辑。永远不要为了达到目标长度而删除。如果用户要求缩短他们的文本,那么未通过测试的填充词会被删除;未更改的部分需要有理由。

输出

只输出精简后的文本或代码,保持相同的格式和语言。例外:在“不适用”场景下输出一行解释原因。不要对被删除的内容进行评论,除非用户要求;如果用户要求,则列出被删除的内容。如果没有变化,则原样返回。

相关技能