03-clean-code

A set of TypeScript coding guidelines for keeping code simple, readable, and easier to change.

In plain words
What is it for?
Use it when writing or reviewing TypeScript code, especially when you want simpler functions, safer types, clearer names, and fewer hidden effects.
Why use it?
It reduces duplicated, tangled, and unclear code by setting consistent rules for structure, naming, types, comments, and side effects.

Cursor rule for Cursor

Install

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.

agentmods
npx agentmods add rules/kpritam/gremlin-mcp/03-clean-code
Clone the repo
git clone --depth 1 https://github.com/kpritam/gremlin-mcp

Made for: Cursor.

Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 736 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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 $0.00000 $0.00736
Opus 5 $0.00000 $0.00368
Sonnet 5 $0.00000 $0.00147
Haiku 4.5 $0.00000 $0.00074

Measured 2d ago against content hash 1c7b23f1dacc, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

03-clean-code 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.

.cursor/rules/03-clean-code.mdc · 91 lines

How it starts

The opening of the file, as written. The whole thing — 91 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Code Guidelines

Core Principles

  • KISS: Keep code simple, avoid over-engineering
  • YAGNI: Don’t add features until they are needed
  • DRY: Eliminate duplication via abstraction or reuse
  • Small Functions: Each function should do one thing well
  • No Side Effects: Prefer pure functions; isolate effects at the edges

Naming & Structure

  • Use meaningful, self-explanatory names
  • Group related code logically; use barrel exports for modules
  • Keep types/interfaces close to where they’re used; extract only when shared
  • Constants should replace all magic numbers and strings

Comments & Documentation

  • Document public APIs and complex logic only
  • Use comments to explain why, not what
  • For tricky/effects-heavy code, describe gotchas and assumptions
  • Use TypeDoc (/** ... */) format

TypeScript Practices

  • Enable strict mode in tsconfig.json
  • Avoid any; prefer unknown with type guards
  • Use interface for objects, type for unions/intersections
  • Always type public function signatures explicitly
  • Prefer readonly types for immutability
  • Use discriminated unions for safer branching
  • Avoid type assertions except at clear boundaries (e.g., parsing JSON)

Error Handling

  • Never throw — instead:
    • Use Either / Option / Result types from effect libraries
    • Represent expected failures in the type system
  • Always handle errors at the boundary of the system (e.g., API layer)
  • Include contextual information in error values (not stack traces)

Effect-TS / Functional Code

  • Model side effects with typed effects, not untyped Promises
  • Prefer composition over nesting (pipe, flatMap, mapError)
  • Use Layer for dependency injection
  • Always annotate effect return types for clarity
  • Avoid calling unsafeRun* in core logic; restrict it to the application entrypoint

Testing

  • Write tests for public APIs and critical logic
  • Include edge cases, failure cases, and effectful code
  • Keep test code clean and readable; use descriptive test names

Read the full file on GitHub · 91 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. 2d ago First seen · 91 lines · 736 tokens per session scan A 1c7b23f1dacc

Subscribe to this mod's changes

03-clean-code is a cursor rule published in the GitHub repository kpritam/gremlin-mcp (9 stars, last pushed 11mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 736 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.