Thank you for your interest in contributing to Vigil Guard! This document provides guidelines and instructions for contributing to the project.
By participating in this project, you agree to abide by our Code of Conduct:
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Focus on constructive feedback
- Respect differing viewpoints and experiences
- Follow ethical security research practices
- Use attack examples only for defensive purposes
Please read the complete CODE_OF_CONDUCT.md for detailed community guidelines and security research policies.
- Node.js ≥ 18.0.0
- Docker & Docker Compose
- Git
- Familiarity with TypeScript, React, and Express.js
-
Fork and clone the repository
git clone https://github.com/your-username/vigil-guard.git cd vigil-guard -
Install dependencies
# Web UI Frontend cd services/web-ui/frontend npm install # Web UI Backend cd ../backend npm install
-
Start development services
# Create Docker network docker network create vigil-network # Start all services using main docker-compose docker-compose up -d # Or start individual services cd services/monitoring docker-compose up -d cd ../workflow docker-compose up -d # Start Web UI in development mode cd ../web-ui/frontend npm run dev # In another terminal cd ../web-ui/backend npm run dev
- TypeScript: Use strict mode, avoid
anytypes - React: Use functional components with hooks
- Formatting: Use consistent indentation (2 spaces)
- Naming: Use descriptive variable and function names
- camelCase for variables and functions
- PascalCase for components and types
- UPPER_SNAKE_CASE for constants
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write clear, concise commit messages
- Keep commits atomic and focused
- Follow conventional commits format
- Keep commit messages and diffs free of references to internal tooling (e.g., Codex/Claude orchestration helpers)
-
Test your changes
# Run TypeScript compiler cd services/web-ui/frontend npx tsc --noEmit cd ../backend npx tsc --noEmit
-
Commit with descriptive messages
git add . git commit -m "feat: add new detection pattern for XYZ"
-
Push and create a pull request
git push origin feature/your-feature-name
Follow the Conventional Commits specification:
<type>(<scope>): <subject>
<body>
<footer>
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
feat(web-ui): add dark mode toggle to settings page
fix(backend): resolve ETag validation issue on concurrent updates
docs(readme): update installation instructions for Windows
feat(workflow): add new detection pattern for polyglot attacks
fix(monitoring): correct ClickHouse query performance issue
Note: Keep commit subjects and bodies free of references to internal automation (Codex/Claude agents, runtimes, orchestration helpers, etc.). Focus messages on the user-facing or repository-visible impact of the change.
unified_config.json- Main security policiesthresholds.config.json- Decision thresholds (0-100 scale)rules.config.json- Detection patternsallowlist.schema.json- Allowlist validation schemanormalize.conf- Normalization mappingspii.conf- PII redaction patterns
Important:
- Always use the Web UI for configuration changes when possible
- Changes to these files directly affect security posture
- Test configuration changes thoroughly before deploying
- Document the rationale for threshold adjustments
- Maintain backup copies before modifying
services/web-ui/backend/src/auth.ts- Authentication logicservices/web-ui/backend/src/fileOps.ts- File operations (path traversal protection)services/web-ui/backend/src/database.ts- User database operations
Changes to these files require security review. See SECURITY.md for security considerations.
Before submitting a PR, verify:
- Frontend builds without errors (
npm run build) - Backend compiles without TypeScript errors
- Changes work in both development and production mode
- No console errors or warnings
- Configuration changes persist correctly
- ETag validation works for concurrent edits
- Docker services start without errors
- Start all services
- Access Web UI at http://localhost/ui/ (production) or http://localhost:5173/ (dev)
- Login with credentials (use .env file: admin/WEB_UI_ADMIN_PASSWORD)
- Navigate to Configuration section
- Modify configuration variables
- Verify changes are saved with proper ETag validation
- Check that n8n workflow processes requests correctly (http://localhost:5678)
- Verify ClickHouse logging works (http://localhost:8123/ping)
- Confirm Grafana dashboards display data (http://localhost/grafana/)
When adding new features:
- Update relevant documentation in
docs/ - Add inline code comments for complex logic
- Update API documentation if adding/modifying endpoints
- Update architecture documentation if changing architecture
We use GitHub Issue Templates to streamline bug reporting. Please use the Bug Report template which includes:
- Description: Clear description of the issue
- Steps to reproduce: Numbered steps to reproduce the behavior
- Expected behavior: What you expected to happen
- Actual behavior: What actually happened
- Affected Component: Web UI, Backend, n8n, Monitoring, etc.
- Severity: Critical, High, Medium, Low
- Environment:
- OS and version
- Docker version
- Browser (for frontend issues)
- Vigil Guard version
- Screenshots: If applicable
- Logs: Relevant error messages or logs (redact sensitive data!)
Important: Before opening a bug report, search existing issues to avoid duplicates.
We use GitHub Issue Templates for feature requests. Please use the Feature Request template which includes:
- Problem Statement: What problem does this feature solve?
- Proposed Solution: Describe your ideal solution
- Affected Component: Which part of Vigil Guard would this impact?
- Priority: Critical, High, Medium, Low
- Alternatives: Other approaches you've considered
- Use Cases: Specific scenarios where this would be valuable
- Implementation Ideas: (Optional) How this could be implemented
- Additional context: Mockups, wireframes, or references
Found an issue in documentation? Use the Documentation Issue template to report:
- Incorrect or outdated information
- Missing documentation
- Unclear explanations
- Broken links
- Code examples that don't work
Include the file path, line number, current content, and suggested fix.
All submissions require code review:
- Automated checks: CI/CD pipeline must pass
- Code review: At least one maintainer approval required
- Testing: Verify changes work as expected
- Documentation: Ensure docs are updated
- Merge: Maintainer merges the PR
We provide a comprehensive Pull Request template that includes:
Pre-submission checklist:
- Code follows project style guidelines
- Commit messages follow conventional commits format
- All tests pass locally (TypeScript compilation, manual testing)
- Documentation is updated (docs/, README.md, inline comments)
- No unnecessary files are included (build artifacts, etc.)
- Branch is up to date with main branch
- PR description clearly explains the changes
- Related issues are referenced in PR description
- Security implications have been reviewed
- Configuration changes are documented with migration guide (if breaking)
- Performance impact is considered and acceptable
The PR template includes sections for:
- Type of change (bug fix, feature, breaking change, etc.)
- Testing performed (test environment, test cases, manual steps)
- Configuration changes (impact on deployments, migration guide)
- Security considerations
- Documentation updates
- Performance impact
- Breaking changes
Please fill out all relevant sections to expedite the review process.
DO NOT open public issues for security vulnerabilities.
Please follow our Security Policy for responsible disclosure:
- Report privately using GitHub Security Advisories
- Include detailed information:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if available)
- Allow reasonable time for patching before public disclosure
- Follow coordinated disclosure practices
For detailed security guidelines, including default credentials, authentication, and hardening practices, see docs/SECURITY.md.
Ethical Security Research:
- Vigil Guard is a defensive security platform
- Attack examples in code/docs are for educational purposes only
- Do not use techniques against unauthorized systems
- Follow the Code of Conduct security research guidelines
If you need help:
- Documentation: Check the docs/ directory:
- QUICKSTART.md - Quick installation guide
- docs/INSTALLATION.md - Complete installation instructions
- docs/CONFIGURATION.md - Configuration reference
- docs/API.md - REST API documentation
- docs/SECURITY.md - Security best practices
- docs/architecture/architecture.md - System architecture
- Existing Issues: Search GitHub Issues for similar problems
- GitHub Discussions: Join community discussions
- Issue Templates: Use our templates for bugs, features, or documentation
We welcome contributions in:
- Detection Patterns: Improve threat detection accuracy (new rules, better thresholds)
- UI/UX: Enhance user interface and experience (Web UI, accessibility, mobile support)
- Documentation: Improve or translate documentation (guides, API docs, examples)
- Testing: Add test coverage (unit tests, integration tests, E2E tests)
- Performance: Optimize processing speed (workflow efficiency, ClickHouse queries)
- Bug Fixes: Fix reported issues (use GitHub Issues with bug label)
- Features: Implement new capabilities (see roadmap and feature requests)
- Security: Enhance security controls (authentication, authorization, input validation)
- Monitoring: Improve analytics and dashboards (Grafana panels, ClickHouse queries)
- ML/AI: Enhance Prompt Guard API (model improvements, new detection techniques)
Good First Issues:
- Look for issues labeled
good first issueorhelp wanted - Documentation improvements are always welcome
- UI/UX enhancements (especially accessibility)
- Test coverage additions
By contributing to Vigil Guard, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Vigil Guard and helping make LLM applications more secure! Your contributions help protect AI systems worldwide.
- Code of Conduct - Community guidelines and security research ethics
- Security Policy - Security best practices and vulnerability reporting
- Architecture Documentation - System design and C4 diagrams
- API Reference - Complete REST API documentation
- CODEOWNERS - Code ownership and review assignments
Questions?
- Search GitHub Issues
- Join GitHub Discussions
- Review our documentation