본문으로 건너뛰기
cccskills
무료GitHub에 공개

ai-friendly-audit

代码仓库 AI 亲和度审计工具,支持前端、后端、全栈等各类项目。此技能用于检查给定的代码仓库对 AI Coding 工具的友好程度,生成详细的分析报告和改进建议。当用户需要评估代码仓库是否适合 AI 辅助开发、希望提升仓库的 AI 可操作性、或准备引入 AI Coding 工具前进行仓库评估时,应使用此技能。

支持 TypeScript/JavaScript、Go、Java/Kotlin、Python、Rust 等主流技术栈。融合 OpenAI Harness Engineering 方法论,评估 Outer Loop(反馈闭环、评估门禁、机械化不变量)建设。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구OpenAI
설치 방법 보기

포함된 파일(5)

  • SKILL.md22.0 KB
  • references/checklist.md4.9 KB
  • references/report_template.md5.2 KB
  • scripts/check_file_size.py8.6 KB
  • scripts/repo_scan.py27.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

AI Friendly Audit(AI 亲和度审计)v3.0

概述

此技能用于系统性评估代码仓库对 AI Coding 工具的友好程度。通过自动化脚本收集数据 + 人工审查相结合,生成量化评分和改进建议报告,帮助团队优化代码仓库以获得更好的 AI 协作体验。

适用范围: 前端、后端、全栈、SDK/库、Monorepo 等各类项目。

v3.0 新增: 融合 OpenAI Harness Engineering 方法论,新增"Outer Loop & 反馈闭环"维度,强调机械化不变量、评估门禁和自验证能力。

核心理念

AI 亲和的代码仓库应具备以下特质:

  1. 信任链闭环(Inner Loop) — AI 做出的修改可被快速验证(测试、类型检查、lint),形成"修改→验证→反馈"的快速循环
  2. 最小可运行环境 — 降低环境依赖,便于 AI 理解和复现问题,能在本地快速启动和验证
  3. 规范驱动开发(SDD) — 文档即规范,AI 可据此生成和验证代码,而不是靠猜测
  4. 上下文窗口友好 — 单文件可被完整读取,代码粒度适合 AI 处理,避免"记忆墙"问题
  5. 代码自述性 — 文件和函数自带足够上下文,减少 AI 跳转查阅的需要
  6. 机械化不变量(Outer Loop) — 架构意图必须通过自动化手段(linter 规则、结构测试、评估门禁)机械化执行,而非仅靠文档约定。参考 OpenAI Harness Engineering:"Agent 会按比例复制模式,架构约束必须机械化执行"

Inner Loop 与 Outer Loop

┌──────────────────────────────────────────────────────────────┐
│  Inner Loop(Agent 执行循环)                                 │
│  prompt → 推理 → 工具调用 → 输出 → 再次推理 → ... → 完成    │
└──────────────────────────────────────────────────────────────┘
                              ↕
┌──────────────────────────────────────────────────────────────┐
│  Outer Loop(质量保障闭环)                                   │
│  类型检查 → 单元测试 → 结构测试 → 覆盖率门禁 → 构建验证     │
│  AGENTS.md → 架构文档 → 评估门禁 → 回归检测                  │
└──────────────────────────────────────────────────────────────┘
  • Inner Loop: AI Agent 的推理-执行循环,关注单次任务的正确执行
  • Outer Loop: 围绕 Agent 构建的质量保障体系,确保 AI 生成的代码持续符合架构规范

审计工作流程

关于"记忆墙"问题

AI Coding 工具的上下文窗口有限。审计过程中,优先使用脚本自动收集数据并输出结构化结果,避免逐个文件手动检查导致上下文溢出。工作流设计为"脚本先行、人工补充"模式。

Phase 1: 自动化扫描(脚本驱动)

运行自动化脚本收集仓库基础数据,这一步会输出结构化的 JSON 数据,覆盖大部分可自动检测的维度:

