<?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[Clogmeter]]></title><description><![CDATA[Clogmeter]]></description><link>https://clogmeter.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 10:58:03 GMT</lastBuildDate><atom:link href="https://clogmeter.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[AGENTS.md, skills or MCP: where should agent instructions go?]]></title><description><![CDATA[Where you put an instruction decides when the agent sees it and what it costs every turn. Here is a practical map for AGENTS.md / CLAUDE.md, skills, Cursor…]]></description><link>https://clogmeter.hashnode.dev/agents-md-skills-or-mcp-where-should-agent-instructions-go</link><guid isPermaLink="true">https://clogmeter.hashnode.dev/agents-md-skills-or-mcp-where-should-agent-instructions-go</guid><category><![CDATA[AI]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[Developer Tools]]></category><dc:creator><![CDATA[Clogmeter]]></dc:creator><pubDate>Sat, 07 Nov 2026 08:16:35 GMT</pubDate><content:encoded><![CDATA[<p><em>Where you put an instruction decides when the agent sees it and what it costs every turn. Here is a practical map for AGENTS.md / CLAUDE.md, skills, Cursor rules, and MCP.</em></p>
<p><em>Originally published on <a href="https://clogmeter.vercel.app/guides/agents-md-skills-or-mcp">clogmeter.vercel.app</a>.</em></p>
<p>Put always-on facts in <code>AGENTS.md</code> / <code>CLAUDE.md</code>, put procedures in skills, and put tools in MCP — not instructions. That is a cost decision, not a style preference.</p>
<h2>What each layer actually loads</h2>
<table>
<thead>
<tr>
<th>Place</th>
<th>When it costs tokens</th>
<th>Best for</th>
</tr>
</thead>
<tbody><tr>
<td>Root <code>AGENTS.md</code> / <code>CLAUDE.md</code></td>
<td>Session start; stays for the whole session</td>
<td>Build/test commands, layout, hard constraints the agent needs on every task</td>
</tr>
<tr>
<td>Path-scoped rules / nested instruction files</td>
<td>When matching files are in context</td>
<td>API-only or package-only conventions</td>
</tr>
<tr>
<td>Skills (<code>SKILL.md</code>)</td>
<td>Name + description always; body only when triggered</td>
<td>Deploy checklists, review playbooks, multi-step procedures</td>
</tr>
<tr>
<td>MCP servers</td>
<td>Tool names / schemas (and often server instructions) while the server is connected</td>
<td>Capabilities the agent must call — databases, browsers, APIs — not prose rules</td>
</tr>
</tbody></table>
<p>Anthropic's Claude Code steering guide makes the same split: root <code>CLAUDE.md</code> is high context cost, skills load the body on demand, and hooks enforce "never" rules outside markdown. Cursor's rules docs mirror it with <code>alwaysApply</code>, <code>globs</code>, and description-based rules.</p>
<h2>A simple decision rule</h2>
<ol>
<li><strong>Would you ask a new teammate to memorise this before their first PR?</strong> If yes, it can live in the root instruction file. If no, move it.</li>
<li><strong>Is it a procedure ("when releasing, do these 8 steps")?</strong> Put it in a skill so the body loads only when that work starts.</li>
<li><strong>Is it a capability ("query Postgres", "open a PR")?</strong> That is MCP (or a built-in tool), not an instruction file. Do not paste API docs into <code>AGENTS.md</code> to fake a tool.</li>
<li><strong>Must it never fail?</strong> Markdown is advisory. Use a hook, linter, or CI check for true guardrails.</li>
<li><strong>Does it only apply under <code>src/api/**</code>?</strong> Prefer a path-scoped Cursor rule or nested <code>CLAUDE.md</code> over stuffing the root file.</li>
</ol>
<h2>Where people usually go wrong</h2>
<ul>
<li><strong>Procedures in the root file.</strong> A 30-line release checklist in <code>AGENTS.md</code> taxes every chat, including ones that never ship.</li>
<li><strong>Instructions stuffed into MCP.</strong> MCP is for tools. Long server instructions and eager schemas are a silent token tax every turn the server stays connected.</li>
<li><strong>Everything set to always-on.</strong> Cursor <code>alwaysApply: true</code> and unscoped Claude rules behave like root <code>CLAUDE.md</code>: paid whether relevant or not.</li>
<li><strong>The same rule in three places.</strong> A "never commit secrets" line in <code>AGENTS.md</code>, a skill, and an MCP blurb wastes tokens and invites contradictions.</li>
</ul>
<p>Rules that should "almost always" apply but are not worth a permanent tax belong in a skill with a tight description, or a Cursor rule with a clear <code>description</code> / <code>globs</code> — not in the root file "just in case."</p>
<h2>How to migrate without guessing</h2>
<ol>
<li>Paste your root <code>AGENTS.md</code> / <code>CLAUDE.md</code> and always-on Cursor rules into <a href="https://clogmeter.vercel.app/">Clogmeter</a>.</li>
<li>Cut anything the agent can discover by reading the repo (long architecture essays, pasted READMEs).</li>
<li>Move multi-step workflows into skills; leave only pointers in the root file.</li>
<li>Audit connected MCP servers: disable ones you are not using this session, and keep schemas lean.</li>
<li>Re-weigh. The always-on budget should shrink; skill bodies and MCP stay available when needed.</li>
</ol>
<hr />
<p>If you want to see where your own AGENTS.md, CLAUDE.md or Cursor rules spend tokens, I built a free browser-only checker that also flags duplicates and always/never conflicts: <a href="https://clogmeter.vercel.app">Clogmeter</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Cut one conflicting rule before you trim anything else]]></title><description><![CDATA[When an agent seems to ignore your rules, the cause is often two rules that disagree rather than a file that's too long. This post shows why fixing one…]]></description><link>https://clogmeter.hashnode.dev/cut-one-conflicting-rule-before-you-trim-anything-else</link><guid isPermaLink="true">https://clogmeter.hashnode.dev/cut-one-conflicting-rule-before-you-trim-anything-else</guid><category><![CDATA[Developer Tools]]></category><category><![CDATA[AI]]></category><category><![CDATA[Productivity]]></category><dc:creator><![CDATA[Clogmeter]]></dc:creator><pubDate>Sat, 07 Nov 2026 08:15:35 GMT</pubDate><content:encoded><![CDATA[<p><em>When an agent seems to ignore your rules, the cause is often two rules that disagree rather than a file that's too long. This post shows why fixing one conflict usually helps more than cutting lines.</em></p>
<p><em>Originally published on <a href="https://clogmeter.vercel.app/posts/cut-conflicting-rules-first.html">clogmeter.vercel.app</a>.</em></p>
<p>When <code>AGENTS.md</code>, <code>CLAUDE.md</code>, Cursor rules, and skills all load, the agent does not get “more guidance” — it gets three copies of the same rule and often one quiet contradiction. Always/never pairs that disagree burn tokens twice and teach the model to hedge.</p>
<p>Quick fix: open every instruction file side by side and search for the same verb (“never commit”, “always run tests”). Keep one canonical line in a single source of truth; delete or @-import the rest. Then weigh what is left.</p>
<hr />
<p>If you want to see where your own AGENTS.md, CLAUDE.md or Cursor rules spend tokens, I built a free browser-only checker that also flags duplicates and always/never conflicts: <a href="https://clogmeter.vercel.app">Clogmeter</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Why Cursor is ignoring your rules (.mdc + frontmatter)]]></title><description><![CDATA[If Cursor keeps skipping your project rules, it's usually frontmatter, scoping or context pressure rather than the model. Here are the common causes and…]]></description><link>https://clogmeter.hashnode.dev/why-cursor-is-ignoring-your-rules-mdc-frontmatter</link><guid isPermaLink="true">https://clogmeter.hashnode.dev/why-cursor-is-ignoring-your-rules-mdc-frontmatter</guid><category><![CDATA[cursor]]></category><category><![CDATA[AI]]></category><category><![CDATA[Productivity]]></category><dc:creator><![CDATA[Clogmeter]]></dc:creator><pubDate>Wed, 04 Nov 2026 16:30:36 GMT</pubDate><content:encoded><![CDATA[<p><em>If Cursor keeps skipping your project rules, it's usually frontmatter, scoping or context pressure rather than the model. Here are the common causes and how to fix each one.</em></p>
<p><em>Originally published on <a href="https://clogmeter.vercel.app/guides/why-cursor-ignoring-rules">clogmeter.vercel.app</a>.</em></p>
<p>On X and Reddit, “Cursor is ignoring my rules” is often not an adherence problem — the rule never entered
context. Cursor project rules live in <code>.cursor/rules/</code> as <code>.mdc</code> files with YAML
frontmatter. A plain <code>.md</code> in that folder is ignored. Cursor also reads root
<code>AGENTS.md</code> / <code>CLAUDE.md</code> as simpler always-on markdown.</p>
<p>Checklist below matches Cursor’s public Rules docs (keep rules under 500 lines; split large ones).</p>
<h2>Five checks before you rewrite the rule</h2>
<ol>
<li><strong>Extension:</strong> file must end in <code>.mdc</code> inside <code>.cursor/rules/</code>.</li>
<li><strong>Frontmatter fields:</strong> only <code>description</code>, <code>globs</code>, and <code>alwaysApply</code> control load mode.</li>
<li><strong>Always Apply:</strong> <code>alwaysApply: true</code> puts the rule in every chat (use sparingly — it costs tokens every turn).</li>
<li><strong>File-scoped:</strong> set <code>globs</code> and <code>alwaysApply: false</code> so it attaches when matching files are in context.</li>
<li><strong>Apply Intelligently / manual:</strong> a <code>description</code> without globs lets the agent decide; with neither description nor globs nor alwaysApply, you typically need to <code>@</code>-mention the rule.</li>
</ol>
<h2>Minimal working example</h2>
<pre><code>---
description: TypeScript conventions for this repo
globs:
  - "**/*.ts"
  - "**/*.tsx"
