<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[VibeKits]]></title><description><![CDATA[VibeKits]]></description><link>https://getvibekits.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sun, 25 Oct 2026 01:50:11 GMT</lastBuildDate><atom:link href="https://getvibekits.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[A CLAUDE.md template for beginners (and the rules that actually get followed)]]></title><description><![CDATA[Short, checkable, grouped. Here's the file I start every Claude Code project with.]]></description><link>https://getvibekits.hashnode.dev/a-claude-md-template-for-beginners-and-the-rules-that-actually-get-followed</link><guid isPermaLink="true">https://getvibekits.hashnode.dev/a-claude-md-template-for-beginners-and-the-rules-that-actually-get-followed</guid><category><![CDATA[claude-code]]></category><category><![CDATA[AI]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[Developer Tools]]></category><dc:creator><![CDATA[John Banker]]></dc:creator><pubDate>Fri, 23 Oct 2026 13:05:05 GMT</pubDate><content:encoded><![CDATA[<p>I'm a dad in Georgia who builds small projects with Claude Code, and for a while I was repeating myself in every session: "use npm, not yarn", "ask before you touch the database", "don't say it works if you didn't run it." A good <code>CLAUDE.md</code> fixed that.</p>
<p><code>CLAUDE.md</code> is a plain Markdown file Claude Code reads at the start of every session. It's context, not a hard lock, so <strong>the clearer each rule is, the more reliably it gets followed.</strong></p>
<h2>Where it goes</h2>
<table>
<thead>
<tr>
<th>File</th>
<th>Who it's for</th>
</tr>
</thead>
<tbody><tr>
<td><code>./CLAUDE.md</code> or <code>./.claude/CLAUDE.md</code></td>
<td>This project, shared (commit it)</td>
</tr>
<tr>
<td><code>./CLAUDE.local.md</code></td>
<td>Just you, this project (gitignore it)</td>
</tr>
<tr>
<td><code>~/.claude/CLAUDE.md</code></td>
<td>Just you, every project</td>
</tr>
<tr>
<td><code>.claude/rules/*.md</code></td>
<td>Topic rules; add <code>paths:</code> frontmatter so they load only for matching files</td>
</tr>
</tbody></table>
<p>Heads-up if you also use <code>AGENTS.md</code>: adding a <code>CLAUDE.md</code> (or <code>CLAUDE.local.md</code>) stops Claude reading <code>AGENTS.md</code> unless you import it with <code>@AGENTS.md</code>.</p>
<h2>The template</h2>
<pre><code class="language-markdown"># CLAUDE.md
## Project
- What it is: [one sentence: what you're building and who it's for]
- Stack: [e.g. Next.js 15, TypeScript, Supabase]
- Main folders: [e.g. app/ for pages, lib/ for helpers, supabase/ for migrations]
## Commands
- Install: `npm install`
- Run: `npm run dev`
- Test: `npm test`
- Before every commit: `npm run lint &amp;&amp; npm test`
## Rules
- Do one task per request. If I ask for several, list them and do only the first.
- Before writing code, give a 3-line plan: what changes, which files, how I'll test it.
- Make the smallest change that works. Don't rename or reformat code I didn't mention.
- Ask before adding a dependency, deleting files, or changing the database.
- Never say something works unless you ran it. Paste the real error if it fails.
- Secrets live in .env (listed in .gitignore). Never print or commit them.
## Finish every task with
1. What changed (files).
2. How to test it in under a minute.
3. A suggested commit message.
</code></pre>
<p>Fastest start: run <code>/init</code> in Claude Code. It writes a first draft with the commands it finds. Then paste in the Rules section, which <code>/init</code> can't guess.</p>
<h2>Vague rules get ignored. Concrete ones get followed.</h2>
<table>
<thead>
<tr>
<th>Vague</th>
<th>Concrete</th>
</tr>
</thead>
<tbody><tr>
<td>Write clean code</td>
<td>Keep functions under 40 lines; split anything longer</td>
</tr>
<tr>
<td>Be careful with the database</td>
<td>Ask before dropping or renaming a column or table</td>
</tr>
<tr>
<td>Don't leak secrets</td>
<td>Secrets live in .env, which is in .gitignore. Never print or commit them</td>
</tr>
<tr>
<td>Test your work</td>
<td>Run npm test after every change and paste the result</td>
</tr>
</tbody></table>
<p>A few more from Anthropic's docs that helped me:</p>
<ul>
<li><strong>Keep it under ~200 lines.</strong> Longer files use more context and get followed less.</li>
<li><strong>Headings and bullets, not paragraphs.</strong></li>
<li><strong>No contradictions.</strong> When two rules disagree, Claude may pick either one.</li>
<li><strong>For "must never happen", use hooks or permissions.</strong> CLAUDE.md is guidance, not a lock.</li>
<li><strong>HTML comments are free.</strong> <code>&lt;!-- why this rule exists --&gt;</code> is stripped before Claude reads the file.</li>
</ul>
<h2>A personal one for every project</h2>
<pre><code class="language-markdown"># ~/.claude/CLAUDE.md
- I'm new to coding. After each change, explain what you did in 2-3 plain sentences.
- Give me the exact commands to run, one per line.
- Use plan mode before any change that touches more than 3 files.
- Never run rm -rf, git reset --hard or a force-push without asking.
</code></pre>
<p><strong>Check that it loaded:</strong> run <code>/memory</code> in a session. If your file isn't listed, check that the name is exactly <code>CLAUDE.md</code> (capitals matter on Linux) and that you started Claude Code inside the project folder.</p>
<p>What's the one line in your CLAUDE.md you'd never give up?</p>
<hr />
<p><em>This is adapted from a page on my free rules site, which also has two full worked examples (a Next.js + Supabase app and a Python script) and links to Anthropic's docs: <a href="https://getvibekits.com/rules/claude-md-examples/">https://getvibekits.com/rules/claude-md-examples/</a> . No signup. Disclosure: I run that site and sell a few build kits there; nothing here needs them.</em></p>
]]></content:encoded></item></channel></rss>