---
name: Feature Request
about: Suggest a new feature for SousChef
title: '[FEATURE] '
labels: ['enhancement', 'needs-triage']
assignees: ''

---

## Feature Request

**Fill out what's relevant to your request — you don't need to complete every section.**

## Feature Description

A clear and concise description of the feature you'd like to see added.

## Problem Statement

What problem does this feature solve? Is your feature request related to a problem?

**Example**: "I'm always frustrated when trying to convert Chef [specific resource/pattern] because..."

## Proposed Solution

Describe the solution you'd like:

- What should the new feature do?
- How should it work?
- What would the interface look like?

**For MCP Tools**:
```python
# Example of how the new tool might work
@mcp.tool()
def new_tool_name(parameter: str) -> str:
    """Description of what this tool would do."""
    pass
```

**For CLI Commands**:
```bash
# Example of proposed CLI usage
souschef-cli new-command input.rb --option value
```

## Use Cases

Describe specific use cases where this feature would be helpful:

1. **Use Case 1**: Converting cookbooks that use [specific pattern]
2. **Use Case 2**: Migrating from [specific Chef setup] to Ansible
3. **Use Case 3**: Handling [specific migration scenario]

## Chef Context

If this relates to Chef functionality:

- **Chef Resource/Pattern**: What Chef construct needs better support?
- **Chef Version**: Any specific Chef version requirements?
- **Common Usage**: How is this typically used in Chef cookbooks?

**Example Chef code this would help with**:
```ruby
# Paste relevant Chef code here
custom_resource 'my_app' do
  property :version, String, required: true
  action :deploy
end
```

## Ansible Context

If this relates to Ansible conversion:

- **Target Ansible Module**: What Ansible module(s) should this map to?
- **Ansible Best Practice**: How should this be implemented in Ansible?
- **Playbook Structure**: How should this appear in generated playbooks?

**Expected Ansible output**:
```yaml
# What the converted Ansible code should look like
- name: Deploy my_app
  my_app_module:
    version: "{{ app_version }}"
    state: present
```

## Alternative Solutions

Describe alternatives you've considered:

- Workarounds you're currently using
- Other tools or approaches
- Manual conversion steps

## Feature Category

What type of feature is this? (check all that apply)

- [ ] **New MCP Tool** - Add a new tool to the MCP server
- [ ] **CLI Enhancement** - Improve or add CLI commands
- [ ] **Parser Improvement** - Better parsing of Chef constructs
- [ ] **Conversion Logic** - New Chef-to-Ansible mappings
- [ ] **Migration Workflow** - Migration planning and reporting
- [ ] **Testing/InSpec** - Testing and validation features
- [ ] **AWX/AAP Integration** - Ansible Automation Platform features
- [ ] **Documentation** - Improve docs or examples
- [ ] **Performance** - Speed or efficiency improvements
- [ ] **Other** - Please specify

## Priority/Impact

- **Priority**: How important is this feature to you? (Low/Medium/High)
- **Impact**: How many users would benefit from this? (Few/Some/Many)
- **Complexity**: How complex do you think this would be to implement? (Simple/Medium/Complex)

## Related Issues/Discussions

Link any related issues or discussions:

- Related to issue #XXX
- Discussed in #XXX
- Similar to #XXX

## Additional Context

Add any other context, screenshots, examples, or references:

- Links to Chef documentation
- Examples from other migration tools
- Community discussions or blog posts
- Screenshots or diagrams

## Checklist

- [ ] I have searched existing issues and feature requests
- [ ] I have clearly described the problem this feature solves
- [ ] I have provided concrete examples and use cases
- [ ] I have considered how this fits with existing SousChef functionality
- [ ] I have thought about the user experience and interface design

---

**Thank you for helping improve SousChef!**

Feature requests help us understand what the community needs most. Even if you can't implement it yourself, your idea might inspire someone else to contribute!
