WordPress to Astro: Git Is the Undo Button

GCT. Goal: a site (or any project) your agents can preview, ship, and roll back as a team. Content: git for the files, GitHub notes for the diary, Astro for the pages. Targeting: operators and agents leaving a page-builder. How we write: article guidelines.

Put the work in git. Put the diary in git. Preview before it is live. That is how a team of models ships like a team of people.

Project gitPages as filesDiff + previewShip a commitThis is the undo buttonAgent notesWho ran, which modelWhat changed, next clickSame format every jobThis is how they work in tandem
Teal is the product. Orange is the diary. Both live in git. A chat is neither.
229job notes in 4 days
294commits in that repo
148Cursor co-authors
5model prefixes writing

Git is the undo button because the site is a folder of files. Agent notes are how Claude, Cursor, Codex, Gemini, and Grok see the last job and pick up the next one. That is Learn, Do, Teach on a multi-model desk: we run the method, we keep the receipts, we publish the working copy.

How an agent QAs and then writes the note: How Agents QA a Partner Local Audit (and Write It to GitHub). The memory layer under it: How I Built Shared AI Memory Without Lock-In. Execution: If You Can Do It, You Should.

What the four days look like

We stood the notes folder up on 17 Aug 2026. Counted on this Mac, 20 Aug:

Who wrote (filename)Notes
Cursor Grok170
Grok Bot54
Codex3
Cursor Opus + Claude Opus2

By day: 28 on the 17th, 146 on the 18th, 47 on the 19th, then the 20th still writing. 217 of the 294 commits landed after the folder existed. The git author is often my name, because agents commit as me. The model lives in the filename on purpose: YYYY-MM-DD-cursor-grok-slug.md. That is how you ask “what did that model do last night?” and get an answer.

Those notes are not one kind of job. Audits, Gmail threads, WordPress publishes, Descript tapes, AWS host checks, speaker-kit pages, overnight queues. Same sections every time. Next agent reads the three newest files, then writes the fourth.

What good looks like
  • One repo per site
  • Preview, then production
  • New stories are new posts
  • Note pushed in the same turn
What we do not run
  • Chat as the system of record
  • Page-builder JSON as git
  • Silent writes to the live homepage
  • A paste instead of a commit

Astro is the factory. Git is the shelf.

Astro takes Markdown, YAML, images, and a few components and emits HTML. Nothing named Astro has to run in the browser. Content collections fail the build if a required field is missing. That is the contract a page-builder cannot give you.

Hosting can be Amplify, Cloudflare, or any shelf that serves a folder. The rollback package is the last good dist/ zip plus the commit that built it. One repo per site so a client can leave with a clone, not a paid extraction.

The shipping loop

  1. Request in the system of record.
  2. Agent reads site facts and the three newest notes.
  3. Branch and merge request — not a silent production write.
  4. Password-protected, noindex preview.
  5. Checks: URLs, titles, schema, links, forms, no secrets in JS.
  6. Publisher accepts the diff. Atomic deploy. Checksum the zip.
  7. Job note in git. Model in the filename. Next click at the bottom.

WordPress to Astro, in order

Do not cut DNS because the preview looks pretty. Cut DNS when the new site matches the crawl, the leads still arrive, and you can restore last night’s zip.

  1. Owner and intent. Domain, registrar, DNS, Search Console, forms. Who signs cutover.
  2. Baseline. Crawl every URL. Screenshot desktop and mobile. Write down where a lead goes. That crawl is the test.
  3. Export as files. Pages and posts to Markdown. NAP and offers to YAML. Redirects to CSV. Map each plugin to an outcome. Do not copy PHP.
  4. Pin the factory. Node, Astro, lockfile. Required fields in collections so a missing canonical fails CI.
  5. Preview, then DNS. Technical signature and business signature. TTL and rollback command written. WordPress stays on the team network through the hold, not on the public internet.

A personal-brand homepage is the person’s canvas. New proof is new articles. That is how Dylan Haugen gets tapes onto URLs Google can quote without rebuilding the hero every night. Case: tapes to articles.

Same loop for work that is not a website

Partner audit

PDF is the artifact. GitHub note is how the next agent QAs the next one.

Gmail thread

SENT id is the proof. The note stops a second agent from bouncing the same mail.

Skill

Markdown is how. Routine is when. Publish the skill as a page. Skill then routine.

If two agents can see the last commit and the last note, they work in tandem. That is the team. Dennis Yu.

THE DELIVERABLE

Files in git. Notes in git. Preview before live. Teach the working copy.

How agents write to GitHub Shared brain

Working copy, 20 Aug 2026. Counts from the live notes clone that morning. Skill packs: github.com/dennisyu/local-service-spotlight-skills.

Dennis Yu
Dennis Yu
Dennis Yu is the CEO of Local Service Spotlight, a platform that amplifies the reputations of contractors and local service businesses using the Content Factory process. He is a former search engine engineer who has spent a billion dollars on Google and Facebook ads for Nike, Quiznos, Ashley Furniture, Red Bull, State Farm, and other brands. Dennis has achieved 25% of his goal of creating a million digital marketing jobs by partnering with universities, professional organizations, and agencies. Through Local Service Spotlight, he teaches the Dollar a Day strategy and Content Factory training to help local service businesses enhance their existing local reputation and make the phone ring. Dennis coaches young adult agency owners serving plumbers, AC technicians, landscapers, roofers, electricians, and believes there should be a standard in measuring local marketing efforts, much like doctors and plumbers must be certified. He has appeared on 353 podcasts with 619 credited episodes — see the full list of his podcast appearances.