Claude Code Plugins

Community-maintained marketplace

Feedback

Wheels Refactoring

@wheels-dev/wheels
202
0

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.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

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