A two-week deliverable in ChatGPT almost always ends the same way: 30 scattered chats, three contradictory versions of the same outline, and an evening lost to “I know I wrote that paragraph somewhere.” The tool is fine. What is missing is structure. This guide gives you a repeatable rhythm — one Project, a spec.md file, and a running log.md — that turns the same effort into something that compounds instead of fragments. It also covers the 2026 feature that makes this far more reliable than it used to be: project-only memory.
TL;DR
- Put the whole deliverable in one ChatGPT Project, not loose chats.
- Keep two files in it:
spec.md(what you are building) andlog.md(decisions and outputs as you go). - Turn on project-only memory when you create the Project so it does not pull in unrelated context — this toggle only appears at creation time.
- One chat per sub-task; copy outputs and decisions back into
log.mdbefore you close the chat. - Re-upload
log.mdevery ~3 sub-tasks so ChatGPT stops re-suggesting decisions you already made.
Why one chat is never enough
A single ChatGPT conversation has no durable memory of the previous one beyond what its memory system happens to retain — and that retention is partial and unstructured. For a task that spans 5+ sessions, you need state that you control: a written record the model re-reads on demand. That is the entire idea behind keeping a spec.md and log.md inside a Project. The files are yours, structured, dated, and exportable; the chats are disposable.
Who this is for
Anyone working on a single deliverable that will take more than five chat sessions: a thesis chapter, a product launch plan, a long content series, a job-search campaign, a grant application. If you can do it in one sitting, you do not need any of this.
What a Project gives you (and its 2026 limits)
A ChatGPT Project is a persistent workspace with its own custom instructions, its own file library, and continuity across chats. The numbers below are current as of June 2026 and do change — check OpenAI’s Projects help page before you rely on a hard cap.
| Capability | Free | Plus ($20/mo) | Pro ($200/mo) |
|---|---|---|---|
| Files per Project | ~5 | ~20 | ~40 |
| Files uploaded at once | 10 | 10 | 10 |
| Per-file size cap | 512 MB | 512 MB | 512 MB |
| Per-file token cap (text) | 2M tokens | 2M tokens | 2M tokens |
| Account storage (shared across chats/Projects) | 25 GB | 25 GB | 25 GB |
| Project-only memory | No | Yes | Yes |
| Reference other chats in the Project | No | Yes | Yes |
| Live connectors (Google Drive, Dropbox, SharePoint, Box) | No | Limited | Yes (region-restricted) |
The default model inside a Project is GPT-5.5, with the Instant / Thinking / Pro picker available on paid plans. For long-task assembly chats, switch to Thinking — the extra reasoning pass is worth it when stitching many decisions together.
Project-only memory: the 2026 upgrade you should turn on
When you create a Project, ChatGPT now asks whether its memory should be project-only or default. This single choice matters more than it looks:
- Default memory on Plus, Pro, and Business accounts can pull in chats from outside the Project, so a thesis Project might start quoting your job-search Project. Enterprise and Edu accounts keep Projects contained regardless.
- Project-only memory keeps the boundary tight: ChatGPT uses other conversations in this Project for context and ignores your global saved memories. For a focused deliverable, this is what you want.
The catch: the project-only toggle only appears in the creation dialog, not in settings afterward. If you forgot it, you have to recreate the Project. You also need Personal Memory enabled globally (Settings → Personalization → Memory, all three toggles) for the in-project chat referencing to work on Plus and Pro.
Step by step
- Define the deliverable in one sentence and one paragraph. If you cannot, the task is not ready for AI yet. Put both at the top of
spec.md. - Break it into 4–8 sub-tasks. Each sub-task should be roughly one chat’s worth of work (lit-review section, data, methods, intro, etc.).
- Create a Project. Turn on project-only memory in the creation dialog. Add a one-line Project Instruction: “Always read
spec.mdbefore answering. Treatlog.mdas the source of truth for past decisions.” - Upload two files:
spec.md(what you are building, with the sub-task list) andlog.md(start it empty with dated headings). - For each sub-task, open a new chat in the Project. Begin by naming the sub-task and pasting the relevant section of
spec.md. End by copying the outputs and decisions intolog.mdunder a dated heading before you close the chat. - When two sub-tasks contradict, do not resolve it in the moment. Write the contradiction into
log.mdand resolve it explicitly in a dedicated chat. The contradiction trail is what keeps the deliverable coherent. - Every ~3 sub-tasks, re-upload
log.md. Without a refresh, the Project’s indexed copy goes stale and ChatGPT re-suggests decisions you already rejected. - Final assembly: a dedicated chat (use GPT-5.5 Thinking) that reads
log.mdand stitches the outputs into the deliverable.
A worked example: a 6-week thesis chapter
spec.md states the chapter’s argument in one paragraph, then lists 8 sub-tasks: literature review, dataset description, methods, results, two discussion sections, limitations, and conclusion. Each week you complete one or two sub-tasks in their own chats and append outputs to log.md under headings like ## 2026-05-19 — methods. By week six, log.md is a 1,500-word decision record. The final assembly chat reads it and produces a 30-page draft that actually matches the decisions you made, because every one of them is written down.
Live connectors vs. uploaded files
If you are on Plus or Pro and your spec.md / log.md live in Google Drive, you can link the Drive file into the Project instead of re-uploading. ChatGPT reads the current version the next time you reference it, so your “re-upload every 3 sub-tasks” step becomes automatic. As of June 2026, connectors (Google Drive, Dropbox, SharePoint, Box) are available on paid plans but are region-restricted — they were not yet available in the EEA, Switzerland, or UK at launch. Uploaded files work everywhere; connectors are the convenience upgrade where available.
Common mistakes
- Skipping
spec.md. You will rebuild the brief in your head every chat, slightly differently each time. - Letting
log.mdgrow without structure — no headings, no dates. The model cannot reference what it cannot locate. - Running final assembly on a stale
log.md. Re-upload first, every time. - Mixing project work with random questions in the same Project. Project Instructions drift and answers get noisier.
- Leaving memory on “default” on a Plus/Pro account. Unrelated Projects bleed in. Use project-only memory.
- Cramming 12 sub-tasks into one Project. Past ~10 files of context, responses degrade and you may hit the per-Project file cap. Split into two Projects that share the same
spec.md.
Advanced tips
- Use dated headings in
log.md(## 2026-05-19 — methods section) so ChatGPT can cite a specific day’s decision. - Pin one chat per sub-task. These are your milestones — far easier to revisit than scrolling history.
- When you feel lost, paste
spec.mdback into a fresh chat and ask: “Givenlog.md, is the work still on-track for the deliverable inspec.md?” Use it as a calibration step every couple of weeks. - Keep a short
decisionssection at the top oflog.mdwith only the resolved contradictions. That is the part the assembly chat needs most.
FAQ
Why files instead of ChatGPT Memory? Memory is unstructured, partial, and silently changes. For a multi-week task you need a record you control: dated, editable, exportable. Files are that record; Memory is a helper, not a system of record.
How many sub-tasks is too many?
Past roughly 10, two things bite: response quality drops as the Project’s file context grows, and you approach the per-Project file cap (about 20 files on Plus, 40 on Pro as of June 2026). Split into multiple Projects that share one spec.md.
What if the scope changes mid-way?
Add a dated note to spec.md (“2026-05-15: scope reduced to chapters 1–3”) rather than silently editing. The contradiction trail is what keeps later chats from re-introducing cut work.
Can I share this with collaborators? Yes, in a Team or Business workspace. Shared Projects make the files common context for everyone in the Project, and Enterprise/Edu accounts keep that context inside the Project boundary by default.
Do I have to re-upload log.md by hand?
Only if you uploaded it. If you link log.md from Google Drive via a connector (Plus/Pro, where available), ChatGPT reads the latest version on demand and the manual re-upload step goes away.