November 12, 2025
A Brief Guide On
This post is compiles the work of a few days, and is going to be about how to just use Cursor agents for everything, and not spread thin across multiple platforms.

Being greeted with this empty screen once again made me feel a bit uneasy. Knowing that agents work best in a task-based format, the challenge was to create these tasks. The sheer expanse of this planning phase had just hit me.
I started off with the idea of a writing a PRD myself and keeping it in Notion as a working document because I wanted to speak to the agent only about code. I opened an empty Notion page and quickly changed my mind.
I’m trying to vibecode an entire app. Maybe I could try to vibecreate a PRD too.
Moving over to ChatGPT, I entered in my prompt.

Looking back, the response was incomplete but only because my prompt asked to generate a PRD and other supporting docs from the very limited information I put in. LLMs are also pretty bad at being a critic, so it did exactly as told while treating me like the intellectual I’m not.

ChatGPT generated a PRD (a very small, vague document), and also gave me the code for what it called “the building blocks of the app”.
Love-All — Product Requirements Document
Objective
Build an iOS app that allows tennis players to track their match scores quickly and accurately.
Target Audience
Casual tennis players, coaches, and amateur tournament organizers.
Core Requirements
Constraints
Non-Goals
A fairly large conversation later, and after specifically mentioning that I planned on doing this on Cursor, ChatGPT gave me a bunch of files in Markdown format so that I could move them into the project.

I am not a software engineer, and that gap became extremely blatant when it was time to finally start. I could just ask it to “create a screen where I can input and keep a track of points”, but I’d come to understand that being very specific is the best predictor of results and that statement would get no medals.
I asked ChatGPT what my first prompt should be. For all my talk about being specific to get the best results, this was a bad request because of how unspecific it was, and the starting prompt was a direct reflection staring me in the face.
ChatGPT gave me a file to add into the root folder (!) that contained the prompt to run (!!). The noob I was, I added it to my root folder and asked the agent to read and run it. Yikes.
Tasks to Start
match.settingsMatchSettings instead of hardcoding numbers.The agent did a surprising amount of work in one go. Too much, in fact. Watching it code, I started to worry about how many tokens were being consumed and if I’d have any left to do later tasks.
This brought me to:
The agent was relentless. It didn’t take a break ended up hitting my monthly (!) limit pretty quickly. This was the free plan, but it got me thinking that I need to break my tasks down into far more specific and controlled blocks.

I also had no tasks to follow these, so I was at an impasse yet again.
ChatGPT to plan. Cursor to code. Notion to document. Far too time consuming, especially for managing updates.
I was pleasantly surprised when I found out that I’m not the only one running into these problems. I was actually quite far from a few disastrous outcomes:

People on forums had worse problems than I did, and I was glad that I ran into a planning problem far earlier than many others. While scouring for better project structuring practices, I came across a video that took me through a structured system to vibe-code 1
Video summary
Cursor allows for the creation of a custom set of rules. Create these files and set them as “Rules” that Cursor will follow (most of the time). These are going to be instructions for the agent to:
My three major obstacles were now overcome:
All I had to do was tell the agent to read the newly generated PRD and the Task Management file and begin with the first task on the task list. In about 15 minutes, I reached this state:
Fifteen minutes!
Encountering bugs is a rite of passage for all who embark on this path. I was vibecoding. Agents hallucinate. It would be silly to not expect a handful of bugs. I could get really specific and granular with my subtasks to minimise bugs, but would I go down to zero? Nope.
Time to ride the vibecode train
NOV 01, 2025
Setting Cursor up for iOS coding
NOV 04, 2025
Going wrong, and then getting it right
NOV 12, 2025
A beginner's guide to resolving bugs
NOV 20, 2025