diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-17 16:05:17 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-17 16:12:56 -0500 |
| commit | 470085f4220afabb3b487f9342ed6bc35f5feca0 (patch) | |
| tree | ee261830bae5691d66cfb0f2b4286390270c812f /inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org | |
| parent | 97aa2fd6041b366fac09bd7e7c9337dda61333f9 (diff) | |
| download | rulesets-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.org | 75 |
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. |
