Skill Vetter
一个面向 Security 场景的 Agent 技能。原始说明:Security-first skill vetting for AI agents. Use before installing any skill from ClawdHub, GitHub, or other sources. Checks for red flags, permission scope, and suspicious patterns.
name: skill-standardization
version: 2.38.14
author: wUwproject
license: MIT
description: Skill 标准化规范引擎 v2.38.8。支持 R-01~R-24 规范审查(audit/refactor/create 三模式),含权限扫描、数据目录合规检查、渐进式加载、更新日志渐进加载强制。
sensitive_access: false
critical_write: false
permission_weight: LOW
data_dir: ../.standardization/skill-standardization/
externaldatadir: true
本技能的所有
.md文件禁止使用 Write/Edit 工具更新(会损坏 UTF-8 中文编码)。
必须用
scripts/下的 Python 脚本原子写入(tmp + os.replace())。
| 文件 | 更新方式 | 脚本 |
|------|----------|------|
| SKILL.md frontmatter | Python 原子写入 | scripts/update_skill_frontmatter.py |
| SKILL.md 正文 | Python 直接重建 | scripts/safe_io.py 的 safe_write() |
| references/*.md | scripts/safe_io.py 的 safe_write() | 随技能自带 |
| 更新日志 | Python 合并脚本 | 每次发版统一维护 references/changelog.md |
版本号三端一致规则(必须遵守):
SKILL.md frontmatter 的 version: 字段_meta.json 的 version 字段references/changelog.md(或 CHANGELOG.md)的版本条目update --fix 已自动执行上述三端同步(v2.38.10+)检查清单(每次更新前):
references/changelog.md 维护更新记录?→ 根目录不得有 CHANGELOG.mdpython -m scripts.skill_audit audit . 自审?→ 必须 0 ERROR 0 WARN注:本技能的权限检查器(
permission_checker.py)定义的敏感路径匹配模式(如~/.ssh/、~/.aws/等)仅用作检测规则,用于发现被审计 skill 是否违规访问这些路径;本技能本身不会实际访问这些敏感路径。
当用户提出以下类型请求时,应触发本技能:
不触发(以下情况不应触发本技能):
📚 渐进式加载:本技能采用渐进式 MD 体系,
SKILL.md为入口(≤230行),详细内容拆分到references/*.md按需加载。
scripts/skill_audit/fix.py 中的对应修复函数,批量修复 WARN/ERROR 项(详见 references/guide.md 审查模式章节)R-20 两阶段检查协议(v2.38.2 新增):
- 第一阶段(正则粗筛): 执行正则匹配,输出所有疑似中英文混排间距问题
- 第二阶段(LLM 精筛):AI 对正则匹配结果逐条判断,过滤代码标识符误报(snakecase、camelCase、PascalCase、UPPERCASE、文件名、路径),仅输出真实问题
- 若 R-20 仍有误报,优先增强 预清理逻辑,其次放宽 LLM 过滤阈值
🛑 强制执行:排错止损规则(v2.38.5 新增,必须遵守)
1. 区分警告来源:审计输出中的 WARNING/ERROR,先判断是审计工具自身触发的(如
permission_checker.py的compile()触发SyntaxWarning),还是被审计技能的真实问题。前者修审计工具,后者修被审计技能。不分清来源就动手 → 必然修错。
2. 同一操作失败 ≥2 次 → 强制停止换思路:
- Grep 搜不到 → 检查是否把特殊字符当成正则元字符(如
\Z在正则里是字符串结尾,搜字面\Z必须用grep -F或 Pythonopen().read())
- 工具调用报错 → 读完整 stderr,不要猜
- 3 种不同思路都失败 → 向用户说明困境并请求指引,禁止继续重复
3. 用户提示止损:当用户说又停了/死循环/你在干什么时,立即停止当前操作,向用户说明当前状态和下一步计划,禁止继续原操作。
4. 5 轮无实质进展 → 主动求助:超过 5 轮对话还没有向前推进,必须向用户承认困境并请求指引。
本技能采用渐进式 MD 体系,SKILL.md 为轻量入口,详细规范拆分到 references/ 按需加载:
references/guide.md — 完整使用指南(触发词、工作流程、输出格式)references/architecture.md — 内部架构(模块划分、RULES 注册、METHOD_MAP)references/antipatterns.md — 反模式手册(常见错误 + 正确做法标记)references/faq.md — 常见问题解答(排错、自定义规则、CI 集成)references/changelog.md — 版本更新记录阅读时先看本章节,按需让 AI 加载 references/*.md。
本技能在创建、更新、改造过程中,对临时文件和备份文件进行全生命周期管理。
temp/、*.tmp、脚本中间产物)和备份文件(backup/、_bak_* 目录)的产生路径、时间、操作类型均记录到 op_logger 日志。scripts/safe_io.py 所有写操作(safe_write、safe_patch_by_line、safe_patch_regex、safe_insert_after)均内置 backup_file() 临时备份,返回 rollback_id,确保删/改动作可回滚。| 文件类型 | 路径模式 | 保留时长 | 清理时机 |
|-----------|-----------|----------|------------|
| 临时文件 | data/temp/*、*.tmp、draft_* | 会话级(0天) | 每次操作完成后立即清除 |
| 操作备份 | data/backup/* | 最近 10 个 | 每次操作完成后保留最新 10 个,其余清除 |
| 整体备份 | <skill-dir>_bak_*<timestamp> | 操作完成确认后 | 操作完成并确认无异常后,提示用户是否清除 |
| 日志文件 | data/logs/ops.log | 最近 200 条 | 超过 200 条时截断,保留最新 |
每条临时/备份文件记录在 op_logger 日志中增加 temp_files 字段:
{
ts: 2026-05-27T08:31:47,
operation: refactor,
file: ../.standardization/skill-standardization/,
success: true,
rollback_id: 20260527_083147_...,
temp_files: [../.standardization/skill-standardization/data/temp/xxx.tmp],
backup_files: [../.standardization/skill-standardization/data/backup/20260527_...bak],
detail: ...
}
本技能自身被更新时,同样遵守上述规则:更新前对
../.standardization/skill-standardization/整体备份,操作中记录临时文件,更新完成后清理。
本技能的数据文件(审查缓存、进度文件、备份、日志等)存放在:
../.standardization/skill-standardization/
安装目录
skills/skill-standardization/只保留 SKILL.md 和 scripts/,数据文件不越位。