aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-13 15:08:55 -0500
committerCraig Jennings <c@cjennings.net>2026-05-13 15:08:55 -0500
commit0e1036f791bf5c597996a2f12b546619ab831c0c (patch)
tree3d40fdf56a88151fde0056c527bc94ec4f694391
parenta306215d08992dcf0cd7dfd2b9cd447495ba7767 (diff)
downloadrulesets-0e1036f791bf5c597996a2f12b546619ab831c0c.tar.gz
rulesets-0e1036f791bf5c597996a2f12b546619ab831c0c.zip
feat(protocols): add cross-project boundary and signature image rules
Cross-Project Boundary tells the session to stop and ask before acting on a file or task scoped to a different project's .ai/, then write a handoff file at the target project's inbox/ if confirmed. Signature Image documents the location of the transparent signature PNGs in the archsetup stow tree and limits stamping to explicit per-document requests — never signing on initiative.
-rw-r--r--.ai/protocols.org23
1 files changed, 23 insertions, 0 deletions
diff --git a/.ai/protocols.org b/.ai/protocols.org
index d820073..8bde31f 100644
--- a/.ai/protocols.org
+++ b/.ai/protocols.org
@@ -140,6 +140,14 @@ If you =cd= into a directory and then delete that directory, the shell's working
This caused a session break on 2026-02-06 when an extraction directory was =cd='d into and then deleted during cleanup.
+** Cross-Project Boundary — Stop and Ask
+
+If a request targets a file or task under a *different* project's =.ai/= scope than the current session (cwd is one project, the argument names another project's =todo.org=, =inbox/=, or similar), stop and ask before doing the work: "this looks like it belongs to <other project>'s session — do it from here, or switch projects?" Inline numbered options, no popup.
+
+Each project's =.ai/= is the scope boundary: =protocols.org=, =session-context.org=, =sessions/=, =notes.org=, =todo.org=, =inbox/=, plus the project's memory dir at =~/.claude/projects/<encoded-cwd>/memory/=. Crossing without flagging pollutes the current session's log with the other project's content and drops memories into the wrong dir. If the user confirms "do it from here," write a handoff file at =<other-project>/inbox/YYYY-MM-DD-handoff-from-<this-project>-<topic>.org= so the other project's next session picks it up.
+
+Canonical rule: =~/code/rulesets/claude-rules/cross-project.md=.
+
* Important Terminology
** "Let's run the [X] workflow" vs "I want to create an [X] workflow"
@@ -206,6 +214,21 @@ gpg -d file.json.gpg > file.json # decrypt (pinentry GUI handles passphras
- =--default-recipient-self= uses the =c@cjennings.net= key
- Prefer key-based encryption over symmetric for project secrets
+** Signature Image
+
+A transparent-background PNG scan of Craig's handwritten signature lives at
+=~/pictures/cj-sig-transparent.png= (324×213, cropped), with a higher-resolution
+version at =~/pictures/cj-sig-no-background.png= (1536×1024). Both are symlinks
+into the archsetup stow dotfiles (=~/code/archsetup/dotfiles/common/pictures/=),
+so they're present on every machine. RGBA, transparent background; composites
+cleanly over a form line.
+
+Default for signing documents is still Craig signing by hand in Xournal++. Only
+overlay this image onto a PDF (or other document) when Craig *explicitly asks
+for it on a specific document* — never sign for him on your own initiative. The
+=edit-pdf= workflow (project-level, where present) has the reportlab snippet for
+stamping it.
+
** Task List Location
Craig's global task list is available at: =/home/cjennings/sync/org/roam/inbox.org=