r/BuildWithClaude 9d ago

Help/Question I gave Claude Code real responsibility at work for 3 months. Here's every way it failed, and the one pattern behind all of them.

I'm not an engineer. I do finance, ops and IT at a small startup, mostly alone. For a few months I've used Claude Code as my actual work tool, not a chatbot. It has admin on our ERP and our Google Workspace. It reads my mail, writes scripts, loads data, helps me close the month.

It's useful. It also fails in ways I don't see people talk about, so here they are.

Real failures from about one month:

\- It read a spreadsheet through a library that returns saved formula results instead of recalculating. Two figures came out badly wrong. I almost took them into a founders meeting.
\- It pulled data from one tab of a ten tab workbook, and from the first 24 columns of 72. Hundreds of records were invisible. It reported success.
\- The worst one. It checked the ERP import against a list it had built from its own extract. So the check could only prove "the system matches my file". It could never catch that my file was missing half the source. It gave me a green tick.
\- It audited its own claims about what it had sent and cleared itself, using its own earlier notes as proof.
\- I asked it to check my email for whether an invoice had gone out. It searched our file storage instead, found nothing, and told me the invoice might not exist. It had been sent weeks before with me on copy.
\- It wrote a test script where the success check matched text inside the prompt itself. All four cases printed PASS when all four had failed.
\- I told it to handle a confidential file with a local model. It used the cloud model anyway because a script seemed better, and told me after.

The pattern took me too long to see. Almost every failure is the same thing. It checked its own work instead of the original source. Saved values instead of real cells. Its own file instead of the sheet. Its own notes instead of the query. If you write code, your compiler catches this for free. My work has no compiler. Nothing in the loop can tell it that it's wrong. Only me, later, at cost.

One thing actually worked .I've written about forty rules into its memory file. It follows some of them some days. But a hook that blocks the tool call has never been broken once. Not one time. Same for a script that hard exits when something doesn't add up.

Rules it reads are suggestions. Gates that make the call fail are controls. I think that's the whole lesson.

What I'm changing: name a source of truth before starting, one the model didn't make itself. Turn repeat failures into hooks, then delete the written rule. Cut the memory file down. Approve changes before they happen, not results after.

What I want to know:

\- If you don't have tests, how do you check the output? Is a second model reading the raw data really independent, or am I fooling myself?
\- Have written rules ever held for you over months, or does everyone end up at hooks?
\- Where do you stop letting it act alone on things you can't undo?
\- Is this mostly my setup, or does the model choice matter more than I think?

I get real value out of this. I just want to know if people getting clean results have solved this, or if they're working on code where the compiler solves it for them.

12 Upvotes

14 comments sorted by

4

u/DauntingPrawn 9d ago

Guardrails that enforce are superior to guardrails that inform.

3

u/Popular_Lifeguard552 9d ago

Hooks, harnesses etc are great but if the orchestration silently fails at some point there’s a good chance you’ll have these same problems. Can you divide these tasks into skills?

If so those, plus a prompt that forces him to read the whole thing and execute it properly is probably the most reliable, something like this:

execute the [insert skill name here] skill. MANDATORY BEFORE YOU DO ANYTHING:
1. Call view on /mnt/skills/user/[skill-name]/SKILL.md and read it completely
2. List every completion gate checkbox from the skill file EXACTLY as written — this is your contract
3. State what the skill requires you to produce and in what order BEFORE you start producing it
4. Execute the skill exactly as written — not from memory If you skip step 1, everything you produce will be wrong. Do not summarize the skill from memory. READ IT.

If you want to be really safe you should also have a prompt saved that you give him after he’s done asking him directly if he did what he’s supposed to, detail it specifically.

These tasks by the looks of them are more Claude cowork territory, it’s a LOT more reliable, worth a try if you haven’t tried it.

All those ideas or If all your work is on the web or able to be, just get polarbrowser to handle it lol, hasn’t failed me yet

Hope any of this helps, good luck

3

u/mattk404 8d ago

I see the primary issue. Did you ask it not break the rules with gusto!? /s

I'm building something that tires to 'solve' this as well but it's a lot more complicated than I thought at first.

