mcp-souschef 2.2.0__tar.gz → 2.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. mcp_souschef-2.2.0/README.md → mcp_souschef-2.8.0/PKG-INFO +244 -37
  2. mcp_souschef-2.2.0/PKG-INFO → mcp_souschef-2.8.0/README.md +208 -56
  3. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/pyproject.toml +36 -5
  4. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/__init__.py +10 -2
  5. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/assessment.py +113 -30
  6. mcp_souschef-2.8.0/souschef/ci/__init__.py +11 -0
  7. mcp_souschef-2.8.0/souschef/ci/github_actions.py +379 -0
  8. mcp_souschef-2.8.0/souschef/ci/gitlab_ci.py +299 -0
  9. mcp_souschef-2.8.0/souschef/ci/jenkins_pipeline.py +343 -0
  10. mcp_souschef-2.8.0/souschef/cli.py +1125 -0
  11. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/converters/__init__.py +2 -2
  12. mcp_souschef-2.8.0/souschef/converters/cookbook_specific.py +125 -0
  13. mcp_souschef-2.8.0/souschef/converters/cookbook_specific.py.backup +109 -0
  14. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/converters/playbook.py +853 -15
  15. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/converters/resource.py +103 -1
  16. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/core/constants.py +13 -0
  17. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/core/path_utils.py +12 -9
  18. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/core/validation.py +35 -2
  19. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/deployment.py +29 -27
  20. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/filesystem/operations.py +0 -7
  21. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/parsers/__init__.py +6 -1
  22. mcp_souschef-2.8.0/souschef/parsers/attributes.py +622 -0
  23. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/parsers/inspec.py +343 -18
  24. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/parsers/metadata.py +30 -0
  25. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/parsers/recipe.py +48 -10
  26. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/server.py +429 -178
  27. mcp_souschef-2.8.0/souschef/ui/__init__.py +8 -0
  28. mcp_souschef-2.8.0/souschef/ui/app.py +2998 -0
  29. mcp_souschef-2.8.0/souschef/ui/health_check.py +36 -0
  30. mcp_souschef-2.8.0/souschef/ui/pages/ai_settings.py +497 -0
  31. mcp_souschef-2.8.0/souschef/ui/pages/cookbook_analysis.py +1360 -0
  32. mcp_souschef-2.2.0/souschef/cli.py +0 -525
  33. mcp_souschef-2.2.0/souschef/parsers/attributes.py +0 -257
  34. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/LICENSE +0 -0
  35. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/converters/habitat.py +0 -0
  36. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/core/__init__.py +0 -0
  37. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/core/errors.py +0 -0
  38. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/core/ruby_utils.py +0 -0
  39. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/filesystem/__init__.py +0 -0
  40. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/parsers/habitat.py +0 -0
  41. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/parsers/resource.py +0 -0
  42. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/parsers/template.py +0 -0
  43. {mcp_souschef-2.2.0 → mcp_souschef-2.8.0}/souschef/profiling.py +0 -0
@@ -1,11 +1,46 @@
1
+ Metadata-Version: 2.4
2
+ Name: mcp-souschef
3
+ Version: 2.8.0
4
+ Summary: AI-powered MCP server for Chef to Ansible conversion
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Keywords: chef,ansible,migration,infrastructure,automation,mcp,ai,conversion
8
+ Author: SousChef Contributors
9
+ Requires-Python: >=3.14,<4.0
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: System Administrators
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
+ Classifier: Topic :: System :: Systems Administration
19
+ Classifier: Topic :: Utilities
20
+ Provides-Extra: ui
21
+ Requires-Dist: anthropic (>=0.75.0)
22
+ Requires-Dist: click (>=8.1.0)
23
+ Requires-Dist: mcp (>=1.25.0)
24
+ Requires-Dist: openai (>=1.0.0)
25
+ Requires-Dist: pandas (>=2.0.0) ; extra == "ui"
26
+ Requires-Dist: plotly (>=5.0.0)
27
+ Requires-Dist: python-dotenv (>=1.2.1)
28
+ Requires-Dist: pyyaml (>=6.0.0)
29
+ Requires-Dist: streamlit (>=1.28.0)
30
+ Requires-Dist: zod (>=0.8.0)
31
+ Project-URL: Documentation, https://kpeacocke.github.io/souschef/
32
+ Project-URL: Homepage, https://github.com/kpeacocke/souschef
33
+ Project-URL: Repository, https://github.com/kpeacocke/souschef
34
+ Description-Content-Type: text/markdown
35
+
1
36
  # Chef to Ansible migration - SousChef MCP