python3 scripts/repo_scan.py <repo_path> --json

脚本会自动检测并输出:

  • 项目类型(前端/后端/全栈/库)和技术栈(语言、框架、包管理器)
  • 各维度的自动化检查结果(文件存在性、配置检测等)
  • 文件体积统计和评分
  • Outer Loop 基础设施检测(结构测试、覆盖率门禁、质量脚本等)

如果只需要检查文件体积:

python3 scripts/check_file_size.py <src_path> --warn 500 --error 1000 --json

Phase 2: 人工补充检查

脚本无法覆盖的维度(如代码质量、错误处理模式、架构合理性等)需要人工抽样检查。参考 references/checklist.md 中标注为"需人工检查"的项目。

人工检查时,聚焦于:

  • 抽查 3-5 个核心源文件,评估代码自述性和命名规范
  • 查看错误处理模式是否统一
  • 评估模块边界是否清晰
  • [v3.0] 检查是否存在结构测试(验证分层规则、导入约束等)
  • [v3.0] 评估 AGENTS.md 是否为"目录式"结构(~100 行入口 + 独立文档),而非百科全书式

Phase 3: 生成报告

根据脚本输出 + 人工检查结果,使用 references/report_template.md 模板生成最终报告。


审计维度(11 个维度)

以下维度适用于所有项目类型。每个维度满分 4 分,通过权重加权计算总分(满分 100)。

#维度权重适用范围关键检查点
1最小可运行环境11%全部一键启动、依赖屏蔽/Mock、环境变量模板、依赖锁定
2类型系统与静态分析11%全部静态类型、严格模式、类型覆盖率
3测试体系14%全部单元测试、集成/E2E 测试、覆盖率、测试可独立运行
4文档完备性10%全部README、架构文档、API 文档、开发指南
5代码规范与自动化7%全部Linting、格式化、Git Hooks、提交规范
6模块化架构9%全部分层清晰、低耦合、职责单一、无循环依赖
7上下文窗口友好性9%全部文件行数、函数复杂度、模块粒度
8代码自述性7%全部文件综述、语义化命名、关键注释
9AI 工具与 SDD 支持8%全部AI 配置文件、API 规范、架构规范
10依赖隔离与可复现性5%全部外部依赖可屏蔽、构建可复现、容器化支持
11Outer Loop & 反馈闭环9%全部结构测试、评估门禁、覆盖率阈值、质量脚本、机械化不变量

v3.0 变化: 新增维度 11,其余维度权重微调以容纳新维度,总权重保持 100%。


各维度检查指南

1. 最小可运行环境(11%)

核心目标: AI Coding 工具可在本地快速启动应用并验证修改效果。

不同技术栈的检查重点:

技术栈一键启动依赖屏蔽环境模板依赖锁定
Node.jsnpm run devMSW / json-server.env.examplepackage-lock.json
Gomake run / go run接口 Mock / build tags.env.examplego.sum + vendor
Java/Kotlinmvn spring-boot:runSpring Profiles + H2application-local.propertiespom.xml 版本锁定
Pythonpython -m apppytest fixtures / mock.env.examplerequirements.txt / poetry.lock
Rustcargo runfeature flags / mock traits.env.exampleCargo.lock

评分标准:

  • 4分:一键启动 + 依赖可屏蔽 + 环境模板 + 依赖锁定
  • 3分:一键启动 + 有启动文档或部分 Mock
  • 2分:可启动但需手动配置
  • 1分:启动依赖外部服务,无 Mock 方案
  • 0分:无明确启动方式或强依赖外部服务

2. 类型系统与静态分析(11%)

核心目标: 静态类型检查提供快速反馈,AI 生成的代码可被类型系统即时校验。

技术栈类型系统严格模式检查命令
TypeScripttsconfig.json strictnoImplicitAny 等npx tsc --noEmit
Go内置强类型go vet + staticcheckgo vet ./...
Java/Kotlin内置强类型Error-Prone / NullAwaymvn compile
Pythonmypy / pyrightstrict modemypy --strict src/
Rust内置强类型#![deny(warnings)]cargo check

