aboutsummaryrefslogtreecommitdiff
path: root/.ai/workflows/wrap-it-up.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-13 13:23:18 -0500
committerCraig Jennings <c@cjennings.net>2026-06-13 13:23:18 -0500
commit651b65e25c2dd13a5a371f1de91e17a41d906a84 (patch)
treeb7feff3a428f2eec267a8bd81a83d209c606921a /.ai/workflows/wrap-it-up.org
parent9e4c58029785c418ad6dbdbff3988a8582388c34 (diff)
downloadrulesets-651b65e25c2dd13a5a371f1de91e17a41d906a84.tar.gz
rulesets-651b65e25c2dd13a5a371f1de91e17a41d906a84.zip
feat(workflows): add inbox-zero for routing the roam inbox by project
The global roam inbox (~/org/roam/inbox.org) is one shared capture file every project can see, and nothing routed its items to the project that owns them. inbox-zero claims the items prefixed for the current project, files them into that project's todo.org per the process-inbox discipline, and removes them from the shared inbox. Foreign-prefixed and unowned items stay. Every scan reports the total item count plus how many appear related to this project. This v1 is single-destination: it routes by explicit <project>: prefix only. The domain-aware mode that would guess every item's owner and empty the whole inbox in one run is deferred until the multi-project need is concrete. Wired into both session ends so each project touches the inbox twice a session: startup surfaces a read-only count and offer, wrap-up Step 3 sweeps the claimed set before the cleanup scripts so imported tasks ride the wrap commit. INDEX carries the trigger phrases.
Diffstat (limited to '.ai/workflows/wrap-it-up.org')
-rw-r--r--.ai/workflows/wrap-it-up.org10
1 files changed, 10 insertions, 0 deletions
diff --git a/.ai/workflows/wrap-it-up.org b/.ai/workflows/wrap-it-up.org
index befafc6..2d79795 100644
--- a/.ai/workflows/wrap-it-up.org
+++ b/.ai/workflows/wrap-it-up.org
@@ -90,6 +90,16 @@ Replace =DESCRIPTION= with your picked slug. (=AI_AGENT_ID= should be filename-s
If the project has a =todo.org= at its root, run the cleanup script before committing. Two passes, both fast and idempotent: a hygiene pass and an archive pass.
+*** Roam inbox sweep (inbox-zero)
+
+Before the cleanup scripts, sweep the roam global inbox (=~/org/roam/inbox.org=) for items that belong to this project, so any imported tasks get linted and ride the wrap commit. Delegate to [[file:inbox-zero.org][inbox-zero.org]] for the claimed set.
+
+#+begin_src bash
+[ -f "$HOME/org/roam/inbox.org" ] && grep -cE '^\*\* ' "$HOME/org/roam/inbox.org" || true
+#+end_src
+
+Skip-fast when nothing matches: if the roam clone isn't on this machine, or no item is prefixed for this project, this is a silent no-op. When claimed items exist, run inbox-zero's Phase B–C (file each into =todo.org=, then remove them from the shared inbox in a separate roam commit). Report the total count and how many appeared related to this project, per inbox-zero's scan-summary rule.
+
*** Hygiene pass
It catches a recurring pattern: org sometimes leaves noise lines like =- State "X" from "X" [date]= when a state-change log lands outside a =:LOGBOOK:= drawer and the state didn't actually change. These lines carry no information and they break org's planning-line parser by wedging between the heading and =DEADLINE:=/=SCHEDULED:=, which kicks the entry out of agenda views.