Your AI Agent Forgets Everything After Every Chat
Every Conversation Starts From Zero — And That's Costing You

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.