评分标准:

  • 4分:强类型 + 严格模式 + 静态分析工具 + 无类型逃逸
  • 3分:有类型系统,少量类型逃逸(any / unsafe / suppress)
  • 2分:有类型系统但配置宽松
  • 1分:部分代码有类型
  • 0分:动态语言无类型注解

3. 测试体系(14%)

核心目标: AI 修改代码后可快速运行测试验证正确性,形成信任链闭环。

检查项:

  • 测试框架配置: Jest/Vitest、Go testing、JUnit/TestNG、pytest 等
  • 测试覆盖率: 配置覆盖率报告工具(Istanbul、JaCoCo、coverage.py 等)
  • 测试可独立运行: 不依赖外部服务(数据库、API 等),使用 mock/fixture/testcontainers
  • 核心路径覆盖: 关键业务逻辑有测试保护

评分标准:

  • 4分:覆盖率 >70% + 核心路径有测试 + 测试可独立运行 + E2E/集成测试
  • 3分:覆盖率 50-70% + 有单元测试框架 + 部分 mock
  • 2分:有测试但覆盖率低或依赖外部服务
  • 1分:有测试框架但测试极少
  • 0分:无测试

4. 文档完备性(10%)

核心目标: AI 可通过文档理解项目上下文、架构决策和开发规范。

必查文档:

  • README.md — 项目简介、快速开始、项目结构
  • 架构文档 — 系统架构、模块关系、数据流(如 docs/architecture.md)
  • API 文档 — 接口定义、请求/响应格式(OpenAPI spec 或 Markdown)
  • 开发规范 — 编码规范、目录约定、命名规则(如 backend_dev_rule.md)

[v3.0] AGENTS.md 最佳实践 (参考 OpenAI Harness Engineering):

  • AGENTS.md 应为目录式结构(~100 行入口),而非百科全书
  • 详细规范应分散到独立文档(.cursor/rules/、docs/ 等)
  • 避免在 AGENTS.md 中堆砌过多内容,防止挤占 Agent 的任务上下文

评分标准:

  • 4分:README + 架构文档 + API 文档 + 开发规范 + AI 指南
  • 3分:README 完整 + 架构文档或 API 文档
  • 2分:README 基本完整
  • 1分:README 简单或过期
  • 0分:无文档

5. 代码规范与自动化(7%)

核心目标: 代码风格一致,AI 生成代码可被自动校验和格式化。

技术栈Linting格式化Git Hooks
TypeScriptESLint / BiomePrettierhusky + lint-staged
Gogolangci-lintgofmt / goimportspre-commit
JavaCheckstyle / Error-Pronegoogle-java-formatpre-commit
Pythonruff / pylintblack / ruff formatpre-commit
Rustclippyrustfmtpre-commit

评分标准:

  • 4分:Lint + Format + Pre-commit + 提交规范
  • 3分:Lint + Format + Pre-commit
  • 2分:Lint + Format
  • 1分:仅有 Lint 配置
  • 0分:无规范约束

6. 模块化架构(9%)

核心目标: 代码结构清晰,AI 可理解边界并进行局部修改而不影响全局。

不同项目类型的模块化标准:

项目类型良好结构差的结构
前端按功能/页面组织,组件/hooks/services 分离所有组件平铺在一个目录
Go 后端cmd/ + pkg/ 或 internal/,按领域划分包所有代码在一个 package
Java 后端controller → service → dao 分层,按模块划分包所有类在一个包里
Python 后端按模块划分,清晰的 __init__.py 导出单个巨大的 app.py

评分标准:

  • 4分:清晰分层 + 无循环依赖 + 职责单一 + 模块边界清晰
  • 3分:合理分层,少量耦合
  • 2分:有分层但边界模糊
  • 1分:耦合较重,修改一处需要改多处
  • 0分:意大利面代码

