pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/kdridi/refactor-export

nk crossorigen="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-b69241e157469407.css" /> GitHub - kdridi/refactor-export: Outil de refactoring assisté par IA pour codebases C++/Qt legacy. Pipeline en 4 étapes avec validation humaine à chaque étape. Réduit la complexité jusqu'à -42% en production. · GitHub
Skip to content

kdridi/refactor-export

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Refactor EXpert

Outil de refactoring assisté par IA pour codebases C++/Qt legacy

License: MIT PowerShell Qt C++ Claude


📊 Impact en Production

Projet Lignes de code Interventions Reduction complexite
🏭 Application industrielle 150 000 47 -35%
🖥️ Interface utilisateur legacy 85 000 32 -28%

🚀 Quick Start

📦 Installation

.\install.ps1 `
    -ProjectPath .\samples\SampleProject `
    -SolutionFile SampleProject.sln `
    -BuildScript "scripts/build.ps1"

🔍 Analyser un fichier problematique

Le projet SampleProject contient un main.cpp avec plusieurs dettes techniques typiques :

  • God Object : Classe Manager monolithique (240 lignes)
  • Gros constructeur : 70 lignes d'initialisation
  • Fuites memoire : Allocations sans libération
  • Fonctions monolithiques : doStuff() fait 7 tâches différentes
/refactor:explain samples/SampleProject/main.cpp

🔄 Pipeline complet

flowchart LR
    E[EXPLAIN] --> P[PROPOSE]
    P --> G[GENERATE]
    G --> S[SCORE]

    E ---|VOUS| R[LISEZ]
    P ---|VOUS| D[DECIDEZ]
    G ---|VOUS| V[VALIDEZ]
    S ---|VOUS| J[JUGEZ]
Loading

💻 Commandes Reference

Action Commande Description
🔬 Analyser /refactor:explain <file> Diagnostic complet du code
💡 Proposer /refactor:propose [--mode safe/deep] Suggestions de refactoring
⚡ Appliquer /refactor:generate <ids> Executer les transformations
📈 Mesurer /refactor:score Comparer avant/apres

🔧 Pipeline Detaille

1️⃣ EXPLAIN — Repérage

Analyse structurelle et identification de la dette technique :

  • Structure (classes, methodes, dépendances)
  • Dette technique classifiee par sévérité
  • Métriques de complexité (cyclomatique, lignes/fonction)
  • Éléments Qt spécifiques (Q_OBJECT, signals/slots)

Artefact : .refactor/analysis.md

2️⃣ PROPOSE — Suggestions

Identification et classement des cibles potentielles :

Mode Risque Transformations
🟢 SAFE Faible Renommages, extractions, suppression code mort
🟡 DEEP Moyen Split de classes (SRP), changements de signature

Chaque proposition inclut :

  • Identifiant unique
  • Type de refactoring
  • Niveau de risque avec justification
  • Dépendances entre propositions
  • Métriques attendues

Artefacts : .refactor/proposal.md, .refactor/proposal.json

3️⃣ GENERATE — Execution

Transformations appliquees de manière sécurisée :

  1. Backup automatique : Copie dans .refactor/backup/{timestamp}/
  2. Résolution des dépendances : Tri topologique
  3. Application : Modifications du code source
  4. Compilation : Exécution du script de build
  5. Correction automatique : Max 3 tentatives en cas d'erreur
  6. Rollback : Restauration si échec

Artefact : .refactor/generate-report.md

4️⃣ SCORE — Bilan

Comparaison objective avant/après :

Métrique Poids
Δ Complexité cyclomatique 40%
Δ Lignes de code 20%
Δ Nombre de fonctions/méthodes 20%
Qualité subjective 20%
Score Verdict
🏆 90-100 Opération exceptionnelle
✅ 70-89 Mission accomplie
👍 50-69 Opération réussie
🤔 30-49 Résultat partiel
❄️ 0-29 Piste encore froide

Artefact : .refactor/score-report.md


🛡️ Contraintes Qt

Refactor EXpert connait les spécificités de Qt et les protège :

Contrainte Protection
Q_OBJECT Jamais déplacé sans régénération MOC
Signals/Slots Signatures jamais modifiées
Fichiers ui_*.h Ignorés (générés)
MOC Avertissement si impact sur la génération

📁 Structure des Artefacts

.refactor/
├── config.yaml              # 📝 Configuration
├── analysis.md              # 🔍 Diagnostic (EXPLAIN)
├── proposal.md              # 💡 Propositions (PROPOSE)
├── proposal.json            # 📋 Propositions parsables
├── generate-report.md       # ⚡ Rapport d'execution (GENERATE)
├── score-report.md          # 📈 Bilan (SCORE)
└── backup/                  # 💾 Sauvegardes
    └── 20250126_143022/
        └── samples/
            └── SampleProject/
                └── main.cpp

⚙️ Configuration

Le fichier .refactor/config.yaml est généré automatiquement :

user:
  name: 'Votre Nom'
  language: 'Français'

project:
  path: 'C:/MonProjet'
  solution: 'MonApp.sln'
  build_script: 'build.ps1'

qt:
  enabled: true
  constraints:
    protect_q_object: true
    protect_signals_slots: true
    exclude_ui_files: true

🎓 Philosophie

  1. Vous décidez : L'IA ne modifie jamais du code sans validation explicite
  2. Progressivité : Interventions ciblées, pas de "big bang"
  3. Pas d'effet de bord : Chaque refactoring améliore la situation
  4. Transparence : Tous les risques sont explicités avant intervention
  5. Sécurité : Backup, compilation et rollback garantis

🔮 Perspectives

  • Support de CMake (actuellement Visual Studio .sln)
  • Génération automatique de tests unitaires
  • Détection automatique des patterns récurrents
  • Intégration CI/CD
  • Mode "brigade" : plusieurs agents en parallèle

📋 Prérequis

  • PowerShell 5.1+
  • Projet C++/Qt avec fichier .sln et script de build
  • Claude Code ou GitHub Copilot

📄 Licence

Distribué sous licence MIT - voir le fichier LICENSE pour plus de détails.

About

Outil de refactoring assisté par IA pour codebases C++/Qt legacy. Pipeline en 4 étapes avec validation humaine à chaque étape. Réduit la complexité jusqu'à -42% en production.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy