Thank you for your interest in contributing to Secure Flow! This document provides guidelines and instructions for contributing to the project.
We welcome contributions in many forms:
- 🐛 Bug reports: Report issues you've found
- 💡 Feature requests: Suggest new workflows or improvements
- 📝 Documentation: Improve existing docs or add new ones
- 🔧 Code: Submit pull requests for bug fixes or new features
- 🔄 Workflows: Add new security workflows or improve existing ones
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/your-username/secure-flow.git cd secure-flow - Create a branch for your changes:
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix
- Python 3.8 or higher
- Git
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies (if applicable)
pip install -r requirements.txt
# Validate workflows
python src/validate_unified_workflows.py sources/
# Generate IDE-specific formats
python src/convert_to_ide_formats.py-
Create a new markdown file in the
sources/directory -
Follow the standard workflow structure:
- Title (as H1 heading)
- Overview section
- Steps section (numbered with detailed sub-bullets)
- Checklist section
-
Example structure:
# Workflow Name ## Overview Brief description of what this workflow does and why it's important. ## Steps 1. **Step Title** - Detailed explanation - Sub-points and requirements 2. **Next Step** - Additional instructions - Implementation details ## Workflow Name Checklist - [ ] Checklist item 1 - [ ] Checklist item 2 - [ ] Checklist item 3
- Be specific: Describe expected outcomes and acceptance criteria
- Provide context: Reference security frameworks (OWASP, NIST, CWE) where relevant
- Set boundaries: Clarify scope, assumptions, and tooling limits
- Include examples: Show expected formats or responses when helpful
- Stay focused: Keep each workflow targeted to a single, clear security objective
- Use descriptive names: Make filenames reflect the workflow's security purpose
- Ensure workflows follow security best practices
- Reference authoritative sources (official docs, advisories, standards)
- Include validation steps where appropriate
- Consider edge cases and error handling
- Follow PEP 8 for Python code
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions focused and modular
- Test your changes locally before submitting
- Ensure existing tests still pass
- Add tests for new functionality when applicable
Before submitting, run:
# Validate workflow syntax and structure
python src/validate_unified_workflows.py sources/
# Generate IDE-specific formats
python src/convert_to_ide_formats.py
# Check for linting issues
# (add linting commands as they're set up)Write clear, descriptive commit messages:
Short summary (50 chars or less)
More detailed explanation if needed. Wrap at 72 characters.
Explain the problem and solution, not just what changed.
- Bullet points are okay too
- Use present tense ("Add feature" not "Added feature")
-
Update your branch with the latest changes from main:
git checkout main git pull upstream main git checkout your-branch git rebase main
-
Push your changes to your fork:
git push origin your-branch
-
Create a Pull Request on GitHub:
- Provide a clear title and description
- Reference any related issues
- Explain what changes you made and why
- Include screenshots or examples if applicable
-
Respond to feedback: Be open to suggestions and make requested changes
- Code/workflows follow project guidelines
- Changes are tested and validated
- Documentation is updated if needed
- Commit messages are clear and descriptive
- No merge conflicts with main branch
For maintainers:
- Update version numbers
- Update CHANGELOG.md
- Create a release tag
- Generate IDE-specific bundles
- Publish release notes
- Open an issue for questions or discussions
- Check existing issues and discussions before creating new ones
- Be respectful and constructive in all interactions
By contributing, you agree that your contributions will be licensed under the same license as the project (Apache License 2.0).
Thank you for contributing to Secure Flow! 🎉