aboutsummaryrefslogtreecommitdiff
path: root/claude-rules
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-19 15:35:13 -0500
committerCraig Jennings <c@cjennings.net>2026-07-19 15:35:13 -0500
commitbeb7f0bb76eaf0da3afd07fb8617361361556882 (patch)
treed133908967f477ae352ed0c969616a147ccfb7c5 /claude-rules
parent8c0a56bf2d7e81e4876919f120004aa011365327 (diff)
downloadrulesets-beb7f0bb76eaf0da3afd07fb8617361361556882.tar.gz
rulesets-beb7f0bb76eaf0da3afd07fb8617361361556882.zip
fix(roam): scope the work-denylist to durable KB-node writes, not roam tidying
The sentry live trial surfaced this. A sentry inbox-zero pass running from the work project parked the whole 19-item roam inbox as a cross-project boundary crossing and refused to tidy it unattended, reading knowledge-base.md's work-denylist as "don't touch roam from work." That over-reads the rule. The denylist is a confidentiality guard on one thing: promoting a durable fact into a new agents/ node, so work-confidential material stays out of the personal cross-machine store. Roam is a shared resource, not another project's product scope. Reading it and tidying the shared roam inbox are housekeeping any project may do, work included. knowledge-base.md gains a "Scope of the denylist" paragraph stating that and naming the mis-park as the error it closes. sentry.org's inbox-zero pass and inbox.org's roam mode each get a one-line note pointing at the rule, so a future agent doesn't re-derive the refusal. Only durable-node promotion stays work-denylisted.
Diffstat (limited to 'claude-rules')
-rw-r--r--claude-rules/knowledge-base.md2
1 files changed, 2 insertions, 0 deletions
diff --git a/claude-rules/knowledge-base.md b/claude-rules/knowledge-base.md
index 478d5b8..84eff4d 100644
--- a/claude-rules/knowledge-base.md
+++ b/claude-rules/knowledge-base.md
@@ -29,6 +29,8 @@ Work-root denylist (confirmed by Craig, 2026-06-10): `~/projects/work`
**Refusal contract** (work and unknown alike): state the classification, name the durable fact in a one-line redacted summary, and say where it was or wasn't written — so Craig can re-route it deliberately instead of losing it silently.
+**Scope of the denylist — durable KB-node writes only.** The work-denylist governs one thing: promoting a durable fact into a new `agents/` node. It is a confidentiality guard so work-confidential material doesn't land in the personal cross-machine store. It is *not* a general "don't touch roam from a work project" boundary. Roam is a *shared resource*, not another project's product scope. Reading it (any project) and *tidying the shared roam inbox* — processing, routing, and filing the capture items in `~/org/roam/inbox.org`, e.g. via inbox-zero — are allowed from any project session, work included; that is housekeeping on a shared resource, not a durable-fact write. Only the durable-node promotion stays work-denylisted. Do not park roam-inbox tidying as a cross-project boundary crossing (a sentry inbox-zero pass did exactly that on 2026-07-19 — the error this note closes).
+
A write is one node per fact, under `agents/`, roam-valid so Craig's org-roam indexes it:
```