Skip to main content

code-quality-standards

Concrete code-quality thresholds and anti-patterns: 120-char lines, max 20 cyclomatic complexity, max 4 nesting levels, max 50 lines per function, no magic numbers, no global state, composition over inheritance, no bare except, rule-of-three before extracting an abstraction, delete dead code instead of commenting it out. Load when writing a new function or module, reviewing a diff for quality, refactoring a long or deeply nested function, or deciding whether to extract shared logic.

来源信息

仓库
xberg-io/agent-conventions
最近来源活动
2026年10月14日 06:43
检测到的 SKILL.md 语言
英语
星标
8
Forks
2

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
code-quality-standards
description
Concrete code-quality thresholds and anti-patterns: 120-char lines, max 20 cyclomatic complexity, max 4 nesting levels, max 50 lines per function, no magic numbers, no global state, composition over inheritance, no bare except, rule-of-three before extracting an abstraction, delete dead code instead of commenting it out. Load when writing a new function or module, reviewing a diff for quality, refactoring a long or deeply nested function, or deciding whether to extract shared logic.
## Readability - Max 120 character line width. - Prefer explicit code over clever tricks — if it needs a comment to explain what it does, rewrite it. - No abbreviations in public API names (`context` not `ctx`, `repository` not `repo`). - Keep functions short and focused on a single responsibility. ## Complexity limits Max 20 cyclomatic complexity per function, max 4 levels of nesting depth, max 50 lines per function. Use early returns to flatten conditionals. Break complex functions into well-named helpers that each do one thing. ## Anti-patterns - No magic numbers — use named constants. - No global state — use dependency injection. - No inheritance for code reuse — prefer composition. - No bare exception handlers — catch specific types. - No mocking internal services — use real objects for integration tests. - No blocking I/O in async code paths — keep async paths fully async. ## Duplication Extract shared logic after the third repetition, not before. Three similar lines are better than a premature abstraction. When extracting, ensure the shared code has a single reason to change — if two callers would evolve the logic differently, keep them separate. Premature abstraction creates worse coupling than duplication. ## Dead code Remove dead code instead of commenting it out. Version control preserves history; commented-out code creates confusion and maintenance burden.
在 GitHub 查看