Quickstart
Prerequisites
- Python 3.12+ (developed on 3.13)
- uv package manager
Installation
git clone https://github.com/lemur47/si-protocols.git
cd si-protocols
uv sync --all-extras
uv pip install en_core_web_sm@https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl
Analyse a text
Run the threat filter against any local text file:
uv run si-threat-filter examples/synthetic_suspicious.txt
Output
The filter produces a 0–100 threat score with a breakdown:
- Tech score — NLP-based detection of vagueness, authority claims, urgency patterns, and emotional manipulation
- Heuristic score — probabilistic dissonance scanner
- Hybrid score — weighted composite: 60% tech + 40% heuristic
Higher scores indicate more markers of disinformation were detected.
Running tests
uv run pytest # All tests
uv run pytest -m "not slow" # Skip spaCy-dependent tests
What next?
- Read the source code to understand the analysis layers
- Check
markers.pyto see which patterns are detected - File issues or contribute on GitHub