7. 上下文窗口友好性(9%)

核心目标: 确保代码文件可被 AI 完整读取和理解,避免因文件过长导致上下文截断。

使用脚本检查:

python3 scripts/check_file_size.py <src_path> --warn 500 --error 1000

行数阈值建议:

类型推荐警告严重
源文件≤500 行500-1000 行>1000 行
函数/方法≤80 行80-150 行>150 行
类/组件≤300 行300-600 行>600 行
测试文件≤800 行800-1500 行>1500 行

评分标准:

  • 4分:90% 文件 ≤500 行 + 无超过 1000 行的文件
  • 3分:80% 文件 ≤500 行 + 少量 500-1000 行文件
  • 2分:存在多个 500-1000 行文件,少量超过 1000 行
  • 1分:多个文件超过 1000 行
  • 0分:大量文件超过 1000 行或存在超过 2000 行的巨型文件

8. 代码自述性(7%)

核心目标: AI 无需跳转多个文件就能理解当前代码的目的和上下文。

检查要点:

  • 文件综述: 文件开头有注释说明职责(Go 的 package doc、Java 的 class Javadoc、Python 的 module docstring)
  • 函数文档: 公开函数/方法有文档注释说明参数、返回值和用途
  • 语义化命名: 变量、函数、文件名具有描述性,避免缩写和单字母
  • 关键逻辑注释: 复杂算法或业务逻辑有解释性注释

评分标准:

  • 4分:90% 文件有综述 + 公开 API 有完整文档 + 语义化命名一致
  • 3分:核心文件有综述 + 主要函数有文档
  • 2分:部分文件有注释,命名基本规范
  • 1分:注释稀少,命名不规范
  • 0分:无注释,命名混乱

9. AI 工具与 SDD 支持(8%)

核心目标: 项目有 AI 工具配置和规范驱动开发支持,AI 可据此理解项目意图。

检查项:

类别文件/工具说明
AI 配置.cursorrules / .cursor/rules/Cursor AI 编码规则
AI 配置AGENTS.mdClaude Code 指南
AI 配置.github/copilot-instructions.mdCopilot 指令
AI 上下文Memory Bank / .lingma/AI 助手项目上下文
API 规范openapi.yaml / Swagger机器可读的 API 定义
开发规范CONVENTIONS.md / *_dev_rule.md编码规范文档
架构规范Architecture.md / 设计文档架构决策记录
AI 技能.cursor/skills/ / .claude/skills/可复用的 AI 操作规范

[v3.0] 机械化不变量 (参考 OpenAI Harness Engineering):

  • 架构约束不能仅靠文档 — 必须有自动化手段执行
  • 检查是否有自定义 linter 规则或结构测试验证分层/导入约束
  • 示例:禁止 pages/ 直接导入底层模块、验证 Tailwind 版本合规性

评分标准:

  • 4分:AI 配置 + API 规范 + 开发规范 + 架构文档 + 机械化约束
  • 3分:有 AI 配置 + 架构文档或 API 规范
  • 2分:有架构文档或 AI 配置文件
  • 1分:仅有基本 README
  • 0分:无任何规范驱动文档

10. 依赖隔离与可复现性(5%)

核心目标: 外部依赖可被屏蔽或替换,构建结果可复现。

技术栈依赖隔离方式构建可复现容器化
Node.jsMSW / mock servicelock 文件 + .nvmrcDockerfile
Gointerface mock / build tagsgo.sum + vendorDockerfile
JavaSpring Profiles + H2/TestcontainersMaven wrapper + 版本锁定Dockerfile
Pythonpytest mock / dependency injectionpoetry.lock / pip freezeDockerfile

评分标准:

  • 4分:外部依赖全部可屏蔽 + 构建可复现 + 有容器化
  • 3分:主要依赖可屏蔽 + 构建可复现
  • 2分:部分依赖可屏蔽
  • 1分:强依赖外部服务,但有文档说明
  • 0分:强依赖外部服务,无隔离方案

