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.

Informations de source

Dépôt
xberg-io/agent-conventions
Dernière activité de la source
14 octobre 2026 à 06:43
Langue détectée de SKILL.md
anglais
Étoiles
8
Forks
2

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
code-quality-standards
description
Code-quality limits: 120-char lines, complexity 20, nesting 4, 50-line functions, no magic numbers or global state, rule of three, delete dead code, narrow suppressions, tracked TODOs. Use when writing, reviewing or refactoring code.
## 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. ## Suppressions Fix the cause instead of suppressing a lint rule, type error or test. A necessary suppression (lint-disable, noqa, ts-ignore, `#[allow]`) is scoped to the narrowest line, names the rule, and gives a one-line reason. Never update a snapshot or baseline just to hide a failure. ## Markers `TODO`, `FIXME`, `HACK` and `XXX` take the form `TODO(PROJ-123): description`. The key is an existing open tracker issue for future work, never the issue of the current change (it closes on merge). No bare markers, owners or dates.
Voir sur GitHub