Skip to main content

Command Palette

Search for a command to run...

Your AI Agent Forgets Everything After Every Chat

Every Conversation Starts From Zero — And That's Costing You

Updated
5 min read
Your AI Agent Forgets Everything After Every Chat
B
I am working as a software developer for more than 1year now, I am interested in writing code and blogs.

You open Claude. You type your stack, your rules, your preferences.

Claude helps. Good session.

Next day — new chat. You type it all again.

Next week — same thing.

At some point you realise you're spending more time setting Claude up than actually using it. That's the problem. And most developers just... accept it. They don't know there's a proper way to fix this.

There is. Let's go through it.


Problem 1 — Claude doesn't know your project

Every new chat starts from zero. No stack. No conventions. No rules. You have to re-explain everything.

This gets old fast.

Fix: CLAUDE.md

Create a file called CLAUDE.md at your project root. Claude reads this automatically at the start of every single session. You stop repeating yourself.

# CLAUDE.md

## Stack
- Next.js 14 App Router
- TypeScript strict mode — no `any`
- Tailwind CSS only, no inline styles
- Radix UI for components
- lucide-react for icons

## Rules
- WCAG 2.1 AA on all components
- No raw SQL in routes — use /lib/db only
- Test every util in /lib

That's it. Claude now knows your project every time you open a chat.

If you're a backend dev — put your service boundaries, DB conventions, API rules here. Claude won't write raw SQL inside a controller when you've explicitly said not to.


Problem 2 — You keep explaining the same task

Some tasks come up again and again. Figma JSON to React component. Scaffolding a new API route. Setting up a new service. You've explained the process to Claude multiple times. It's the same explanation every time.

Fix: Skills

A Skill is just a saved procedure. Write it once, Claude follows it whenever that task comes up.

Next time you say "convert this Figma JSON to a component" — Claude finds the skill and follows it. You don't explain anything.

Good way to think about it: Skills are like your team's internal runbooks. Except Claude actually reads them every time, unlike your Notion docs.


Problem 3 — You don't fully trust what Claude writes

Claude writes a component. Looks fine. You merge it. CI fails. Lint errors, missing ARIA attribute, broken test.

Now you're manually reviewing every file Claude touches. That's not a workflow improvement — that's just moving the work around.

Fix: Hooks

Hooks are shell commands that run automatically when Claude does something. The moment Claude saves a file, your lint and tests run. Claude sees the output and fixes issues before you ever look at it.

// .claude/settings.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write",
        "command": "npm run lint --fix && npm run test:unit"
      }
    ]
  }
}

You can also block Claude from touching specific files entirely:

"PreToolUse": [
  {
    "matcher": "Edit",
    "files": ["tailwind.config.ts"],
    "command": "exit 1"
  }
]

Now Claude can't touch tailwind.config.ts at all. You handle that file yourself.

If you've used Git hooks before — same idea. PreToolUse is your pre-commit. PostToolUse is your post-commit. Same mental model.


Problem 4 — Claude gets worse the more you ask it to do

You want a full accessibility audit on a big dashboard. So you load everything into one chat — 80 WCAG rules, the component, design docs, previous conversations.

It starts okay. Then the quality drops. By halfway through it's missing things, making stuff up, going in circles.

This happens because you're asking one agent to hold too much at once. The context fills up and things start falling apart.

Fix: Sub-Agents

Instead of one agent doing everything, you delegate. Create a specialist agent for the specific task. It gets only the context it needs — nothing else.

Your main agent stays focused. It hands off the audit to a11y-auditor which only knows about accessibility. Focused context, focused output.

One thing that trips people up here:

Skills at the root level are not visible to sub-agents. If your a11y-auditor needs a skill, you define that skill inside agents/a11y-auditor/skills/ — not at the top level. Each agent only sees its own skills folder.

For backend devs — think of it like microservices. Your main service orchestrates. Specialists do the deep work. You wouldn't put auth logic, notification logic, and payment logic all in one service. Same idea here.


Problem 5 — Your teammate's setup is different from yours

You built a solid workflow. Skills, hooks, sub-agents, the works. Your colleague starts a new project, asks how you did it. You send your .claude folder. They copy it manually.

A month later you've updated your Figma skill. They're still on the old version. Same team, different agent behaviour, inconsistent output.

Fix: Plugins

Package your skills and hooks into a plugin. Push to GitHub. Team installs it.

bash

/plugin install github.com/your-org/design-system-plugin

Everyone gets the same setup. When you update the plugin, they pull the update. Skills inside plugins are namespaced so nothing clashes:

bash

/design-system-plugin:figma-to-tailwind component.json

Same idea as a shared ESLint config. Write it once, everyone uses the same version.


What the full thing looks like


Quick reference

Problem Fix
Re-explaining your stack every session CLAUDE.md at project root
Re-explaining the same task Save it as a Skill
Manually reviewing every file Claude writes PostToolUse Hook — auto lint and test
Quality dropping when Claude does too much Sub-Agent with its own isolated context
Teammates on different setups Package it as a Plugin

None of this is complicated once you see it. You were just missing the pieces.

Start with CLAUDE.md. That alone will save you time this week.