From 986bb4c368b1072a4671aecb16fa05b74ecac893 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 18 May 2026 01:28:47 -0500 Subject: docs(commits): check disk before declaring /review-code unavailable Step 1 told the agent to run /review-code but didn't say what to do when the skill exists on disk yet isn't in the session's available-skills list. The list covers plugin-installed skills only. User commands under ~/.claude/commands/ are routable as slash-commands but don't appear in it, so the agent could declare /review-code unavailable and fall through to the trivial-one-liner exception in Step 2. The new Discovery check tells the agent to verify both ~/.claude/commands/review-code.md and ./.claude/commands/review-code.md on disk before declaring the skill unavailable, and surface the mismatch rather than auto-skipping. Also drops three absorbed or stale inbox files: the skill-discovery handoff (signal absorbed by this edit), the missing-inbox-dir handoff (already resolved by 470085f), and a stale date-coverage scan output (deferred until the task-review habit lands). --- ...ff-from-dotemacs-rulesets-missing-inbox-dir.org | 75 ---------------------- 1 file changed, 75 deletions(-) delete mode 100644 inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org (limited to 'inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org') 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 deleted file mode 100644 index 5f1e0ea..0000000 --- a/inbox/2026-05-16-handoff-from-dotemacs-rulesets-missing-inbox-dir.org +++ /dev/null @@ -1,75 +0,0 @@ -#+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. -- cgit v1.2.3