Python language plugin for the SNIPER framework. Adds test, lint, typecheck, and format commands, enforces Python conventions, and injects backend knowledge into agent personas via mixins.
sniper plugin install @sniper.ai/plugin-python| Command | Run | Description |
|---|---|---|
test |
pytest |
Run the test suite using pytest |
lint |
ruff check . |
Lint all Python files with ruff |
typecheck |
mypy . |
Run mypy for static type checking |
format |
ruff format . |
Format all Python files with ruff |
The plugin enforces the following Python conventions during reviews:
- Follow PEP 8 style guidelines for all Python code
- Add type hints on all public functions, methods, and class attributes
- Use
pathlib.Pathoveros.pathfor filesystem operations - Use dataclasses or Pydantic models for structured data, not raw dicts
- Prefer f-strings over
str.format()or%formatting - Include
if __name__ == '__main__'guard in executable modules
| Check | Blocking | Description |
|---|---|---|
no-bare-except |
Yes | Ensure no bare except: clauses exist (use specific exception types) |
type-annotations |
No | Ensure public functions have type annotations |
no-print |
No | Prefer logging over print statements in production code |
The plugin injects language-specific knowledge into SNIPER agents:
| Agent | Mixin |
|---|---|
backend-dev |
mixins/python-backend.md |
| Hook | Command | Purpose |
|---|---|---|
PreToolUse |
ruff check --quiet |
Lint check before tool use |
Stop |
pytest --tb=short -q |
Run tests on agent stop |
Full documentation is available at sniperai.dev.
MIT