11. Outer Loop & 反馈闭环(9%)🆕

核心目标: 围绕 AI Agent 构建完整的质量保障闭环,确保 AI 生成的代码持续符合架构规范。

参考 OpenAI Harness Engineering: "人的角色从写代码变为设计环境——让 Agent 可靠地产出正确的代码。" 关键洞察:"架构意图必须通过自定义 linter 和结构测试机械化执行,因为 Agent 会按比例复制模式。"

检查项:

类别检查点示例
结构测试是否有架构约束的自动化测试分层导入规则、文件体积上限、JSDoc 覆盖率
评估门禁是否有一键质量脚本ai:check、quality_check.sh
覆盖率阈值测试覆盖率是否有阈值门禁vitest coverage thresholds、jacoco minimums
回归检测是否可检测质量趋势变化IHS 报告、SonarQube、自定义趋势脚本
可观测性Agent 是否可访问日志/错误来自我验证结构化日志、错误追踪集成

各技术栈的 Outer Loop 实践:

技术栈结构测试评估门禁回归检测
TypeScriptarchitecture.test.ts(导入约束、体积检查)npm run ai:checkIHS 报告 / 覆盖率趋势
Gogo test 包导入约束测试make check / golangci-lint覆盖率趋势
JavaArchUnit 测试(分层约束)mvn verifyJaCoCo 报告
Pythonpytest 导入约束测试tox / nox覆盖率趋势

评分标准:

  • 4分:结构测试 + 一键评估门禁 + 覆盖率阈值 + 回归检测
  • 3分:一键评估门禁 + 覆盖率阈值
  • 2分:有部分评估脚本
  • 1分:仅有 CI 基础构建
  • 0分:无任何质量保障闭环

评分等级

等级分数范围描述
A90-100AI 亲和度优秀,可高效协作
B75-89AI 亲和度良好,有小幅改进空间
C60-74AI 亲和度一般,需重点改进
D40-59AI 亲和度较差,需系统性改造
F<40AI 亲和度极低,不适合 AI 协作

改进建议模板

报告中的改进建议应按技术栈给出具体可操作的步骤。以下是各类项目常见的改进方向:

后端项目常见改进

  1. 添加 API 文档 — 为 REST/gRPC 接口生成 OpenAPI spec 或编写接口文档
  2. 拆分大文件 — 将超过 1000 行的文件按职责拆分(如 Go 的 scheduler.go 拆为 filter.go、priority.go、scorer.go)
  3. 添加本地开发配置 — 提供 .env.example、application-local.properties、docker-compose.dev.yml 等
  4. 配置静态分析 — Go 项目添加 .golangci.yml,Java 项目配置 Error-Prone/Checkstyle
  5. 编写架构文档 — 说明模块关系、数据流、关键设计决策
  6. 添加 AI 配置文件 — 创建 .cursorrules 或 AGENTS.md 指导 AI 行为
  7. [v3.0] 添加结构测试 — 使用 ArchUnit (Java) 或自定义测试验证分层约束

前端项目常见改进

  1. 配置 Mock 模式 — 使用 MSW 或 json-server 屏蔽后端依赖
  2. 启用 TypeScript strict — 开启严格模式,消除 any 类型
  3. 添加组件文档 — Storybook 或组件级注释
  4. 配置 E2E 测试 — Playwright/Cypress 覆盖关键流程
  5. [v3.0] 添加架构约束测试 — 验证导入方向、Tailwind 版本合规、文件体积上限

通用改进

  1. 创建 .cursorrules — 定义编码规范和 AI 协作指南
  2. 为核心文件添加文件综述 — 文件开头说明职责和依赖
  3. 运行 check_file_size.py — 定期检查并拆分超标文件
  4. 编写开发规范文档 — 明确目录约定、命名规则、错误处理模式
  5. [v3.0] 构建 Outer Loop — 添加一键质量脚本、覆盖率阈值、结构测试

