wheels-dev

wheels-refactoring

@wheels-dev/wheels-refactoring
wheels-dev
200
107 forks
Updated 1/6/2026
View on GitHub

Refactor Wheels code for better performance, security, and maintainability. Use when optimizing code, fixing anti-patterns, improving performance, or enhancing security. Provides refactoring patterns and best practices.

Installation

$skills install @wheels-dev/wheels-refactoring
Claude Code
Cursor
Copilot
Codex
Antigravity

Details

Path.claude/skills/wheels-refactoring/SKILL.md
Branchmain
Scoped Name@wheels-dev/wheels-refactoring

Usage

After installing, this skill will be available to your AI coding assistant.

Verify installation:

skills list

Skill Instructions


name: Wheels Refactoring description: Refactor Wheels code for better performance, security, and maintainability. Use when optimizing code, fixing anti-patterns, improving performance, or enhancing security. Provides refactoring patterns and best practices.

Wheels Refactoring

Performance Refactoring

N+1 Query Problem

Before:

<cfloop query="posts">
    <p>#posts.user().name#</p>  <!--- N+1 queries! --->
</cfloop>

After:

posts = model("Post").findAll(include="user");
<cfloop query="posts">
    <p>#posts.userName#</p>  <!--- 1 query! --->
</cfloop>

Eager Loading

Before:

posts = model("Post").findAll();
// Associations loaded lazily

After:

posts = model("Post").findAll(include="user,comments,tags");
// All associations loaded upfront

Security Refactoring

Parameter Verification

Before:

function show() {
    post = model("Post").findByKey(key=params.key);
}

After:

function config() {
    verifies(only="show", params="key", paramsTypes="integer");
}

function show() {
    post = model("Post").findByKey(key=params.key);
}

SQL Injection Prevention

Before:

where="userId = #params.userId#"  // Vulnerable!

After:

where="userId = #params.userId#"  // Wheels escapes automatically
// Or use parameterized queries

Code Quality Refactoring

Extract Method

Before:

function create() {
    user = model("User").new(params.user);
    user.password = hash(user.password, "SHA-512");
    if (user.save()) {
        sendMail(to=user.email, subject="Welcome");
        redirectTo(action="show", key=user.key());
    }
}

After:

function create() {
    user = model("User").new(params.user);
    if (user.save()) {
        redirectTo(action="show", key=user.key());
    }
}

// In User model:
private function hashPassword() {
    this.password = hash(this.password, "SHA-512");
}

private function sendWelcomeEmail() {
    sendMail(to=this.email, subject="Welcome");
}

Generated by: Wheels Refactoring Skill v1.0