agentsclimarketplace

Verify quality

Skill Aurite-ai/agent-verifier/skills/verify-quality

Agent Verifier is a coding agent skill that verifies code against organizational policies, code quality patterns, security requirements, and framework best practices — before code ships. Works with Claude Code, Cursor, Windsurf, and 30+ agents.

Install
npx -y skills add Aurite-ai/agent-verifier --skill verify-quality

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Verify code quality including naming conventions, organization, documentation, and general best practices. Use when asked to "verify quality", "check code quality", or "review code organization".

SKILL.md

7.9 KB, as published. Nobody here has run it

Code Quality Verification

Purpose

Verify code for quality anti-patterns including poor naming, missing documentation, magic values, and organizational issues. All analysis happens locally.

When to Use

Trigger this skill when the user asks to:

  • "verify agent quality"
  • "verify quality"
  • "check code quality"
  • "review code organization"
  • "check naming conventions"

Note: For full verification including security, patterns, and language-specific checks, tell the user to say "verify agent".

Process

Step 1: Discover Files

Locate files to analyze:

Source files:

  • *.py, *.ts, *.js, *.go, *.rs - Source code
  • Focus on main implementation files, not tests

Directories to check:

  • src/, lib/, app/, project root
  • agent/, tools/, utils/

Exclude:

  • node_modules/, .venv/, venv/, __pycache__/
  • Test files (*.test.*, *.spec.*, *_test.go)
  • Generated files, migrations

Step 2: Run Quality Checks

All checks in this skill are [HEURISTIC] — they require judgment. Tag findings with [H].


2.1 [HEURISTIC] Naming Conventions

Check for:

IssueExamples
Single-letter variables (except loops)x = get_data(), d = {}
Unclear abbreviationsproc_usr_req(), calc_val()
Inconsistent casingMixing camelCase and snake_case in same file
Names that don't describe purposedata, temp, result, info
Boolean names without is/has/canenabled = check() vs is_enabled = check()

Good naming:

# ✅ Clear, descriptive
user_profile = get_user_profile(user_id)
is_authenticated = check_authentication(token)
max_retry_attempts = 3

# ⚠️ Unclear
x = get_up(uid)
auth = check(t)
n = 3

Severity: ⚠️ Warning


2.2 [HEURISTIC] Code Organization

Check for:

IssueDescription
Large files> 500 lines for a single module
Large functions> 50 lines for a single function
Deep nesting> 4 levels of indentation
Mixed concernsBusiness logic mixed with I/O in same function
God objectsClasses with > 10 public methods or > 20 attributes

Example issues:

# ⚠️ Warning - Deep nesting
def process(data):
    if condition1:
        if condition2:
            for item in items:
                if condition3:
                    if condition4:  # Too deep
                        ...

# ⚠️ Warning - Mixed concerns
def save_user(user):
    # Validation
    if not user.email:
        raise ValueError("...")
    # Business logic
    user.created_at = datetime.now()
    # Database I/O
    db.session.add(user)
    db.session.commit()
    # Email sending
    send_welcome_email(user)  # Multiple concerns

Severity: ⚠️ Warning


2.3 [HEURISTIC] Magic Numbers and Strings

Check for:

  • Numeric literals in code without constants
  • String literals repeated multiple times
  • Configuration values hardcoded in logic

Examples:

# ⚠️ Warning - Magic numbers
if retry_count > 3:  # What does 3 mean?
    ...
time.sleep(60)  # Why 60?

# ⚠️ Warning - Repeated strings
if status == "pending":
    ...
elif status == "pending":  # Typo risk
    ...

# ✅ Good - Named constants
MAX_RETRIES = 3
RETRY_DELAY_SECONDS = 60
STATUS_PENDING = "pending"

if retry_count > MAX_RETRIES:
    ...
time.sleep(RETRY_DELAY_SECONDS)

Severity: ⚠️ Warning


2.4 [HEURISTIC] Documentation

Check for:

