It was 11 PM on a Tuesday.
I was staring at my screen, exhausted, trying to get an AI model to generate a clean authentication module for a NestJS project. Forty-five minutes. That is how long I had been copy-pasting vague prompts like "write auth code" and "fix this bug."
Every response was generic. Unusable. Frustrating.
The AI was not failing. I was.
I was speaking to it the way I mumble ideas to myself in the mirror, hoping the reflection will somehow understand the full picture.
Then something shifted.
I remembered how I structure my code. Every function has a purpose. Every variable has a name that means something. Every module follows a pattern.
So why was I treating my communication with AI any differently?
That night, I stopped asking and started briefing. I assigned the AI a role. I described the codebase. I gave a precise command. I even included an example of the output format I expected.
Within minutes, I had exactly what I needed.
That was the moment.
The secret behind perfect AI answers is not the model. It is the human holding the pen.
Prompt engineering frameworks are not tricks. They are the grammar of a new language. And learning them changed everything for me.

Here is how I choose which one to use.
Picture this: I sit down with my coffee, open my laptop, and read the mood of the work in front of me. A code review? A creative draft? A debugging marathon at midnight? Each situation calls for a different tool.
RCCE when I need expertise. CARE when I need clarity. TAG when I am writing for an audience. BAB when I am telling a story. RISE when I am deep in technical work. Chain of Thought when the problem is layered. Few-Shot when I need the AI to match a specific style.
The key is not to memorize them all.
It is to recognize the situation and let the situation choose the framework.
If I had to pick one framework that changed how I collaborate with AI, it would be this one.
It is the closest thing to briefing a senior developer before handing over a task.
Example:
Role: You are a senior Angular architect reviewing a NestJS backend codebase.
Context: I am building a SaaS application using Angular 17 with standalone components and a NestJS API connected to Supabase. The auth module is becoming difficult to maintain as the team grows.
Command: Refactor the auth module to follow a clean architecture pattern with clear separation between controllers, services, and repositories. Provide the folder structure and key files.
Example: Here is the current structure I want to improve:
src/auth/auth.controller.ts src/auth/auth.service.ts src/auth/auth.module.ts
The magic of RCCE is that it removes ambiguity before the AI ever starts typing.
You are not asking for help. You are briefing an expert.
In my daily work with Angular, NestJS, and Supabase, this is my first move whenever I need domain-specific output that respects the conventions my team already follows.
In my professional work, I have learned that vague requests are expensive.
Whether you are delegating to a teammate or an AI, clarity is kindness. This framework is how I ensure every task starts with complete understanding.
Example:
Context: I am onboarding a new developer to our Angular project. The component lifecycle is creating memory leaks because subscriptions are not being cleaned up properly.
Action: Explain the proper pattern for managing RxJS subscriptions in Angular 17 using the
takeUntilDestroyedoperator and async pipes.Result: A concise guide with before and after code examples that the new developer can apply immediately.
Expectation: Use practical examples from a real CRUD application. Keep it under 400 words. Include a checklist at the end.
CARE transforms vague requests into precise instructions.
It grounds the AI in reality, defines success, and sets constraints. I reach for this whenever I need accountability, not just answers.
As someone who is constantly improving my English and expanding my communication skills, this framework has become my compass.
It forces me to answer three questions before I write a single word: what, for whom, and why.
Example:
Task: Write an article explaining how AI agents can analyze developer profiles and recommend relevant open-source projects.
Audience: Junior developers and computer science students in Morocco and North Africa who are looking for their first contribution.
Goal: Inspire them to start contributing to open source by showing them that AI can match their skills with the right projects.
Content that resonates with everyone usually resonates with no one.
TAG tells the AI whether to use technical jargon or simple language, formal or casual tone. Beyond code, I use this whenever I am drafting a technical document or building a narrative around resilience and human struggle. It shapes the voice to fit the listener.
This framework is the backbone of every story I tell, whether in a client pitch, a blog post, or a conversation with a friend.
People do not remember data.
They remember journeys.
Example:
Before: I was struggling to integrate local AI models like Ollama and CodeLlama into my VS Code workflow. The documentation was scattered, and every tutorial assumed I was using OpenAI's API.
After: I wanted a seamless setup where I could prompt local models directly from my editor without relying on external APIs or worrying about data privacy.
Bridge: I built a custom VS Code extension that connects to locally running models through a simple configuration file, allowing developers to generate code, refactor functions, and write documentation without leaving their environment.
BAB creates emotional momentum. It paints the struggle, shows the ideal outcome, and presents the path forward.
This framework resonates deeply with my own journey. Like anyone who has faced setbacks, including my entrepreneurial failures, I have learned that real change starts with acknowledging where you are, envisioning where you want to be, and building the bridge to get there.
When I am deep into a complex debugging session at 2 AM, this is the framework I trust.
It transforms the AI from a vague assistant into a disciplined engineering partner who thinks exactly as systematically as I do.
Example:
Role: You are a Supabase specialist helping me optimize my database schema.
Input:
CREATE TABLE projects ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), name text, user_id uuid REFERENCES users(id), created_at timestamp DEFAULT now() );Steps:
- Analyze the schema for missing indexes and constraints.
- Suggest Row Level Security policies for multi-tenant access.
- Recommend a migration strategy if the schema needs to change in production.
Expectation: Provide the improved schema, a brief explanation for each change, and a checklist I can use during code review.
RISE is my go-to when exploring AI agents and developer tools, such as VS Code extensions powered by local models like Ollama, CodeLlama, and Mistral.
Technical problems demand precision, and this structure delivers exactly that. No hallucinations. No irrelevant solutions. Just disciplined, logical output you can actually use.
I have a simple rule: if a problem makes me pause for more than ten seconds, I ask the AI to show its work.
This habit has saved me from more bad decisions than I can count.
Example:
I am building an AI agent that analyzes a developer's GitHub profile and recommends three open-source projects they could contribute to. The agent has access to the user's top languages, recent commits, and starred repositories.
Explain step by step how the agent should rank and recommend projects. Consider skill match, issue difficulty, community activity, and the user's past contributions. Show your reasoning before giving the final algorithm.
Chain of Thought forces the model to slow down.
It breaks the problem into pieces, evaluates each one, and builds toward an answer you can verify. In a fast-changing tech world, forcing yourself and your tools to reason carefully is not a luxury.
It is a necessity.
This is the framework I use when I want the AI to speak my language.
Whether I am formatting logs, structuring API responses, or writing in a specific narrative voice, examples are my fastest teacher.
Example:
I want to generate consistent commit messages for my Angular and NestJS projects. Here is the format I follow:
Input: Added user authentication with JWT tokens Output:
feat(auth): implement JWT-based authentication flowInput: Fixed memory leak in dashboard component Output:
fix(dashboard): resolve memory leak caused by unsubscribed RxJS streamInput: Updated README with environment setup instructions Output:
docs(readme): add local development environment setup guideNow generate a commit message for: Input: Refactored the project service to use Supabase realtime subscriptions instead of polling
Few-Shot Prompting is the closest thing to pair programming with a machine.
Instead of describing what you want in abstract terms, you show it. The model detects the pattern and applies it. It reflects a belief I hold deeply: the best way to teach, whether human or machine, is to show rather than tell.
That Tuesday night taught me something I now carry into every interaction with AI.
The frustration I felt at 11 PM was not the model's fault. It was a mirror reflecting my own lack of clarity. Once I learned to structure my requests with the same discipline I apply to my code, the machine started responding like the brilliant partner it truly is.
These seven frameworks have saved me hours. They have improved the quality of everything I produce. And they have made me a better communicator, not just with machines, but with people.
I still remember the relief of that first successful prompt. The way the code appeared on my screen, exactly as I had imagined it.
It felt like breaking through a wall I had built myself.
There is a quiet truth I have come to understand after months of working with these frameworks.
The AI does not care how smart you are. It cares how clear you are. Your brilliance means nothing if the machine cannot translate it. And your clarity means everything if it can.
So here is my challenge to you: try just one framework today. Pick the one that speaks to your current challenge. Apply it deliberately. Notice the difference.
AI does not replace the human mind.
It amplifies it.
And the clearer your mind, the more powerful the amplification.
Get In Touch
Although I’m not currently looking for any new opportunities, my inbox is always open. Whether you have a question or just want to say hi, I’ll try my best to get back to you!
Send a MessageDesigned & Built by Youssef Jounaid
