
I have adopted a new way of taking on complex projects, and it is radically increasing my productivity. The idea is simple: I use documents as the shared canvas for collaboration between myself and chatbot sessions. The result is far more powerful than the sum of its parts.
I call it chatbot+document-assisted projects, or CDAPs.
Origin story
Documents have been an essential part of how I conduct most parts of my life since my teenage years. They are how I work out ideas, record progress, reflect on outcomes, and communicate. My tools have progressed from notebooks to text files to Evernote to Notion, with me gaining significantly more leverage at each step.
My history with chatbots is obviously much more recent. Chatbots started out as a toy to me. Initially they were too unreliable for serious work. In the ChatGPT 4 era, they became useful enough to answer questions and get me out of coding jams. But it was the introduction chain-of-thought and tool usage increased the capabilities and reliability so much that I was convinced there is no going back.
I started finding chatbots useful for helping me take on large efforts, like upgrading the storage of my file server, while migrating it to a new operating system. I found that if I explained what I’m trying to do and all of my goals, not only could I get great recommendations on what the final state should look like, but I could also get detailed plans to incrementally get there. As I proceeded, I could simply dump the outputs from steps into the chatbot for validation, and I could iterate on the plan.
The problem: chats do not scale. The longer these sessions went, the more I time I would have to spend scrolling back into my history for important information. But I also had to be careful not to get distracted by outdated, like previous versions of my plans. This is a new version of a very familiar problem.
To solve this, I asked the chatbot to dump the current state of the plan and all of its context into a Notion document. The result was even better than expected. It was able to simplify a whole bunch of stuff from a massive chat history. I was able to easily start new, clean chat sessions bootstrapped with all of the important context. And I got a very clear way to organize tasks I had to do.
In some ways, CDAP makes me an agent. This document the chatbot and I codeveloped had tasks only I could complete. It’s almost like tool calls for a human. I now use a variation of this workflow for almost every complex task I start.
Chatbot+document=more power
CDAP creates yet another huge step-up in leverage for my document-based workflows. In truth, it extends my use of documents to entirely new endeavors.
I don’t have to worry that much about structure, because chatbots are very adaptable, as long as I am clear about what I want. The chatbot is also a very powerful tool for every step of the authorship process. I prefer to do nearly all of my own writing for communication, but I am less precious about the writing for my internal process.
Here are some examples of when I have used CDAP:
- Developing software features
- Running and evaluating a database migration for optimizing a query
- Creating a personal task management system
- Upgrading my home server
It has worked so well that it is becoming my go-to approach for any tricky problem or long-running task.
How to try it
CDAP is easy. It’s a very loose pattern, not a specific workflow. You can’t really do it wrong. All you need are:
- A chatbot, like ChatGPT, Claude, Gemini, or Notion Agent
- A document system your chatbot can access, like Notion, Google Docs, or even Markdown files on your computer
- Any problem complicated enough to require a plan
There are many ways to do CDAP, and I use variations depending on what my problem is.
First, start a chat. Explain to the chatbot what you are trying to do. Ask it to help you make a plan. Sometimes, before getting to the plan, you may want to ask the chatbot to help you research and evaluate options. Research mode can be extremely helpful for this.
Once you have a plan that seems promising, ask the chatbot to create a doc with your plan. I also recommend asking it to put your original prompt and any important research into the doc.
Sometimes, you may be able to take advantage of chatbot tools to actually execute the plan. This is most often the case when doing software development.
Most complex projects produce learnings along the way, and the plan needs to change. I will sometimes hand-edit my plan, but often, it feels more natural to propose changes to the chatbot, ask for feedback, and then have the chatbot carry them out.
You can vary any part of this and make it your own. I am still experimenting, myself.
Tips for success
- If the plan requires you to take action, it is usually valuable to record information from each step you are taking into the plan. For software tasks, this could be copy-paste of command outputs. For correspondence with people, this could be notes or transcripts. For independent work, it could be links to artifacts or descriptions of outcomes.
- I personally prefer Notion as my document system because I appreciate its versatility for information organization (disclosure: I work at Notion as of late, but I have used it this way for years). For instance, if I have a big result from running some command, I can put it in a sub-page or a toggle section, to keep the overall plan legible.
- I was never into voice input, but CDAP has changed this. Because chatbots are very good at summarization and revision, I will often dictate my thoughts to Superwhisper or my phone’s voice input into a chatbot session and have the chatbot distill my stream-of-consciousness into new documents or revisions to existing ones. This is shockingly effective.
- I haven’t tried this myself, but I suspect it may be helpful to make an agent skill to educate your chatbot on how to use this workflow. In particular, if I’m making hand-edits to the document as I work, I may want to encourage the agent to reread it, rather than relying on the first version it loaded into context, to pick up on my changes.
