Issue 47 - PLAN.md is the Best AI Workflow I’ve Found So Far
Dart Implied Parameters. Flutter Widget Preview. Android Side Loading. Mistakes in Code Reviews. What's New in Flutter 3.38. My 17 Minute AI Workflow and much more.
I’ve tried a ton of different AI workflows, watched countless YouTube videos, read blog posts, tried different approaches. And here’s the best one I’ve found: it’s called PLAN.md. It’s actually pretty old-school.
In the PLAN.md workflow, you describe what you want, create a plan, iterate on it with course corrections, verify it’s right, and only then ask AI to implement it. Yeah, I know. Sounds boring. But it works.
In my previous workflow, AI was making me slow. I’d describe something, it’d start coding immediately, and suddenly I’m tracking changes across 10 different files trying to figure out what’s happening.
And, sometimes it’d just hallucinate APIs that don’t exist and start implementing them. I wouldn’t catch it until way too late. The code changes were scattered everywhere. Hard to track, hard to review, and very easy to miss mistakes.
Here’s my workflow now:
Speak and transcribe what I want using Super Whisper.
Ask AI to grammar correct and make it transcribe more readable.
After I’m satisfied with the prompt, I ask AI to create a Plan.
If the feature is big, I ask AI to break it into separate phases in the Plan document.
Repeat and iterate on the Plan until I’m satisfied.
Ask AI to implement the feature based on the Plan.
Review code in each phase, test it, make changes manually if necessary, and keep going.
This is the prompt snippet I use for each feature:
<Describe problem here>
Please analyze the problem and create a plan first in DATE_FEATURE_NAME_PLAN.md file.Then for implementation, I create a new conversation to keep it context-free and only use the info described in the plan:
Please implement the feature described in @FEATURE_NAME_PLAN.md plan step by step.The advantages of this approach:
It’s way easier to verify one document than track AI changes across your entire codebase.
You catch hallucinations early—when AI says it’ll use some API, you can verify it exists before any code gets written.
Catching errors in a plan doc is way cheaper than debugging implemented code.
You can share more context in the plan if AI missed something. Like components available in your existing design system or if you want to replicate an API similar to another one.
Your PLAN.md can now go into version control, which serves as documentation and a reference for AI to use for future updates or fixes.
However, it does feel slower upfront. You’re speaking, transcribing, fixing grammar, iterating on plans. Sometimes I’ll iterate on a plan 5 times before I’m satisfied.
But because of this workflow, what used to take a few hours of chaotic implementation now takes maybe an hour of careful planning and verification. That’s how we should be doing implementation anyway. Thinking and planning before writing any code.
How much time are you really saving when AI starts coding immediately ? What workflow works for you ? Hit reply in the comment
Flutter with AI Workshop
AI won’t replace you. But a person who knows how to use AI will. If you are a Flutter developer and want to leverage AI in your day-to-day workflow, I am planning to run a workshop.
Checkout more details on flutterwithai.com
💡Flutter/AI Tips:
1. What do you call that thing we just changed?
2. New Dart Implied Parameters Proposal
3. maxCount in Badge in 3.38
✍🏻 Articles to read:
1. Flutter Widget Previewer by flutter docs
I like Custom @Preview configuration for the app-specific theme or wrapping it into a certain widget show widget in initial state in Preview. Also, @MultiPreview helps in multi-platform designs with different sizes.
2. What We Talk About When We Talk About Sideloading by Marcprux
It bears reminding that “sideload” is a made-up term. Putting software on your computer is simply called “installing”, regardless of whether that computer is in your pocket or on your desk. This could perhaps be further precised as “direct installing”, in case you need to make a distinction between obtaining software the old-fashioned way versus going through a rent-seeking intermediary marketplace like the Google Play Store or the Apple App Store.
You, the consumer, purchased your Android device believing in Google’s promise that it was an open computing platform and that you could run whatever software you choose on it. Instead, starting next year, they will be non-consensually pushing an update to your operating system that irrevocably blocks this right and leaves you at the mercy of their judgement over what software you are permitted to trust.
3. Mistakes I See Engineers Making in Their Code Reviews by Sean goedecke
Code review is not the time for you to impose your personal taste on a colleague. However, you can and should gatekeep AI-generated PRs as much as you want.
4. Why Your Boss Isn’t Worried About AI by Boyd
In programming, everything is deterministic, making bugs easy to find. However, in AI, even a slight change in a prompt can lead to significantly different answers.
In my opinion, tracking bugs in AI system is challenging, as fixing them in the training model or dataset may not prevent others from encountering the same issue due to different prompts.
📺 Videos to Watch:
1. What’s New in Flutter 3.38 and Dart 3.10
My favorite features from this release:
Dart shorthand not only for enum but also for inferring class context, which can be used in functions as well.
Web config YAML makes it easy to share configurations across teams rather than setting them up in CLI arguments.
Experimental Widget Preview Support in DevTools. 🥳
2. What Is the Dark Web? A Guide to the Dark Side of the Internet
I’ve heard about the dark web in hacker movies. I came across this via YouTube’s recommendation. After watching it, I gained some insights.
We only access 5% of the internet; the other 90% comprises private documents, with the remaining 5% being the dark web.
Dark web is like a risky neighborhood, and it’s advised not to explore it.
The dark web provides anonymity, ensuring that your identity and location remain unknown.
To access it, tools like TOR, Sandbox, Firewall, and VPN are recommended.
3. Why Shopify CEO Loves Raycast
Today I learned: Map the Hyper key with a script and use the browser as a separate app through a script command. Turn websites into apps and launch them using Raycast commands.
📦 Code from Packages
1. TapTest
TapTest is a revolutionary testing framework built on top of Flutter tester that encourages writing useful, user-facing E2E tests. Tests interact with your app the way users do - by tapping buttons and interface elements, validating labels content, checking elements presence and capturing visual snapshots.
Because TapTest tests your app through its GUI, your tests are usually resilient to code refactors and implementation detail changes. Go wild, restructure your entire app, change state management, its architecture and as long as the user interface remains consistent, your tests will continue to give you confidence your app works!
2. Mix
Mix is a simple and intuitive styling system for Flutter, enabling the creation of beautiful and consistent UIs with ease.
Mix brings industry-proven design system concepts to Flutter. It separates style semantics from widgets while maintaining an easy-to-understand and manageable relationship between them.
Easily compose, merge, and apply styles across widgets.
Write cleaner, more maintainable styling definitions.
Apply styles conditionally based on the BuildContext.
3. PipeX State Management
PipeX is a Flutter library designed for state management, utilizing pipeline architecture. It focuses on precise reactivity and streamlined code to enhance development.
📚 Quote from Books
🔖Post I Found Useful
1. Doing Well in Your Courses
2. How to Demo
3. Advanced Time Management.…🧵
🛠️ Tool I Found Useful
1. Pubgrade” Extension for VS Code Is Live!
2. WhatsApp MCP Server
This project is an MCP server that lets an LLM access and interact with your personal WhatsApp via the WhatsApp Web multidevice API. It stores messages locally in SQLite and provides tools to search, read, send texts and media, and download files. Setup requires running a Go bridge and a Python MCP server and caution is needed to avoid data exfiltration risks.
😂 Fun and Memes
1. NO
2. Phone Numbers for Use in TV Shows, Films and Creative Works
👋🏻 That’s it, Folks
I am currently open for consultation part-time/full-time, specialized in mobile development with Android and Flutter. So if you are looking for someone to:
Build product architecture from scratch
Train existing developers to level up
Fix major bottlenecks in legacy codebase
Improve code quality
And most importantly, ship things faster
then reach out to me at info@burhanrashid52.com.













