Skip to content

Using Grok Bot to Review This Entire Blog

Published

TL;DR

Grok found the dead links. Cursor patched the posts that needed it.

The WordPress migration got the archive into Markdown. The CMS post is how I write a new article. Neither of those passes fixed fifteen years of outbound links.

Some of those links pointed at software that no longer exists. Some pointed at domains that got hijacked. I did not want to click every href by hand, and I did not want a rewrite of the whole journal. I wanted an audit, then a patch list I could run against the repo.

That is what I did with Grok Bot, then with Cursor Agent. This post is about that loop.

Ask for a review, not a rewrite

I told Grok to do a full pass on the live site: 49 posts, plus About, Contact, and the category pages. The files live in this Astro repo under src/content/posts/. I asked it to look for incoherence, sloppy writing, broken links, and generic LLM filler.

I did not ask it to rewrite the articles in that first pass. A rewrite prompt on a how-to from 2012 is how you lose the original screenshots and the voice. I wanted a list of what was wrong.

What came back matched what I already half-knew:

  • The older first-person how-tos are mostly fine. The sentences are short. The screenshots are still the point.
  • The real damage is dead software. Roundme’s domain is hijacked. Recap 360 is gone. Autodesk WikiHelp does not resolve. Google Project Tango and Constructor are gone. DraftSight is not a free CAD app anymore. A360 share links return unauthorized. The old per-node catalog at truevis.com/nodes 404s.
  • The WordPress-to-Markdown conversion left junk: missing spaces after bold markers, leftover HTML, a few typos that were always there (seachable, explained my my post).
  • The 2024–25 LLM posts are where the filler showed up. The older journal does not read like that. I still did not ask Grok to rewrite those. That is a different job.

Grok Bot summary of the blog review: 49 posts, dead software, WordPress leftover markup, and LLM filler left for a later pass

Turn the review into a per-file Cursor prompt

A chat transcript is not something I can paste into Cursor and trust. Grok’s first dump was useful as a diagnosis. The next step was a paste-ready agent prompt: one section per Markdown file, either Edit with the replacement URL, or No edits.

I iterated that prompt in Grok until the rules were boring:

  • Never change pubDate. The article is still from 2012, or 2018, or whenever I wrote it.
  • On files that actually change, set updatedDate: 2026-08-31. Leave it off files the agent must not touch.
  • Do not commit. I wanted a diff I could read.
  • Do not unlink a dead URL and walk away if a live official page exists. Find the replacement. The Colorette post was the example: the old AutoHotkey /forum/ thread is gone, the script is on GitHub, the current boards still have a thread.
  • 24 files to edit. 25 to leave alone. The “leave alone” list is as important as the edit list. Without it, an agent will “improve” a post that does not need it.

Roundme took three passes. First the prompt treated it like any other dead host. Then it pointed at Kuula. Then I locked the wording: Kuula is a suggestion only. It does not work the same as Roundme. Do not rewrite the 2018 click-path as invented Kuula UI. Keep the capture and export how-to. Caption the old Roundme screenshots as historical. Use my live example, not a made-up tour: kuula.co/post/N1R9h (the Catering Kitchen tour). Zero roundme.com hrefs when done.

Grok wrote that into CURSOR-AGENT-PROMPT.md. I kept a copy in the repo under notes/ so I can paste it again.

Grok Bot after iterating the prompt: Review my entire blog, then a downloadable CURSOR-AGENT-PROMPT.md file

The global rules in that file, shortened:

- **Never change `pubDate`.** Never flip `draft`. Leave `hero` and `categories` unless a file section says otherwise.
- On every file you modify, set `updatedDate: 2026-08-31`.
- Keep the historical how-to and screenshots. Dead software: one present-tense sentence at first mention, then the replacement link. Unlink the dead URL.
- Roundme: domain is hijacked. Zero roundme.com hrefs. Suggest Kuula. Do not invent a Kuula click-path.

Each Edit section named the old href and the new one, checked the same day. If that new URL 404ed when the agent fetched it, it could search once for a live official page. It was not allowed to leave a known-dead href.

Paste it into Cursor Agent

I opened this repo in Cursor, pasted the prompt, and let the agent work. It ran for 4 minutes 34 seconds. It applied every Edit section. It left the No edits files matching git HEAD. It reported rg -i 'roundme\.com' src/content/posts empty. The three pano posts point at Kuula and that same Catering Kitchen URL. pubDate and draft were left alone. Every modified file got updatedDate: 2026-08-31.

Cursor Agent after running CURSOR-AGENT-PROMPT: 4 minutes 34 seconds, roundme.com gone, 24 posts edited, pubDate unchanged

I did not take the report on faith. I opened a few of the 24 files.

DWG Software no longer sends people to Brava or to a free DraftSight download. Brava was discontinued in 2022. DraftSight’s free version ended in 2019; the current draftsight.com page is paid, with a trial. TrueView and Design Review point at current Autodesk URLs.

How to Publish a Pano Tour with Enscape Renderings still walks through Enscape capture. Roundme is a present-tense sentence, then historical screenshots. The example tour is the Kuula link, not a dead Roundme URL. The same treatment is on the other two pano posts.

Search for Dynamo Nodes from a Website no longer promises a live 2000-node catalog. truevis.com/nodes is gone. The replacement is honest: dynamopackages.com and Dynamo’s in-app Package Manager, which are packages, not that old per-node WordPress site.

Where there was no 1:1 replacement, the agent unlinked and said so. Compact Dynamics, the 2013 WikiHelp sample project, the A360 shares, the old Google Drive mesh zip: those are historical citations with screenshots, not fake new URLs.

Why split Grok and Cursor

Grok is a good place to argue about the prompt. I changed the Roundme rule three times in chat. Nothing in src/content/posts/ moved until I was willing to live with the wording.

Cursor is a good place to apply a prompt to 24 files against src/content.config.ts, with rg as the done check. Four and a half minutes is faster than I would have been, and slower than a reckless “fix the blog” prompt that rewrites voice.

The split also matches how this site is supposed to work. /create_article (this page) writes a draft in the repo. /publish-cms is how local commits land on GitHub without merge bubbles. The audit prompt is a third skill-shaped artifact: not a slash command yet, just a markdown file I can paste. That is enough.

Reply via email or WhatsApp.