Interactive Configuration Wizard
Overview
The Interactive Configuration Wizard provides a guided setup experience for first-time users of RE-cue. It simplifies the configuration process by walking users through project detection, framework selection, output preferences, and template customization.
Benefits
- Reduced Learning Curve: Step-by-step guidance eliminates the need to memorize command-line flags
- Project Type Detection: Automatically detects your framework and technology stack
- Configuration Profiles: Save and reuse configurations across multiple projects
- Smart Defaults: Sensible defaults based on detected project type
- Interactive Experience: User-friendly prompts with clear explanations
Quick Start
Launch the Wizard
# Start the wizard
recue --wizard
# Or use the short form
python3 -m reverse_engineer --wizard
The wizard will guide you through:
- Project Path: Specify or auto-detect your project directory
- Framework Detection: Auto-detect or manually select your framework
- Document Generation: Choose which documents to generate
- Output Preferences: Select format (Markdown/JSON) and output location
- Additional Options: Configure verbose mode and phased analysis
Configuration Profiles
Save a Profile
After completing the wizard, you’ll be prompted to save your configuration as a reusable profile:
Save this configuration as a reusable profile? [y/N]: y
Profile name: spring-boot-full
✅ Profile saved: spring-boot-full
Load a Saved Profile
# Load a profile by name
recue --load-profile spring-boot-full
# The wizard will also offer to load profiles at startup
recue --wizard
# Then select from available profiles
List All Profiles
recue --list-profiles
Example output:
Saved Configuration Profiles (3):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 spring-boot-full
Framework: java_spring
Format: markdown
Documents: spec, plan, data-model, api-contract, use-cases
📋 quick-spec
Framework: Auto-detect
Format: markdown
Documents: spec
📋 django-project
Framework: python_django
Format: json
Documents: spec, plan, data-model
Delete a Profile
recue --delete-profile spring-boot-full
Wizard Flow
Step 1: Project Path
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 Step 1: Project Path
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Specify the path to your project directory.
Press Enter to use the current directory.
Path: /home/user/projects/my-spring-app
- Press Enter: Uses current directory (auto-detected)
- Enter path: Validates the path exists and is a directory
Step 2: Framework Detection
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔍 Step 2: Framework Detection
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Detected framework: java_spring
Use detected framework? [Y/n]:
If auto-detection succeeds, you can accept or manually select:
Available frameworks:
1. Java Spring Boot
2. Node.js Express
3. NestJS (TypeScript)
4. Python Django
5. Python Flask
6. Python FastAPI
7. Ruby on Rails
8. ASP.NET Core
9. Auto-detect (recommended)
Select framework (number or press Enter for auto): 1
Step 3: Document Generation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Step 3: Document Generation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Select which documents to generate:
Generate all documentation types? [Y/n]: y
Or select individually:
Generate all documentation types? [Y/n]: n
Select individual documents (y/n for each):
Specification (spec.md) - User stories and requirements [Y/n]: y
Implementation Plan (plan.md) - Technical architecture [Y/n]: y
Data Model (data-model.md) - Database structure [Y/n]: y
API Contract (api-spec.json) - OpenAPI specification [Y/n]: y
Use Cases (use-cases.md) - Business context analysis [Y/n]: y
If spec.md is selected:
Project Description (for spec.md):
Description: E-commerce platform with order management
Step 4: Output Preferences
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📂 Step 4: Output Preferences
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Output format:
1. Markdown (default)
2. JSON
Select format (1-2 or press Enter for default): 1
Custom output directory (optional):
Press Enter to use default: re-<project-name>/
Output directory: /docs/reverse-engineering
Step 5: Additional Options
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ Step 5: Additional Options
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Enable verbose output for detailed progress? [y/N]: y
Use phased analysis (recommended for large projects)? [y/N]: n
Step 6: Configuration Summary
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 Configuration Summary
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 Project Path: /home/user/projects/my-spring-app
🔍 Framework: java_spring
📝 Documents to Generate:
✓ Specification (spec.md)
✓ Implementation Plan (plan.md)
✓ Data Model (data-model.md)
✓ API Contract (api-spec.json)
✓ Use Cases (use-cases.md)
📄 Description: E-commerce platform with order management
📂 Output Format: markdown
📂 Output Directory: /docs/reverse-engineering
🔍 Verbose: Yes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Proceed with this configuration? [Y/n]: y
Step 7: Save Profile (Optional)
Save this configuration as a reusable profile? [y/N]: y
Enter a name for this profile (e.g., 'spring-boot-full', 'quick-spec'):
Profile name: spring-boot-full
✅ Profile saved: spring-boot-full
You can load it next time with: --load-profile spring-boot-full
Common Use Cases
First-Time Setup
# Launch wizard for initial setup
recue --wizard
The wizard will:
- Detect your project type automatically
- Recommend appropriate document types
- Guide you through all options
- Offer to save as a profile for future use
Quick Analysis with Saved Profile
# Use a saved profile for quick analysis
recue --load-profile spring-boot-full
Profile Management
# List all saved profiles
recue --list-profiles
# Delete an unused profile
recue --delete-profile old-config
# Create multiple profiles for different scenarios
recue --wizard # Save as "full-analysis"
recue --wizard # Save as "quick-spec"
recue --wizard # Save as "api-only"
Example Profiles
Full Analysis Profile
Generates all documentation types with verbose output:
{
"framework": "java_spring",
"generate_spec": true,
"generate_plan": true,
"generate_data_model": true,
"generate_api_contract": true,
"generate_use_cases": true,
"output_format": "markdown",
"verbose": true,
"phased": false
}
Quick Specification Profile
Generates only spec.md for rapid documentation:
{
"framework": null,
"auto_detect_framework": true,
"generate_spec": true,
"generate_plan": false,
"generate_data_model": false,
"generate_api_contract": false,
"generate_use_cases": false,
"output_format": "markdown",
"verbose": false
}
API Documentation Profile
Focuses on API contracts and data models:
{
"framework": "nodejs_express",
"generate_spec": false,
"generate_plan": false,
"generate_data_model": true,
"generate_api_contract": true,
"generate_use_cases": false,
"output_format": "json",
"verbose": false
}
Profile Storage
Profiles are stored in your home directory:
~/.re-cue/
└── profiles.json
Example profiles.json:
{
"spring-boot-full": {
"project_path": null,
"framework": "java_spring",
"auto_detect_framework": false,
"generate_spec": true,
"generate_plan": true,
"generate_data_model": true,
"generate_api_contract": true,
"generate_use_cases": true,
"output_format": "markdown",
"verbose": true,
"phased": false
},
"quick-spec": {
"project_path": null,
"framework": null,
"auto_detect_framework": true,
"generate_spec": true,
"generate_plan": false,
"generate_data_model": false,
"generate_api_contract": false,
"generate_use_cases": false,
"output_format": "markdown",
"verbose": false,
"phased": false
}
}
Tips and Best Practices
Creating Effective Profiles
Project-Specific Profiles: Create profiles for each type of project you work with
java-spring-microservicepython-django-monolithnodejs-api-gateway
Task-Specific Profiles: Create profiles for different analysis goals
full-documentation- All document typesapi-only- Just API contractsonboarding-docs- Spec + plan for new team members
Team Profiles: Share profile configurations with your team
# Export profile to share cat ~/.re-cue/profiles.json # Team members can manually add to their profiles.json
Wizard Best Practices
- Start with Auto-Detection: Let the wizard detect your framework first
- Use Verbose Mode: Enable verbose output for the first run to understand what’s happening
- Save Successful Configurations: Always save profiles that work well
- Iterative Refinement: Start with “all documents”, then create specialized profiles
Integration with CI/CD
While the wizard is interactive, you can use saved profiles in CI/CD:
# .github/workflows/docs.yml
- name: Generate Documentation
run: |
recue --load-profile production-docs
Troubleshooting
Wizard Won’t Start
Issue: Wizard doesn’t launch with --wizard flag
Solution: Ensure you’re using the Python version:
python3 -m reverse_engineer --wizard
Framework Not Detected
Issue: Auto-detection fails to identify framework
Solution: Manually select the framework in Step 2 of the wizard
Profile Not Found
Issue: --load-profile reports profile doesn’t exist
Solution: List available profiles:
recue --list-profiles
Invalid Project Path
Issue: Wizard reports path doesn’t exist
Solution: Use absolute paths or verify the path exists:
ls -la /path/to/project
Advanced Usage
Programmatic Profile Creation
Create profiles programmatically without the wizard:
from reverse_engineer.config_wizard import WizardConfig, ConfigProfile
# Create configuration
config = WizardConfig(
framework="java_spring",
generate_spec=True,
generate_plan=True,
output_format="markdown",
verbose=True
)
# Save as profile
profile_manager = ConfigProfile()
profile_manager.save_profile("my-custom-profile", config)
Batch Profile Management
# Create multiple profiles from a script
for profile in java-spring python-django nodejs-express; do
echo "Creating profile: $profile"
# Use wizard or programmatic approach
done
Related Documentation
Feedback and Contributions
The configuration wizard is designed to make RE-cue accessible to first-time users. If you have suggestions for improvement:
- Open an issue on GitHub
- Contribute improvements via pull request
- Share your profile configurations with the community
The configuration wizard feature reduces the learning curve for new users by providing an interactive, guided setup experience with reusable configuration profiles.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.