How I set it up

My real system of rules for AI, which I build apps and websites on. Behind it are thousands of hours of working with AI, and every rule has its reason, often some disaster. As of 25 October 2026.

🧰 What I work with

For code and websites

  • Cursor as an editor with an AI agent.
  • Claude Code as a second agent, in VS Code or the terminal. Both read the same rules.
  • Mainly the Claude Opus 5.5 model on the highest thinking level. Why that one, I explain in Which AI for what.

Grok

  • In Cursor it does things like translations into English for me, so I save Claude credits.
  • I use it for lots of other things too. Grok and ChatGPT both have a good voice mode, and lately I like Grok's the most.

🧠 The core rules, always at hand

One file that every chat in Cursor and Claude Code sees. It holds only what must always apply. Details on individual topics are elsewhere, see Topic map.

What's in it

  • Who I am, how to talk to me, and when to ask and when to go ahead without asking.
  • Report results in three parts: verified, inferred, not verified.
  • At a crossroads, options A, B, C, so I can answer with one letter.
  • Guardrails, the git rhythm and the topic map.

One source for two tools

  • The original is a Cursor rule set to “always apply”.
  • Claude Code can't import a file like that, so a small hook makes a copy of it at every start and after every edit. CLAUDE.md loads that copy.
  • Only the original is edited. The copy never drifts, because a script writes it.

When it gets lost

  • In a long chat, or after it's compressed into a summary, the rules can fade away.
  • That's why they contain an instruction: when you feel you're losing context, read the core again.
  • How I can tell is in the very next section.

😄 Persona: an AI that's fun to work with

My AI talks about itself in the feminine (Czech grammar shows it in every verb), addresses me differently every time and has its own catchphrases. It's for fun, but there's a practical reason too.

How it addresses me

  • It rotates Czech nicknames: Pumpy, Pumpíku, Pumpajz, pane Řediteli (“Mr Director”), Jelito (a cheeky one, literally “blood sausage”) and a few more. Not in every message, so it's not overdone.
  • Instead of “What can I do for you?” it asks “Co se stalo?” (“What happened?”).

Catchphrases

  • Happy Day: done, it worked.
  • Welcome to the Jungle: there's a lot going on, chaos.
  • Je to v Cajku (“it's all good”): checked, fine.
  • Sorry Bejku, já jsem zas nalitá jak Delfín (roughly “Sorry, mate, I'm drunk as a dolphin again”): when it makes a mistake.

Why it makes sense

  • The persona is a canary in the coal mine. When the AI stops talking in the feminine and stops using my nicknames, I know it has lost the rules.
  • At that moment I tell it to read them again, before it does something the rules wouldn't allow.

🗺️ Topic map and cards

I have apps, several websites and a pile of notes in one repo. If the AI kept everything in its head all the time, it would waste space and mix topics together.

How it works

  • The core has only a short table: the topic, the words it's recognised by, and the card the AI should open.
  • A card is a short overview of the topic and says which document to open next. The workflow and work in progress live only in that document.
  • Topics don't mix. Being in the same repo doesn't make them one project.

What it brought

  • The core stays short and the AI follows it better.
  • The details of a topic load only when it's being discussed. That saves space and money.
  • I have ten cards; a new one is added only once I approve it.

🛑 Guardrails in a hook

A rule can be overlooked, a script can't. One hook guards commands in Cursor and in Claude Code. A general version to copy is in Guardrails and safety.

Always forbidden

  • Rewriting git history (force push, reset, rebase, rewriting the last commit).
  • Deleting and overwriting files in the cloud, changes to storage settings.
  • Bumping the app version.

Only after confirmation

  • Push, uploading the installer, throwing away changes in files, building the installer, deleting deployments.
  • In Claude Code a push goes through without a dialog when I clearly say it in my last message, pick an option that includes the push, or when it goes to a side branch. Just “no push” and the exception is off.

Projects

  • The hook once stopped even my own AI when it was only writing test text that contained a forbidden command. Nothing was run, but the hook does what it should.
  • Every rule has a note with a date and a reason. In six months I know why, and so does the AI.

🔁 Git rhythm and previews

Saving

  • The AI commits by itself, but only at the end of a complete piece of work, 1–3 commits.
  • Several windows often run on the repo at once, so it commits with the files listed. Once over a hundred deleted pages from another window got mixed into a commit.

Out only on instruction

  • A push to the main branch deploys the websites right away, so things go out only on my instruction. Before that, the AI runs a check and lists what will go out.
  • After the push it checks the tests and the deploy. When something fails, the fix takes priority.

Previews

  • Bigger changes go to a side branch first. It has its own preview address of the website.
  • I go through it there and only then say “merge and push”.
  • Waiting for a build has a 5-minute limit. When a token expires, the AI says so instead of quietly waiting. That rule, too, comes from one stuck evening.

📱 Notes from my phone

When I'm not at the computer

  • I write from the Claude app on my phone. It works in the cloud on the same repo.
  • It may only add a note to the inbox and send it in its own side branch. It changes nothing else and doesn't touch the main branch.

At the computer

  • I say “process the inbox” and the AI sorts the notes into the “For later” overview.
  • That way ideas don't get lost and don't mix into work in progress.

📋 Templates to copy

Edited pieces of my system, without private things. More templates (rules for agents, AGENTS.md and the hook) are on the Rules for agents and Guardrails and safety pages.

A persona for your rules CursorClaude CodeChatGPTGrok
## Persona
- Talk about yourself as [a woman / a man / whatever you like], even during technical work.
- Address me by turns: [nickname 1, nickname 2, nickname 3]. Not in every message, and differently every time.
- Instead of “What can I do for you?”, ask “[your sentence]”.
- Catchphrases: “[phrase]” means done, “[phrase]” means chaos, “[phrase]” instead of an apology.
- When you notice you're no longer using the persona, it's a sign the rules have dropped out. Read them again before you continue.
A topic map for your core rules CursorClaude Code

For your core rules. Cards are short files, each about one topic.

## Topic map
Topics don't mix. Before you answer, compare my message with the When column. Open every row that matches in the Open column, and only then answer.

| Topic | When | Open |
|---|---|---|
| [App] | [app name, version, build, installer] | [cards/app.md] |
| [Website] | [domain, page, deploy] | [cards/web.md] |
| [Music] | [song, lyrics, Suno] | [cards/music.md] |

A card is a short overview: what it is, where it lives, what not to mix it with and which document to open next. The workflow and work in progress belong in the document, not in the card. Add a new row only after I agree.