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/freshworks-developers/fw-dev-toolsWrote 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/freshworks-developers/fw-dev-tools/complexity-reduction)<a href="https://agentmods.dev/rules/freshworks-developers/fw-dev-tools/complexity-reduction"><img src="https://agentmods.dev/badge/rules/freshworks-developers/fw-dev-tools/complexity-reduction/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/freshworks-developers/fw-dev-tools/complexity-reduction"><img src="https://agentmods.dev/badge/rules/freshworks-developers/fw-dev-tools/complexity-reduction.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.01380 |
| Opus 5.5 | $0.00000 | $0.00552 |
| Sonnet 5.5 | $0.00000 | $0.00276 |
| Haiku 4.5 | $0.00000 | $0.00138 |
Grade A, and why
complexity-reduction 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 — 204 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Function Complexity Reduction Patterns
When to use: fdk validate shows "Function 'X' has a complexity of Y. Maximum allowed is 7."
Target: Keep complexity ≤ 7 (aim for ≤ 5 for maintainability)
Quick Fixes (Most Common)
1. Sets for Multiple OR Comparisons
Problem: Each || or === adds +1 complexity
// [INVALID] WRONG: Complexity 12
function matchesPriority(ticket, filter) {
const p = (ticket.priority || ticket.urgency || 0).toString();
if (filter.includes('high') && (p === '2' || p === '3' || p === 'high' || p === 'urgent')) {
return true;
}
return false;
}
// [VALID] CORRECT: Complexity 3
const HIGH_PRIORITIES = new Set(['2', '3', 'high', 'urgent']);
function matchesPriority(ticket, filter) {
const p = (ticket.priority || ticket.urgency || 0).toString();
if (filter.includes('high') && HIGH_PRIORITIES.has(p)) {
return true;
}
return false;
}
2. Lookup Objects (Replace if/else chains)
// [INVALID] WRONG: Complexity 6+
function getPriorityLabel(priority) {
if (priority === 1) return 'Low';
else if (priority === 2) return 'Medium';
else if (priority === 3) return 'High';
else if (priority === 4) return 'Urgent';
else return 'Unknown';
}
// [VALID] CORRECT: Complexity 1
const PRIORITY_LABELS = { 1: 'Low', 2: 'Medium', 3: 'High', 4: 'Urgent' };
function getPriorityLabel(priority) {
return PRIORITY_LABELS[priority] ?? 'Unknown';
}
3. Guard Clauses (Reduce nesting)
// [INVALID] WRONG: Complexity 5+ (nested conditions)
function processTicket(ticket) {
if (ticket) {
if (ticket.status === 'open') {
if (ticket.priority >= 3) {
if (ticket.assignee) {
return handleUrgent(ticket);
}
}
}
}
return null;
}
// [VALID] CORRECT: Complexity 4 (early returns)
function processTicket(ticket) {
if (!ticket) return null;
if (ticket.status !== 'open') return null;
if (ticket.priority < 3) return null;
if (!ticket.assignee) return null;
return handleUrgent(ticket);
}
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 · 204 lines · 0 tokens per session scan A 3faf2ed97872
complexity-reduction is a cursor rule published in the GitHub repository freshworks-developers/fw-dev-tools (5 stars, last pushed 29d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,380 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
pi-en
PI Cognitive AI. Trigger: $pi/coding/dev/code/architecture/API/refactor/debug/bug/error/exception/crash/timeout/performance/optimization/test/compile/git/release/verify/review/CR/product/requirements/ops/growth/design/team/support, or deep/2+ failures/looping/stuck/giving-up/retry/nevermind.
ponytail
Ponytail, lazy senior dev mode. Always pick the simplest solution that works.
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.
prefer-assertions-over-defensive-checks
Prefer assertions over defensive checks when data is guaranteed to be valid.
prefer-direct-imports-over-module-mocks
Prefer extracting a testable core over vi.mock / vi.resetModules when unit tests need to reach production logic entangled with config, env, or singletons.