2
37
 
3
38
  An AI-powered MCP (Model Context Protocol) server that provides comprehensive Chef-to-Ansible migration capabilities for enterprise infrastructure transformation.
4
39
 
5
- [![PyPI version](https://img.shields.io/pypi/v/mcp-souschef.svg)](https://pypi.org/project/mcp-souschef/)
40
+ [![GitHub release](https://img.shields.io/github/v/release/kpeacocke/souschef)](https://github.com/kpeacocke/souschef/releases)
6
41
  [![Python Version](https://img.shields.io/badge/python-3.14%2B-blue.svg)](https://www.python.org/downloads/)
7
42
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
- [![Test Coverage](https://img.shields.io/badge/coverage-92%25-brightgreen.svg)](htmlcov/index.html)
43
+ [![Test Coverage](https://img.shields.io/badge/coverage-91%25-brightgreen.svg)](htmlcov/index.html)
9
44
  [![Code style: Ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
10
45
  [![Type Checked: mypy](https://img.shields.io/badge/type%20checked-mypy-blue.svg)](http://mypy-lang.org/)
11
46
  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=kpeacocke_souschef&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=kpeacocke_souschef)
@@ -14,7 +49,17 @@ An AI-powered MCP (Model Context Protocol) server that provides comprehensive Ch
14
49
 
15
50
  ## Overview - Chef to Ansible features
16
51
 
17
- SousChef is a complete enterprise-grade migration platform with 38 MCP tools organized across 9 major capability areas to facilitate Chef-to-Ansible AWX/AAP migrations. From cookbook analysis to deployment pattern conversion, including Chef Habitat to containerized deployments, SousChef provides everything needed for a successful infrastructure automation migration.
52
+ SousChef is a complete enterprise-grade migration platform with **32 primary MCP tools** organised across **10 major capability areas** to facilitate Chef-to-Ansible AWX/AAP migrations. From cookbook analysis to deployment pattern conversion, including Chef Habitat to containerised deployments and CI/CD pipeline generation, SousChef provides everything needed for a successful infrastructure automation migration.
53
+
54
+ ### About Tool Counts
55
+
56
+ **Why 32 tools in the documentation but more in the server?**
57
+
58
+ The MCP server provides **37 total tools** (35 public + 2 internal). This documentation focuses on the **32 primary user-facing tools** that cover the main migration capabilities. The remaining 3 tools are low-level filesystem operations and helper utilities used internally by the main tools.
59
+
60
+ As a user, you'll primarily interact with the 27 documented tools. Your AI assistant may use the additional tools automatically when needed, but you don't need to know about them for successful migrations.
61
+
62
+ > **For developers:** See `souschef/server.py` for the complete list of all 37 registered tools.
18
63
 
19
64
  ## Model Agnostic - Works with Any AI Model
20
65
 
@@ -27,10 +72,17 @@ SousChef is a complete enterprise-grade migration platform with 38 MCP tools org
27
72
  - **Local Models** (Ollama, llama.cpp, etc.)
28
73
  - **Custom Enterprise Models**
29
74
 
30
- **How it works:** You choose your AI model provider in your MCP client. SousChef provides the Chef/Ansible expertise through 38 specialized tools. The model calls these tools to help with your migration.
75
+ **How it works:** You choose your AI model provider in your MCP client. SousChef provides the Chef/Ansible expertise through 27 specialized tools. The model calls these tools to help with your migration.
31
76
 
32
77
  > See [config/CONFIGURATION.md](config/CONFIGURATION.md) for configuration examples with different model providers.
33
78
 
79
+ ## Quick Links
80
+
81
+ - **[Terraform Provider](terraform-provider/README.md)** - Manage migrations with infrastructure-as-code
82
+ - **[User Guide](docs/user-guide/)** - Complete documentation
83
+ - **[API Reference](docs/api-reference/)** - Detailed tool documentation
84
+ - **[Migration Guide](docs/migration-guide/)** - Step-by-step migration process
85
+
34
86
  ## Installation
35
87
 
36
88
  ```bash
@@ -55,7 +107,7 @@ Complete cookbook introspection and analysis tools:
55
107
  - **list_directory** - Navigate and explore cookbook directory structures
56
108
  - **read_file** - Read cookbook files with error handling
57
109
  - **read_cookbook_metadata** - Parse metadata.rb files for dependencies and cookbook information
58
- - **parse_recipe** - Analyze Chef recipes and extract resources, actions, and properties
110
+ - **parse_recipe** - Analyse Chef recipes and extract resources, actions, and properties
59
111
  - **parse_attributes** - Parse attribute files with **advanced precedence resolution** (6 levels: default, force_default, normal, override, force_override, automatic)
60
112
  - **list_cookbook_structure** - Display complete cookbook directory hierarchy
61
113
 
@@ -76,7 +128,7 @@ Convert Chef search patterns to dynamic Ansible inventory:
76
128
 
77
129
  - **convert_chef_search_to_inventory** - Transform Chef search queries to Ansible inventory groups
78
130
  - **generate_dynamic_inventory_script** - Create dynamic inventory scripts from Chef server queries
79
- - **analyze_chef_search_patterns** - Discover and analyze search usage in cookbooks
131
+ - **analyse_chef_search_patterns** - Discover and analyse search usage in cookbooks
80
132
 
81
133
  ### 4. InSpec Integration & Validation
82
134
  Complete InSpec-to-Ansible testing pipeline:
@@ -90,14 +142,14 @@ Chef data bags to Ansible vars/vault conversion:
90
142
 
91
143
  - **convert_chef_databag_to_vars** - Transform data bags to Ansible variable files
92
144
  - **generate_ansible_vault_from_databags** - Convert encrypted data bags to Ansible Vault
93
- - **analyze_chef_databag_usage** - Analyze data bag usage patterns in cookbooks
145
+ - **analyse_chef_databag_usage** - Analyse data bag usage patterns in cookbooks
94
146
 
95
147
  ### 6. Environment & Configuration Management
96
148
  Chef environments to Ansible inventory groups:
97
149
 
98
150
  - **convert_chef_environment_to_inventory_group** - Transform Chef environments to inventory
99
151
  - **generate_inventory_from_chef_environments** - Generate complete inventory from environments
100
- - **analyze_chef_environment_usage** - Analyze environment usage in cookbooks
152
+ - **analyse_chef_environment_usage** - Analyse environment usage in cookbooks
101
153
 
102
154
  ### 7. AWX/Ansible Automation Platform Integration
103
155
  Enterprise AWX/AAP configuration generation:
@@ -121,7 +173,67 @@ Modern deployment strategies and migration planning:
121
173
  - **generate_blue_green_deployment_playbook** - Create blue/green deployment playbooks
122
174
  - **generate_canary_deployment_strategy** - Generate canary deployment configurations
123
175
 
124
- ### 10. Conversion Validation Framework
176
+ ### 10. CI/CD Pipeline Generation
177
+ Generate Jenkins, GitLab CI, and GitHub Actions workflows from Chef cookbook CI patterns:
178
+
179
+ - **generate_jenkinsfile_from_chef** - Generate Jenkinsfile (Declarative or Scripted) from Chef cookbook CI/CD patterns
180
+ - **generate_gitlab_ci_from_chef** - Generate .gitlab-ci.yml from Chef cookbook testing tools
181
+ - **generate_github_workflow_from_chef** - Generate GitHub Actions workflow from Chef cookbook CI/CD patterns
182
+
183
+ Automatically detects and converts:
184
+ - **Test Kitchen** configurations (.kitchen.yml) → Integration test stages
185
+ - **ChefSpec** tests (spec/) → Unit test stages
186
+ - **Cookstyle/Foodcritic** → Lint stages
187
+ - Multiple test suites → Parallel execution strategies
188
+
189
+ #### Example Usage
190
+
191
+ ```bash
192
+ # Generate Jenkins Declarative pipeline
193
+ souschef generate-jenkinsfile ./mycookbook
194
+
195
+ # Generate Jenkins Scripted pipeline
196
+ souschef generate-jenkinsfile ./mycookbook --pipeline-type scripted
197
+
198
+ # Generate GitLab CI configuration
199
+ souschef generate-gitlab-ci ./mycookbook
200
+
201
+ # Generate GitHub Actions workflow
202
+ souschef generate-github-workflow ./mycookbook
203
+
204
+ # Customize with options
205
+ souschef generate-gitlab-ci ./mycookbook --no-cache --no-artifacts
206
+ souschef generate-github-workflow ./mycookbook --workflow-name "My CI" --no-cache
207
+ ```
208
+
209
+ **MCP Tool Usage:**
210
+ ```python
211
+ # From an AI assistant with SousChef MCP
212
+
213
+ # Generate Jenkins pipeline
214
+ generate_jenkinsfile_from_chef(
215
+ cookbook_path="/path/to/cookbook",
216
+ pipeline_type="declarative", # or "scripted"
217
+ enable_parallel="yes" # or "no"
218
+ )
219
+
220
+ # Generate GitLab CI
221
+ generate_gitlab_ci_from_chef(
222
+ cookbook_path="/path/to/cookbook",
223
+ enable_cache="yes", # or "no"
224
+ enable_artifacts="yes" # or "no"
225
+ )
226
+
227
+ # Generate GitHub Actions workflow
228
+ generate_github_workflow_from_chef(
229
+ cookbook_path="/path/to/cookbook",
230
+ workflow_name="Chef Cookbook CI",
231
+ enable_cache="yes", # or "no"
232
+ enable_artifacts="yes" # or "no"
233
+ )
234
+ ```
235
+
236
+ ### 11. Conversion Validation Framework
125
237
  Comprehensive validation of Chef-to-Ansible conversions:
126
238
 
127
239
  - **validate_conversion** - Validate conversions across multiple dimensions
@@ -163,10 +275,10 @@ Output formats:
163
275
  - **json**: Structured JSON for programmatic processing
164
276
  - **summary**: Quick overview with counts only
165
277
 
166
- - **analyze_chef_application_patterns** - Identify application deployment patterns
278
+ - **analyse_chef_application_patterns** - Identify application deployment patterns
167
279
  - **assess_chef_migration_complexity** - Comprehensive migration complexity assessment
168
280
  - **generate_migration_plan** - Create detailed migration execution plans
169
- - **analyze_cookbook_dependencies** - Analyze dependencies and migration order
281
+ - **analyse_cookbook_dependencies** - Analyse dependencies and migration order
170
282
  - **generate_migration_report** - Generate executive and technical migration reports
171
283
 
172
284
  ## Migration Workflow
@@ -176,8 +288,8 @@ Output formats:
176
288
  # Assess migration complexity
177
289
  assess_chef_migration_complexity /path/to/cookbooks
178
290
 
179
- # Analyze cookbook dependencies
180
- analyze_cookbook_dependencies /path/to/cookbook
291
+ # Analyse cookbook dependencies
292
+ analyse_cookbook_dependencies /path/to/cookbook
181
293
 
182
294
  # Generate migration plan
183
295
  generate_migration_plan '{\"cookbooks\": [\"/path/to/cookbook1\", \"/path/to/cookbook2\"]}'
@@ -248,14 +360,84 @@ profile_cookbook_performance /path/to/large_cookbook
248
360
  profile_parsing_operation recipe /path/to/recipe.rb --detailed
249
361
  ```
250
362
 
251
- **Features:**
252
- - Execution time and peak memory tracking for all parsing operations
253
- - Detailed cProfile statistics with top function calls
254
- - Automatic performance recommendations based on thresholds
255
- - Before/after comparison for optimization validation
256
- - Integration with CLI and MCP for AI-assisted profiling
363
+ ### 10. Visual Migration Planning Interface
364
+ Interactive web-based interface for Chef-to-Ansible migration planning and visualization:
365
+
366
+ - **Cookbook Analysis Dashboard**: Interactive directory scanning with metadata parsing and complexity assessment
367
+ - **Migration Planning Wizard**: Step-by-step migration planning with effort estimation and risk analysis
368
+ - **Dependency Mapping**: Visual dependency graphs showing cookbook relationships and migration ordering
369
+ - **Validation Reports**: Conversion validation results with syntax checking and best practice compliance
370
+ - **Progress Tracking**: Real-time migration progress with completion metrics and bottleneck identification
371
+
372
+ **Launch the UI:**
373
+ ```bash
374
+ # Using Poetry (development)
375
+ poetry run souschef ui
376
+
377
+ # Using pip (installed)
378
+ souschef ui
379
+
380
+ # Custom port
381
+ souschef ui --port 8080
382
+ ```
383
+
384
+ **Run in Docker:**
385
+ ```bash
386
+ # Build the image
387
+ docker build -t souschef-ui .
257
388
 
258
- ## Enterprise Features
389
+ # Run the container
390
+ docker run -p 8501:8501 souschef-ui
391
+
392
+ # Or use docker-compose
393
+ docker-compose up
394
+ ```
395
+
396
+ **Docker Compose (recommended for development):**
397
+ ```yaml
398
+ version: '3.8'
399
+ services:
400
+ souschef-ui:
401
+ build: .
402
+ ports:
403
+ - "8501:8501"
404
+ restart: unless-stopped
405
+ ```
406
+
407
+ **Features:**
408
+ - Clean, professional design matching documentation standards
409
+ - Real-time cookbook analysis with progress indicators
410
+ - **Interactive dependency visualization** with Plotly graphs and NetworkX analysis
411
+ - **Static graph visualization** with matplotlib for reports and documentation
412
+ - **Real-time progress tracking** for all analysis operations
413
+ - Migration planning wizards with effort estimation
414
+ - Validation reporting dashboard with conversion quality metrics
415
+ - Cross-platform compatibility (Linux, macOS, Windows)
416
+
417
+ ### Advanced UI Features
418
+
419
+ #### Interactive Dependency Visualization
420
+ The UI includes sophisticated dependency graph visualization powered by NetworkX and Plotly:
421
+
422
+ - **Graph Analysis**: Automatic detection of cookbook dependencies, circular references, and migration ordering
423
+ - **Interactive Exploration**: Zoom, pan, and hover over nodes to explore complex dependency relationships
424
+ - **Color Coding**: Visual distinction between cookbooks, dependencies, community cookbooks, and circular dependencies
425
+ - **Static Export**: Matplotlib-based static graphs for reports and documentation
426
+ - **Large Graph Support**: Optimized layouts for complex cookbook ecosystems
427
+
428
+ #### Real-Time Progress Tracking
429
+ All analysis operations include comprehensive progress feedback:
430
+
431
+ - **Progress Bars**: Visual progress indicators for long-running operations
432
+ - **Status Updates**: Real-time status messages during analysis phases
433
+ - **Operation Tracking**: Separate progress tracking for dependency analysis, validation, and migration planning
434
+ - **Error Handling**: Graceful error display with recovery suggestions
435
+
436
+ #### Enhanced User Experience
437
+ - **Responsive Design**: Clean, professional interface that works across different screen sizes
438
+ - **Export Options**: Download analysis results, graphs, and migration plans
439
+ - **Session Persistence**: Maintain analysis state across page refreshes
440
+ - **Quick Actions**: One-click access to common migration tasks
259
441
 
260
442
  ### Migration Assessment & Reporting
261
443
  - **Complexity Analysis**: Automated assessment of migration effort and risk factors
@@ -281,7 +463,7 @@ profile_parsing_operation recipe /path/to/recipe.rb --detailed
281
463
  ### Prerequisites
282
464
  - Python 3.14+
283
465
  - [Poetry](https://python-poetry.org/) for dependency management
284
- - MCP-compatible client (Claude Desktop, VS Code with MCP extension, etc.)
466
+ - MCP-compatible client (Claude Desktop, VS Code 1.102+ with GitHub Copilot, etc.)
285
467
 
286
468
  ### Quick Start
287
469
 
@@ -294,9 +476,21 @@ profile_parsing_operation recipe /path/to/recipe.rb --detailed
294
476
 
295
477
  Use the pre-configured files in the `config/` directory for quick setup with Claude Desktop, VS Code Copilot, or other MCP clients.
296
478
 
479
+ **Claude Desktop** (macOS):
297
480
  ```bash
298
- # Example: Claude Desktop (macOS)
299
481
  cp config/claude-desktop.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
482
+ # Restart Claude Desktop
483
+ ```
484
+
485
+ **VS Code + GitHub Copilot** (requires VS Code 1.102+):
486
+ ```bash
487
+ # macOS/Linux
488
+ cp config/vscode-copilot.json ~/.config/Code/User/mcp.json
489
+
490
+ # Windows
491
+ copy config\vscode-copilot.json %APPDATA%\Code\User\mcp.json
492
+
493
+ # Reload VS Code window, then trust the server when prompted
300
494
  ```
301
495
 
302
496
  ** See [config/CONFIGURATION.md](config/CONFIGURATION.md) for:**
@@ -340,6 +534,7 @@ souschef-cli inspec-convert controls.rb --format testinfra
340
534
  - `inspec-parse` - Parse InSpec profiles and controls
341
535
  - `inspec-convert` - Convert InSpec to Testinfra/Ansible tests
342
536
  - `inspec-generate` - Generate InSpec validation from recipes
537
+ - `ui` - Launch the Visual Migration Planning Interface
343
538
  - `ls` / `cat` - File system operations
344
539
 
345
540
  ### Development Setup
@@ -432,7 +627,7 @@ Each MCP tool includes comprehensive documentation:
432
627
  - **[Testing Strategy Guide](docs/testing-strategy.md)** - Validation and testing approaches
433
628
  - **[Best Practices](docs/best-practices.md)** - Recommended patterns and approaches
434
629
 
435
- ## 🤝 Contributing
630
+ ## Contributing
436
631
 
437
632
  We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for:
438
633
  - Development setup and workflow
@@ -440,13 +635,13 @@ We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for:
440
635
  - Pull request process
441
636
  - Issue reporting guidelines
442
637
 
443
- ## 📄 License
638
+ ## License
444
639
 
445
640
  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
446
641
 
447
642
  ## Roadmap
448
643
 
449
- ### Completed
644
+ ### Completed
450
645
  - Complete Chef cookbook parsing (recipes, attributes, metadata, templates)
451
646
  - InSpec profile parsing and conversion to Testinfra/Ansible tests
452
647
  - Chef resource to Ansible task conversion with module mapping
@@ -467,18 +662,29 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
467
662
  - Enhanced error handling with custom exceptions and actionable recovery suggestions
468
663
  - Technical debt reduction - ALL PHASES COMPLETE: 16 functions refactored (15 C-grade eliminated, 70+ helpers extracted, average 77% complexity reduction, zero C-grade functions remaining)
469
664
  - Performance profiling and optimization for large cookbooks (profiling module, CLI commands, MCP tools)
470
-
471
- ### In Progress 🚧
472
- - Documentation website with MkDocs + Material theme
473
- - Documentation content (Getting Started, Tool Reference, Migration Guide)
474
-
475
- ### Planned 📅
476
- - 📅 Integration with additional test frameworks (ServerSpec, Goss)
477
- - 📅 Visual migration planning and dependency mapping interface
665
+ - Code duplication elimination (InSpec functions refactored: 55 duplicate lines removed, improved architecture)
666
+ - Documentation website with MkDocs + Material theme (charcoal + teal colour scheme, 16 pages)
667
+ - Comprehensive documentation content (Getting Started, Tool Reference, Migration Guide, API docs, Examples)
668
+ - Integration with additional test frameworks (ServerSpec, Goss) - InSpec conversion now supports 4 output formats
669
+ - Jenkins/GitLab CI pipeline generation from Chef cookbook CI patterns (Test Kitchen, ChefSpec, Cookstyle)
670
+ - Visual migration planning interface with Streamlit-based web UI for interactive cookbook analysis and migration planning
671
+ - **Interactive dependency mapping and visualization** with Plotly graphs and NetworkX analysis
672
+ - **Real-time progress tracking** for all analysis operations with Streamlit progress bars
673
+ - **Static graph visualization** with matplotlib for reports and documentation
674
+
675
+ ### Planned
676
+ - 📅 Enhanced graph layout algorithms for large dependency networks (force-directed, hierarchical)
677
+ - 📅 Export functionality for graphs (PNG, SVG, PDF formats)
678
+ - 📅 UI configuration options and themes
679
+ - 📅 Performance caching for expensive analysis operations
680
+ - 📅 Mobile-responsive design improvements
681
+ - 📅 Accessibility enhancements (ARIA labels, keyboard navigation)
682
+ - 📅 Integration testing for UI components
683
+ - 📅 Advanced filtering and search in dependency graphs
684
+ - 📅 Migration templates and presets
478
685
  - 📅 Terraform provider for infrastructure state management
479
- - 📅 Jenkins/GitLab CI pipeline generation
480
686
 
481
- ## 🙋‍♀️ Support & Community
687
+ ## Support & Community
482
688
 
483
689
  - **Issues**: [GitHub Issues](https://github.com/kpeacocke/souschef/issues)
484
690
  - **Discussions**: [GitHub Discussions](https://github.com/kpeacocke/souschef/discussions)
@@ -486,7 +692,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
486
692
 
487
693
  ---
488
694
 
489
- **SousChef** - *Transforming infrastructure automation, one recipe at a time.*
695
+ **SousChef** - *Transforming infrastructure automation, one recipe at a time.*
490
696
  desc 'Ensure package nginx is properly configured'
491
697
  impact 1.0
492
698
 
@@ -1203,4 +1409,5 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
1203
1409
 
1204
1410
  ---
1205
1411
 
1206
- **SousChef** - *Ansible automation, one recipe at a time.*
1412
+ **SousChef** - *Ansible automation, one recipe at a time.*
1413
+