Guidelines
akash-network/node
Behavioral guidelines to reduce common LLM coding mistakes. An agent skill from akash-network/node.
Apply named refactoring transformations to improve code structure without changing behavior.
$ npx skills add tmcfarlane/oh-my-cursor --skill refactoring-patterns -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tmcfarlane/oh-my-cursor refactoring-patterns --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/tmcfarlane/oh-my-cursor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/refactoring-patterns .claude/skills/refactoring-patterns && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "refactoring-patterns" agent skill from https://github.com/tmcfarlane/oh-my-cursor/tree/main/skills/refactoring-patterns into .claude/skills/refactoring-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactoring-patterns", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/tmcfarlane/oh-my-cursor/tree/main/skills/refactoring-patternsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add tmcfarlane/oh-my-cursor --skill refactoring-patterns -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tmcfarlane/oh-my-cursor refactoring-patterns --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tmcfarlane/oh-my-cursor.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/refactoring-patterns .agents/skills/refactoring-patterns && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "refactoring-patterns" agent skill from https://github.com/tmcfarlane/oh-my-cursor/tree/main/skills/refactoring-patterns into .agents/skills/refactoring-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactoring-patterns", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tmcfarlane/oh-my-cursor --skill refactoring-patterns -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tmcfarlane/oh-my-cursor refactoring-patterns --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tmcfarlane/oh-my-cursor.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/refactoring-patterns .cursor/skills/refactoring-patterns && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "refactoring-patterns" agent skill from https://github.com/tmcfarlane/oh-my-cursor/tree/main/skills/refactoring-patterns into .cursor/skills/refactoring-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactoring-patterns", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/tmcfarlane/oh-my-cursor.git --path skills/refactoring-patterns--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add tmcfarlane/oh-my-cursor --skill refactoring-patterns -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tmcfarlane/oh-my-cursor refactoring-patterns --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tmcfarlane/oh-my-cursor.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/refactoring-patterns .gemini/skills/refactoring-patterns && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "refactoring-patterns" agent skill from https://github.com/tmcfarlane/oh-my-cursor/tree/main/skills/refactoring-patterns into .gemini/skills/refactoring-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactoring-patterns", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install tmcfarlane/oh-my-cursor refactoring-patternsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add tmcfarlane/oh-my-cursor --skill refactoring-patterns -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tmcfarlane/oh-my-cursor.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/refactoring-patterns .github/skills/refactoring-patterns && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "refactoring-patterns" agent skill from https://github.com/tmcfarlane/oh-my-cursor/tree/main/skills/refactoring-patterns into .github/skills/refactoring-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactoring-patterns", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tmcfarlane/oh-my-cursor --skill refactoring-patterns -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tmcfarlane/oh-my-cursor refactoring-patterns --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tmcfarlane/oh-my-cursor.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/refactoring-patterns .opencode/skills/refactoring-patterns && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "refactoring-patterns" agent skill from https://github.com/tmcfarlane/oh-my-cursor/tree/main/skills/refactoring-patterns into .opencode/skills/refactoring-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactoring-patterns", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
refactoring-patternsApply named refactoring transformations to improve code structure without changing behavior.
Refactoring Patterns is an agent skill from tmcfarlane/oh-my-cursor. Apply named refactoring transformations to improve code structure without changing behavior. Use when the user mentions "refactor this", "code smells", "extract method", "replace conditional", or "technical debt". Covers smell-driven refactoring, safe transformation sequences, and testing guards. For code quality foundations, see clean-code. For managing complexity, see software-design-philosophy.
Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/composing-methods.md`, `references/moving-features.md` and `references/organizing-data.md`).
It sits in Development, covering Refactoring. The repository describes itself as: Like “oh-my-opencode”, but for Cursor IDE. Multi-agent orchestration, natively, using nothing but a few config files. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 5bad458. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
amazon.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Refactoring Patterns loads about 5.2k tokens when it runs, and up to ~24k if it reads all its reference files. Until then it costs about 105 tokens; SKILL.md has 2,677 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from tmcfarlane/oh-my-cursor at commit 5bad458, republished under its MIT licence (© tmcfarlane). 2,677 words, ~5,245 tokens.
.claude/skills/refactoring-patterns/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.A disciplined approach to improving the internal structure of existing code without changing its observable behavior. Apply these named transformations when reviewing code, reducing technical debt, or preparing code for new features. Every refactoring follows the same loop: verify tests pass, apply one small structural change, verify tests still pass.
Refactoring is not rewriting. It is a sequence of small, behavior-preserving transformations, each backed by tests. You never change what the code does -- you change how the code is organized. The discipline of taking tiny verified steps is what makes refactoring safe. Big-bang rewrites fail because they combine structural change with behavioral change, making it impossible to know which broke things.
The foundation: Bad code is not a character flaw -- it is a natural consequence of delivering features under time pressure. Code smells are objective signals that structure has degraded. Named refactorings are the proven mechanical recipes for fixing each smell. The catalog of smells tells you where to look; the catalog of refactorings tells you what to do.
Goal: 10/10. When reviewing or refactoring code, rate the structural quality 0-10 based on adherence to the principles below. A 10/10 means: no obvious smells remain, each function does one thing, names reveal intent, duplication is eliminated, and the test suite covers the refactored paths. Always provide the current score and specific refactorings needed to reach 10/10.
Six areas of focus for systematically improving code structure:
Core concept: Code smells are surface indicators of deeper structural problems. They are not bugs -- the code works -- but they signal that the design is making the code harder to understand, extend, or maintain. Each smell maps to one or more named refactorings that fix it.
Why it works: Without a shared vocabulary of smells, code review devolves into subjective "I don't like this." Named smells give teams objective criteria: "This is Feature Envy -- the method uses six fields from another class and only one of its own." The name points directly to the fix.
Key insights:
Code applications:
| Context | Pattern | Example |
|---|---|---|
| Method > 10 lines | Extract Method | Pull the loop body into calculateLineTotal() |
| Class > 200 lines | Extract Class | Move shipping logic into a ShippingCalculator |
| Switch on type code | Replace Conditional with Polymorphism | Create subclasses for each order type |
| Multiple methods use same params | Introduce Parameter Object | Group startDate, endDate into DateRange |
| Method uses another object's data | Move Method | Move calculateDiscount() to the Customer class |
| Copy-pasted logic | Extract Method + Pull Up Method | Share via a common method or base class |
See: references/smell-catalog.md
Core concept: Most refactoring starts here. Long methods are broken into smaller, well-named pieces. Each extracted piece should do one thing and its name should say what that thing is. The goal is methods you can read like prose -- a sequence of high-level steps, each delegating to a clearly named helper.
Why it works: Short methods with intention-revealing names eliminate the need for comments, make bugs obvious (each method is small enough to verify at a glance), and enable reuse. The cognitive cost of a method call is near zero when the name tells you everything.
Key insights:
Code applications:
| Context | Pattern | Example |
|---|---|---|
| Block with a comment | Extract Method | // check eligibility becomes isEligible() |
| Temp used once | Inline Variable | Remove const price = order.getPrice() if used once |
| Temp used in multiple places | Replace Temp with Query | Replace let discount = getDiscount() with method calls |
| Temp assigned twice for different reasons | Split Temporary Variable | Introduce perimeterWidth and perimeterHeight |
| Trivial delegating method | Inline Method | Inline moreThanFiveDeliveries() if it's return deliveries > 5 and only used once |
| Complex method with many locals | Replace Method with Method Object | Move the method into its own class where locals become fields |
See: references/composing-methods.md
Core concept: The key decision in object-oriented design is where to put responsibilities. When a method or field is in the wrong class -- evidenced by Feature Envy, excessive coupling, or unbalanced class sizes -- move it to where it belongs.
Why it works: Well-placed responsibilities reduce coupling and increase cohesion. When a method lives in the class whose data it uses, changes to that data affect only one class. Misplaced methods create invisible dependencies that cause Shotgun Surgery.
Key insights:
Code applications:
| Context | Pattern | Example |
|---|---|---|
| Method envies another class | Move Method | Move calculateShipping() from Order to ShippingPolicy |
| Field used by another class constantly | Move Field | Move discountRate from Order to Customer |
| God class with 500+ lines | Extract Class | Pull Address fields and methods into their own class |
| Tiny class with one field | Inline Class | Merge PhoneNumber back into Contact if no behavior |
| Client calls a.getB().getC() | Hide Delegate | Add a.getCThroughB() so client doesn't know about C |
| Class only forwards calls | Remove Middle Man | Let client call the delegate directly |
See: references/moving-features.md
Core concept: Raw data -- magic numbers, exposed fields, type codes represented as integers, parallel arrays -- creates subtle bugs and scatters domain knowledge. Replace primitive representations with objects that encapsulate behavior and enforce invariants.
Why it works: An int representing a currency amount has no concept of rounding rules, currency codes, or formatting. A Money object encapsulates all of that. When domain concepts are represented as first-class objects, business rules live in one place, validation happens automatically, and the type system catches errors at compile time.
Key insights:
EmailAddress, Money, Temperature)Customer object, not copies)Code applications:
| Context | Pattern | Example |
|---|---|---|
if (status == 2) | Replace Magic Number with Symbolic Constant | if (status == ORDER_SHIPPED) |
String email passed everywhere | Replace Data Value with Object | Create EmailAddress class with validation |
| Public field | Encapsulate Field | Replace order.total with order.getTotal() |
| Getter returns mutable list | Encapsulate Collection | Return Collections.unmodifiableList(items) |
int typeCode with switch | Replace Type Code with Subclasses | Employee -> Engineer, Manager, Salesperson |
| Duplicated customer records | Change Value to Reference | Share one Customer instance via a registry |
See: references/organizing-data.md
Core concept: Complex conditionals -- deeply nested if/else trees, long switch statements, null checks scattered everywhere -- are the hardest code to read and the most likely to contain bugs. Named refactorings decompose, consolidate, and replace conditionals with clearer structures.
Why it works: A conditional with six branches and nested sub-conditions requires the reader to simulate every path mentally. Decomposing the condition into well-named methods makes each branch self-documenting. Replacing conditionals with polymorphism eliminates entire categories of "forgot to handle this case" bugs.
Key insights:
if (x == null) checks by providing an object that represents "nothing" with safe default behaviorCode applications:
| Context | Pattern | Example |
|---|---|---|
Long if with complex condition | Decompose Conditional | Extract isSummer(date) and summerCharge() |
Multiple ifs return same value | Consolidate Conditional | Combine into isDisabled() returning early |
Deeply nested if/else | Replace with Guard Clauses | Check edge cases first, return early, flatten the main path |
| Switch on object type | Replace Conditional with Polymorphism | Each type implements its own calculatePay() |
if (customer == null) everywhere | Introduce Special Case | Create NullCustomer with default behavior |
| Hidden assumption in code | Introduce Assertion | assert quantity > 0 at method entry |
Core concept: Refactoring is only safe when wrapped in tests. The workflow is mechanical: run tests (green), apply one small transformation, run tests (green), commit. If tests go red, revert the last change -- don't debug a broken refactoring.
Why it works: Small steps make it trivial to find what went wrong (it was the last thing you did). Reverting a failed step costs seconds. Debugging a failed big-bang rewrite costs days. Frequent commits create save points you can return to.
Key insights:
Code applications:
| Context | Pattern | Example |
|---|---|---|
| About to add a feature | Preparatory Refactoring | Extract method to make new feature's insertion point clean |
| Reading unfamiliar code | Comprehension Refactoring | Rename variables and extract methods to understand intent |
| Saw a small issue while working | Litter-Pickup Refactoring | Fix the smell before moving on (Boy Scout Rule) |
| Third copy of same logic | Rule of Three | Extract the shared logic into a common method |
| Large API change in production | Branch by Abstraction | Introduce abstraction layer, migrate callers, remove old path |
| Renaming a widely-used method | Parallel Change | Add new name, deprecate old, migrate callers, remove old |
See: references/refactoring-workflow.md
| Mistake | Why It Fails | Fix |
|---|---|---|
| Refactoring without tests | No safety net -- you can't tell if behavior changed | Write characterization tests first, then refactor |
| Big-bang rewrite instead of incremental steps | Combines structural and behavioral changes; impossible to debug | Take the smallest step possible, run tests after each |
| Refactoring and adding features at the same time | Two hats at once -- you can't verify either change in isolation | Separate the hats: refactor first (commit), then add feature (commit) |
| Renaming without updating all callers | Breaks the build or introduces dead code | Use IDE rename refactoring; search for all references |
| Extracting too many tiny methods | Creates indirection without clarity when names are poor | Each extracted method must have a name that removes the need to read the body |
| Ignoring the smell catalog | Reinventing fixes instead of applying proven recipes | Learn the named smells; each one maps to specific refactorings |
| Refactoring code that will be deleted | Wasted effort -- polish on condemned code | Ask first: is this code's lifespan long enough to justify the investment? |
| Optimizing prematurely during refactoring | Conflates clarity with performance; optimized code is often harder to read | Refactor for clarity first, then profile, then optimize the measured hot path only |
| Question | If No | Action |
|---|---|---|
| Do tests pass before you start? | You have no safety net | Write or fix tests first -- do not refactor without green tests |
| Can you name the smell you're fixing? | You're refactoring by instinct, not by catalog | Identify the smell from the catalog, then apply its prescribed refactoring |
| Is each method under ~10 lines? | Long Methods are likely present | Apply Extract Method to break long methods into named steps |
| Does each class have a single reason to change? | Divergent Change or Large Class smell | Apply Extract Class to separate responsibilities |
| Are there duplicated code blocks? | Duplicate Code is the most expensive smell | Extract shared logic into a common method or base class |
| Do conditionals use polymorphism where appropriate? | Switch Statements or complex if/else trees remain | Apply Replace Conditional with Polymorphism |
| Are you committing after each refactoring step? | You risk losing work and mixing changes | Commit after every green-to-green transformation |
| Is the code easier to read after your change? | The refactoring may have added complexity | Revert and try a different approach |
This skill is based on the definitive guide to improving the design of existing code:
Martin Fowler is the Chief Scientist at Thoughtworks and one of the most influential voices in software engineering. He is the author of Refactoring: Improving the Design of Existing Code (1999, 2nd edition 2018), which introduced the concept of named, catalog-based refactoring transformations to mainstream software development. Fowler is also the author of Patterns of Enterprise Application Architecture, UML Distilled, and numerous influential articles on software design, agile methodology, and continuous delivery. He was a signatory of the Agile Manifesto and has spent decades advocating for evolutionary design -- the practice of continuously improving code structure through disciplined, incremental refactoring rather than upfront big design. His refactoring catalog, originally written in Java, has been adapted to virtually every programming language and is built into the automated refactoring tools of every major IDE.
© tmcfarlane, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (references) in skills/refactoring-patterns of tmcfarlane/oh-my-cursor.
Open the folder on GitHubat commit 5bad458
Refactoring Patterns next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Refactoring Patterns this skilltmcfarlane/oh-my-cursor | 109 | — | ~5.2k | Automated safety check: Pass | MIT | |
| Guidelinesakash-network/node | 1.1k | 22 repos | ~577 | Automated safety check: Pass | MIT | |
| Component Refactoringlangflow-ai/langflow | 156k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 42k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Systematic Code Refactoringluongnv89/claude-howto | 42k | — | ~3k | Automated safety check: Pass | MIT | |
| Codexskills-directory/skill-codex | 1.5k | 3 repos | ~1.8k | Automated safety check: Pass | MIT |
akash-network/node
Behavioral guidelines to reduce common LLM coding mistakes. An agent skill from akash-network/node.
langflow-ai/langflow
Refactor high-complexity React components in Langflow frontend.
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
luongnv89/claude-howto
Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.
skills-directory/skill-codex
A skill your agent uses when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing
DavidObando/gsharp
Forces the laziest solution that actually works, simplest, shortest, most minimal.
tmcfarlane/oh-my-cursor
Write documentation following Metabase's conversational, clear, and user-focused style.
tmcfarlane/oh-my-cursor
Systematic 4-phase debugging with root cause investigation. An agent skill from tmcfarlane/oh-my-cursor.
tmcfarlane/oh-my-cursor
Technical documentation expert for creating clear, comprehensive documentation.
tmcfarlane/oh-my-cursor
Technical implementation planning and architecture design. An agent skill from tmcfarlane/oh-my-cursor.
tmcfarlane/oh-my-cursor
Search and navigate large codebases efficiently. An agent skill from tmcfarlane/oh-my-cursor.
tmcfarlane/oh-my-cursor
Generate and iterate images in Cursor using the built-in image model and strong prompts.
Categories
Apply named refactoring transformations to improve code structure without changing behavior. Refactoring Patterns is an agent skill from tmcfarlane/oh-my-cursor. Apply named refactoring transformations to improve code structure without changing behavior.
Refactoring Patterns fits situations like: the user mentions refactor this; replace conditional.
Run `npx skills add tmcfarlane/oh-my-cursor --skill refactoring-patterns -a claude-code`. Or copy the skill folder (skills/refactoring-patterns in tmcfarlane/oh-my-cursor) into .claude/skills/refactoring-patterns in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tmcfarlane/oh-my-cursor --skill refactoring-patterns -a codex`. Or copy the skill folder (skills/refactoring-patterns in tmcfarlane/oh-my-cursor) into .agents/skills/refactoring-patterns in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tmcfarlane/oh-my-cursor --skill refactoring-patterns -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/refactoring-patterns, .gemini/skills/refactoring-patterns, .github/skills/refactoring-patterns and .opencode/skills/refactoring-patterns in your project.
SKILL.md names no scripts, command-line tools or credentials: Refactoring Patterns is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: amazon.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Refactoring Patterns is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 19k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Refactoring Patterns: Guidelines (akash-network/node, 1.1k stars), Component Refactoring (langflow-ai/langflow, 156k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars) and Systematic Code Refactoring (luongnv89/claude-howto, 42k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tmcfarlane (a GitHub user) maintains it in tmcfarlane/oh-my-cursor, which has 109 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on July 2, 2026.
Source: tmcfarlane/oh-my-cursor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.