Outer Loop 建设路线图(v3.0 新增)

阶段目标关键动作
L1 基础可运行 + 可检查ai:check 脚本、lint + type-check
L2 门禁覆盖率不退化覆盖率阈值、pre-commit hooks
L3 约束架构机械化结构测试、自定义 linter 规则
L4 闭环趋势可追踪IHS/SonarQube 报告、回归检测
L5 自治Agent 可自验证Agent 可访问日志/错误、自修复循环

Harness Engineering 参考

以下要点提炼自 OpenAI Harness Engineering 文章 (2026-02)

核心观点

  1. 工程师角色转变: 从写代码变为设计环境——让 Agent 可靠地产出正确的代码
  2. 机械化不变量: 架构意图必须通过自定义 linter 和结构测试机械化执行,仅靠文档不够
  3. AGENTS.md 作为目录: ~100 行入口,指向独立文档,避免百科全书式导致上下文挤占
  4. 可观测性即自验证: Agent 应能访问日志、指标、追踪来自我验证和修复
  5. 评估门禁: 结构化的"完成"标准(回归测试、安全检查),让 Agent 可自主判断任务完成
  6. 人的注意力是稀缺资源: 系统设计应最大化 Agent 的自主性,最小化人工审查负担

适用于审计的关键指标

指标低成熟度高成熟度
架构约束仅文档描述结构测试 + 自定义 linter 机械化执行
质量门禁无或仅 CI 构建一键脚本 + 覆盖率阈值 + 回归检测
AGENTS.md无或百科全书式目录入口 + 独立规范文档
Agent 自验证无可访问日志/错误,闭环修复

资源文件

scripts/

  • repo_scan.py — 自动化仓库扫描脚本,收集基础信息并输出 JSON
  • check_file_size.py — 文件体积检查脚本

references/

  • checklist.md — 完整的检查清单和评分细则
  • report_template.md — 报告输出模板

快速开始

  1. 运行 python3 scripts/repo_scan.py <repo_path> --json 获取自动化扫描数据
  2. 阅读脚本输出,对照 11 个维度评估
  3. 对脚本无法覆盖的维度(错误处理、代码自述性、Outer Loop 成熟度等)进行人工抽样
  4. 使用 references/report_template.md 生成报告
  5. 按优先级提出改进建议,优先推荐 Quick Wins
  6. [v3.0] 特别关注 Outer Loop 建设成熟度,评估是否有结构测试和评估门禁

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

OPC-Starter 智能开发技能。AI 亲和的 React Boilerplate 项目开发规范,支持动态上下文感知、TDD 驱动开发、Agent Studio 扩展。适用于认证系统、组织架构、Agent 工具、数据同步等模块的迭代开发。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

alibaba/opc-starter882026년 7월 22일 업데이트

Push the LLM to reconsider, refine, and improve its recent output. Use when user asks for deeper critique or mentions a known deeper critique method, e.g. socratic, first principles, pre-mortem, red team.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

alibaba/opc-starter882026년 7월 22일 업데이트

Strategic business analyst and requirements expert. Use when the user asks to talk to Mary or requests the business analyst.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

alibaba/opc-starter882026년 7월 22일 업데이트

System architect and technical design leader. Use when the user asks to talk to Winston or requests the architect.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

alibaba/opc-starter882026년 7월 22일 업데이트

Builds, edits or analyzes Agent Skills through conversational discovery. Use when the user requests to "Create an Agent", "Analyze an Agent" or "Edit an Agent".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

alibaba/opc-starter882026년 7월 22일 업데이트

Senior software engineer for story execution and code implementation. Use when the user asks to talk to Amelia or requests the developer agent.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

alibaba/opc-starter882026년 7월 22일 업데이트

alibaba의 스킬 모두 보기

이 스킬의 문제 신고