Agent Skillszereight/gitlab-mcp › coding-standards

coding-standards

GitHub

跨语言编码规范参考,涵盖命名、函数设计、错误处理等规则。供审查代理引用,用于代码风格检查与基准评估。

.github/skills/coding-standards/SKILL.md zereight/gitlab-mcp

Trigger Scenarios

查看编码规范 检查命名规则 审查代码风格基准

Install

npx skills add zereight/gitlab-mcp --skill coding-standards -g -y
More Options

Non-standard path

npx skills add https://github.com/zereight/gitlab-mcp/tree/main/.github/skills/coding-standards -g -y

Use without installing

npx skills use zereight/gitlab-mcp@coding-standards

指定 Agent (Claude Code)

npx skills add zereight/gitlab-mcp --skill coding-standards -a claude-code -g -y

安装 repo 全部 skill

npx skills add zereight/gitlab-mcp --all -g -y

预览 repo 内 skill

npx skills add zereight/gitlab-mcp --list

SKILL.md

Frontmatter
{
    "name": "coding-standards",
    "description": "Canonical cross-language coding standards reference. Shared rules embedded by reviewer agents. Activate when: viewing coding standards, checking naming rules, reviewing style baseline, consulting style guide, what are the rules.\n",
    "argument-hint": "[optional: specific topic — naming | functions | errors | anti-patterns]"
}

Coding Standards

D9 Canonical Reference. This is the single source of truth for cross-language coding standards. Language-specific reviewers (@typescript-reviewer, @python-reviewer, etc.) embed these rules. Agents cite this skill as "See also: /coding-standards."

Naming Conventions

Variables & Functions

Language Variables Functions Constants
TypeScript / JavaScript camelCase camelCase SCREAMING_SNAKE_CASE
Python snake_case snake_case SCREAMING_SNAKE_CASE
Go camelCase camelCase CamelCase (exported)
Rust snake_case snake_case SCREAMING_SNAKE_CASE
Java camelCase camelCase SCREAMING_SNAKE_CASE
C# camelCase PascalCase PascalCase
Swift camelCase camelCase camelCase

Classes / Types / Interfaces

PascalCase — all languages, no exceptions.

Booleans

Prefix with is, has, can, should: isLoading, hasError, canEdit, shouldRefresh.

Collections

Plural nouns: users, errors, items — not userList, errorArray.

Avoid

  • Single-letter variables outside loop counters (i, j, k are OK in loops)
  • Abbreviations that save under 3 characters: usruser, mgrmanager
  • Redundant type names: UserInterface, UserClass, UserObject → just User

Function Design

  • Max length: 50 lines (firm guideline; > 80 lines is always a split target)
  • Single responsibility: one function, one job — if "and" appears in the description, split it
  • Max parameters: 3; beyond that, use an options/config object
  • Cyclomatic complexity: ≤ 10; > 15 is a mandatory refactor target
  • Nesting depth: ≤ 3 levels; use early returns to flatten

Early Return Pattern (preferred)

// BEFORE — deep nesting
function handle(input) {
  if (input) {
    if (input.valid) {
      return process(input);
    }
  }
  return null;
}

// AFTER — early returns
function handle(input) {
  if (!input || !input.valid) return null;
  return process(input);
}

Error Handling

  • Never swallow errors silently: catch (e) {} is always wrong
  • Error messages must contain context: "Failed to fetch user id=42" not "Error"
  • Propagate or handle: either handle the error at the right level OR re-throw it — never both and never neither
  • Typed errors (TypeScript): class NotFoundError extends Error { constructor(id: string) ... } not generic new Error
  • Python exceptions: catch specific exception types; bare except: is forbidden
  • Go errors: always check returned errors; use errors.Is()/errors.As() for comparison
  • Rust results: use ? for propagation; no .unwrap() in library code

Code Structure

Immutability-First

  • const over let (JS/TS); val over var (Swift/Kotlin); final where appropriate
  • Mark fields readonly when not reassigned after construction
  • Prefer immutable data structures for function arguments

No Magic Numbers

// BAD
if (retries > 3) { ... }
setTimeout(fn, 5000);

// GOOD
const MAX_RETRIES = 3;
const POLL_INTERVAL_MS = 5000;
if (retries > MAX_RETRIES) { ... }
setTimeout(fn, POLL_INTERVAL_MS);

No Commented-Out Code

If it is dead → delete it (git history preserves it). If it is needed soon → it should be in a branch. If it explains a non-obvious decision → keep it as a comment, not commented-out code.


Anti-Patterns Reference

Pattern Severity Reason
Mutable global state HIGH Unpredictable side effects; hides dependencies
Promise not awaited HIGH Unhandled async errors silently swallowed
any in TypeScript MEDIUM Bypasses type safety across call boundaries
console.log in production code LOW Log noise; potential data leak in sensitive contexts
TODO without issue tracker reference LOW Becomes permanent tech debt
God Object HIGH Single class with too many responsibilities
Magic numbers inline MEDIUM Unclear intent; maintenance hazard
Copy-paste logic MEDIUM Silent divergence over time
Catching and re-throwing without context MEDIUM Stack traces lose meaning
Nested ternary operators MEDIUM Unreadable; use if/else or switch instead

SOLID Principles Checklist

  • Single Responsibility: does this class/function do exactly one thing?
  • Open/Closed: extend via composition/interfaces, not inheritance modification?
  • Liskov Substitution: can a subtype always replace the base type without breaking callers?
  • Interface Segregation: no fat interfaces — clients should not depend on methods they don't use?
  • Dependency Inversion: depend on abstractions (interfaces), not concretions?

See Also

  • @code-reviewer — applies these rules during code review
  • @typescript-reviewer, @python-reviewer, etc. — language-specific rules with these as baseline
  • @security-reviewer — security-specific standards (OWASP, secrets, crypto)

Version History

  • a8f5d4f Current 2026-07-25 10:03

Same Skill Collection

.github/skills/ai-slop-cleaner/SKILL.md
.github/skills/cancel/SKILL.md
.github/skills/ccg/SKILL.md
.github/skills/deep-dive/SKILL.md
.github/skills/deep-interview/SKILL.md
.github/skills/omg-autopilot/SKILL.md
.github/skills/plan/SKILL.md
.github/skills/ralph/SKILL.md
.github/skills/ralplan/SKILL.md
.github/skills/remember/SKILL.md
.github/skills/review/SKILL.md
.github/skills/security-scan/SKILL.md
.github/skills/self-improve/SKILL.md
.github/skills/skill-stocktake/SKILL.md
.github/skills/status/SKILL.md
.github/skills/tdd/SKILL.md
.github/skills/team/SKILL.md
.github/skills/trace/SKILL.md
.github/skills/ultraqa/SKILL.md
.github/skills/ultrawork/SKILL.md
.github/skills/verify/SKILL.md
skills/gitlab-mcp/SKILL.md

Metadata

Files
0
Version
dc58dc0
Hash
669714e3
Indexed
2026-07-25 10:03

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-22 02:39
浙ICP备14020137号-1 $mapa de visitantes$