mirror of
https://github.com/Strategic-Automation/violin.git
synced 2026-08-14 12:33:37 +02:00
2.0 KiB
2.0 KiB
Contributing to Violin
Thanks for your interest in Violin — the supervised agentic Hermes pentest profile.
How to Contribute
Reporting Bugs
- Check the issues for duplicates
- Include: Violin version, Hermes version, OS/platform, steps to reproduce, and any guard output
- Use the bug report template if available
Requesting Features
- Open a feature request issue describing the playbook, vulnerability class, or workflow you'd like added
- Explain the use case and how it fits Violin's supervised, authorised testing paradigm
- Include references to OWASP, PTES, or NIST methodology if applicable
Submitting Changes
- Fork the repo and create a feature branch from
master - Follow the existing file structure and conventions:
- Playbooks go in
skills/pentest/playbooks/ - References in
skills/pentest/references/ - Templates in
skills/pentest/templates/ - Python scripts in
scripts/
- Playbooks go in
- If adding a new playbook, ensure it has
## Evidence,## Stop Conditions, and## Blocked Actionssections - Run
python scripts/violin_guard.py check-releasebefore opening a PR - Open a pull request with a clear description of the change
Playbook Standards
All vulnerability-class playbooks must:
- Reference the OWASP/PTES/CWE mapping in the title
- Include detection methods with concrete tool commands
- Specify safe PoC techniques (no destructive payloads)
- Define evidence file paths using
$ENG_DIR/evidence/exploitation/<playbook-name>/ - List stop conditions and blocked actions
- Gracefully degrade if recommended tools are unavailable
Code Style
- Python:
ruff-compatible, type hints where practical - Shell:
bashwithset -euo pipefail, POSIX-compatible where possible - Markdown: standard GFM, 80-char soft wrap for prose
- YAML: anchors for repeated values, kebab-case for keys
Code of Conduct
Be respectful, constructive, and assume good faith. This is a security tool — our goal is safer systems, not causing harm.