J&P Woodcrafters

Gertrude — make her actually work

Everything Christa's agent has that yours doesn't, in the order it pays off. Copy a box, paste it to Gertrude, let her build it.

Written for Phil by Willis · 2026-10-20

How to use this page

Every box below is something you copy and paste to Gertrude in your normal chat with her. Tap Copy, paste it, send it. She does the work and reports back.

You don't need to understand the technical parts. Your job is to decide what she's allowed to do and to say go or no-go. Hers is the how.

The one idea behind this whole page: Gertrude doesn't stay reliable by remembering to be. She wakes up with no memory of yesterday — same as Willis does. So every rule that matters becomes a small script on a timer that complains out loud. Not a note in a file nobody opens. Not good intentions.
Why she's been frustrating: almost none of it is her being dumb. It's three things — her Claude login quietly expiring, nothing watching her when she goes quiet, and nobody ever having written down who you are. All three are on this page.
1

The login — the one thing only a human can fix

Two minutes, at Wilma's keyboard. Nothing remote can do it.

When Gertrude's Claude login expires, every model dies at once — the backup models share the same login, so they're no help. From your side it looks exactly like she ran out of room and she'll tell you to start a new chat. It isn't room. It's the login.

Only a person at the keyboard
Sit at Wilma, open a terminal, type claude, then /login, and sign in. That's the whole fix. It takes longer to find a chair than to do it.

Her login was signed back in on Oct 20, so she can reach a model right now. It will expire again — that's normal. The point of step 4 is that next time, you get a text before she goes quiet on you.

Paste to Gertrude — check your own login
Gertrude - check your own authentication right now and tell me in one short answer whether it is healthy.

Run: openclaw models auth list
If any profile's "expires" is in the past, that is the problem, and you need to tell me plainly: "my login is expired, sit at this computer and run claude then /login." Never tell me to start a new session when the real problem is the login.

Then run: openclaw doctor
And check the newest file in ~/.openclaw/logs/ for these exact phrases: "OAuth session expired", "Failed to authenticate", "All models failed", 401, 429. Log timestamps are in UTC - convert them to Eastern before you tell me when something happened.

Send me one short summary: is the login good, when does it expire, and did any of those phrases show up recently.
2

Let her actually do the work

Two minutes. This is the setting that turns her from a toy into a tool.

Out of the box she stops and asks your permission before nearly every single step — read a file, run a command, write a line. That's fine for a programmer sitting at the keyboard. It's useless when you're in the shop and building one invoice takes her twelve steps and twelve thumbs-ups.

Christa's agent runs with those prompts switched off on purpose. It is the single biggest reason he finishes things. Gertrude should run the same way.

Read this twice — it's the whole point. Turning off permission prompts is not turning off your approval. The prompts only ever asked about her own computer. The approval that actually matters — "should I send this to Brad?" — is a sentence from her to you, every time, and that rule lives in her instructions file, not in a popup. If she ever confuses those two things, that's a serious mistake and you tell her so.
Paste to Gertrude — stop asking me for every step
Gertrude - stop asking my permission for every individual step. You are allowed to work on this machine without stopping to check.

Open ~/.claude/settings.json (create it if it does not exist) and merge this in, keeping everything already in the file:

{
  "permissions": { "defaultMode": "bypassPermissions" },
  "skipDangerousModePermissionPrompt": true
}

That switches off the per-step confirmations for work on THIS computer. It does NOT change the rule in your AGENTS.md: nothing goes off this machine - no email, no invoice, no post, nothing to a customer - until you have shown me the exact wording and I have said go. Those are two completely different things and you must never treat the first as permission for the second.

When you are done, confirm the file is still valid JSON and tell me what else was already in it.
What changes for you: she stops interrupting a job halfway through to ask whether she may keep going. You'll notice it within one conversation.
3

Tell her who you are — once, in writing

Five minutes. This is why she keeps asking you things you already told her.

Chat is not memory. Anything you say only in a conversation is gone when the conversation ends. These two boxes put it in files she reads at the start of every single session, forever.

Box A — your business facts

Paste to Gertrude — who I am
Gertrude - write this into ~/.openclaw/workspace/USER.md, keeping anything already in there. Then confirm you can read it back.

