Borrowing it
Nothing to install: this file belongs to eliornl/rolemule. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/eliornl/rolemule/main/.cursorrulesgit clone --depth 1 https://github.com/eliornl/rolemuleWrote 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/eliornl/rolemule/cursorrules)<a href="https://agentmods.dev/rules/eliornl/rolemule/cursorrules"><img src="https://agentmods.dev/badge/rules/eliornl/rolemule/cursorrules/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/eliornl/rolemule/cursorrules"><img src="https://agentmods.dev/badge/rules/eliornl/rolemule/cursorrules.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.07759 | $0.07759 |
| Opus 5.5 | $0.03104 | $0.03104 |
| Sonnet 5.5 | $0.01552 | $0.01552 |
| Haiku 4.5 | $0.00776 | $0.00776 |
Grade A, and why
cursorrules 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 2mo 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 — 132 lines — stays where its author put it; the contents beside it link to each section on GitHub.
RoleMule — Cursor Rules Index
Product name: RoleMule (repo folder: rolemule).
All detailed coding rules live in .cursor/rules/. This file is the index.
Rule Files
| File | Covers |
|---|---|
rolemule-core.mdc |
App name, error system (APIError/ErrorCode, CFG_6xxx no-API-key, RES_3002 duplicate workflow, post-start duplicate / uq_user_job_company, content fingerprint NFKC + utils/application_dedupe.py), POST /workflow/start job file uploads (.pdf/.txt/.docx, 5 MB, _JOB_FILE_MAGIC), background task DB, workflow failure (no partial outputs, applications list join) |
python-conventions.mdc |
Python style, file sections, FastAPI endpoint template |
database-patterns.mdc |
SQLAlchemy JSONB, flag_modified(), soft delete, partial indexes, race conditions, migrations, UserWorkflowPreferences upsert |
auth-patterns.mdc |
JWT structure, _make_jwt, all auth endpoints, token revocation, lockout, timing attack fix |
security-python.mdc |
XSS, file upload MIME, secrets vs random, no-JWT-in-URL rule, user enumeration prevention |
codeql-security-scanning.mdc |
CodeQL CI, sanitize_log_value() / mask_email() logging, query-filters, secret scanning test keys, Pydantic field_validator, extension entity decode |
security-middleware.mdc |
Middleware stack, CORS explicit headers, no wildcard origins, maintenance mode, CSP nonce-based style-src (no 'unsafe-inline'), .is-hidden / CSS utility class reference |
settings-and-env.mdc |
All env vars, get_settings(), ENCRYPTION_KEY requirement, .env commit rules |
llm-integration.mdc |
Multi-provider LLM (get_llm_client), per-user BYOK (Gemini/OpenAI/Anthropic/Ollama), model allowlists in utils/llm/models.py, grounding, CFG_6001, asyncio.wait_for(), generate_stream / SpeakFieldStreamer, JSON parsing |
agent-patterns.mdc |
5 workflow agents + standalone on-demand (interview prep, CV optimizer, Practice Interview, Hiring Outreach) + 6 career tools, any workflow agent failure fails the run, workflow_preferences injection, BYOK model override, Company Research — _has_usable_company_name / unnamed-posting / disambiguation / staffing / research_quality |
interview-prep-feature.mdc |
Standalone agent, background task, Redis atomic lock, rate limit (static Interview tab — not Practice Interview) |
cv-optimizer-feature.mdc |
CV Optimizer loop — hiring manager + reviser agents, cv_optimization JSONB, ownership-before-cache, WebSocket iteration events, Optimize CV tab |
mock-interview-feature.mdc |
Practice Interview — HR/Pro/Manager, duration minutes, browser STT/TTS, BYOK, speak streaming / speak_delta, ws-guard, mock_interview JSONB |
hiring-outreach-feature.mdc |
Hiring Outreach — public web contact finder + copy-only draft messages, hiring_outreach JSONB, Redis lock, WS hiring_outreach_*, 10th Outreach tab |
career-tools.mdc |
6 tools, endpoints, rate limits, agent implementation pattern, output JSON schemas, copy button pattern, no-placeholder rules, UI CSS classes |
caching-redis.mdc |
Cache TTLs, helpers, rate limiting, auth-specific Redis keys |
websocket-patterns.mdc |
Endpoints, connection limits, broadcast helpers, WS-only JWT query-param exception, mock interview speak_delta + client session filter |
logging-patterns.mdc |
StructuredLogger, sanitize_log_value() / mask_email(), request context, sensitive data redaction, exc_info=True requirement, bulk-script safety |
google-oauth.mdc |
3-step OAuth flow, CSRF state in Redis, exchange-code pattern, open-redirect prevention |
email-and-misc-utils.mdc |
Gmail SMTP, resume parser, BYOK encryption |
frontend-js-strict.mdc |
TypeScript strict mode, null safety, anti-patterns table, event bus, no style= HTML attributes |
landing-page.mdc |
Landing page sections, screenshot showcase (.ss-tabs, .ss-panel, ssActivateTab), screenshot file locations, update workflow |
dashboard-home.mdc |
Dashboard application list — list/stats join workflow_sessions (hide workflow-failed), funnel stats (Applied card + response rate formula), search/filter/sort, toasts (notifyReady c:/f: dedupe keys, formatWorkflowFailureDetail, duplicate headline), isPlaceholderCompanyName / displayCompanyNameOrUnknown (Unknown employer label), card CSS, auth guard, EXISTS pagination / Load More dedupe |
ui-application-detail.mdc |
10-tab layout (Optimize CV + Practice Interview + Outreach), sub-tab patterns (Resume + Interview), cover letter card, ui/src/pages/cv-optimizer.ts, ui/src/pages/mock-interview.ts, ui/src/pages/hiring-outreach.ts, View posting / additional_locations, render functions, isPlaceholderCompanyName / Unknown employer / About this opportunity, company research notices (research_quality / staffing), all CSS classes |
accessibility.mdc |
WCAG 2.1 AA, heading hierarchy, landmarks, aria-label rules |
analytics-consent-onboarding.mdc |
PostHog, cookie consent API, onboarding tour |
chrome-extension.mdc |
Extension structure, popup vs service-worker submit paths, source_url → job_url, dev/prod IS_DEV URL toggle, popup design system, icon generation, landing-page mockup sync, extractPageContent split-view / detail-pane root (popup.js + service-worker.js), form autofill, InputMethod.EXTENSION |
adding-new-features.mdc |
Checklists: new endpoint, new agent, new tool, new migration, new static asset, new preference |
settings-page.mdc |
Settings tabs, Preferences tab, AI Setup tab, auto-save pattern, custom slider/toggle/dropdown, account-icon color variants, self-hosted Font Awesome |
frontend-build-pipeline.mdc |
Vite+TS page entries + esbuild CSS, asset_url(), manifest, CI/Docker, make build-frontend |
cli.mdc |
RoleMule CLI — Typer commands, rolemule_client, tests, docs |
mobile-responsive.mdc |
Breakpoints, navbar collapse (navbar-expand-xl landing / navbar-expand-lg dashboard), scrollable tab bars, app.css global mobile utilities, per-page patterns |
unit-testing.mdc |
~300 agent unit tests + ~1,050 API integration tests + 364 CLI mocked tests + 6 ASGI CLI integration tests; live_server_helpers; ASGITransport (not TestClient) for CLI ASGI; cov ≥97% includes root test_cv_*; NullPool; asyncio_default_fixture_loop_scope=session |
e2e-testing.mdc |
~1,380 Playwright tests; CI runs smoke only (e2e-smoke / @smoke); full suite is local/optional; setupAuth + page.route() patterns; JWT/cookie-consent setup |
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.
- 2mo ago First seen · 132 lines · 7,759 tokens per session scan A b62c45f35134
cursorrules is a cursor rule published in the GitHub repository eliornl/rolemule (38 stars, last pushed yesterday), licensed MIT. It adds 7,759 tokens to every session, about $0.0310 per session on Opus 5.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-30.
cursorrules compared with cursor rules from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| cursorruleseliornl/rolemule | Cursor rule | 38 | yesterday | MIT | A | 7,759 | Cursor |
| developmentkivo360/OmoiOS | Cursor rule | 80 | 1mo ago | Apache-2.0 | A | 0 | Cursor |
| ponytailDietrichGebert/ponytail | Cursor rule | 185k | 8d ago | MIT | A | 604 | Cursor |
| angular-20angular/angular | Cursor rule | 101k | yesterday | MIT | A | 0 | Cursor |
| dev-standardapache/superset | Cursor rule | 75k | today | Apache-2.0 | A | 1,147 | Cursor |
| prefer-assertions-over-defensive-checksprisma/orm | Cursor rule | 48k | yesterday | Apache-2.0 | A | 0 | Cursor |
| prefer-direct-imports-over-module-mocksprisma/orm | Cursor rule | 48k | yesterday | Apache-2.0 | A | 0 | Cursor |