strix/CONTRIBUTING.md
Mads Hvelplund 0fd17f8c4e
Migrate task runner from Makefile to mise
Remove the Makefile and move all tasks into mise.toml (setup-dev, check-all,
dev, format/lint/type-check/security, pre-commit, clean, docs). Update the
release workflow to use jdx/mise-action and refresh contributor/install docs
to use mise commands.
2026-06-19 08:21:49 +02:00

3.4 KiB

Contributing to Strix

Thank you for your interest in contributing to Strix! This guide will help you get started with development and contributions.

🚀 Development Setup

Prerequisites

  • mise — provisions the toolchain (Python 3.12, uv, Node + the docs CLI) and runs project tasks
  • Docker (running) — install separately; mise manages CLIs/runtimes, not the Docker daemon
  • Git

Local Development

  1. Clone the repository

    git clone https://github.com/usestrix/strix.git
    cd strix
    
  2. Install the toolchain (Python + uv, as pinned in mise.toml)

    # The first time you use mise in this repo, trust the config first:
    mise trust
    mise install
    
  3. Install development dependencies

    mise setup-dev
    
    # or manually:
    uv sync
    uv run pre-commit install
    
  4. Configure your LLM provider

    export STRIX_LLM="openai/gpt-5.4"
    export LLM_API_KEY="your-api-key"
    
  5. Run Strix in development mode

    uv run strix --target https://example.com
    

📚 Contributing Skills

Skills are specialized knowledge packages that enhance agent capabilities. See strix/skills/README.md for detailed guidelines.

Quick Guide

  1. Choose the right category (/vulnerabilities, /frameworks, /technologies, etc.)
  2. Create a .md file with your skill content
  3. Include practical examples - Working payloads, commands, or test cases
  4. Provide validation methods - How to confirm findings and avoid false positives
  5. Submit via PR with clear description

🔧 Contributing Code

Pull Request Process

  1. Create an issue first - Describe the problem or feature
  2. Fork and branch - Work from the main branch
  3. Make your changes - Follow existing code style
  4. Write/update tests - Ensure coverage for new features
  5. Run quality checks - mise check-all should pass
  6. Submit PR - Link to issue and provide context

PR Guidelines

  • Clear description - Explain what and why
  • Small, focused changes - One feature/fix per PR
  • Include examples - Show before/after behavior
  • Update documentation - If adding features
  • Pass all checks - Tests, linting, type checking

Code Style

  • Follow PEP 8 with 100-character line limit
  • Use type hints for all functions
  • Write docstrings for public methods
  • Keep functions focused and small
  • Use meaningful variable names

🐛 Reporting Issues

When reporting bugs, please include:

  • Python version and OS
  • Strix version
  • LLMs being used
  • Full error traceback
  • Steps to reproduce
  • Expected vs actual behavior

💡 Feature Requests

We welcome feature ideas! Please:

  • Check existing issues first
  • Describe the use case clearly
  • Explain why it would benefit users
  • Consider implementation approach
  • Be open to discussion

🤝 Community

✨ Recognition

We value all contributions! Contributors will be:

  • Listed in release notes
  • Thanked in our Discord
  • Added to contributors list (coming soon)

Questions? Reach out on Discord or create an issue. We're here to help!