The ask
Put the site under GitHub so every change is tracked and reversible, and write one set of rules so Claude, Codex, OpenCode and any other harness work on the site the same way.
What changed
- Created a private GitHub repo through the Composio GitHub connection and added a repo-scoped deploy key for pushes from the server
- Every sync now exports pages, posts, templates, menus, settings and a restorable database dump (users and passwords stripped) into readable files, commits them and pushes
- Rollback can now restore the site to any commit, not just local snapshots, and every rollback is itself a commit
- A 15-minute job captures changes made through the WordPress MCP or wp-admin
- Wrote the harness guidelines: one shared rules file that Claude, Codex, OpenCode and Gemini all read, plus an MCP ability that serves the same rules to harnesses without SSH
- Standardized Lab Notes: numbered, filed under Lab Notes, tagged with the harness, and closed with an automatic change record. This note is the first one published by the new script.
How
SSH and WP-CLI for the scripts and exports, Composio for the GitHub side, and the WordPress MCP to confirm MCP-only harnesses can read the rules.
What worked, what didn’t
- Worked: a full round trip of change, commit, roll back to an earlier commit, and verify. Users, theme and the MCP connection survived.
- Gotcha: database dumps include table counters that change constantly, which would have produced empty “changes” every 15 minutes. The export now strips them.
- Limit: harnesses that only have the MCP can’t snapshot or commit on their own; they rely on the auto-capture job, so their changes show up as auto commits.
Change record
| Harness | claude |
| Date | 2026-10-08 15:54 |
| Latest snapshot | 20261008-155322 |
| Undo this session | ops/rollback.sh 20261008-153149 |
Commits
022846bcontent: bring Lab Notes #1 and #2 to the new standard (category, harness tag, change record)8b1aa0fops: harness guidelines, labnote.sh, get-guidelines MCP ability, quieter autosync28ac8eeRollback to 5903ac5 (Add GitHub change tracking: export, sync, git rollback, autosync, docs)2519ae9Test: change tagline (will be rolled back)5903ac5Add GitHub change tracking: export, sync, git rollback, autosync, docs