aboutsummaryrefslogtreecommitdiff
path: root/claude-rules/cross-project.md
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-12 19:15:22 -0500
committerCraig Jennings <c@cjennings.net>2026-06-12 19:15:22 -0500
commitf058b4c15a67ce3b54e306e8b4778aa3cb540c7c (patch)
tree7d6501b498c6e478e5ee9b9177ade6f47f1a655a /claude-rules/cross-project.md
parent7c052535f371c67956947a5afe711c71350feaf4 (diff)
downloadrulesets-f058b4c15a67ce3b54e306e8b4778aa3cb540c7c.tar.gz
rulesets-f058b4c15a67ce3b54e306e8b4778aa3cb540c7c.zip
docs(rules): codify propagating synced-file edits back to rulesets
A downstream edit to a rulesets-owned synced file (workflows, scripts, rules, protocols.org) is a stopgap the next template sync reverts. cross-project.md now documents the three-step propagation (edit locally, inbox-send the file to rulesets, include an intro note with the why and any companions to reconcile) so agents propagate a synced-file edit without being told. From the .emacs.d handoff 2026-06-12.
Diffstat (limited to 'claude-rules/cross-project.md')
-rw-r--r--claude-rules/cross-project.md30
1 files changed, 30 insertions, 0 deletions
diff --git a/claude-rules/cross-project.md b/claude-rules/cross-project.md
index 50bc34e..f9f0598 100644
--- a/claude-rules/cross-project.md
+++ b/claude-rules/cross-project.md
@@ -39,6 +39,36 @@ Two acceptable outcomes:
Don't assume which one was meant. Either guess is wrong half the time and the cost of asking once is one short turn.
+## Changing a Rulesets-Owned Synced File from a Downstream Project
+
+Some files in every project are owned by rulesets and overwritten by the
+template sync at each session start: workflows under `.ai/workflows/`, scripts
+under `.ai/scripts/`, rules under `.claude/rules/`, `protocols.org` — anything
+whose canonical home is `~/code/rulesets/`. When work in a downstream project
+needs one of these files to change, a local edit alone is a stopgap that the
+next sync reverts. The durable change happens only in the rulesets canonical.
+
+The process, every time:
+
+1. **Make the change locally** in the downstream project so it's usable
+ immediately.
+2. **Send rulesets a copy** of the edited file:
+ `inbox-send rulesets --file <edited-file>`.
+3. **Include an intro note** (a second `inbox-send rulesets --text` or
+ `--file`) covering what changed, why, and any companion files that need
+ reconciling, so the rulesets session can update the canonical and re-sync
+ without re-deriving the intent.
+
+Don't wait for the user to spell these steps out — recognizing that an edit
+targets a synced file and propagating it is the agent's job. The rulesets
+session applies its own value gate on arrival, so sending is a proposal, not
+a bypass.
+
+Worked example: the 2026-06-12 `spec-create.org` decisions-as-TODO change —
+`.emacs.d` edited its local copy as a stopgap, sent the edited file plus an
+intro note naming the two companion workflows to reconcile, and rulesets
+updated the canonical the same evening.
+
## Recovery When It Goes Wrong
If you do the work first and the boundary issue surfaces afterwards: