ChatGPT Long-Task Organization: The spec.md + log.md Method

Run a multi-week deliverable across many ChatGPT chats without losing the thread — using one Project, two files, and project-only memory.

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) and log.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.md before you close the chat.
  • Re-upload log.md every ~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.

CapabilityFreePlus ($20/mo)Pro ($200/mo)
Files per Project~5~20~40
Files uploaded at once101010
Per-file size cap512 MB512 MB512 MB
Per-file token cap (text)2M tokens2M tokens2M tokens
Account storage (shared across chats/Projects)25 GB25 GB25 GB
Project-only memoryNoYesYes
Reference other chats in the ProjectNoYesYes
Live connectors (Google Drive, Dropbox, SharePoint, Box)NoLimitedYes (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

  1. 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.
  2. 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.).
  3. Create a Project. Turn on project-only memory in the creation dialog. Add a one-line Project Instruction: “Always read spec.md before answering. Treat log.md as the source of truth for past decisions.”
  4. Upload two files: spec.md (what you are building, with the sub-task list) and log.md (start it empty with dated headings).
  5. 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 into log.md under a dated heading before you close the chat.
  6. When two sub-tasks contradict, do not resolve it in the moment. Write the contradiction into log.md and resolve it explicitly in a dedicated chat. The contradiction trail is what keeps the deliverable coherent.
  7. 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.
  8. Final assembly: a dedicated chat (use GPT-5.5 Thinking) that reads log.md and 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.md grow 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.md back into a fresh chat and ask: “Given log.md, is the work still on-track for the deliverable in spec.md?” Use it as a calibration step every couple of weeks.
  • Keep a short decisions section at the top of log.md with 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.

Tags: #ChatGPT #Tutorial #Workflow #Projects