checking-code-quality skill
scripts순환 복잡도, 중복, 명명 규칙, 함수 길이와 같은 코드 품질 지표를 분석하여 코드 스멜을 식별합니다.
- GitHub 스타
- 245
- 파일
- 3
- 마지막 커밋
- 2026년 7월 19일
- 라이선스
- MIT
- 허용된 도구
- 3
checking-code-quality skill은 무엇을 하나요?
checking-code-quality은(는) agent skill입니다. 순환 복잡도, 중복, 명명 규칙, 함수 길이와 같은 코드 품질 지표를 분석하여 코드 스멜을 식별합니다.
skill의 SKILL.md에서 생성된 요약입니다.
checking-code-quality skill 정보
이 SKILL은 개발자가 자동화된 지표를 통해 코드 스멜을 식별하고 기술 부채를 측정할 수 있도록 지원합니다. 순환 복잡도, 함수 길이, 중복, 명명 규칙과 같은 특정 지표를 분석하여 코드의 유지보수성을 보장합니다. 품질 게이트를 실행하거나, 대규모 pull request를 검토하거나, 최근의 리팩터링이 새로운 문제를 일으키지 않고 복잡도를 성공적으로 줄였는지 확인할 때 에이전트가 이 도구를 로드해야 합니다.
이 도구는 Bash, Read, Glob을 사용하여 지정된 경로를 스캔하며, abyss와 통합하여 hotspot_score 및 coupling_score 데이터를 기반으로 위험도가 높은 핫스팟을 식별할 수 있습니다. 중첩 깊이가 4를 초과할 때 서브 함수 추출을 제안하거나, 인자 수가 5개를 초과할 때 파라미터 객체 캡슐화를 권장하는 등 위반 사항을 해결하기 위한 실행 가능한 가이드를 제공합니다. 매직 넘버나 데드 코드와 같은 문제를 식별하지만, 상태 머신이나 자동 생성된 protobuf 파일과 같은 특정 구조는 별도의 처리가 필요할 수 있음을 인지합니다.
agent가 수행할 수 있는 작업
- 1리팩터링 후 코드 품질 검증최근의 코드 구조 변경이 복잡도를 성공적으로 줄였는지, 그리고 새로운 코드 스멜을 유발하지 않았는지 확인합니다.
- 2고위험 코드 핫스팟 식별높은 복잡도와 빈번한 변경을 기준으로 즉각적인 주의가 필요한 파일을 찾아냅니다.
- 3pull request 검토 자동화코드 리뷰 과정에서 주관적인 논쟁 대신 객관적인 지표를 사용합니다.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
checking-code-quality skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.플러그인에 checking-code-quality skill 설치
/plugin marketplace add telagod/code-abyss /plugin install code-abyss@code-abyss
Claude Code에 checking-code-quality skill 설치
~/.claude/skills/checking-code-quality/SKILL.md
$ npx degit telagod/code-abyss/skills/checking-code-quality ~/.claude/skills/checking-code-qualityClaude Code (project)에 checking-code-quality skill 설치
.claude/skills/checking-code-quality/SKILL.md
$ npx degit telagod/code-abyss/skills/checking-code-quality .claude/skills/checking-code-qualityCodex에 checking-code-quality skill 설치
~/.agents/skills/checking-code-quality/SKILL.md
$ npx degit telagod/code-abyss/skills/checking-code-quality ~/.agents/skills/checking-code-qualityGemini CLI에 checking-code-quality skill 설치
~/.gemini/skills/checking-code-quality/SKILL.md
$ npx degit telagod/code-abyss/skills/checking-code-quality ~/.gemini/skills/checking-code-qualityClaude.ai에 checking-code-quality skill 설치
npx degit telagod/code-abyss/skills/checking-code-quality checking-code-quality && zip -r checking-code-quality.zip checking-code-quality # claude.ai → Customize → Skills → + → Create skill → Upload a skill → checking-code-quality.zip
SKILL.md
GitHub에서 보기代码质量校验关卡
阈值是 heuristic,不是判决。主动判断哪些超标值得拆,哪些是合理复杂度。
何时使用
| 场景 | 跑 | 判据 |
|---|---|---|
| 重构完成 | ✅ | 验证拆分有效,未引入新异味 |
| 复杂模块新增 | ✅ | 早期发现可读性问题 |
| 提交前(>30 行变更) | ✅ | 防腐烂 |
| PR review | ✅ | 客观度量替代主观争论 |
| 紧急修复 | ❌ | 优先稳定,质量在收口阶段补 |
| 算法/性能关键路径 | ⚠ | 工具阈值不适用,按性能基准判断 |
abyss 集成
如果 abyss 可用,质量检查时额外使用 hotspot 数据:
abyss map --json # 获取热点文件列表
- hotspot_score > 10000 的文件:标记为「高风险热点」,优先拆分
- change_count > 20 且 complexity > 100:建议拆分为更小的文件/函数
- coupling_score > 80%:提醒耦合文件需要同步审查
阈值与处置
| 指标 | 阈值 | 超标处置 | 何时容忍 |
|---|---|---|---|
| 圈复杂度 | ≤10 | 拆分函数、引入策略模式 | 有限状态机/解析器(结构性复杂) |
| 函数长度 | ≤50 行 | 提取子函数 | 配置/常量声明、大型 switch |
| 文件长度 | ≤500 行 | 拆分模块 | 自动生成代码、protobuf |
| 参数数量 | ≤5 | 封装参数对象 | 构造函数(builder 模式更佳) |
| 嵌套深度 | ≤4 | 早返回、提取函数、查表 | 罕见情况下的状态机 |
| 行长度 | ≤120 | 换行 | 长字符串字面量、SQL |
例外说明:bin/ 下带 Node shebang 的 CLI 入口按命令编排层处理,不参与文件长度阈值;其业务逻辑仍应优先下沉到 bin/lib/。
代码异味
| 异味 | 严重度 | 处置 |
|---|---|---|
| 重复代码 >10 行 | High | 提取公共函数;判断是否真重复(结构相似但语义不同时不要强抽) |
| 参数 >5 个 | Medium | 封装参数对象 |
| 魔法数字 | Medium | 提取常量;常见数(0, 1, 2)可豁免 |
| 死代码/注释代码块 | Low | 删除;用 git history 追溯,不要靠注释保留 |
命名规范
| 实体 | 规则 |
|---|---|
| 类 | PascalCase |
| 函数 | snake_case (Python/Rust) / camelCase (JS/TS/Go) |
| 常量 | UPPER_SNAKE |
| 变量 | snake_case / camelCase(按语言) |
跨语言项目按主语言定,不混搭。
判断式重构
# 深嵌套 → 早返回
def process(data):
if not c1: return
if not c2: return
# 主逻辑
# 重复 → 提取
def common(): ...
def f1(): common()
def f2(): common()
重构红线:测试不绿不重构。先把测试补齐,才有改动的安全网。
与其他 skill 联动
- 重构后 → 同步跑 analyzing-changes(看影响面)+ analyzing-security(防退化)
- 复杂度爆炸时 → 看是否需要 designing-architectures 的拆分模式
使用
node scripts/quality_checker.js <路径>
node scripts/quality_checker.js <路径> -v # 详细
node scripts/quality_checker.js <路径> --json # CI 用
收口
报告以 quality_checker.js 实际输出为准。超标项要么修复,要么在 DESIGN.md 留「为何接受」的说明。不允许悄悄忽略。
이 스킬의 파일
3checking-code-quality skill 질문
Claude Code에 checking-code-quality skill을 어떻게 설치하나요?
npx degit telagod/code-abyss/skills/checking-code-quality ~/.claude/skills/checking-code-quality를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
checking-code-quality skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.
코드 지표가 임계값을 초과하면 어떻게 해야 하나요?
임계값을 초과한 항목은 수정하거나, 왜 그대로 유지하는지 DESIGN.md에 문서화해야 합니다. 단순히 무시하는 것은 허용되지 않습니다.