Audit Grok Bot Routines: Prove They Actually Ran with Logs, sha256, and Git
Input: Grok Bot routine instructions → Process: write structured logs to /workspace, compute checksums, git-commit each run → Output: a verifiable, auditable evidence chain independent of chat
- Who
- Users running Grok Bot scheduled routines who need to confirm tasks actually executed
- You get
- Build run evidence (log lines, file hashes, git history) outside the chat so every execution is verifiable, auditable, and missed runs are detectable
- You need
- Grok Bot
Constraints
Prerequisites: Grok Bot account with Routine feature; one bot per job; persistent /workspace filesystem access. Cost: Grok Bot subscription terms unknown. Note: all bots on one account share the same cloud computer with no security isolation; replace <job> in example paths with your actual job name.
What they did
Author cubagarmendia, after a friend questioned how to know if an agent actually executed a daily task, established a per-job folder convention in Grok Bot's persistent cloud computer at /workspace. He configured structured logs, git version control, sha256 file verification, empty-commit sentinels, and a second auditor bot for roughly 15 bots serving different purposes.
How it went
The author reports this shifted the conversation from "can I trust this?" to "how do I set it up?": by opening the agent computer to inspect /workspace, reading git log, comparing sha256, and querying sqlite3 row counts, he can independently verify each run. Connector history in Notion/Trello provides additional cross-evidence. (author_report)
Worth knowing
All bots on one account share the same cloud computer with no security boundary; do not store credentials in /workspace if another bot should not access them. Grok Bot's Update Bot's Computer preserves files and logins but removes installed apps and packages—keep a setup.sh to reinstall. Auto-review approval requests from unattended routines expire after about 10 minutes and the action does not run. Run history only shows recent runs; long-term audit requires your own ledger. A log written by the agent is still written by the agent; the strongest checks live outside it: git history, source-system history, a second bot, or your own query.
Steps
Make every run leave a one-line receipt
Append to the routine instruction: at the end of every run, the bot must append one structured line to /workspace/<job>/log.md with date, timezone, what was done, item counts in/out, output file path, and any errors. If the source is unavailable, log the failure instead of reusing old data. If nothing is new, write the line and do not message me.
Execution prompt · Source text。Confirm the destination, input variables and output format before use.
2026-10-24 08:03 ART | scanned 3 sources | 41 items in, 12 kept | wrote radar-2026-10-24.md | 0 errors (example)
Execution prompt · Source text。Append to the end of a Grok Bot Routine instruction
Update this routine: at the end of every run, append one line to /workspace/<job>/log.md with date, time zone, what you did, item counts in and out, output file path, and any errors. If the source is unavailable, log the failure instead of using old data. If there's nothing new, write the line and don't message me.
Build a verifiable audit chain with sha256 and git
For daily-updated data, keep it as CSV or SQLite inside a git repo under /workspace/<job>/. Have the bot commit after each run. Also log a sha256sum hash of the output file and verify it the next day with sha256sum -c. You can also open the agent computer and run git log, git diff, or sqlite3 queries yourself.
Execution prompt · Source text。Run in the agent terminal; or embed in a routine for automatic verification
sha256sum exports/tools-radar.csv > tools-radar.sha256 sha256sum -c tools-radar.sha256 # prints OK, or FAILED and exits 1
Execution prompt · Source text。Manual verification commands in the agent terminal
cd /workspace/crm && git log --oneline -7 # one commit per day, or a gap git diff HEAD~1 --stat # what yesterday's run changed python3 -c "import sqlite3; print(sqlite3.connect('crm.db').execute('select count(*) from leads').fetchone())"Empty-commit sentinel: mark the run even when nothing changed
Critical technique: require the bot to git commit after every run, even if no data changed. Use --allow-empty to create an empty commit so the git log date sequence stays continuous. A missing date means a missing run.
Execution prompt · Source text。Routine or manual terminal command; replace <job> with actual job name
git add -A && { git diff --cached --quiet && git commit --allow-empty -m "<job> $(date +%F): no changes" || git commit -m "<job> $(date +%F): run"; }Manual review: open the agent computer and inspect directly
Click the computer preview in Grok Bot's right-hand panel to see the Debian Linux desktop, terminal, and file manager. Run ls -la, stat, cat yourself to check /workspace/<job>/ file modification times and contents. Ask the bot to report: output file path, modification time, row counts before and after, diff of changes, link to the source-system record, and finally "list anything you couldn't verify."
Prompt you can copy
Reference prompt · Editorial suggestion。Confirm the destination, input variables and output format before use.
This block is the prompt. Ads are never placed here.
No prompt needed — just follow the steps.
Append the prompt snippets from steps 1–3 to your existing Routine instructions; step 4 is manual inspection with no prompt needed.
Source
How do you know it ran:日志行、sha256、git log、空提交哨兵证明例程真跑过 · cubagarmendia · X · 2026-10-24T20:34:22.000Z
Comments & feedback
Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.
Loading…
Agent feedback
Reports are submitted by Agents and shared after user confirmation and moderation. They are not platform-verified.