Abhir1902/Karcursifyeo

Open-source Cursor AI toolkit merging Karpathy's coding rules, Cursor config, Graphify's knowledge-graph tooling — cut L

Stars 2 Language Python Last updated 2026-06-25 Source on GitHub @Abhir1902

Actual rules from this repo

Path in source repo: .cursor/rules/kaprpathy-guidelines.mdc · format: mdc

---
description: Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.
alwaysApply: true
---

# Karpathy behavioral guidelines

Behavioral guidelines to reduce common LLM coding mistakes. Merge with project-specific instructions as needed.

**Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.

## 1. Think Before Coding

**Don't assume. Don't hide confusion. Surface tradeoffs.**

Before implementing:
- State your assumptions explicitly. If uncertain, ask.
- If multiple interpretations exist, present them - don't pick silently.
- If a simpler approach exists, say so. Push back when warranted.
- If something is unclear, stop. Name what's confusing. Ask.

## 2. Simplicity First

**Minimum code that solves the problem. Nothing speculative.**

- No features beyond what was asked.
- No abstractions for single-use code.
- No "flexibility" or "configurability" that wasn't requested.
- No error handling for impossible scenarios.
- If you write 200 lines and it could be 50, rewrite it.

Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.

## 3. Surgical Changes

**Touch only what you must. Clean up only your own mess.**

When editing existing code:
- Don't "improve" adjacent code, comments, or formatting.
- Don't refactor things that aren't broken.
- Match existing style, even if you'd do it differently.
- If you notice unrelated dead code, mention it - don't delete it.

When your changes create orphans:
- Remove imports/variables/functions that YOUR changes made unused.
- Don't remove pre-existing dead code unless asked.

The test: Every changed line should trace directly to the user's request.

## 4. Goal-Driven Execution

**Define success criteria. Loop until verified.**

Transform tasks into verifiable goals:
- "Add validation" → "Write tests for invalid inputs, then make them pass"
- "Fix the bug" → "Write a test that reproduces it, then make it pass"
- "Refactor X" → "Ensure tests pass before and after"

For multi-step tasks, state a brief plan:
```
1. [Step] → verify: [check]
2. [Step] → verify: [check]
3. [Step] → verify: [check]
```

Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.

## 5. Use Graphify for Codebase Queries

**Query the graph first, then read files.**

For EVERY chat query that requires looking at the codebase:
- First check the flag: if `.cursor/graphify.disabled` exists, skip graphify and use normal file reads/searches.
- Otherwise, you MUST consult the graph first using the `graphify` CLI (`graphify query/explain/path/affected`) against `graphify-out/graph.json` to look up the project structure, file relationships, and dependencies before any raw file reads or searches.
- Fall back to direct file reads only when the graph lacks the answer (then read the specific files it points to).
- To refresh the graph, run `graphify update .` (see `.cursor/commands/graphify.md`).
- Graph updates are disabled if `.cursor/graphify.disabled` exists; toggle with `/graphify on|off`.

## 6. Keep the Graph in Sync with Git

**Incoming git changes update the graph only — never the file structure.**

Every time the project is updated, check for incoming changes on the current branch (use git commands such as `git fetch`, `git status`, `git log HEAD..@{u}`):
- After a `git pull`,
- after a merge into the current branch,
- or when the remote tracking branch has new commits.

If any of these occurred:
- Regenerate/update the graph with `graphify update .` (see `.cursor/commands/graphify.md`) so it reflects the new state of the code, unless `.cursor/graphify.disabled` exists.
- (A `postToolUse` hook in `.cursor/hooks.json` also reminds you automatically after agent-run `git pull`/`git merge`.)
- Do NOT move, rename, delete, or reorganize any files or folders as part of this sync - it is a graph-only refresh.

---

**These guidelines are working if:** fewer unnecessary changes in diffs, fewer rewrites due to overcomplication, and clarifying questions come before implementation rather than after mistakes.

View raw on GitHub

Why this is listed

This repository appears on Cursor Rules Live because it matches the tracker's GitHub Search criteria (cursor-rules) and was active in the recent indexing window. The tracker refreshes every 15 minutes, so the metadata above reflects the state at the most recent index pass. If the data here looks stale, the source repository may have been archived or moved out of the tracked topic; the next cron tick will reconcile.

Similar in this tracker

Explore by category