agentleFS
hyperledger-cactihyperledger-cacti/cacti/.github/skills/refactor-plan/SKILL.md

refactor-plan

Skill412 starsChanged 4 months agoApache-2.0View on GitHub

Generate a structured refactoring plan for a Cacti package or module. Analyzes current code structure, identifies improvement opportunities, and produces a phased plan with risk assessment.

11 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use pr-review.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • MicrosoftSkill

    pr-review

    Verify the technical accuracy of a vscode-docs pull request against the VS Code source code in microsoft/vscode. Use when reviewing a docs PR for factual correctness: setting names, command IDs, default values, API shapes, keybindings, versioned availability, and described behavior.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 5 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 8 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before starting a significant refactoring effort

    line 12
  2. Distinctive:

    When code complexity exceeds maintainability thresholds

    line 13
  3. Distinctive:

    When migrating between patterns or architectures

    line 14
  4. Distinctive:

    When consolidating related functionality across packages

    line 15
  5. Distinctive:

    Read the target code and evaluate:

    line 21
  6. Very specific:

    Extract interface: Create I-prefixed interfaces for dependency injection and testing.

    line 34
  7. Very specific:

    Barrel file cleanup: Ensure public-api.ts exports are accurate and minimal.

    line 43

“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Refactor Plan Skill

Generate a structured, risk-assessed refactoring plan for a package or module.

When to Use

  • Before starting a significant refactoring effort
  • When code complexity exceeds maintainability thresholds
  • When migrating between patterns or architectures
  • When consolidating related functionality across packages

Analysis Steps

1. Current State Assessment

Read the target code and evaluate:

  • Size: Line counts for files and functions. Flag functions > 50 lines.
  • Complexity: Nesting depth, cyclomatic complexity, branching density.
  • Coupling: External dependencies, tight coupling between modules.
  • Cohesion: How well each module focuses on a single responsibility.
  • Type safety: Usage of any, unknown, and proper type narrowing.
  • Test coverage: Which public functions have corresponding tests.

2. Identify Improvement Opportunities

Common refactoring targets in Cacti:

  • Extract interface: Create I-prefixed interfaces for dependency injection and testing.
  • Consolidate duplicates: Merge identical logic across modules.
  • Simplify conditionals: Replace nested if/else with early returns, guard clauses, or strategy pattern.
  • Reduce coupling: Introduce dependency injection, event-driven patterns, or facade classes.
  • Improve naming: Rename to follow Cacti conventions (I prefix, isI type guards).
  • Barrel file cleanup: Ensure public-api.ts exports are accurate and minimal.
  • Package boundary: Move code to the correct package to avoid circular dependencies.

3. Risk Assessment

For each proposed change, evaluate:

  • Breaking changes: Will this change public API signatures?
  • Downstream impact: Which packages depend on the changed code?
  • Test coverage: Are there tests to catch regressions?
  • Rollback difficulty: How easy is it to revert if something breaks?

4. Phase Planning

Break the refactoring into phases that:

  • Each phase is independently mergeable
  • Tests pass at the end of every phase
  • Breaking changes are isolated and documented
  • Higher-risk changes come later after confidence is built

Output Format

# Refactoring Plan: [Package/Module]

## Current State
- **Files**: [count] | **Functions**: [count] | **Lines**: [total]
- **Key concerns**: [summary of issues found]

## Proposed Changes

### Phase 1: [Safe, Non-Breaking Changes]
| # | Change | Files | Risk | Tests |
|---|--------|-------|------|-------|
| 1 | [description] | [files] | Low | [existing/needed] |

### Phase 2: [Structural Improvements]
| # | Change | Files | Risk | Tests |
|---|--------|-------|------|-------|
| 1 | [description] | [files] | Medium | [existing/needed] |

### Phase 3: [Higher-Risk Changes]
| # | Change | Files | Risk | Tests |
|---|--------|-------|------|-------|
| 1 | [description] | [files] | High | [existing/needed] |

## Dependency Map
[which packages are affected by each phase]

## Rollback Strategy
[how to revert each phase independently]

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.