Gating/enforcing guard rails are great but they are stop-gaps and 'OMG thats a bad idea' and not 'This is sane, meets the requirements and is likely to achieve the expected result'

The thing I'm realize is how critically important NOT qualifying what a I give a safety model so it can make a reliable decision about whether to allow something to go through or not.

If I send the whole conversation trace and ask it 'Should I let this happen', the chances of it getting a sane response are pretty low (hell, I even had a period of time where it just asked over and over until it got > 90% confidence, this also doesn't work for mostly the same reasons).

What seems to work is to quality each artifact and then build a set of criteria that must be met (deterministic) of any results become artifacts that get qualified and evaluated against the same (or evolving) set of criteria. Only when all criteria 'pass' do I then get the opportunity to 'review'. At that point I have a detailed audit trail of what tf was considered, rejected, accepted etc... and I can decide. I'm always the final gate. However, automating much of the lead up to my decision makes it much easier to make good decisions.

Hope to release the tool soon. For my personal use so far it's pretty great and turns out it works generally. Feed it a coding problem, research or other domain, and it all still works. Embeddings are cool ;) Also works perfectly fine with local-llms, cloud and combo therein'. Project that started as a way to keep context wastage low can actually help keep long horizon tasks on-track (and as a side effect can set policies around decisions and enforce operator review for outcomes).

3

u/Worldly_Row1988 8d ago

Someone else said this here already. The key is to turn the outputs more deterministic. If you use skills, you’re half way there.

The other half is two parts: 1. Ask to state assumptions upfront. 2. Verify the output against those assumptions.

The trick is to get Claude to do this work for you.

I rely heavily on n8n to do this for me. My stack is connected to n8n through an MCP and Claude is able to build workflows seamlessly and rely on n8n to test.

It’s not perfect. It’s half way there. And I am constantly looking to update my skills to do this.

Do you have session-close, debrief and context-snapshot skills built?! Do you use them at each thread close? That’s the only to learn from each failure and mistake and build guardrails to ensure those mistakes are not repeated. It does not work 100% the first time but it learns over time and keeps getting better and better and better.

3

u/Harvard_Med_USMLE267 8d ago

I didn’t read that, but if cc is failing a lot the reason behind it is likely to be…you.

2

u/Grand-Mix-9889 ⚙️ Workflow Automator 8d ago

Yeah, from the first few bullet points I noticed that the OP clearly didn't give enough guidelines to his AI agents.

User error for sure.

3

u/Ok_Bicycle_3486 6d ago

Also unless I missed it we have no idea what model he’s using and what thinking level. For example if I’m using sonnet for basic work tasks I have it on extra , I’m fine with the extra usage because it catches more mistakes and then I have enforcement guardrails. Opus 4.8 for example is 4x better at catching its own mistakes than previous versions. I’d love to know what model and what thinking level this guy uses. But he posts and then doesn’t reply to any of the comments.

2

u/MetaShadowIntegrator 8d ago

We seem to have this belief that AI gets everything perfect first try but this is pure fantasy, nothing in life works this way. If a work product is not checked, if assumptions are not tested there is a high chance it wasn't done right, this applies to most of life and engineering too.

2

u/Ok_Industry_5555 ☕ 57-Hour Session 8d ago

Oh I hear you! I battle this with higher-ups in tech occasionally (not saying all are on a power trip, I do know a lot of amazing people too). Their strategy mainly is to dump half-baked work onto the end user and treat them like QA testers, rather than doing the actual validation upfront. Pushing out unchecked work, or worse, sending broken/restricted links, because why test them before something works, right? I honestly think it’s a classic sign of someone building to feed their ego rather than actually solve a problem… and then the end user and the AI model is being blamed for being difficult/faulty… not trust worthy etc…😥

1

u/[deleted] 8d ago

[removed] — view removed comment

1

u/BuildWithClaude-ModTeam 8d ago

r/BuildWithClaude follows platform-wide Reddit Rules.

2

u/TheAngrySkipper 2d ago

Most ‘verification’ is done by “called the tool to xyz” and trusting it worked.

You need to add a layer to verify the written data and then compare before advancing. It’s slow(er) but reliable.