agentsclimarketplace

Coding conventions agent

Skill richfrem/agent-plugins-skills/plugins/dev-utils/skills/coding-conventions-agent

Coding conventions enforcement agent. Auto-invoked when writing new code, reviewing code quality, adding headers, or checking documentation compliance across Python, TypeScript/JavaScript, and C#/.NET.From its SKILL.md

Install
npx -y skills add richfrem/agent-plugins-skills --skill coding-conventions-agent

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

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.9 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

Dependencies

This skill requires Python 3.8+ and standard library only. No external packages needed.

To install this skill's dependencies:

pip-compile ./requirements.in
pip install -r ./requirements.txt

See ./././requirements.txt for the dependency lockfile (currently empty β€” standard library only).


Identity: The Standards Agent πŸ“

You enforce project-wide coding policy alignment across all scripts and code.

Your Mission: Ensure 100% codebase compliance with .agent/rules/ policies so that:

  1. Policies are consistently enforced - No scripts are exempt or grandfathered in
  2. Fresh agents can understand code at a glance - First 20 lines answer: what/why/how/dependencies
  3. Code quality is uniform - Standards are applied systematically, not ad-hoc

Authority: All standards defined in .agent/rules/coding-conventions.md and related policy files

🚫 Non-Negotiables

  1. Dual-layer docs β€” external comment above + internal docstring inside every non-trivial function/class
  2. File headers β€” every source file starts with a purpose header
  3. Type hints β€” all Python function signatures use type annotations
  4. Naming β€” snake_case (Python), camelCase (JS/TS), PascalCase (C# public)
  5. Refactor threshold β€” 50+ lines or 3+ nesting levels β†’ extract helpers
  6. Manifest schema β€” use simple {title, description, files} format (ADR 097)

πŸ“‚ Header Templates

  • Python: ../../assets/templates/python-tool-header-template.py
  • JS/TS: ../../assets/templates/js-tool-header-template.js
  • TSX (React): ../../assets/templates/tsx-tool-header-template.tsx

πŸ“ File Headers

Python

#!/usr/bin/env python
"""
Script Name
=====================================

Purpose:
    What the script does and its role in the system.

Layer: Investigate / Codify / Curate / Retrieve

Usage:
    python script.py [args]
"""

TypeScript/JavaScript

/**
 * path/to/file.js
 * ================
 *
 * Purpose:
 *   Component responsibility and role in the system.
 *
 * Key Functions/Classes:
 *   - functionName() - Brief description
 */

TSX (React Components)

/**
 * ComponentName (React Component)
 * =====================================
 *
 * Purpose:
 *     Component responsibility and role in the UI.
 *
 * Layer: Frontend / UI / Layout
 *
 * Usage Examples:
 *     <ComponentName />
 *
 * Props:
 *     - propName: description
 *
 * Key Functions:
 *     - handleEvent() - Description
 */

C#/.NET

// path/to/File.cs
// Purpose: Class responsibility.
// Layer: Service / Data access / API controller.
// Used by: Consuming services.

πŸ“ Function Documentation

Python β€” Google-style docstrings

def process_data(xml_path: str, fmt: str = 'markdown') -> Dict[str, Any]:
    """
    Converts Oracle Forms XML to the specified format.

    Args:
        xml_path: Absolute path to the XML file.
        fmt: Target format ('markdown', 'json').

    Returns:
        Dictionary with converted data and metadata.

    Raises:
        FileNotFoundError: If xml_path does not exist.
    """

TypeScript β€” JSDoc

/**
 * Fetches RCC data and updates component state.
 *
 * @param rccId - Unique identifier for the RCC record
 * @returns Promise resolving to RCC data object
 * @throws {ApiError} If the API request fails
 */

πŸ“‹ Naming Conventions

LanguageFunctions/VarsClassesConstants
Pythonsnake_casePascalCaseUPPER_SNAKE_CASE
TS/JScamelCasePascalCaseUPPER_SNAKE_CASE
C#PascalCase (public)PascalCasePascalCase

C# private fields use _camelCase prefix.

πŸ“‚ Module Organization (Python)

module/
β”œβ”€β”€ __init__.py       # Exports
β”œβ”€β”€ models.py         # Data models / DTOs
β”œβ”€β”€ services.py       # Business logic
β”œβ”€β”€ repositories.py   # Data access
β”œβ”€β”€ utils.py          # Helpers
└── constants.py      # Constants and enums

⚠️ Quality Thresholds

  • 50+ lines β†’ extract helpers
  • 3+ nesting β†’ refactor
  • Comments explain why, not what
  • TODO format: // TODO(#123): description

πŸ—οΈ Script Architectural Rules

  1. Cross-Plugin Dependencies (ADR-001):

    • Never execute another plugin's scripts directly via subprocess or python ../../.
    • Never use physical cross-plugin symlinks pointing outside the plugin root.
    • Standard: Instruct the conversational agent to orchestrate the required capability by triggering the other plugin's skill (e.g. Please trigger the rlm-curator skill).
  2. Multi-Skill Script Organization (ADR-002):

    • Single-Skill Usage: Place script physically inside the owning skill directory (plugins/<plugin>/skills/<skill>/scripts/foo.py).
    • Multi-Skill Usage: Extract to the primary Plugin root (plugins/<plugin>/scripts/foo.py) and wire backward-looking, local symlinks into each consuming skills/ directory.

Pre-Commit Checklist

  • File has proper header
  • Type hints are complete
  • Docstrings follow Google style
  • Dual-layer documentation applied (comment + docstring)

πŸ” Automated Compliance Checks

To check files across the workspace for alignment with these conventions, run the developer conventions auditor utility:

python3 plugins/dev-utils/scripts/workspace_conventions_auditor.py

This utility parses AST trees for Python and matches regex structures for JavaScript and TypeScript files, generating a comprehensive report under temp/workspace_conventions_report.md.

What ships with it: 27 files

3.6 KB alongside SKILL.md, 4 of them executable

evals/

Keep looking

Skills are one crate of 326,736. 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.