بنقرة واحدة
harness-audit
// 审计项目的 AI agent harness 配置,评估完备性和合理性,检测反模式,给出优先级排序的改进建议。当用户想要审查 harness 配置、询问 harness 质量,或说"harness audit"、"检查harness"、"harness评分"、"harness检查"时使用。
// 审计项目的 AI agent harness 配置,评估完备性和合理性,检测反模式,给出优先级排序的改进建议。当用户想要审查 harness 配置、询问 harness 质量,或说"harness audit"、"检查harness"、"harness评分"、"harness检查"时使用。
| name | harness-audit |
| description | 审计项目的 AI agent harness 配置,评估完备性和合理性,检测反模式,给出优先级排序的改进建议。当用户想要审查 harness 配置、询问 harness 质量,或说"harness audit"、"检查harness"、"harness评分"、"harness检查"时使用。 |
审计项目的 harness —— 那些引导和约束 AI agent(Claude Code、Cursor、Copilot 等)在本仓库中工作的外部结构。
理论基础:本技能的方法论源自知乎高赞回答 参考文章-五种介质方法论.md,原作者 情酱。核心框架包括:五种介质(CLAUDE.md / settings.json / linter / CI / Git hooks)的力学特性、四问题判定流、约束层与认知层的边界、以及错误信息即 prompt 原则。建议在理解审计标准之前先阅读该文章。
.claude/settings.json)— harness 强制行为.claude/skills/)— 按需注入的知识扫描项目根目录和关键目录,寻找以下文件。对每一项标注:存在 / 缺失 / 部分。
CLAUDE.md / AGENTS.md:
CLAUDE.md、AGENTS.md、.claude/CLAUDE.md、.github/CLAUDE.mdsettings.json:
.claude/settings.json、.claude/settings.local.jsonLinter:
| 技术栈 | 需检查的文件 |
|---|---|
| TypeScript/JS | .eslintrc.*、eslint.config.*、.prettierrc* |
| Python | pyproject.toml(ruff/mypy)、.flake8、.pylintrc |
| Go | .golangci.yml |
| Rust | Cargo.toml(clippy)、rustfmt.toml |
| 通用 | .editorconfig |
CI:
.github/workflows/、.gitlab-ci.yml、Jenkinsfile、buildspec.ymlGit hooks:
.husky/、.git/hooks/、lefthook.yml、.pre-commit-config.yamlSkills:
.claude/skills/、.cursor/skills/、.github/skills/对找到的每种介质,按以下维度评估质量。
| 分数 | 标准 |
|---|---|
| 0 | 缺失 |
| 1 | 存在但内容空泛/占位 |
| 2 | 包含技术栈 + 目录结构 |
| 3 | 包含带示例的具体编码规范 |
| 4 | 包含具体的"做/不做"规则 + 引用了项目文件 |
| 5 | 精简(<80 行),只有具体规则,细节推到 docs/skills |
红旗标志:
| 分数 | 标准 |
|---|---|
| 0 | 缺失 |
| 1-2 | 仅设置了模型 |
| 3 | 配置了 permissions allow/deny |
| 4 | 配置了 hooks(PostToolUse 触发 lint 等) |
| 5 | permissions + hooks + 模型锁定 + 敏感文件保护 |
红旗标志:
deny 规则.env 保护rm -rf / 危险命令拦截| 分数 | 标准 |
|---|---|
| 0 | 未配置 |
| 1-2 | 仅使用默认预设(如 extends next/core-web-vitals) |
| 3 | 包含项目专属规则(no-restricted-syntax、自定义模式) |
| 4 | 错误信息面向 Agent 设计(说明了为什么 + 用什么替代 + 去哪里看) |
| 5 | 规则与架构边界对齐 + 错误信息即 prompt |
红旗标志:
| 分数 | 标准 |
|---|---|
| 0 | 无 CI |
| 1-2 | 仅基本的 build + test |
| 3 | 包含 lint + typecheck + test + build |
| 4 | 包含特殊场景守卫(migration review、安全扫描、覆盖率阈值) |
| 5 | 与本地检查平衡(CI 是最后一道防线,不是唯一防线) |
红旗标志:
| 分数 | 标准 |
|---|---|
| 0 | 无 hooks |
| 1-2 | 仅基本 pre-commit,只做格式化 |
| 3 | pre-commit 运行 linter |
| 4 | 包含 commit-msg 检查(约定式提交)+ lint-staged |
| 5 | Hook 链:format → lint → typecheck,延迟最小 |
红旗标志:
--no-verify 绕过| 分数 | 标准 |
|---|---|
| 0 | 无 skills 目录 |
| 1-2 | 有 1-2 个 skill 但内容空泛 |
| 3 | Skills 有具体的 description,能匹配到相关任务 |
| 4 | Skills 覆盖了常见项目工作流(工具函数使用、数据库模式等) |
| 5 | Skills 覆盖了 CLAUDE.md 无法单独处理的认知层缺口 |
红旗标志:
对每条找到的活跃规则(在 CLAUDE.md、linter 配置、CI、hooks 中),用四个问题检验它是否在正确的介质上:
可以被形式化吗?(能否翻译成 function check(code): boolean)
违反代价有多高?
反馈速度需要多快?
被触发的频率多高?
标记每条未通过此检验的规则(例如:一条可形式化的高代价规则留在 CLAUDE.md 里,或一条不可形式化的模糊规则写进了 linter)。
检查以下常见反模式:
| # | 反模式 | 检测方法 |
|---|---|---|
| 1 | CLAUDE.md 垃圾场 | CLAUDE.md >150 行,什么都在里面 |
| 2 | CI-only 质量 | Linter/hooks 缺失但 CI 里有很多检查 |
| 3 | 模糊的 CLAUDE.md 规则 | "保持整洁"、"简洁"等规则,没有具体内容 |
| 4 | Harness 过硬 | 所有 linter 规则都是 error,频繁使用 --no-verify |
| 5 | Harness 过软 | 所有 linter 规则都是 warn,无实质约束 |
| 6 | 人类错误信息 | Linter 信息简短,没有"为什么/替代方案/示例" |
| 7 | 约束-认知混淆 | 认知层内容放在 CLAUDE.md,约束规则放在 skills |
| 8 | settings.json 被忽视 | 该由 settings.json 做的事(权限、模型锁定)写在了 CLAUDE.md |
| 9 | 敏感文件未保护 | 没有 deny .env、credentials、migrations |
| 10 | 无反馈速度梯度 | 所有检查在同一层级,缺少 linter→hook→CI 梯度 |
完备性评分(0-10):
= CLAUDE.md 得分 (0-2) + settings.json 得分 (0-2) + linter 得分 (0-2)
+ CI 得分 (0-2) + git hooks 得分 (0-1) + skills 得分 (0-1)
各项:0=缺失,1=部分,2=存在且质量良好。
合理性评分(0-10):
= 介质适配得分 (0-4) [规则是否在正确的介质上]
+ 反模式倒扣 (0-3) [0个反模式=3, 1-2个=2, 3-4个=1, 5+个=0]
+ 反馈梯度 (0-2) [linter→hook→CI 时机是否恰当]
+ 错误信息质量 (0-1) [是否面向 Agent 编写错误信息]
综合等级:
| 分数范围 | 等级 | 描述 |
|---|---|---|
| 16-20 | A | 成熟的 harness,各层均衡 |
| 12-15 | B | 能干活,但有缺口 |
| 8-11 | C | 基础配置,改进空间很大 |
| 4-7 | D | 最简 harness,Agent 基本在裸奔 |
| 0-3 | F | 无 harness,全靠模型直觉 |
生成按优先级排序的可操作改进列表。每条建议包含:
优先级规则:
以结构化报告呈现:
# Harness 审计报告 — [项目名称]
## 概览
- **综合等级**:A/B/C/D/F(xx/20)
- **完备性**:x/10
- **合理性**:x/10
- **关键发现**:[一句话总结]
## 组件清单
| 介质 | 状态 | 评分 | 关键问题 |
|------|------|------|----------|
| CLAUDE.md | 存在 | 3/5 | ... |
| settings.json | 缺失 | 0/5 | ... |
| Linter | 存在 | 4/5 | ... |
| CI | 部分 | 2/5 | ... |
| Git hooks | 存在 | 3/5 | ... |
| Skills | 部分 | 2/5 | ... |
## 发现的反馈式
1. **[模式名称]** — [文件:行号] — [影响]
## 介质适配违规
[列出放在了错误介质上的规则,及建议迁往何处]
## 改进建议
| # | 优先级 | 操作 | 成本 | 预期收益 |
|---|--------|------|------|----------|
| 1 | P0 | ... | 低 | ... |
| 2 | P1 | ... | 中 | ... |
| ... | ... | ... | ... | ... |
## 快速见效(<30 分钟总计)
[2-3 项低投入高回报的事]
端到端 HTML 讲稿流水线技能,适用于”上下文过长””分镜拆分””并行生成””风格控制”等超过 10 页的 HTML 演示任务。采用网站骨架输出模式(CSS 三层架构 + hash 路由 + 自适应缩放),支持一键导出 HTML 和 PPTX。强调分镜先行、风格契约、舞台比例可配置(16:9/4:3/16:10/adaptive)、版本递增与样式多样性。
将HTML幻灯片演示文稿截图并生成PPTX文件。当用户需要把HTML slides导出为PPT、将HTML演示文稿转成PPTX、对HTML幻灯片逐页截图打包时激活。Convert HTML slide decks to PPTX by screenshotting each slide and assembling into a PowerPoint file. Activates when user needs to export HTML slides to PPT, convert HTML deck to .pptx, screenshot HTML presentation pages.
测量 HTML 演示文稿每页的空间利用率,找到过于空旷的页面。使用 Playwright 渲染 + 网格采样方法。当用户想检查页面密度、找空白页面、优化页面布局或询问"空间利用率"时使用。
使用 Scrapling 抓取、清洗、分析网页并生成结构化数据或中文报告。适用于 scrape / crawl / fetch / extract / summarize 网站内容、profile/activity feed、回答/文章/帖子列表、近 1 年动态、批量网页调研,以及用户明确提到 401/403、反爬、Cloudflare、登录受限、signin/login、need_force_login、需要 cookies/token、动态渲染、滚动加载、批量抓取、站点主题分析、网页证据收集等场景。特别适合知乎、专栏、公众号、博客、列表页+详情页链路。核心使用场景:批量采集多页/多站内容、突破访问受限(403/Cloudflare/反爬屏蔽)、抓取需要鉴权(login/cookie/token)的页面。
系统化版本对比和变更分析。当用户需要版本对比、变更分析、更新日志生成、版本差异比较、升级影响评估时激活。Systematic version comparison and change analysis. Activates when user needs version comparison, change analysis, update log generation, version diff, or upgrade impact assessment.
系统化代码分析技能,用于代码质量评估、技术债务识别、性能优化分析和架构重构评估。采用"总-分-总"结构化分析方法,支持多轮迭代分析,生成量化指标和改进建议。适用于需要进行代码审查、系统分析、重构规划等场景。