I built a CLI that writes AI-assistant rules for your repo, then vibe-coded two side projects with it and the code actually held up

I built a CLI that writes AI-assistant rules for your repo, then vibe-coded two side projects with it and the code actually held up

I made a tool called Payo. It interviews you about your stack (framework, DB, testing, file layout, git conventions) and generates the guidance files your AI coding assistant reads, CLAUDE.md, .cursorrules, copilot-instructions, AGENTS.md. The idea is to stop re-explaining your project every cold chat and let the assistant follow your conventions from prompt #1.

I wanted an honest test, not a demo. So I took two of my own side projects, ran Payo on them, and vibe-coded. Prompt, accept, move on, minimal hand-holding.

The part I cared about was reviewing the code afterward. Normally after a vibe-coding spree you find a mess. Inconsistent naming, files wherever, a different ORM than the rest of the repo, tests skipped. This time it was consistent. Folder structure respected, naming steady, tests in the right place. Basically what I'd have written if I'd been careful.

Takeaway for me: vibe coding isn't inherently sloppy. It's sloppy when the AI has no rules to improvise within. Hand it your conventions first and the output fits the project instead of fighting it.

It's MIT, runs with no install:

npx @uge/payo

Repo and details: https://github.com/uttam-gelot/payo

Happy to answer questions. Curious if others have found a better way to keep AI output consistent across chats.

https://i.redd.it/d0bjc1fyu7ah1.gif

reddit.com
u/uttam_b — 7 days ago
▲ 5 r/CursorAI+1 crossposts

Made a tool to auto-generate .cursorrules from your actual stack

https://i.redd.it/xijc5m69817h1.gif

Cursor is great until it improvises on the parts I never told it about — the data layer, where files belong, naming that doesn't match the repo. .cursorrules fixes that, but I never kept mine current, so Cursor kept making those structural calls for me.

Payo interviews you about your project and writes .cursorrules + .cursor/rules/** tailored to it, so Cursor follows your conventions from the first prompt instead of guessing. One-time setup, then you stop re-explaining.

Try it now:

  npx @uge/payo
  # or
  bunx @uge/payo

The same questionnaire also outputs the equivalent for Claude, Copilot, Codex, Windsurf, and Antigravity, if you switch tools — and it covers 25 frameworks / 24 data layers / 4 DBs across TS/JS, Python, Go, and Rust.

Curious what you all keep in .cursorrules — what rule has made the biggest difference for your output? And if you know a stack deeply, I'd really value help adding it or improving the defaults for one already supported — feedback

and PRs welcome.

Repo: https://github.com/uttam-gelot/payo

Site: https://payo.uttamgelot.com

reddit.com
u/uttam_b — 2 days ago
▲ 2 r/cursor

Made a tool to auto-generate .cursorrules from your actual stack

Cursor is great until it improvises on the parts I never told it about — the

data layer, where files belong, naming that doesn't match the repo. .cursorrules

fixes that, but I never kept mine current, so Cursor kept making those structural

calls for me.

Payo interviews you about your project and writes .cursorrules + .cursor/rules/**

tailored to it, so Cursor follows your conventions from the first prompt instead

of guessing. One-time setup, then you stop re-explaining.

Try it now:

  npx @uge/payo
  # or
  bunx @uge/payo

The same questionnaire also outputs the equivalent for Claude, Copilot, Codex,

Windsurf, and Antigravity, if you switch tools — and it covers 25 frameworks /

24 data layers / 4 DBs across TS/JS, Python, Go, and Rust.

Curious what you all keep in .cursorrules — what rule has made the biggest

difference for your output? And if you know a stack deeply, I'd really value

help adding it or improving the defaults for one already supported — feedback

and PRs welcome.

Repo: https://github.com/uttam-gelot/payo

Site: https://payo.uttamgelot.com

u/uttam_b — 23 days ago