MissingWhere expected
Module docstringTop of .py files
Class docstringAfter class definition
Function docstringAfter def for public functions
READMEProject root
Type hintsPublic function parameters/returns

Examples:

# ⚠️ Warning - Missing docstrings
def calculate_score(user, items, weights):
    total = 0
    for item, weight in zip(items, weights):
        total += item.value * weight
    return total

# ✅ Good - Documented
def calculate_score(user: User, items: list[Item], weights: list[float]) -> float:
    """
    Calculate weighted score for a user's items.
    
    Args:
        user: The user to calculate score for
        items: List of items to score
        weights: Weight multipliers for each item
        
    Returns:
        Total weighted score
    """
    ...

Severity: ⚠️ Warning


2.5 [HEURISTIC] Error Handling

Check for:

IssueDescription
Bare exceptexcept: without specific exception
Silent failuresexcept: pass
Generic exceptions raisedraise Exception("...")
No error handlingFunctions that can fail but don't handle errors

Examples:

# ⚠️ Warning - Bare except
try:
    process_data()
except:
    pass

# ⚠️ Warning - Generic exception
raise Exception("Something went wrong")

# ✅ Good - Specific handling
try:
    process_data()
except ValueError as e:
    logger.warning(f"Invalid data: {e}")
    return default_value
except ConnectionError as e:
    logger.error(f"Connection failed: {e}")
    raise ServiceUnavailableError from e

Severity: ⚠️ Warning


2.6 [HEURISTIC] Code Duplication

Check for:

  • Identical or near-identical code blocks (> 5 lines)
  • Copy-pasted functions with minor variations
  • Repeated patterns that could be abstracted

Example:

# ⚠️ Warning - Duplication
def get_user_by_id(user_id):
    response = requests.get(f"{BASE_URL}/users/{user_id}")
    if response.status_code == 200:
        return response.json()
    return None

def get_order_by_id(order_id):
    response = requests.get(f"{BASE_URL}/orders/{order_id}")
    if response.status_code == 200:
        return response.json()
    return None

# ✅ Good - Abstracted
def get_resource(resource_type: str, resource_id: str):
    response = requests.get(f"{BASE_URL}/{resource_type}/{resource_id}")
    if response.status_code == 200:
        return response.json()
    return None

Severity: ⚠️ Warning


2.7 [HEURISTIC] Commented-Out Code

Check for:

  • Large blocks of commented-out code (> 5 lines)
  • TODO comments that are stale (months old if dates present)
  • FIXME comments indicating known issues

Examples:

# ⚠️ Warning - Commented code should be removed
# def old_implementation():
#     for item in items:
#         process_item(item)
#     return results

# ⚠️ Warning - Stale TODO
# TODO: Fix this before launch (added 2024-01-15)

# ✅ Acceptable - Brief explanatory comment
# Note: Using legacy API format for backwards compatibility

Severity: ⚠️ Warning


Step 3: Generate Report

# Code Quality Verification Report

**Project:** [name or path]
**Date:** [current date]
**Files analyzed:** [count]

## Summary

✅ X checks passed | ⚠️ Y warnings | ❌ Z issues

## Naming

- [x] Naming conventions consistent
- [ ] ⚠️ Unclear names at `[file:line]`

## Organization

- [x] Code well-organized
- [ ] ⚠️ Large function at `[file:line]` ([X] lines)

## Documentation

- [x] Key functions documented
- [ ] ⚠️ Missing docstring at `[file:line]`

## Error Handling

- [x] Errors properly handled
- [ ] ⚠️ Bare except at `[file:line]`

## Findings

> `[H]` = heuristic (all quality checks require judgment)

### ✅ Passing
- `[H]` Consistent naming conventions throughout
- `[H]` Functions are well-scoped and focused

### ⚠️ Warnings
- `[H]` [Check]: [description]
  - **Location:** [file:line]
  - **Impact:** [why this matters]
  - **Suggestion:** [how to improve]

## Recommendations

1. [Priority recommendation]
2. [Additional improvements]

For full verification including security, patterns, and language-specific checks, say "verify agent".

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.