Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/bernierllc/agents-environment-configWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/bernierllc/agents-environment-config/style)<a href="https://agentmods.dev/rules/bernierllc/agents-environment-config/style"><img src="https://agentmods.dev/badge/rules/bernierllc/agents-environment-config/style/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/bernierllc/agents-environment-config/style"><img src="https://agentmods.dev/badge/rules/bernierllc/agents-environment-config/style.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.00752 |
| Opus 5.5 | $0.00000 | $0.00301 |
| Sonnet 5.5 | $0.00000 | $0.00150 |
| Haiku 4.5 | $0.00000 | $0.00075 |
Grade A, and why
style scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 131 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Python Style Guide
Code Formatting
PEP 8 Compliance
- Follow PEP 8 style guide
- Use Black formatter with line length of 88 characters
Flake8 Configuration
When configuring Flake8, you may omit these checks if preferred:
- No trailing whitespace on code lines
- Lines should be shorter than 79 characters (use 88 with Black)
- No blank spaces on empty lines
- One empty line at the end of the file
Type Hints
Required Type Hints
- Use type-hints everywhere - All functions must have type annotations
- Prefer explicit types over implicit inference
- Use
typingmodule for complex types
# ✅ Good - explicit type hints
def calculate_total(items: list[Item]) -> float:
return sum(item.price for item in items)
# ❌ Bad - no type hints
def calculate_total(items):
return sum(item.price for item in items)
File System Operations
Path Handling
- Prefer
Pathfrompathliboveros.path - Use pathlib for all file operations
# ✅ Good - pathlib
from pathlib import Path
data_file = Path("data") / "input.txt"
if data_file.exists():
content = data_file.read_text()
# ❌ Bad - os.path
import os.path
data_file = os.path.join("data", "input.txt")
Documentation
Docstring Standards
- Use Google style docstrings for all functions, classes, and modules
- Include parameter descriptions and return types
- Document exceptions that may be raised
def process_data(data: list[str], threshold: int = 10) -> dict[str, int]:
"""Process input data and return statistics.
Args:
data: List of string values to process
threshold: Minimum count threshold (default: 10)
Returns:
Dictionary with processed statistics
Raises:
ValueError: If data is empty or threshold is negative
"""
# Implementation
Virtual Environments
Environment Requirements
- Python always requires venv - Always use virtual environments
- Never use system Python for project dependencies
- Create virtual environment if it doesn't exist
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 131 lines · 0 tokens per session scan A ce601804de58
style is a cursor rule published in the GitHub repository bernierllc/agents-environment-config (11 stars, last pushed 10d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 752 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
best-practices
Python Best Practices - enforces current best practices when working with Python code.
python_tests
We use the unit tests to cover internal behavior that can work without the web / backend counterpart. We aim for 95%+ unit test coverage of our Python code in lib/streamlit.
python-llm-ml-workflow-cursorrules-prompt-file
Cursor rules for Python LLM & ML development with workflow integration.
python
Python best practices and patterns for modern software development with Flask and SQLite.
python-containerization-cursorrules-prompt-file
Cursor rules for Python development with containerization integration.
django
Definitive guidelines for writing maintainable, performant, and secure Django applications, emphasizing modern best practices, clear code organization, and efficient patterns.