rolemule: Cursor rule for Cursor

.cursorrules

cursorrules is a cursor rule for Cursor from eliornl/rolemule. It costs 7,759 tokens per session, scanned A, original, MIT.

An index of Cursor rules for RoleMule, an application whose coding guidance is stored in .cursor/rules/. It records conventions for Python, APIs, databases, authentication, file uploads, and security.

In plain words
What is it for?
Use it when developing RoleMule features, FastAPI endpoints, SQLAlchemy models, JWT authentication, uploads, migrations, or CodeQL security checks.
Why use it?
It gives an AI coding assistant the project-specific constraints needed to make compatible changes and avoid known security or data-handling errors.

Cursor rule for Cursor

Written for Cursor: installed under .cursor/. Also seen: mentions Cursor.

This is eliornl/rolemule's own configuration. It tells Cursor how to work on rolemule itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything rolemule configures →

Reuse

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.

Copy the file
curl -O https://raw.githubusercontent.com/eliornl/rolemule/main/.cursorrules
Clone the repo
git clone --depth 1 https://github.com/eliornl/rolemule

Made for: Cursor.

Wrote 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.

agentmods badge for cursorrules

README.md
[![agentmods](https://agentmods.dev/badge/rules/eliornl/rolemule/cursorrules/github.svg)](https://agentmods.dev/rules/eliornl/rolemule/cursorrules)
Your own site
<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.

agentmods 80×15 button for cursorrules

Your own site · 80×15
<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>
Per session 7,759 This file is loaded in full into every session.
When invoked 7,759 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 2mo ago against content hash b62c45f35134, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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.

.cursorrules · 132 lines

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

Read the full file on GitHub · 132 lines

Changes

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.

  1. 2mo ago First seen · 132 lines · 7,759 tokens per session scan A b62c45f35134

Subscribe to this mod's changes

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.

Related

cursorrules compared with cursor rules from other repositories

cursorrules next to 6 cursor rules from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
cursorruleseliornl/rolemuleCursor rule38yesterdayMITA7,759Cursor
developmentkivo360/OmoiOSCursor rule801mo agoApache-2.0A0Cursor
ponytailDietrichGebert/ponytailCursor rule185k8d agoMITA604Cursor
angular-20angular/angularCursor rule101kyesterdayMITA0Cursor
dev-standardapache/supersetCursor rule75ktodayApache-2.0A1,147Cursor
prefer-assertions-over-defensive-checksprisma/ormCursor rule48kyesterdayApache-2.0A0Cursor
prefer-direct-imports-over-module-mocksprisma/ormCursor rule48kyesterdayApache-2.0A0Cursor