diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-12 19:15:22 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-12 19:15:22 -0500 |
| commit | f058b4c15a67ce3b54e306e8b4778aa3cb540c7c (patch) | |
| tree | 7d6501b498c6e478e5ee9b9177ade6f47f1a655a | |
| parent | 7c052535f371c67956947a5afe711c71350feaf4 (diff) | |
| download | rulesets-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.
| -rw-r--r-- | .ai/notes.org | 2 | ||||
| -rw-r--r-- | claude-rules/cross-project.md | 30 |
2 files changed, 31 insertions, 1 deletions
diff --git a/.ai/notes.org b/.ai/notes.org index b9b2ed0..4790af9 100644 --- a/.ai/notes.org +++ b/.ai/notes.org @@ -79,6 +79,6 @@ Format: Markers maintained by workflows to record when they last ran. Read by other workflows that gate their behavior on freshness. :LAST_AUDIT: 2026-05-28 -:LAST_INBOX_PROCESS: 2026-06-12 (overnight batch: memory sweeps x3, lint-org mu4e fix, page-signal VERIFY) +:LAST_INBOX_PROCESS: 2026-06-12 (evening: spec-create decisions-as-TODO convention from .emacs.d, applied + companions reconciled) Format: one =:MARKER: YYYY-MM-DD= line per workflow. Workflows overwrite their own marker on completion. 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: |
