One idea
CLAUDE.md is the project briefing Claude Code reads every session. Put stable repo facts there: goal, commands, folders, conventions, and workflows.
What Claude sees
Run Claude Code from your project root. When run in a directory, it can access files in that directory and subdirectories, and files elsewhere only with permission.
It can also see git state: current branch, uncommitted changes, and recent commit history. This is why project root matters more than a random folder like src/components.
Where context lives
Use ./CLAUDE.md for hackathon repos because teammates and judges can find it easily. ./.claude/CLAUDE.md also works.
MEMORY.md is different. Claude writes auto memory, and only the first 200 lines or 25KB are loaded at session start. Put must-follow rules in CLAUDE.md, not MEMORY.md.
Start with init
Do each one yourself, then tap it to tick it off. The ticks are only a checklist for you: they are not marked or scored.
0 of 5 done
cd ~/projects/hackindia-campus-pay
claude
# Inside Claude Code
/initUseful CLAUDE.md
Keep it short and specific. Do not write a product pitch. Write what helps Claude make correct edits.
# CLAUDE.md
## Project goal
Campus Pay Split is a HackIndia hackathon project for college students in India.
The demo flow is: create a group, add members, add a shared expense in rupees, and show who should pay whom.
Prioritise a working demo over extra features.
## Stack
- Next.js app using the app directory.
- TypeScript for application code.
- Prisma for database models and queries.
- UI components live in `components/`.
- Shared helpers live in `lib/`.
## Commands
- Install dependencies: `npm install`
- Start local dev server: `npm run dev`
- Build for submission: `npm run build`
- Lint: `npm run lint`
- There is no test script yet. Do not claim tests passed unless a test command is added.
## Code conventions
- Use TypeScript types for props and data returned from helpers.
- Keep React components small and readable.
- Put expense calculation logic in `lib/settlement.ts`, not inside page components.
- Use rupees for displayed amounts. Format as `₹500`, not `$500`.
- Prefer clear variable names like `payerId`, `splitAmount`, and `settlements`.
## Git workflow
- Check git status before changing files.
- Keep changes focused on the requested task.
- Do not edit generated files unless the task requires it.
## Environment
- Environment variables are expected in `.env.local`.
- Never read, print, or commit real secrets.
- Use placeholder names when documentation needs to mention env vars.Common mistakes
Do not fill CLAUDE.md with generic lines like “write clean code”. Use repo rules, such as where settlement logic belongs or which command proves the app builds.
Do not put secrets in CLAUDE.md or MEMORY.md. Use placeholder names like RAZORPAY_KEY_ID or DATABASE_URL, not real API keys, database passwords, UPI credentials, or production tokens.
If AGENTS.md exists
Claude Code reads CLAUDE.md, not AGENTS.md. If your repo already has AGENTS.md for another agent, import it instead of copying the same text into two files.
# CLAUDE.md
@AGENTS.md
## Claude-specific notes
- Use the commands in package.json.
- Ask before making broad architecture changes.
- Keep hackathon demo flow working: create group, add expense, view settlement.Do this now
Do each one yourself, then tap it to tick it off. The ticks are only a checklist for you: they are not marked or scored.
0 of 5 done
git status
git diff -- CLAUDE.md
git add CLAUDE.md
git commit -m "add Claude project context"