alwaysApply: false
---

- Prefer explicit return types on exported functions
- Follow the patterns in @src/lib/result.ts instead of inventing new Result helpers
</code></pre>
<h2>If it loads but still feels ignored</h2>
<ul>
<li><strong>Vague wording:</strong> “write clean code” loses to “use 2-space indentation” — Cursor’s docs ask for actionable rules.</li>
<li><strong>Conflicts:</strong> the same always/never restated differently across AGENTS.md and several <code>.mdc</code> files makes the model hedge. Cut one canonical line first.</li>
<li><strong>Too much always-on:</strong> large always-applied rules compete with the task. Prefer globs/skills for procedures.</li>
<li><strong>Stale pasted docs:</strong> reference canonical files; don’t paste whole style guides (Cursor explicitly warns against this).</li>
</ul>
<p>Prefer a short <a href="https://clogmeter.vercel.app/guides/agents-md-example">AGENTS.md example</a> for cross-tool basics, and reserve
<code>.mdc</code> for activation control. Compare formats in
<a href="https://clogmeter.vercel.app/guides/claude-md-vs-agents-md">CLAUDE.md vs AGENTS.md vs Cursor rules</a>.</p>
<hr />
<p>If you want to see where your own AGENTS.md, CLAUDE.md or Cursor rules spend tokens, I built a free browser-only checker that also flags duplicates and always/never conflicts: <a href="https://clogmeter.vercel.app">Clogmeter</a>.</p>
]]></content:encoded></item><item><title><![CDATA[How long should CLAUDE.md / AGENTS.md be?]]></title><description><![CDATA[Every always-on instruction file costs tokens on every turn, and past a point it starts costing adherence too. Here is what Claude Code, Cursor and Codex…]]></description><link>https://clogmeter.hashnode.dev/how-long-should-claude-md-agents-md-be</link><guid isPermaLink="true">https://clogmeter.hashnode.dev/how-long-should-claude-md-agents-md-be</guid><category><![CDATA[AI]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[Developer Tools]]></category><dc:creator><![CDATA[Clogmeter]]></dc:creator><pubDate>Wed, 04 Nov 2026 16:29:45 GMT</pubDate><content:encoded><![CDATA[<p><em>Every always-on instruction file costs tokens on every turn, and past a point it starts costing adherence too. Here is what Claude Code, Cursor and Codex actually document about size, plus a checklist for trimming.</em></p>
<p><em>Originally published on <a href="https://clogmeter.vercel.app/guides/how-long-should-agents-md-be">clogmeter.vercel.app</a>.</em></p>
<p>Short answer: aim for a lean always-on file — roughly <strong>under 200 lines per <code>CLAUDE.md</code></strong>
(Anthropic’s documented target) and treat Cursor project rules as <strong>under 500 lines each</strong>,
split by concern. There is no universal “perfect” line count. The real limit is whether the model
still follows the rules that matter once system prompt, tools, skills and the task compete for the
same attention budget.</p>
<p>No invented benchmarks here. The numbers below come from vendor docs and published guidance as of late 2026.</p>
<h2>What the tools themselves say</h2>
<table>
<thead>
<tr>
<th>Tool</th>
<th>File</th>
<th>Published guidance</th>
</tr>
</thead>
<tbody><tr>
<td>Claude Code</td>
<td><code>CLAUDE.md</code> / rules</td>
<td>Target under 200 lines per file; longer files consume more context and reduce adherence. Imports organise files but still load with the parent.</td>
</tr>
<tr>
<td>Cursor</td>
<td><code>.cursor/rules</code> / <code>AGENTS.md</code></td>
<td>Keep rules under 500 lines; split large rules into focused files. Prefer references over pasting whole docs.</td>
</tr>
<tr>
<td>OpenAI Codex</td>
<td><code>AGENTS.md</code></td>
<td>Combined project instruction files are capped (default 32 KiB); overflow is truncated.</td>
</tr>
</tbody></table>
<p>Community write-ups often talk about a practical “~150 instruction” attention budget for frontier
models before adherence drops — that is research/context, not a hard file limit. Your instruction
file shares that budget with the agent’s system prompt and tool descriptions, so leave headroom.</p>
<h2>Why bloated files get ignored</h2>
<ul>
<li><strong>Everything always-on costs every turn.</strong> Root <code>CLAUDE.md</code> / <code>AGENTS.md</code> is re-read at session start; fat files tax every message and every general-purpose subagent.</li>
<li><strong>Markdown is advisory.</strong> Claude Code docs treat memory files as context, not enforced config. A “never” in prose can still be skipped; hooks and permissions enforce must-holds.</li>
<li><strong>Conflicts cancel each other.</strong> Duplicate or contradictory always/never rules across files make the model pick arbitrarily.</li>
<li><strong>Long sessions compress early rules.</strong> Mid-thread, package-manager or style rules often shrink first while code stays — which feels like “Cursor/Claude is ignoring my rules.”</li>
</ul>
<h2>A practical size checklist</h2>
<ol>
<li><strong>Measure first.</strong> In Claude Code, run <code>/context</code> (and <code>/doctor</code> for trim proposals). For any stack, paste the files into Clogmeter to see token weight vs common windows and spot duplicates/conflicts.</li>
<li><strong>Keep always-on content tiny.</strong> Project identity, hard constraints, build/test commands, and pointers. Delete anything the agent can discover by reading the repo.</li>
<li><strong>Move procedures to skills.</strong> Release checklists and long how-tos should load on demand, not on every prompt.</li>
<li><strong>Scope directory rules.</strong> Nested <code>AGENTS.md</code> / path-scoped Cursor or <code>.claude/rules</code> files beat one giant root file.</li>
<li><strong>Enforce never-rules outside markdown.</strong> If ignoring it once would hurt, use a hook, linter or CI check.</li>
<li><strong>One source of truth.</strong> Prefer a canonical <code>AGENTS.md</code> with thin <code>CLAUDE.md</code> / Cursor adapters instead of divergent copies.</li>
</ol>
<h2>How long is “too long” in practice?</h2>
<p>If the root file is hundreds of lines, mixes architecture essays with one-off workflows, or repeats
the same rule in three places, it is already too long for reliable adherence — even if the model
still “sees” the file. Vendors warn that longer instruction files reduce compliance before hard
truncation kicks in (Codex’s 32 KiB cap being the blunt case).</p>
<p>A useful rule of thumb many teams use: if you would not ask a new teammate to memorise the whole
file before their first PR, do not force the agent to either. Make the root file the map; put the
territory in scoped docs and skills.</p>
<hr />
<p>If you want to see where your own AGENTS.md, CLAUDE.md or Cursor rules spend tokens, I built a free browser-only checker that also flags duplicates and always/never conflicts: <a href="https://clogmeter.vercel.app">Clogmeter</a>.</p>
]]></content:encoded></item></channel></rss>