aboutsummaryrefslogtreecommitdiff
path: root/.ai/workflows
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-16 11:59:40 -0500
committerCraig Jennings <c@cjennings.net>2026-05-16 11:59:40 -0500
commit70af2a019e7592089d33a0dde4a1af699175f7ef (patch)
treeccaae88fa1bc222192c92e50cd86181df08b6240 /.ai/workflows
parentc5846df088a47a6f77a298bc0431dcff66e672d2 (diff)
downloadrulesets-70af2a019e7592089d33a0dde4a1af699175f7ef.tar.gz
rulesets-70af2a019e7592089d33a0dde4a1af699175f7ef.zip
chore(ai): sync lint-org and wrap-it-up from claude-templates
Project .ai/ mirror catches up to two canonical updates already in claude-templates/: - lint-org cj-comment block suppression (3fb4c80). The =#+begin_src cj: ...= annotation pattern triggered three lint categories (suspicious-language, empty-header-argument, wrong-header-argument) as false positives at todo.org:16 and todo.org:1291. lint-org.el now recognizes the opener and skips all three on those lines. - LINT_ORG_FOLLOWUPS default flipped to =./inbox/lint-followups.org= (684891d). The previous hardcoded default routed every project's wrap-up findings into the work project's inbox. Phase A startup rsync brought both into the project mirror this morning; bundled into one chore commit since neither delta is project-specific work.
Diffstat (limited to '.ai/workflows')
-rw-r--r--.ai/workflows/wrap-it-up.org32
1 files changed, 24 insertions, 8 deletions
diff --git a/.ai/workflows/wrap-it-up.org b/.ai/workflows/wrap-it-up.org
index 496bebe..e2a535b 100644
--- a/.ai/workflows/wrap-it-up.org
+++ b/.ai/workflows/wrap-it-up.org
@@ -134,8 +134,13 @@ emacs --batch -q -l .ai/scripts/todo-cleanup.el --check-child-priority todo.org
*** Lint org files (mechanical sweep, judgments deferred)
#+begin_src bash
-followups="${LINT_ORG_FOLLOWUPS:-$HOME/projects/work/inbox/lint-followups.org}"
-[ ! -d "$(dirname "$followups")" ] && followups=".ai/lint-followups.org"
+if [ -n "$LINT_ORG_FOLLOWUPS" ]; then
+ followups="$LINT_ORG_FOLLOWUPS"
+elif [ -d "./inbox" ]; then
+ followups="./inbox/lint-followups.org"
+else
+ followups=".ai/lint-followups.org"
+fi
[ -f todo.org ] && emacs --batch -q -l .ai/scripts/lint-org.el \
--followups-file="$followups" todo.org
#+end_src
@@ -148,11 +153,17 @@ links, verbatim-asterisk inside body prose, suspicious src-block languages)
to the follow-ups file as a dated org section. Mechanical fixes show up in
the wrap-up commit's diff for review before push.
-The follow-up path defaults to =~/projects/work/inbox/lint-followups.org=
-(where the next morning's daily-prep merges it in). If that directory
-doesn't exist on the machine, the script falls back to
+The follow-up path defaults to =./inbox/lint-followups.org= in the current
+project (where the next morning's daily-prep merges it in). If the project
+doesn't have an =inbox/= directory, the script falls back to
=.ai/lint-followups.org= inside the current project. Override with
-=LINT_ORG_FOLLOWUPS=<path>= in the environment if needed.
+=LINT_ORG_FOLLOWUPS=<path>= in the environment if needed — useful for
+routing all wrap-up output to a single shared inbox across projects.
+
+Each project's own =inbox/= is the right default because daily-prep reads
+that project's inbox at startup. Hardcoding a single project's path
+(formerly =~/projects/work/inbox/=) routed every project's wrap-up findings
+into the wrong inbox.
Preview without writing — same flags as =--check= on the other scripts:
@@ -170,8 +181,13 @@ Scan =todo.org= for open =[#A]= and =[#B]= tasks that have neither a =DEADLINE:=
The two timestamps mean different things (=DEADLINE:= = external, consequence-bearing; =SCHEDULED:= = social, accountability-bearing — see the priority spec at the top of =todo.org=). High-priority work that carries neither is suspicious: either it has an implicit deadline that should be made explicit, or it has someone waiting that should surface in the agenda, or its priority is wrong. The scan flags candidates; the operator decides.
#+begin_src bash
-followups="${LINT_ORG_FOLLOWUPS:-$HOME/projects/work/inbox/lint-followups.org}"
-[ ! -d "$(dirname "$followups")" ] && followups=".ai/lint-followups.org"
+if [ -n "$LINT_ORG_FOLLOWUPS" ]; then
+ followups="$LINT_ORG_FOLLOWUPS"
+elif [ -d "./inbox" ]; then
+ followups="./inbox/lint-followups.org"
+else
+ followups=".ai/lint-followups.org"
+fi
[ -f todo.org ] && awk '
/^\*\* (TODO|DOING|VERIFY) \[#[AB]\]/ {
if (heading != "" && !has_date) print line ": " heading