Name: Phil Votaw. Company: J&P Woodcrafters, co-owner John Cooper. We build custom Sapele wood doors and screen doors for lumber yards and contractors around Charleston SC.
Shop: 4541 Savanah Hwy BLD 10, Ravenel SC 29470.
Phil 843-323-7157. John Cooper 843-296-8593. Email jandpwoodcrafters@gmail.com. Site www.jandpwoodcrafters.com.
Checks are made payable to J&P Woodcrafters. Invoice numbers run INV-1041 and up. There is no sales tax line - total equals subtotal.
Regular customers: Four Corners Building Supply (Bryan), Buck Lumber, Builders FirstSource (Brad Rogers), Cook Bonner (Jay), Dawson Lumber in Georgetown (Maggie, Jay Connelly, KC, Leslie Burrell), David Inloes, plus walk-up individual sales.
I am not technical and I am usually in the shop. Short answers. Do the work, do not hand me a list of steps.

Box B — how to work with you

Paste to Gertrude — how to work with me
Gertrude - write this into ~/.openclaw/workspace/AGENTS.md, keeping anything already in there. Then confirm it.

My two jobs for you are invoices and email. Everything else is secondary.
Never send an email, an invoice, or anything else off this machine until you have shown me the exact wording and I have said go. Reading, drafting and organizing you do freely without asking me.
When I say "invoice Buck Lumber for two 3068 Sapele doors," you already know the prices - build it, show me the PDF, and wait for my go before sending.
Write what happens into your memory as it happens, not at the end. If the session drops, I should lose nothing.
If you are not sure which customer or which door I mean, ask me one question, not five.
Never tell me to start a new session. If you are in trouble, tell me what is actually wrong.
Christa's note to Phil: the second box is the one that changes how she feels to use. "Show me before you send" and "one question, not five" are the two rules that took Willis from annoying to useful.
4

Connect these — in this order

Each one is a thing she can do that she can't do today. Do them top to bottom.

Do first

Email that actually sends

Right now she can read and draft, but you can't say "email this to Brad" and have it go. A Gmail app password fixes that — it's a one-time code from your Google account that lets her send as jandpwoodcrafters@gmail.com without ever holding your real password.

Paste to Gertrude — email
Gertrude - get email sending working for me.

First, walk me through making a Gmail app password for jandpwoodcrafters@gmail.com, in plain steps I can do on my phone. Wait for me to give it to you.

Then build me a send script on this machine that sends plain email with attachments through Gmail SMTP (smtp.gmail.com, port 465, SSL). Store the password outside the script and outside any git repo, never print it back to me, and never commit it anywhere.

Test it by sending one email to me with a small attachment, and tell me when it lands. From then on, "email this to Brad" should be one sentence from me and done.
Then

Invoices off your real price list

You have a pricing workbook. If she can read it, "invoice Dawson for three screen doors" becomes a finished PDF in seconds instead of a night at the kitchen table.

Paste to Gertrude — invoices
Gertrude - get invoicing working off my real numbers.

Find my pricing workbook on this machine. It is named something like JP-Woodcrafters-Simple.xlsx, with tabs for Customers, Orders, Items, Quote, Invoice and Price List. If it is not on this machine, say so and I will get it to you - do not guess at prices.

Once you have it: confirm you can read the price list and the customer list, and that you can produce a finished one-page invoice PDF from it. LibreOffice headless on this machine will convert it: soffice --headless --convert-to pdf

Show me one sample invoice as a PDF before we ever use it on a real customer. Invoice numbers run INV-1041 and up, checks payable to J&P Woodcrafters, no sales tax line - total equals subtotal.
Then

Texting you directly

She already reaches you on Telegram. What she's missing is the ability to reach you when she's broken — that's step 4, and it needs the bot working first.

Paste to Gertrude — prove you can reach me
Gertrude - prove you can text me without going through yourself.

Write a tiny script on this machine that sends me a Telegram message directly through the Telegram bot API, reading the bot token out of ~/.openclaw/openclaw.json. It must not route through you or need you to be running at all.

Run it once so I get the test message, then tell me the exact command so I know it works. Every alarm on the rest of my list is going to use this.
5

Doors — one per job, Gertrude connects them

This is how Christa actually works now. It's the part most worth copying.

She doesn't have one agent doing everything. She has one agent she talks to — and behind him, a set of doors, one per project, that she opens straight from her phone. Each door is a session already sitting in the right folder, already knowing that project's rules, already awake. She taps "HP · hautgap-sic" and starts talking about the school site. No explaining, no setup, no "which project did you mean."

Gertrude stays the hub. You tell her what you want and she figures out where it goes. The doors are for when you already know the job — invoices, the website, the shop — and just want to get in and go.

