Skip to content

Ayobamiu/fix-code-debt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 Codebase Intelligence System

A RAG-based code analysis tool that understands your codebase and provides intelligent suggestions for improvement.

🎯 What This Project Does

This tool uses Retrieval-Augmented Generation (RAG) to analyze codebases and provide intelligent insights:

  • πŸ” Code Parsing: Parses Python, JavaScript, TypeScript files with AST analysis
  • 🧠 Vector Database: Stores code embeddings for semantic search
  • πŸ“Š Code Insights: Analyzes functions, classes, complexity, and dependencies
  • πŸ”„ Duplicate Detection: Finds similar code patterns across files
  • 🎯 Refactoring Suggestions: Identifies cross-file refactoring opportunities
  • πŸ§ͺ Test Generation: Creates context-aware tests based on your codebase
  • πŸ€– AI Integration: Provides intelligent code improvement suggestions

πŸš€ Quick Start

Installation

# Clone the repository
git clone <repository-url>
cd fix-code-debt

# Install dependencies
pip install -r requirements.txt

Basic Usage

# Initialize intelligence system
python3 -m iterate.cli . --intelligence

# Get codebase insights
python3 -m iterate.cli . --codebase-insights

# Find duplicate code patterns
python3 -m iterate.cli . --find-duplicates

# Analyze cross-file refactoring opportunities
python3 -m iterate.cli . --cross-file-refactor

πŸ“‹ Available Commands

Core Features

# Initialize the intelligence system
python3 -m iterate.cli <directory> --intelligence

# Get comprehensive codebase insights
python3 -m iterate.cli <directory> --codebase-insights

# Find duplicate code patterns
python3 -m iterate.cli <directory> --find-duplicates

# Suggest cross-file refactoring opportunities
python3 -m iterate.cli <directory> --cross-file-refactor

# Generate intelligent refactoring suggestions for a specific file
python3 -m iterate.cli <directory> --intelligent-refactor <file_path>

# Generate context-aware tests for a file
python3 -m iterate.cli <directory> --context-aware-tests <file_path>

# Update context when a file changes
python3 -m iterate.cli <directory> --update-context <file_path>

Traditional File Scanning

# Basic directory scan
python3 -m iterate.cli <directory>

# Non-recursive scan
python3 -m iterate.cli <directory> --no-recursive

# Limit scan depth
python3 -m iterate.cli <directory> --max-depth 3

# Monitor directory for changes
python3 -m iterate.cli <directory> --monitor

# Verbose output
python3 -m iterate.cli <directory> -v

πŸ“Š What You'll See

Intelligence Initialization

🧠 Initializing Intelligent Codebase Features...
πŸ” Initializing codebase intelligence system...
πŸ“Š Loading embedding model...
πŸ—„οΈ  Setting up vector database...
βœ… Codebase Intelligence initialized successfully!

Codebase Insights

πŸ“Š Getting codebase insights...
πŸ“ Total chunks: 45
πŸ“„ Unique files: 12
πŸ”§ Functions: 23
πŸ—οΈ  Classes: 8
πŸ“¦ Imports: 14
πŸ“Š Average complexity: 3.2
⚠️  High complexity functions: 3
πŸ”„ Duplicates found: 2
🎯 Cross-file opportunities: 5

Duplicate Detection

πŸ” Finding duplicate code patterns...
🎯 Found 2 duplicate patterns:
πŸ“ Function: validate_input
   Occurrences: 3
   Files: utils.py, helpers.py, main.py
   Suggestion: Consider extracting 'validate_input' into a shared utility function

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    RAG System Architecture                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚   File Parser   β”‚  β”‚  AST Analyzer   β”‚  β”‚  Chunking   β”‚ β”‚
β”‚  β”‚                 β”‚  β”‚                 β”‚  β”‚             β”‚ β”‚
β”‚  β”‚ β€’ Python AST    β”‚  β”‚ β€’ Functions     β”‚  β”‚ β€’ Functions β”‚ β”‚
β”‚  β”‚ β€’ JS Regex      β”‚  β”‚ β€’ Classes       β”‚  β”‚ β€’ Classes   β”‚ β”‚
β”‚  β”‚ β€’ Multi-lang    β”‚  β”‚ β€’ Imports       β”‚  β”‚ β€’ Modules   β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚ β€’ Complexity    β”‚  β”‚ β€’ Imports   β”‚ β”‚
β”‚                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚   Embeddings    β”‚  β”‚  Vector DB      β”‚  β”‚  Query      β”‚ β”‚
β”‚  β”‚                 β”‚  β”‚                 β”‚  β”‚             β”‚ β”‚
β”‚  β”‚ β€’ Sentence      β”‚  β”‚ β€’ ChromaDB      β”‚  β”‚ β€’ Semantic  β”‚ β”‚
β”‚  β”‚   Transformers  β”‚  β”‚ β€’ Persistent    β”‚  β”‚ β€’ Similarityβ”‚ β”‚
β”‚  β”‚ β€’ all-MiniLM    β”‚  β”‚ β€’ Collections   β”‚  β”‚ β€’ Context   β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Project Structure

