mcpField
R
restraint

restraint

github.com/raphaelsalaja开发5362 次安装今天更新
代码仓库

关于 restraint

将设计与代码变更限制在用户要求范围内的审查技能,可识别多余界面、设置和代码,并规定删除内容及报告问题的方式。

主要功能

  1. 01标记未要求的界面与代码
  2. 02优先采用可用的最小实现
  3. 03删除过时代码及相关残留
  4. 04避免多余设置和回退逻辑
  5. 05按严重程度报告问题

适用场景

  1. 01检查功能变更是否增加多余界面
  2. 02删除功能后清理相关代码
  3. 03检查实现方案是否包含无用选项

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/raphaelsalaja/skills --skill restraint

安装后在 Claude Code 中输入/restraint确认已加载。

附带文件agents/openai.yaml

详细介绍

克制

此技能将改动缩减到用户的要求。它会移除多余的界面、选项和代码,并将“移除”视为删除。

明确要求

用户没有要求的元素、选项或代码路径都属于问题,除非没有它就无法满足要求。尚未发布的工作不涉及向后兼容。未经用户批准就删减内容,只能算提议,不能直接修改。

标签文案归入 copy。复用现有部分归入 reuse。

不添加要求之外的内容

不要添加用户未要求的章节、徽章、计数、说明文字、页脚、按钮内的图标、声音或装饰效果。每一行都添加计数徽章,属于 restraint-no-unrequested-ui。

不重复反馈屏幕已呈现的结果

如果操作结果已经显示在屏幕上,就不要为该操作添加提示框或对话框。这属于 restraint-no-redundant-feedback。

能正常工作的最小构建

优先使用原生元素而非自定义元素,优先使用单体应用而非单一代码仓库,优先使用固定值而非设置。<video controls> 已能满足需求时却自定义视频播放器,属于 restraint-smallest-build。没人会更改的偏好设置,属于 restraint-no-needless-setting。

发布前不写防御性代码

未发布的工作中不要保留旧版分支或兼容垫片。这属于 restraint-no-legacy。如果一个值始终有设定,就不要为它添加回退逻辑。这属于 restraint-no-fallbacks。

移除就是删除

用户说“移除”时,删除代码及其样式、变量、路由和菜单项。“延后以供审核”属于 restraint-delete-dont-defer。移除软件包后,却把它的变量留在 theme.css 中,属于 restraint-remove-the-trail。

用户要求清理时,列出未使用的文件、导出项、样式、依赖和遗留原型。获得批准后就删除它们。

注释应说明约束,否则删除

删除只是在叙述代码的注释。只有当注释说明了代码本身无法体现的约束时才保留。叙述性注释属于 restraint-no-narrating-comments。

对照项

每项检查都是一组对照。错误行旁边应列出替代它的行。

规则错误做法替代做法
restraint-no-unrequested-ui每一行都添加计数徽章不添加徽章
restraint-no-redundant-feedback移动操作后,用户已能看到结果,却仍显示提示框不显示提示框
restraint-smallest-build自定义视频播放器<video controls>
restraint-no-needless-setting为无人更改的间距设置偏好项固定的 --gap
restraint-no-legacy“为安全起见”保留旧版分支删除
restraint-no-fallbacks对始终有设定的值使用 value ?? defaultValuevalue
restraint-delete-dont-defer“延后供你审核”删除,或只提一个问题
restraint-remove-the-trail移除软件包后仍将其变量留在 theme.css 中一并移除这些变量
restraint-no-narrating-comments// Render the header不写注释

报告

严重程度。 HIGH 表示没人要求的功能、设置或代码路径,或声称已“移除”但仍存在的项目。MEDIUM 表示回退逻辑、旧版分支或遗留变量。LOW 表示叙述性注释。

格式。 每个根本原因列出一个问题:

file:line - [rule-id] what is wrong

然后给出 Rule | Count | Severity 汇总。只要仍有任何 HIGH,就标记为 Block;否则标记为 Approve。不要对未阅读的文件标记 Approve。将每项无法执行的检查标记为 Not verified。

评论

支持 Markdown