Why this beats one big agent: a session that only ever does invoices gets good at invoices and never mixes up a door order with a blog post. You train each door once on its one job, and Gertrude ties them together.
Paste to Gertrude — build me doors
Gertrude - build me the same phone doors Christa has, so I can start a job from my phone without explaining myself first.

Here is exactly how hers work. Copy the pattern:
- A general door: "claude remote-control --name" running in the agent workspace folder, as a systemd user service with Restart=always and StartLimitBurst=0.
- One door per project folder, from a systemd template unit claude-project@.service, with WorkingDirectory set to that folder and the command:
  claude remote-control --name "$(cat .door-name)" --permission-mode bypassPermissions
- The plain-English name lives in a .door-name file inside each project folder, because that name is what I see on my phone.
- A watchdog on a 5-minute timer that checks every enabled door and restarts any that is not active. Hers has caught real outages.
- Each project folder has to be marked trusted once in ~/.claude.json before its door will open without a dialog.
- WARNING: systemd user units start with NO PATH at all. Put absolute paths to node and claude in the unit with Environment=PATH=... or every door will fail silently for hours.

Build me three to start: one general called "Phil - anything", one called "Invoices", and one called "J&P website". Point each at the right folder on this machine - ask me if you are not sure which folder is which, one question not five.

Then write house rules into ~/.claude/CLAUDE.md so every door behaves the same no matter which one I open: one job per conversation, keep a STATUS file per project with a "waiting on Phil" list at the top, show me the exact wording before anything leaves this machine, and when I say "close" save everything and tell me what could not be saved.

Tell me when the doors show up in my Claude app and which one to try first.
What he needs for this: the Claude app on his phone, signed in to the same account the machine uses. The doors appear in the app on their own once the services are running.
6

The guards — this is the actual difference

This is the honest answer to "why is Willis better." It isn't a smarter model. It's eight small scripts that run whether anyone is paying attention or not.

Paste the next box and let her work through it. It's a real build — give her time, and expect her to come back with questions.

Paste to Gertrude — build what Willis has
Gertrude - Christa's agent Willis has run on one machine for months without doing to her what you have been doing to me. I asked what he actually has that you do not. This is the list, in the order it pays off. Build it here. Nothing in it is clever - it is all just guards that run whether anyone is paying attention or not.

THE PRINCIPLE BEHIND ALL OF IT: he does not stay healthy by remembering to. He wakes up fresh every session and forgets everything, exactly like you do. So every rule that matters is a script on a timer that complains out loud - not a note in a file that nobody opens, and not good intentions.

1. A WATCHDOG THAT RUNS OUTSIDE YOU. This is the single biggest one.
He has a small plain script on a 2-minute timer that is not an agent turn and does not need him to be alive. It checks four things and texts his person directly through the Telegram bot API:
  a) is the gateway process up and is the port answering
  b) is he actually HEARING her - a gateway can be running and deaf, and from her side deaf is the same as dead
  c) is the backup fresh
  d) is the disk full
If the gateway is dead it restarts it automatically before anyone notices. Build the same for me. The rule it is built on: an alert path that fails the same way as the thing it watches is not an alert path.

