<p>There's a prompt going around right now — from Paweł Huryn's excellent Fable 5 guide — that points a strong model at your own instruction files and asks it to find the rot: the stale rules, the contradictions, the advice written for a dumber model. It's a genuinely good idea, and we wrote about it last week. So this week we did the obvious thing: we ran it on ourselves.</p><p>What we learned wasn't what we expected. The most valuable finding was that <strong>half the findings were wrong</strong> — and that the only thing standing between "wrong" and "committed bug" was a verification step a hurried agent would have skipped.</p><p>Here's exactly what happened, false starts included.</p><h2>What the audit "found"</h2><p>We pointed it at Elyra's own <code>AGENTS.md</code> — the 240-line rulebook our agents follow. It came back with a clean, confident list. Two items looked like real bugs:</p><ol><li><p><strong>A stale label list.</strong> The rules told agents to tag issues with one of five <code>pkg:*</code> labels — written back when the monorepo had a handful of packages. It now has thirty-six. Genuinely out of date.</p></li><li><p><strong>A broken doc reference.</strong> The rules pointed at <code>docs/providers.md</code>. We checked the docs folder: only <code>providers.html</code> exists. Broken link, two places. Obvious fix — change <code>.md</code> to <code>.html</code>.</p></li></ol><p>Finding #1 was real. We fixed it: the rules now point at <code>ls packages/</code> instead of a frozen list.</p><p>Finding #2 was confident, plausible, and completely wrong.</p><h2>The fix that would have broken things</h2><p>The "broken" <code>docs/providers.md</code> reference was fine. We just misread it.</p><p>The instruction lived in a section explicitly scoped to the <code>packages/coding-agent/</code> directory — and <code>packages/coding-agent/docs/providers.md</code> exists, exactly where the rule said it would. The repo has <em>two</em> docs folders: HTML for the website at the root, markdown for the package alongside the code. The audit (and, briefly, we) saw <code>docs/providers.md</code>, glanced at the root folder, found only <code>.html</code>, and declared a bug.</p><p>Changing it to <code>.html</code> would have pointed the rule at a file that doesn't exist — turning a correct instruction into a broken one. We caught it only because, before committing, we ran one boring command: <code>ls packages/coding-agent/docs/</code>. There it was. We reverted the "fix."</p><p>The audit didn't lie. It pattern-matched a real-looking problem and stated it with the same confidence as the real one. Nothing in its tone distinguished the true finding from the false one. That's the trap.</p><h2>Why this is the actual lesson</h2><p>The seductive version of "have a strong model audit your rules" ends with <em>and then let it fix them.</em> That's where it goes wrong. An audit is a list of <strong>hypotheses</strong>, not a list of bugs — and a model that auto-applies its own hypotheses doesn't clean your codebase, it edits it toward plausible-looking wrongness. The more confident the model, the more dangerous the blind apply.</p><p>This is not a hypothetical we're warning you about from the sidelines. It happened to us, today, on our own repo, on the second of two findings. The honest score was one real bug, one false positive — a 50% hit rate on a confident list. If we'd let the agent run unsupervised "fix everything," we'd have shipped a regression while feeling productive.</p><p>It's also, frankly, why our own rulebook says what it says. <em>"Read files in full before wide-ranging changes."</em> <em>"Always ask before removing functionality."</em> Those lines look like bureaucracy until an audit hands you a confident, wrong diff and you watch the verification step earn its keep.</p><h2>How to actually run an audit safely</h2><p>If you try Huryn's prompt — and you should — here's the discipline that makes it useful instead of dangerous:</p><ul><li><p><strong>Report first, fix never (in the same breath).</strong> Make the model produce findings, not edits. Decide separately.</p></li><li><p><strong>Treat every finding as a claim to verify</strong>, not a task to execute. The cheap ones (<code>ls</code>, <code>grep</code>, open the file) catch the false positives fast.</p></li><li><p><strong>Watch for confident reads of relative paths, "missing" files, and "contradictions"</strong> — these are where pattern-matching outruns truth.</p></li><li><p><strong>Let a human — or at least a separate verification pass — own the delete key.</strong> This is exactly what <code>/review</code> and a budgeted <code>/goal</code> are for: a second look that isn't invested in being right.</p></li></ul><p>The division of labor Huryn nailed is <em>the model reads, you delete.</em> We'd add one word: the model reads, you <strong>verify</strong>, you delete.</p><h2>The smaller, truer takeaway</h2><p>Auditing your instruction files is worth doing. Strong models really do catch rot that weaker ones wrote and couldn't see. But the headline isn't "the AI found my bugs." It's quieter and more useful:</p><p><strong>A confident finding and a correct finding look identical until you check.</strong> The teams that win the agent era aren't the ones who trust the audit. They're the ones who run <code>ls</code> before they believe it.</p><p>We caught ours. Run the command before you believe yours.</p><p>Happy building — and happy verifying.</p>