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.
npx agentmods add rules/hassansaadfr/log-reader-mcp/rulegit clone --depth 1 https://github.com/hassansaadfr/log-reader-mcpWhat 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 | $0.01022 | $0.01022 |
| Opus 5 | $0.00511 | $0.00511 |
| Sonnet 5 | $0.00204 | $0.00204 |
| Haiku 4.5 | $0.00102 | $0.00102 |
Grade A, and why
rule 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 2d 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 — 150 lines — stays where its author put it; the contents beside it link to each section on GitHub.
English-Only Development Rule
This rule enforces that all code, comments, and documentation must be written in English throughout the project.
Scope
This rule applies to:
- All source code files (
.ts,.js,.tsx,.jsx, etc.) - All comments within code files
- All documentation files (
.md,.mdx, etc.) - All configuration files with text content
- All README files and project documentation
Requirements
Code Files
- Variable names: Must be in English
- Function names: Must be in English
- Class names: Must be in English
- Comments: Must be in English
- String literals: User-facing strings should be in English (use i18n for localization)
- Error messages: Must be in English
Documentation Files
- README files: Must be in English
- API documentation: Must be in English
- Code comments: Must be in English
- Inline documentation: Must be in English
Configuration Files
- Comments in config files: Must be in English
- Descriptive text: Must be in English
Examples
✅ Correct (English)
// Initialize the user authentication service
const authService = new AuthenticationService();
/**
* Validates user credentials and returns authentication token
* @param username - The user's username
* @param password - The user's password
* @returns Promise<AuthToken>
*/
async function validateCredentials(username: string, password: string): Promise<AuthToken> {
// Check if user exists in database
const user = await findUserByUsername(username);
if (!user) {
throw new Error('User not found');
}
// Verify password hash
const isValidPassword = await verifyPassword(password, user.passwordHash);
if (!isValidPassword) {
throw new Error('Invalid credentials');
}
return generateAuthToken(user);
}
❌ Incorrect (French)
// Initialiser le service d'authentification utilisateur
const serviceAuth = new ServiceAuthentification();
/**
* Valide les identifiants utilisateur et retourne le token d'authentification
* @param nomUtilisateur - Le nom d'utilisateur
* @param motDePasse - Le mot de passe
* @returns Promise<AuthToken>
*/
async function validerIdentifiants(nomUtilisateur: string, motDePasse: string): Promise<AuthToken> {
// Vérifier si l'utilisateur existe dans la base de données
const utilisateur = await trouverUtilisateurParNom(nomUtilisateur);
if (!utilisateur) {
throw new Error('Utilisateur non trouvé');
}
// Vérifier le hash du mot de passe
const motDePasseValide = await verifierMotDePasse(motDePasse, utilisateur.hashMotDePasse);
if (!motDePasseValide) {
throw new Error('Identifiants invalides');
}
return genererTokenAuth(utilisateur);
}
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.
- 2d ago First seen · 150 lines · 1,022 tokens per session scan A 6a799eee9c4b
rule is a cursor rule published in the GitHub repository hassansaadfr/log-reader-mcp (6 stars, last pushed 1y ago), licensed MIT. It adds 1,022 tokens to every session, about $0.0051 per session on Opus 5. 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
Localization
Always localize strings and use the t function to convert keys to strings. Add the keys to the en-us.json file. Never edit the other language files, as en-us.json is the single source of truth.
internationalization
Cursor rule "internationalization" from dtyq/magic, covering internationalization (i18n) rules, 国际化基本规范, 1. 文件结构, 2. 命名空间规范 and 3. 组件中使用国际化.
i18n
USE WHEN: Managing translation files (JSON), localization keys, or implementing multi-language logic.
cmd-moodle-mustache-lint
Lint Mustache templates for accessibility, security, hard-coded strings, and Moodle template conventions. (invoke by typing: @moodle-mustache-lint).
i18n-translation-system
This project implements an intelligent translation system with incremental detection and language validation.
mf-expo-ship-checklist
When mf-expo work is finished — i18n, API usage, CHANGELOG.