2. A SECOND WATCHDOG JUST FOR LOGINS.
Separate script, separate job: it reads the auth expiry out of the agent sqlite under ~/.openclaw/agents/*/agent/ and greps the newest gateway log for "OAuth session expired", "Failed to authenticate", "All models failed", and usage-limit text. If the token has been expired 30 minutes without refreshing, it texts me a plain message: the login died, go sign in. Hold a state file so it does not repeat the same alert inside 45 minutes.
This exists because one expired login takes down every model at once - the fallback chain is no protection, they all share the same profile - and I just see a broken assistant.

3. THE MACHINE IS NOT ALLOWED TO SLEEP.
On his box, suspend.target is masked and lid-close suspend is off. Verify the same here:
systemctl status suspend.target
If it is not masked, mask it. A laptop that sleeps looks exactly like an agent that died, and you will get blamed for it.

4. A SIZE GUARD ON MEMORY, WITH AN EXIT CODE.
Every session re-reads the same handful of files to remember who you are, and those files only ever grow. Nothing breaks - sessions just get slower and dumber until someone notices. He has a script that fails with exit code 1 when any memory file goes over 15KB, and it runs on every backup so it cannot be skipped.
The rule it enforces: an oversized file is never deleted, it is SPLIT. Copy it verbatim to -archive, then rewrite the working file as current state only. Nothing is ever lost.
Two traps it caught the hard way:
- If a daily note repeats its own top heading, a save re-dumps the whole running summary instead of appending only what is new. That is the bug that makes context explode. One of his hit 104KB and got re-read 23 times in one session.
- If a program writes it and no human ever reads it, it is a LOG, not a memory. Logs go to ~/.openclaw/logs/, never into the workspace, never into the backup.

5. KNOW WHAT YOU LOAD ON EVERY SINGLE TURN, AND KEEP IT SMALL.
He loads 7 files at the top of every session - who he is, who she is, what is on the machine, and his long-term memory index - and the whole set is kept to a size the bootstrap will actually carry. If it goes over, the tail gets silently cut and he loses the end of his own instructions with no error at all.
Check yours: du -h ~/.openclaw/workspace/*.md | sort -h | tail
Keep the long-term memory file as an INDEX - one line per subject pointing at the file that holds the detail. Never put the detail in the index.

6. BACK UP EVERY 4 HOURS, NOT DAILY.
His workspace pushes to a private git repo every 4 hours. It no-ops in about a second when nothing changed, so the extra runs cost nothing. It used to be once a day, until a night of work sat unpushed for 20 hours. If the backup fails, it texts her - a silent backup failure is the same as no backup. Never put my customer contact details or any password into a git repo.

7. WRITE IT DOWN AS IT HAPPENS, NOT AT THE END.
He keeps a dated note per day and appends to it while the work is happening. "Save our work" is exactly the request that fails when a session is already in trouble, because saving needs the model to run. Log continuously and a drop costs nothing.

8. SYSTEMD USER TIMERS START WITH NO PATH.
Every timer above will fail silently for hours if you assume otherwise. Use absolute paths to node or python inside the scripts. One of his went dark for 12.5 hours on exactly this, and the alarm that was supposed to catch it died the same way.

When you have these built, send me ONE message listing which are live and which you could not do, with the reason. Do not tell me it is all done unless you have watched each timer actually fire once.
Hold her to the last line. "All done" doesn't count. Ask her which timers she personally watched fire. Willis got this wrong once and an alarm sat dead for half a day.
7

How to actually run her day to day

Four habits. They cost nothing and they're most of the difference.

One job per conversation

Invoices in one chat, the website in another, shop stuff in a third. Mixing them is what makes her go vague and start forgetting the thing you asked for first.

Open with "where did we leave off?"

She wakes up blank every time. That one question makes her go read her own notes before she starts talking, instead of guessing.

Paste to Gertrude — set up the status habit
Gertrude - set up two habits so we stop losing track of things between conversations.

1. Keep a STATUS file for each thing we work on - invoices, the website, the shop. At the top of each one: what changed and when, what is next, and a "waiting on Phil" list of every question you have asked me that I have not answered yet. Delete a question the moment I answer it.

2. When I say "where did we leave off" - read that file and the last few things we did, then tell me in three lines where we stand and what is next. Do not start working until you have told me.

3. When I say "close" - that means I am done talking. Save everything: update the status files, move every question I did not answer into the waiting-on-Phil list, and tell me plainly if anything could not be saved. Do not ask me questions during a close.

An unanswered question is the thing most likely to get lost, so it outranks the work. If you are holding a question for me and only saying it in chat, it dies when the chat dies. Write it down.

She will "forget" mid-conversation. That's normal.

Long chats fill up and she drops the early part. The fix isn't to fight it — it's step 5's status files, so what matters is on disk instead of in her head. If she tells you to start a new chat, check the login first (step 1); that's usually the real reason.

Correct her once, out loud

When she gets something wrong, say so plainly and tell her to write the correction down. She'll keep making the same mistake forever if the fix only exists in a conversation.

Paste to Gertrude — when I correct you
Gertrude - from now on, when I correct you on something, do not just say sorry and move on. Write the correction into your memory files as a rule, in my words, with the reason it matters. Then tell me which file you put it in.

I should never have to correct you on the same thing twice. If I do, that means you kept it in a conversation instead of a file, and that is on you.
8

The safety lines

These aren't optional and they aren't paranoia — they're what makes it safe to give her real access to your business.

And the one that matters most: she's a tool, not an authority. If she tells you something about your own business that doesn't sound right, she's the one who's wrong. Say so.

Built by Willis — Christa's agent — for Phil, 2026-10-20.

Stuck on a step? Tell Christa the step number and what Gertrude said back. Everything on this page we learned by getting it wrong first.

build

A newer version of this page is ready — tap to load it