Thank you for your interest in contributing to Vigil! 🎉
Be respectful, inclusive, and constructive. We're all here to make software better.
Before creating bug reports, please check existing issues. When creating a bug report, include:
- Clear title and description
- Steps to reproduce
- Expected vs. actual behavior
- Screenshots if applicable
- Environment (Chrome version, OS, extension version)
Feature requests are welcome! Please:
- Check if it's already suggested
- Explain the use case
- Describe the expected behavior
- Consider privacy implications
- Fork & Clone
git clone https://github.com/yourusername/vigil.git- Create Branch
git checkout -b feature/my-feature-
Make Changes
- Follow existing code style
- Add comments for complex logic
- Update documentation if needed
-
Test
- Build the extension:
npm run build - Load in Chrome and test thoroughly
- Test edge cases
- Build the extension:
-
Commit
git commit -m "Add: Brief description of changes"Use prefixes:
Add:for new featuresFix:for bug fixesUpdate:for improvementsRemove:for deletionsDocs:for documentation
- Push & PR
git push origin feature/my-featureThen open a Pull Request on GitHub.
- Use meaningful variable names
- Keep functions focused and small
- Add JSDoc comments for public functions
- Use
console.logwith[Vigil]prefix for debugging
Example:
/**
* Analyzes content for sensitive data
* @param {string} content - The content to analyze
* @param {Object} context - Context information (url, domain, etc.)
* @returns {Promise<Object>} Analysis result with allowed/blocked decision
*/
async function analyze(content, context) {
// Implementation
}Before submitting a PR, test:
- Paste detection works on multiple sites
- File upload detection works
- No console errors
- Extension doesn't slow down browsing
- Notifications appear correctly
- Blocked content is actually blocked
When adding new detection patterns to tf-analyzer.js:
newPattern: {
regex: /your-pattern/g,
severity: 'critical', // 'critical', 'high', 'medium', 'low'
category: 'category', // 'financial', 'credentials', 'pii', etc.
validator: this.optionalValidationFunction // Optional
}src/
├── analyzers/ # Detection and analysis logic
├── monitors/ # Event monitoring (paste, upload)
├── background.js # Service worker
└── content.js # Content script injected into pages
- Open a Discussion
- Comment on relevant issues
- Reach out via email: [email protected]
Thank you for contributing! 🙏