aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-15 17:28:33 -0500
committerCraig Jennings <c@cjennings.net>2026-05-15 17:28:33 -0500
commit3e895deb82e0cb27fa7eb2bf7ef7e4cc02b3ea28 (patch)
treeafc54e993101c85b4b25e7fce4074b8adb0378c2 /todo.org
parent9bef4cade4deded85ecbdd9781bd8c5628cb5cc9 (diff)
downloadrulesets-3e895deb82e0cb27fa7eb2bf7ef7e4cc02b3ea28.tar.gz
rulesets-3e895deb82e0cb27fa7eb2bf7ef7e4cc02b3ea28.zip
docs(todo): mark fold-epic children 1-3 done (audit, install-ai, fold), child 5 awaits ratio
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org9
1 files changed, 6 insertions, 3 deletions
diff --git a/todo.org b/todo.org
index 7f2c3a2..68afc43 100644
--- a/todo.org
+++ b/todo.org
@@ -1794,7 +1794,8 @@ Today (2026-05-15) the canonical-source rule got violated again: rulesets commit
Build order: fold first (others depend on the new canonical path), then audit + install-ai in parallel, then test, then propagate to ratio.
-*** TODO [#A] Fold =claude-templates= into rulesets
+*** DONE [#A] Fold =claude-templates= into rulesets
+CLOSED: [2026-05-15 Fri]
Two repos, one source of truth. =~/projects/claude-templates/= is the canonical =.ai/= template that gets rsync'd into every project at session start. Keeping it standalone means a second =git pull= in startup Phase A.0, a second remote to push to at wrap-up, and a split history any time a change touches both. Folding it into =rulesets/claude-templates/= gives one repo to clone on a fresh machine and one place to edit templates.
@@ -1819,7 +1820,8 @@ Two repos, one source of truth. =~/projects/claude-templates/= is the canonical
Every project on the machine has a =.ai/workflows/startup.org= that rsyncs from =~/projects/claude-templates/=. Until each project's startup.org gets refreshed (which happens via the rsync itself), the old path needs to keep resolving. The symlink at step 4 is the bridge: old paths resolve into the new location, the rsync delivers the updated startup.org, next session uses the new path directly.
-*** DOING [#A] Add =make audit= — drift detector across all =.ai/=-using projects
+*** DONE [#A] Add =make audit= — drift detector across all =.ai/=-using projects
+CLOSED: [2026-05-15 Fri]
Companion to =make doctor= (single-machine scope, checks =~/.claude/=). =audit= is cross-project scope: walks every directory on the machine that has a =.ai/=, diffs the synced template files against the canonical source, and reports drift. =--apply= flag rsyncs the drift into the project's working tree (no auto-commit). Catches stale projects without forcing a session start in each one.
@@ -1864,7 +1866,8 @@ Exit code: =0= if all clean, no skips, no failures. =1= otherwise.
=doctor= has a clean meaning today: "is this machine's =~/.claude/= consistent with rulesets?" Mixing in cross-project =.ai/= drift muddies the exit code. Keep them separate. =audit= can optionally invoke =doctor= as its last check since both ask "did the symlinks keep up with the source?". A future =make all-checks= can wrap both.
-*** DOING [#A] Add =make install-ai PROJECT=<path>= — bootstrap =.ai/= in a fresh project
+*** DONE [#A] Add =make install-ai PROJECT=<path>= — bootstrap =.ai/= in a fresh project
+CLOSED: [2026-05-15 Fri]
Separate target from =audit= because operating on projects that lack =.ai/= is a distinct action. The absence might be intentional, so =audit= skips them. Bootstrap is explicit opt-in.