By Jesús David Melián Hernández, RPA/IA/BTP Expert | Vanture ESS
Over the last few months, I have been experimenting with different ways of integrating artificial intelligence into my daily life as a developer. My goal was not to have AI do the programming for me, but to find a way to work with it without losing control over the process or the quality of the code.
After several tests, adjustments, and a few failed experiments, I found a methodology that works very well for me with Windsurf. I am sharing my approach here in case it can serve as a guide for other developers who want to take advantage of AI without sacrificing best practices.
1. Define the hierarchy and context of the project
Before writing a single line of code, I prepare the project structure. Having the folders and hierarchy defined from the outset helps Windsurf work with context rather than improvising.
For example, I usually start with a structure like this:
/src
/api
/components
/services
/utils
/docs
FIX.md
UPDATES.md
prompt_context.txt
In the prompt_context.txt file, I include:
A brief description of the purpose of each folder, the main dependencies, and the programming style. It’s my quick ‘context injection’. If the AI gets confused, I simply resend it and that’s it, we’re back on track!
2. Real traceability: errors, changes, and automatic documentation
One of the features I value most about Windsurf is how it keeps two files up to date that act as a technical log for the project:
·FIX.md – Record any errors detected, their cause, and how they were resolved.
·UPDATES.md – Summarises improvements, new features and relevant changes.
When I request ‘documenta’ or ‘update documentation,’ Windsurf completes both files according to my latest changes. This prevents information from being lost along the way and makes traceability almost automatic.
3. Manual commits to ensure quality
Even though AI helps, I still prefer to make commits manually.
I keep them small, atomic, and thoroughly reviewed. This allows me to:
·Check each block before confirming it.
·Maintain a clean record that is easy to reverse.
·Detect logical errors that AI might not see.
Furthermore, I am very strict about unnecessary files: no temporary files, no “noise”. I prefer a clean and consistent repository.
4. Reference files to maintain style and consistency
I maintain a small set of sample files that are not part of the functional code, but which show how I like to structure classes, functions, imports, etc.
These ‘guide files’ help Windsurf understand my style and generate modules that fit in with the rest of the project without me having to remind it every five minutes.
5. AI does not replace the developer’s judgement
I thoroughly review everything Windsurf generates before integrating it. I don’t seek speed at all costs, but rather fluidity with quality.
For me, the sweet spot is in combining:
·Human precision,
·with the generation capacity and context of AI.
AI helps, but the final decision always has to come from us.
The value of a clear structure and guided flow
Using Windsurf does not mean that the AI programmes for you, but rather that you define how it should do so for you.
With a well-designed structure, strict version control, and consistent documentation, Windsurf becomes a technical assistant that increases productivity without compromising quality.
03 - October - 2025
30 - September - 2025
13 - June - 2025