fix-code-debt/
β”œβ”€β”€ iterate/
β”‚   β”œβ”€β”€ cli.py                          # Main CLI interface
β”‚   β”œβ”€β”€ core/
β”‚   β”‚   β”œβ”€β”€ codebase_intelligence.py    # RAG system core
β”‚   β”‚   β”œβ”€β”€ intelligent_ai_generator.py # AI integration
β”‚   β”‚   β”œβ”€β”€ ai_code_generator.py        # AI code generation
β”‚   β”‚   β”œβ”€β”€ dependency_mapper.py        # Dependency analysis
β”‚   β”‚   β”œβ”€β”€ test_generator.py           # Test generation
β”‚   β”‚   └── ... (other core modules)
β”‚   β”œβ”€β”€ utils/                          # Utility functions
β”‚   └── integrations/                   # External integrations
β”œβ”€β”€ tests/                              # Test files
└── README.md                           # This file

🎯 Use Cases

For Developers

  • Code Review: Quickly identify complex functions and potential issues
  • Refactoring: Find duplicate code and cross-file refactoring opportunities
  • Testing: Generate context-aware tests for your functions
  • Documentation: Understand codebase structure and dependencies

For Teams

  • Code Quality: Monitor complexity and maintainability metrics
  • Knowledge Sharing: Understand how different parts of the codebase relate
  • Onboarding: Help new developers understand the codebase structure

For Projects

  • Technical Debt: Identify areas that need refactoring
  • Architecture: Analyze dependencies and coupling between modules
  • Maintenance: Track code changes and their impact across files

πŸ”§ Dependencies

  • sentence-transformers: For code embeddings
  • chromadb: For vector database storage
  • numpy: For numerical operations
  • ast: For Python code parsing
  • re: For regex-based parsing
  • python-dotenv: For environment variable management
  • openai: For AI-powered code generation

πŸ”‘ Environment Setup

Required Environment Variables

The tool requires certain environment variables to be set for full functionality:

# OpenAI API key (required for AI features)
OPENAI_API_KEY=your_openai_api_key_here

# Optional environment variables
CHROMA_DB_PATH=./.iterate_cache/chromadb
LOG_LEVEL=INFO

Setting Up Environment Variables

Option 1: Use the helper script (recommended)

python3 create_env.py

Option 2: Create .env file manually Create a .env file in your project root:

echo "OPENAI_API_KEY=your_actual_api_key" > .env

Option 3: Set system environment variables

export OPENAI_API_KEY=your_actual_api_key

The tool automatically loads environment variables from .env files using python-dotenv.

Note: The .env file is automatically ignored by git for security.

πŸš€ Future Features

  • Real-time Updates: File watchers for live code analysis
  • Enhanced AI: Context-aware code generation and refactoring
  • Multi-language Support: More programming languages
  • IDE Integration: Plugin for popular IDEs
  • Team Analytics: Code quality metrics and trends

πŸ“ Examples

Analyze a Python Project

python3 -m iterate.cli /path/to/python/project --intelligence --codebase-insights

Find Duplicates in JavaScript Project

python3 -m iterate.cli /path/to/js/project --find-duplicates

Generate Tests for Specific File

python3 -m iterate.cli . --context-aware-tests src/main.py

Monitor Changes

python3 -m iterate.cli . --monitor --duration 300

🀝 Contributing

This project is designed to be a smart code analysis tool that helps developers understand and improve their codebases. Contributions are welcome!

πŸ“„ License

[Add your license information here]

About

AI-powered code debt fixing tool with intelligent test generation

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages