Thanks for considering a contribution. This project is intentionally local-first, safety-first, and transparent. Contributions should preserve those properties.
git clone https://github.com/wheelieinvestor/x-impersonation-guard.git
cd x-impersonation-guard
uv sync --all-groups
uv run playwright install chromiumRun the checks before opening a PR:
uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run mypy src testsLook for issues labeled good first issue. Each should include a problem statement, suggested approach, and definition of done.
- Keep PRs small and focused.
- Use conventional commit style when practical:
feat:,fix:,docs:,test:,chore:. - Include tests for behavior changes.
- Do not commit credentials,
.envfiles, cookies, browser profiles, screenshots with private data, or live evidence packages. - Do not add live X API calls to tests.
- Implement the detector behind the
Detectorprotocol. - Keep network access behind a client boundary.
- Add fixture or mocked tests.
- Document the signal in
docs/scoring.mdif it affects scoring.
- Add the pure signal function.
- Update the scorer weights and validation.
- Add unit tests for true positives and mitigations.
- Update README and docs so users understand the signal.
This tool is for accurate impersonation reports. It is not for mass-reporting critics, parody accounts, fan accounts, or unrelated users.