Every new chat starts from nothing. You explain the project, the stack, the constraints, what you tried. Then the conversation gets long, quality drops, you start a new one, and explain it all again.

A maintained project brief eliminates that loop.

What goes in it

Short — under 400 words. Anything longer stops being pasted.

  • What you're building, in two sentences.
  • The stack, with versions where they matter.
  • Constraints: no build step, must run on shared hosting, no dependencies, whatever is true.
  • File structure, one line each.
  • Decisions made and rejected, with why. This is the part that prevents the model re-suggesting the thing you tried on Tuesday.
  • Current state: what works, what's next.

Generate the first one

write-my-brief.txt
Here's my project: <paste the file list and the main files>

Write me a project brief under 400 words that I can paste at the start
of any new conversation. Include: what this is, the stack and versions,
constraints, what each file does, and the current state.

Write it for a competent developer who has never seen this project.
No pleasantries — facts only.

Save it as BRIEF.md in your project. Update it whenever a decision changes.

Why it works better than a long conversation

A long thread contains every wrong turn and abandoned approach, all competing for attention. A short conversation with a good brief contains only what's true now.

This is also why the brief should record what you rejected. Without it, every fresh chat suggests the approach you already ruled out.

Agents read it automatically

If you use Claude Code or a similar agent, the same content in the file it reads at startup — CLAUDE.md or the equivalent — means you never paste it at all. Same idea, applied automatically.

Update the brief when you make a decision, not when you remember. A stale brief is worse than none, because you'll trust it.