I’ve completed a few major programming/learning projects now using a lot of guidance from ChatGPT and Claude. After the first project, and after milestones in subsequent projects, I’ve paused for some meta-chatting, working with my AI assistants to analyze our interactions and find ways that I could get better at using the tools.
In other words, I frequently ask ChatGPT, “How can I help you help me?”
Reference documents are one of the most critical aides in optimizing your AI time. It’s very important to understand and accept that your typical AI assistant does NOT keep your interactions word-for-word in memory, and doesn’t re-read all your interactions before each new response.
So, ChatGPT might write line-by-line code for you or tell you the best way to do something, but it won’t “remember” that line-by-line code later and it won’t always recall exactly which choice you made.
Feeding reference documents into the conversation, especially when starting a new session, is a very effective way to give the AI context and avoid pitfalls where it seems to contradict or repeat work that was done previously. So, let’s walk through some best practices with your reference docs.
Make a Primary Helper
Your project should have a very thorough primary helper document. This is the content that gives your AI assistant the most full context for the project.
If your pursuit is a technical project, build a design document that anticipates as many aspects as possible. As I mentioned in a previous post, the more the AI knows about your desired outcome, the better it can steer toward that destination.
Working on a creative project? Include elements such as an overall summary, outline, character breakdowns, lexicons, style guides.
Build A Spine
No, I’m not saying to show more backbone. I’m talking about a more rules-based reference volume, one that you’ll likely add to at a faster rate than you would the primary helper.
When coding a technical project, your spine should include invariants, calculations, key infrastructure configurations, anything that’s used multiple times in the project, and particularly the things that you don’t want to change throughout the project.
On the creative side, the spine might include specialized vocabulary, place names, or descriptors that evolve over time. Think of the spine as the reference that helps prevent continuity errors.
Use Document Structure
Your AI assistant is great at synthesizing large amounts of information quickly, and even better when that info is actually organized somewhat. Whatever app you use for your reference docs, implement the header styles.
Update Regularly
This’ll help both you and ChatGPT, or Claude, or Gemini…or the people you add to your project later, who have to reverse engineer your work. No matter how thorough your original plan is, things change. Keep your primary helper and other documents updated, so when you feed them back to the AI, the information is accurate and relevant.
Get Meta
You know who’s really good at building reference documents that’ll make an AI more effective at later stages of the project? The AI itself. Don’t rely solely on the AI system to create your documentation, but do use it to generate content.
One of my favorite creative writing examples is this: “Build me a list of key facts that I’ve established about each major character, things that shouldn’t change unless there’s a good reason.” ChatGPT will output a sketch for each character including physical attributes, what kind of cars they drive, allergies, living situations…all sorts of things that should remain constant.
For coders, a note on invariants: since invariants by nature should not vary, I like to feed my invariant list to ChatGPT, then ask it to point out anything I’ve added throughout the project that should be on the list, but isn’t.
Do Inter-Mortems and Post-Mortems
Ask the AI directly, “What could I do differently that would maximize the efficiency of our interactions and potentially improve the outcome of this project?”
ChatGPT gave me great feedback on this in the middle of my app-building project. It pointed out that I’m inconsistent about pre-identifying my skill level when I start on new phases of a project. Hence, it would often give me five to ten next steps. I’d stumble in step two, and I’d end up with a branching chat that went quite deep before having to find my way back to the original plan and hit step three.
Once I changed this habit, my project speed amped up noticeably. If I say, “Assume I know nothing about…” ChatGPT gives me one step at a time. When I tell it that I have some expertise, it gives me five or six steps and assumes I can do a good deal of troubleshooting myself, if necessary.
State The Obvious
This actually came from one of my inter-mortems. Whether a piece of information was in my primary helper doc, was established through development, or I just thought it was painfully obvious, I often fall into the trap of assuming ChatGPT or Claude “knows” something it doesn’t.
Good example: I defined basic and premium subscription levels for my app. Since I defined two, I assumed ChatGPT implicitly understood that there would be no other levels. Not the case. When we started coding, the AI constantly wanted to design around other subscription types, until I finally added that there would never be more than two subscription levels in my invariants.
It’s a bit more art than science to know when the obvious has to be stated, but if you’re aware of this practice, you might catch yourself when you’re only one query deep rather than fifteen queries, sixty minutes, and much frustration later.
Invite Oversight
I mentioned a related concept in my two most recent posts. Your AI tool probably displays a default bias toward pleasing you — it may prioritize fulfilling your request over ensuring you’re asking for the right thing.
In both my helper documents and my queries, I make it clear that I want ChatGPT (or Claude, or Copilot, since I seem to gravitate toward the “C-suite” of AI) to tell me when its analysis indicates that I’m probably wrong.
Again, it helps tremendously if the AI has a thorough plan/design/overview from you to begin with, but even in single query situations, telling the machine explicitly, “I’m looking for help on doing this, but I also want you to tell me if you believe I should consider something else” is a very powerful practice.

Leave a comment