aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-15 17:27:23 -0500
committerCraig Jennings <c@cjennings.net>2026-05-15 17:27:23 -0500
commit9bef4cade4deded85ecbdd9781bd8c5628cb5cc9 (patch)
treea62a186783aef98ee398876cd448a4e54b3e2f6e /Makefile
parent2eab96fb92a1a83f902911e1ed21d09f1cc80f88 (diff)
downloadrulesets-9bef4cade4deded85ecbdd9781bd8c5628cb5cc9.tar.gz
rulesets-9bef4cade4deded85ecbdd9781bd8c5628cb5cc9.zip
feat(make): add catchup-machine target for cross-machine .ai/ sync
scripts/catchup-machine.sh runs the four steps that bring a machine in sync with rulesets canonical: git pull, make install (symlink refresh), make audit APPLY=1 (rsync .ai/ across all projects), and make doctor (verify). Idempotent, safe to re-run any time. Built for the post-fold ratio migration but applies generally: after a fresh rulesets clone on a new machine, or whenever the canonical source has advanced since last sync. Handles dirty working trees by skipping the pull and surfacing a warning; user commits or stashes before re-running.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile3
1 files changed, 3 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 5474c67..9b41bc3 100644
--- a/Makefile
+++ b/Makefile
@@ -413,6 +413,9 @@ install-ai: ## Bootstrap .ai/ in a fresh project ([PROJECT=<path>] [TRACK=1 | GI
$(if $(GITIGNORE),--gitignore) \
$(PROJECT)
+catchup-machine: ## Pull rulesets, refresh install, sync .ai/ across projects, verify doctor
+ @bash scripts/catchup-machine.sh
+
test: ## Run the .ai/scripts/ test suites (pytest + ERT)
@cd .ai/scripts/tests && python3 -m pytest
@set -e; for f in .ai/scripts/tests/test-*.el; do \