aboutsummaryrefslogtreecommitdiff
path: root/inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-17 16:05:17 -0500
committerCraig Jennings <c@cjennings.net>2026-05-17 16:12:56 -0500
commit470085f4220afabb3b487f9342ed6bc35f5feca0 (patch)
treeee261830bae5691d66cfb0f2b4286390270c812f /inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org
parent97aa2fd6041b366fac09bd7e7c9337dda61333f9 (diff)
downloadrulesets-470085f4220afabb3b487f9342ed6bc35f5feca0.tar.gz
rulesets-470085f4220afabb3b487f9342ed6bc35f5feca0.zip
docs(inbox): Add handoffs on skill discovery and missing inbox dir
Diffstat (limited to 'inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org')
-rw-r--r--inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org75
1 files changed, 75 insertions, 0 deletions
diff --git a/inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org b/inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org
new file mode 100644
index 0000000..5f1e0ea
--- /dev/null
+++ b/inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org
@@ -0,0 +1,75 @@
+#+TITLE: Handoff: rulesets has no top-level =inbox/= directory
+#+FROM: dotemacs (~/.emacs.d)
+#+DATE: 2026-05-16
+
+* Context
+
+While trying to deliver a cross-project handoff from the dotemacs session
+(~/.emacs.d) to the rulesets project, I discovered that
+=~/code/rulesets/= has no top-level =inbox/= directory.
+
+The =inbox-send.py= script (the canonical mechanism documented in
+=claude-rules/cross-project.md=) requires the target project to have
+*both* =.ai/= AND =inbox/=:
+
+#+begin_src python
+def is_project(path: Path) -> bool:
+ """A project has a `.ai/` marker AND a top-level `inbox/` directory."""
+ return (path / ".ai").is_dir() and (path / "inbox").is_dir()
+#+end_src
+
+(=.ai/scripts/inbox-send.py:61-62=)
+
+So =inbox-send.py --list= did not list =rulesets= as an available target,
+even though it has =.ai/=. I worked around this by:
+
+1. =mkdir -p ~/code/rulesets/inbox/=
+2. =Write= the handoff file directly to that new directory.
+
+This handoff file landed at:
+=~/code/rulesets/inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org=
+
+(There's a sibling handoff =2026-05-16-handoff-from-dotemacs-review-code-skill-discovery.org=
+also in this inbox from the same session.)
+
+* What's missing
+
+- =~/code/rulesets/inbox/= didn't exist before this session.
+- The directory is not gitignored (per the project's =.gitignore=).
+- No prior commits reference =inbox/= except for the =inbox-send.py=
+ script itself.
+
+* Why this matters
+
+The rulesets project is an active Claude-managed project — it has
+=.ai/protocols.org=, =.ai/sessions/=, a startup workflow, and its own
+=todo.org=. Without an =inbox/= dir:
+
+- Cross-project handoffs from other projects can't land via the canonical
+ =inbox-send= mechanism.
+- The rulesets startup workflow has no inbox-processing step that would
+ pick up cross-project messages on session start.
+- I had to bypass =inbox-send.py= and =Write= directly, which skips
+ filename auto-derivation and source-project provenance handling.
+
+The =claude-templates/= subdir inside rulesets also has =.ai/= but no
+=inbox/=, with the same effect.
+
+* What to fix
+
+Two changes, low effort:
+
+1. *Create =~/code/rulesets/inbox/= and commit it.* Add a =.gitkeep= or
+ a README so the directory exists in the tree from the start. Once it
+ exists, =inbox-send.py --list= will discover the project and future
+ cross-project handoffs will route normally.
+
+2. *(Optional) Same for =~/code/rulesets/claude-templates/inbox/=.* If
+ claude-templates is considered its own routable project rather than a
+ subdir-only artifact, mirror the change there.
+
+* Filing
+
+This is project-hygiene signal — track in =todo.org= as a single quick
+fix (S effort, single =mkdir= + =.gitkeep= + commit), and the
+=inbox-send.py= discovery starts working automatically.