From 0237465dc9fe4710542653e353858a6cea164c07 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Fri, 29 May 2026 20:51:35 -0500 Subject: chore(ai): archive session record + lint follow-ups Multi-arc session: no-approvals batch, codex backlog triage, page-signal + broadcast infra, voice profile Phase 1 + Phase 2 with SKILL.md split, process-inbox formalization, wrap-it-up inbox sanity check. --- .ai/session-context.org | 126 --------------------- ...les-page-signal-process-inbox-and-broadcast.org | 126 +++++++++++++++++++++ inbox/lint-followups.org | 7 ++ 3 files changed, 133 insertions(+), 126 deletions(-) delete mode 100644 .ai/session-context.org create mode 100644 .ai/sessions/2026-05-29-20-50-voice-paired-files-page-signal-process-inbox-and-broadcast.org create mode 100644 inbox/lint-followups.org diff --git a/.ai/session-context.org b/.ai/session-context.org deleted file mode 100644 index 3bcfba0..0000000 --- a/.ai/session-context.org +++ /dev/null @@ -1,126 +0,0 @@ -#+TITLE: Session Context -#+DATE: 2026-05-28 - -* Summary - -** Active Goal - -(in progress) - -** Decisions - -** Data Collected / Findings - -** Files Modified - -** Next Steps - -* Session Log - -** 2026-05-28 07:56 CDT — Startup - -Clean startup (no crash-recovery file). Phase A.0 rulesets pull = already up to date; project repo refresh silent. Phase A snapshot: no reminders, no pending decisions, task-review staleness 0, language bundle clean, cross-agent queue empty, no startup-extras. - -Inbox held 5 unprocessed arrivals from this morning (all 2026-05-28 0124–0303), plus 1 PROCESSED-prefixed file: - -1. .emacs.d 0124 — extend open-tasks.org Next Mode with a pre-step that evaluates whether task-audit is warranted (temporal threshold + state-signal scan); third leg of the recommendation-first / hybrid-output / auto-audit triple. -2. pearl 0138 — open-tasks.org should run =--archive-done= sweep as first step of Phase A so freshly-DONE tasks don't surface in "what's next." -3. pearl 0155 — Pattern catalog: 2 more worked examples (label-matches-behavior, default-most-common with friction-proportional-to-consequence). -4. pearl 0226 — spec-review.org Phase 6 should enumerate implementation tasks (drop-in for todo.org). -5. pearl 0303 — Pattern 6: collapse N orthogonal prompts into one enriched prompt (cross-product form of the same UX principle). - -** 2026-05-28 08:00 CDT — Inbox item 1 implemented + priority scheme adopted - -Craig picked option 2 ("implement now"), then directed task-audit and task-review next, then added a new requirement: task-audit should enforce priority + tag every task with one of {feature, chore, spec, bug} (mandatory type) plus optional {quick, solo} (effort/autonomy). Also asked for a priority scheme posted at the top of todo.org. - -Research subagent surveyed five projects' priority schemes (Emacs, Pearl, Finances, ArchSetup, rulesets itself). All converge on =[#A]/[#B]/[#C]/[#D]= importance-driven semantics. Emacs has the cleanest verbatim legend. Finances adds importance-vs-urgency split. ArchSetup requires =[#A]= to carry a date. - -Priority scheme adopted for rulesets (in todo.org): -- =[#A]=: urgent risk or current workflow blocker, requires SCHEDULED/DEADLINE date. -- =[#B]=: important planned work. -- =[#C]=: useful but optional. -- =[#D]=: someday or watchlist. -- Type tags (mandatory, one per task): =:feature:= / =:chore:= / =:spec:= / =:bug:=. -- Effort/autonomy tags (optional, orthogonal): =:quick:= (≤30 min) and =:solo:= (end-to-end without Craig's input). - -LAST_AUDIT marker storage = =notes.org='s new Workflow State section (read by open-tasks.org Phase A.1). - -Two commits + push (=ee7049a..1f6cd40=): -- =4f650f7= docs(todo): add priority and tag scheme -- =ee7049a= feat(workflows): audit-warranted pre-step + priority and tag enforcement - -Each ran =/review-code= (Approve) + =/voice personal= walked inline. - -** 2026-05-28 08:18 CDT — Task audit + inbox spillover - -Ran task-audit under the new workflow on all 16 open tasks. Phase C (autonomous): tagged 13 tasks with their type tag, bumped LAST_REVIEWED, refreshed #15's body for the accumulating pearl signal. Phase D adjudication (Craig picked option 1): #15 bumped =[#C]= → =[#B]=; filed a new =[#B] :feature:= TODO for the codex Phase 1 race-fix (AI_AGENT_ID + session-context.d/.org) lifted from #16's broader spec. Pearl intake: moved 0155 + 0303 into docs/design/ as pattern-catalog notes referenced from #15; filed 0138 and 0226 as new =[#C]= TODOs. Phase E stamped =:LAST_AUDIT: 2026-05-28= in notes.org. - -Caught a staleness false-positive on #15 (the dated sub-entry I added moved the PROPERTIES drawer below a level-3 heading, hiding LAST_REVIEWED from the awk-based checker). Fixed by moving the drawer to standard org placement immediately after the level-2 heading. - -Two commits + push: -- =db7f827= chore(audit): task-audit pass + pearl intake from 2026-05-28 morning -- =4a7beec= fix(todo): move task #15 PROPERTIES drawer above sub-headings - -Staleness check after the fix: 0 stale tasks. Task-review not needed. - -** 2026-05-28 08:23 CDT — no-approvals.org promoted + pearl framing merged - -Pearl's mid-session inbox arrival (=0814=) delivered its independently-built no-approvals workflow and asked rulesets to compare. The two converged on the same contract. Pearl's version brought a more prominent "What's Suspended" / "What Stays On" split, wider trigger phrases, a mode-resets-on-topic-shift guard, an explicit destructive-action carve-out, and a subagent-review-gate callout. Craig picked option 1 (promote + merge). - -Wrote the merged file at =claude-templates/.ai/workflows/no-approvals.org=, mirrored to =.ai/workflows/=, added an INDEX entry under "Tools and meta", deleted the project-only =.ai/project-workflows/no-approvals.org=, deleted the inbox file. History section at the bottom of the workflow records the merge. - -One commit + push: -- =e8702d2= feat(workflows): promote no-approvals.org to template, merge pearl framing - -Inbox is now down to the PROCESSED-prefixed file from last session (open-tasks-hybrid-friction-cascade), which holds the integrated cascade+friction content. Not deleted — left for Craig's call. - -** 2026-05-28 — rulesets enhancement backlog and emacs ai-kb task read - -Codex created =inbox/enhancements.org= with 14 proposed rulesets improvements focused on agent efficiency, knowledge/effectiveness, token reduction, and user experience. Also searched =~/.emacs.d/todo.org= for agent/org-roam-related work and noted the primary open =Implement ai-kb= project (Step 2 org-roam ai-kb profile, edit-safety, browsing, keybinding, ERT-test children) plus a secondary =Org Workflow Related Tools= → =Org-roam node tools= child for exposing personal org-roam nodes/backlinks/dailies to agents as structured context. - -Wrote the org-roam shared human+agent KB brainstorm as an inbox item for the Emacs project and delivered it to =/home/cjennings/.emacs.d/inbox/2026-05-28-from-rulesets-org-roam-shared-agent-kb.org=. Staged the content briefly in rulesets' inbox for copying, then removed the local staging file so only the target project receives the item. - -** 2026-05-28 08:38 CDT — Codex backlog filed + inbox cleared - -Processed =inbox/enhancements.org=. Moved to =docs/design/2026-05-28-rulesets-enhancement-backlog.org= as the canonical reference. Filed a single =[#C] :spec:= TODO "Triage Codex enhancement backlog" to walk the 14 items and decide accept/fold/defer/reject for each — avoids exploding the open list into 14 speculative TODOs while preserving Codex's structure for triage. Two of the 14 already have homes: item #1 (runtime-neutral core) = #16; item #2 (per-agent live session files) = the Codex Phase 1 [#B] TODO filed earlier this session. The triage focuses on the remaining 12. - -Also cleared the last-session PROCESSED-prefixed inbox file (open-tasks-hybrid-friction-cascade) — the cascade+friction restructure it tracked landed in this morning's open-tasks.org edits, so the reference is no longer needed. - -One commit + push: -- =3db49d4= chore(intake): file codex enhancement backlog as docs/design + triage TODO - -Inbox empty. - -** 2026-05-28 08:50 CDT — Codex backlog triaged into actionable TODOs - -Craig asked which of the 14 items I'd actually endorse against my own standards. Walked them one by one. Net: 3 strong endorses, 5 selective/pilot, 6 rejects with rationale. - -Craig picked option 1 (rewrite the triage TODO into a concrete decomposition). Marked the triage TODO DONE, filed 5 new actionable TODOs, recorded full disposition table in the backlog doc under "Triage Dispositions" — accept/pilot/convention/reject with one-line rationale per item. - -New TODOs (all [#C]): -- =:chore:= .aiignore for agent inventory exclusions (item #8) -- =:feature:= Workflow test harness (item #10) -- =:feature:= Token-tier pilot on startup.org and triage-intake.org (item #5) -- =:feature:quick:solo:= Canonical/mirror drift detection (item #7, reframed — rejected wholesale dedupe) -- =:feature:quick:solo:= =make status= only (item #12, scope-limited) - -Items #11 (script normalization) and #13 (ADR layer) recorded as conventions/watch-and-wait, no TODO. Six items rejected with rationale in the backlog doc — broader runtime arc (#1), INDEX.org compression (#3), universal catalog.json (#4), install manifest JSON (#6), project-facts.org (#9), local model profiles (#14). - -One commit + push: -- =8dfbe5c= chore(intake): triage codex backlog into 5 actionable TODOs + dispositions - -** 2026-05-28 09:25 CDT — No-approvals batch: 6 :quick:solo: TODOs - -Craig invoked no-approvals mode for a batch of 6 :quick:solo: TODOs Craig had pre-triaged. Each commit ran /review-code (Approve) + /voice personal walked inline. - -Tasks shipped: -1. =beb646e= feat(open-tasks): archive-done sweep at start of Phase A — pearl item. -2. =9f84ea2= feat(sync-check): canonical/mirror drift detection + pre-commit hook — 8 bats tests green; hook installed via new =make install-githooks=. -3. =bdf755d= feat(status): add =make status= for compact health summary — six-line output composing audit/doctor/sync/todo/inbox/git. -4. (bundled into =5c0c7a6=) chore(claude-templates): delete vestigial Makefile — root Makefile already covers install + test. -5. =5c0c7a6= fix(sync-check): ignore generated python and elisp artifacts — pre-commit caught a false-positive on its first real-world run; added =__pycache__/=, =*.pyc=, =.pytest_cache=, =*.elc= excludes. Bundled Task 4's deletion accidentally because the =git rm= from earlier was still staged. -6. =814695e= feat(mcp): add uninstall + --check + README section — install.py grew --uninstall and --check modes via argparse; new =make uninstall-mcp= and =make check-mcp= targets; README.org gained an MCP section under "Two install modes". - -Six TODOs closed. No real questions hit during the batch. One mistake worth recording: the sync-check fix commit (=5c0c7a6=) accidentally bundled Task 4's Makefile deletion because a previously-staged =git rm= persisted across an intervening attempt. The commit message describes only the sync-check fix. Going forward, I should run =git status= and =git restore --staged= before each commit when intermediate staging may have accumulated. - -Mid-batch inbox arrival noted but not processed: =inbox/2026-05-28-0858-from-home-spec-naming-convention-apply-to-spec.org= — out of scope for the batch, queued for the next process-inbox pass. diff --git a/.ai/sessions/2026-05-29-20-50-voice-paired-files-page-signal-process-inbox-and-broadcast.org b/.ai/sessions/2026-05-29-20-50-voice-paired-files-page-signal-process-inbox-and-broadcast.org new file mode 100644 index 0000000..3bcfba0 --- /dev/null +++ b/.ai/sessions/2026-05-29-20-50-voice-paired-files-page-signal-process-inbox-and-broadcast.org @@ -0,0 +1,126 @@ +#+TITLE: Session Context +#+DATE: 2026-05-28 + +* Summary + +** Active Goal + +(in progress) + +** Decisions + +** Data Collected / Findings + +** Files Modified + +** Next Steps + +* Session Log + +** 2026-05-28 07:56 CDT — Startup + +Clean startup (no crash-recovery file). Phase A.0 rulesets pull = already up to date; project repo refresh silent. Phase A snapshot: no reminders, no pending decisions, task-review staleness 0, language bundle clean, cross-agent queue empty, no startup-extras. + +Inbox held 5 unprocessed arrivals from this morning (all 2026-05-28 0124–0303), plus 1 PROCESSED-prefixed file: + +1. .emacs.d 0124 — extend open-tasks.org Next Mode with a pre-step that evaluates whether task-audit is warranted (temporal threshold + state-signal scan); third leg of the recommendation-first / hybrid-output / auto-audit triple. +2. pearl 0138 — open-tasks.org should run =--archive-done= sweep as first step of Phase A so freshly-DONE tasks don't surface in "what's next." +3. pearl 0155 — Pattern catalog: 2 more worked examples (label-matches-behavior, default-most-common with friction-proportional-to-consequence). +4. pearl 0226 — spec-review.org Phase 6 should enumerate implementation tasks (drop-in for todo.org). +5. pearl 0303 — Pattern 6: collapse N orthogonal prompts into one enriched prompt (cross-product form of the same UX principle). + +** 2026-05-28 08:00 CDT — Inbox item 1 implemented + priority scheme adopted + +Craig picked option 2 ("implement now"), then directed task-audit and task-review next, then added a new requirement: task-audit should enforce priority + tag every task with one of {feature, chore, spec, bug} (mandatory type) plus optional {quick, solo} (effort/autonomy). Also asked for a priority scheme posted at the top of todo.org. + +Research subagent surveyed five projects' priority schemes (Emacs, Pearl, Finances, ArchSetup, rulesets itself). All converge on =[#A]/[#B]/[#C]/[#D]= importance-driven semantics. Emacs has the cleanest verbatim legend. Finances adds importance-vs-urgency split. ArchSetup requires =[#A]= to carry a date. + +Priority scheme adopted for rulesets (in todo.org): +- =[#A]=: urgent risk or current workflow blocker, requires SCHEDULED/DEADLINE date. +- =[#B]=: important planned work. +- =[#C]=: useful but optional. +- =[#D]=: someday or watchlist. +- Type tags (mandatory, one per task): =:feature:= / =:chore:= / =:spec:= / =:bug:=. +- Effort/autonomy tags (optional, orthogonal): =:quick:= (≤30 min) and =:solo:= (end-to-end without Craig's input). + +LAST_AUDIT marker storage = =notes.org='s new Workflow State section (read by open-tasks.org Phase A.1). + +Two commits + push (=ee7049a..1f6cd40=): +- =4f650f7= docs(todo): add priority and tag scheme +- =ee7049a= feat(workflows): audit-warranted pre-step + priority and tag enforcement + +Each ran =/review-code= (Approve) + =/voice personal= walked inline. + +** 2026-05-28 08:18 CDT — Task audit + inbox spillover + +Ran task-audit under the new workflow on all 16 open tasks. Phase C (autonomous): tagged 13 tasks with their type tag, bumped LAST_REVIEWED, refreshed #15's body for the accumulating pearl signal. Phase D adjudication (Craig picked option 1): #15 bumped =[#C]= → =[#B]=; filed a new =[#B] :feature:= TODO for the codex Phase 1 race-fix (AI_AGENT_ID + session-context.d/.org) lifted from #16's broader spec. Pearl intake: moved 0155 + 0303 into docs/design/ as pattern-catalog notes referenced from #15; filed 0138 and 0226 as new =[#C]= TODOs. Phase E stamped =:LAST_AUDIT: 2026-05-28= in notes.org. + +Caught a staleness false-positive on #15 (the dated sub-entry I added moved the PROPERTIES drawer below a level-3 heading, hiding LAST_REVIEWED from the awk-based checker). Fixed by moving the drawer to standard org placement immediately after the level-2 heading. + +Two commits + push: +- =db7f827= chore(audit): task-audit pass + pearl intake from 2026-05-28 morning +- =4a7beec= fix(todo): move task #15 PROPERTIES drawer above sub-headings + +Staleness check after the fix: 0 stale tasks. Task-review not needed. + +** 2026-05-28 08:23 CDT — no-approvals.org promoted + pearl framing merged + +Pearl's mid-session inbox arrival (=0814=) delivered its independently-built no-approvals workflow and asked rulesets to compare. The two converged on the same contract. Pearl's version brought a more prominent "What's Suspended" / "What Stays On" split, wider trigger phrases, a mode-resets-on-topic-shift guard, an explicit destructive-action carve-out, and a subagent-review-gate callout. Craig picked option 1 (promote + merge). + +Wrote the merged file at =claude-templates/.ai/workflows/no-approvals.org=, mirrored to =.ai/workflows/=, added an INDEX entry under "Tools and meta", deleted the project-only =.ai/project-workflows/no-approvals.org=, deleted the inbox file. History section at the bottom of the workflow records the merge. + +One commit + push: +- =e8702d2= feat(workflows): promote no-approvals.org to template, merge pearl framing + +Inbox is now down to the PROCESSED-prefixed file from last session (open-tasks-hybrid-friction-cascade), which holds the integrated cascade+friction content. Not deleted — left for Craig's call. + +** 2026-05-28 — rulesets enhancement backlog and emacs ai-kb task read + +Codex created =inbox/enhancements.org= with 14 proposed rulesets improvements focused on agent efficiency, knowledge/effectiveness, token reduction, and user experience. Also searched =~/.emacs.d/todo.org= for agent/org-roam-related work and noted the primary open =Implement ai-kb= project (Step 2 org-roam ai-kb profile, edit-safety, browsing, keybinding, ERT-test children) plus a secondary =Org Workflow Related Tools= → =Org-roam node tools= child for exposing personal org-roam nodes/backlinks/dailies to agents as structured context. + +Wrote the org-roam shared human+agent KB brainstorm as an inbox item for the Emacs project and delivered it to =/home/cjennings/.emacs.d/inbox/2026-05-28-from-rulesets-org-roam-shared-agent-kb.org=. Staged the content briefly in rulesets' inbox for copying, then removed the local staging file so only the target project receives the item. + +** 2026-05-28 08:38 CDT — Codex backlog filed + inbox cleared + +Processed =inbox/enhancements.org=. Moved to =docs/design/2026-05-28-rulesets-enhancement-backlog.org= as the canonical reference. Filed a single =[#C] :spec:= TODO "Triage Codex enhancement backlog" to walk the 14 items and decide accept/fold/defer/reject for each — avoids exploding the open list into 14 speculative TODOs while preserving Codex's structure for triage. Two of the 14 already have homes: item #1 (runtime-neutral core) = #16; item #2 (per-agent live session files) = the Codex Phase 1 [#B] TODO filed earlier this session. The triage focuses on the remaining 12. + +Also cleared the last-session PROCESSED-prefixed inbox file (open-tasks-hybrid-friction-cascade) — the cascade+friction restructure it tracked landed in this morning's open-tasks.org edits, so the reference is no longer needed. + +One commit + push: +- =3db49d4= chore(intake): file codex enhancement backlog as docs/design + triage TODO + +Inbox empty. + +** 2026-05-28 08:50 CDT — Codex backlog triaged into actionable TODOs + +Craig asked which of the 14 items I'd actually endorse against my own standards. Walked them one by one. Net: 3 strong endorses, 5 selective/pilot, 6 rejects with rationale. + +Craig picked option 1 (rewrite the triage TODO into a concrete decomposition). Marked the triage TODO DONE, filed 5 new actionable TODOs, recorded full disposition table in the backlog doc under "Triage Dispositions" — accept/pilot/convention/reject with one-line rationale per item. + +New TODOs (all [#C]): +- =:chore:= .aiignore for agent inventory exclusions (item #8) +- =:feature:= Workflow test harness (item #10) +- =:feature:= Token-tier pilot on startup.org and triage-intake.org (item #5) +- =:feature:quick:solo:= Canonical/mirror drift detection (item #7, reframed — rejected wholesale dedupe) +- =:feature:quick:solo:= =make status= only (item #12, scope-limited) + +Items #11 (script normalization) and #13 (ADR layer) recorded as conventions/watch-and-wait, no TODO. Six items rejected with rationale in the backlog doc — broader runtime arc (#1), INDEX.org compression (#3), universal catalog.json (#4), install manifest JSON (#6), project-facts.org (#9), local model profiles (#14). + +One commit + push: +- =8dfbe5c= chore(intake): triage codex backlog into 5 actionable TODOs + dispositions + +** 2026-05-28 09:25 CDT — No-approvals batch: 6 :quick:solo: TODOs + +Craig invoked no-approvals mode for a batch of 6 :quick:solo: TODOs Craig had pre-triaged. Each commit ran /review-code (Approve) + /voice personal walked inline. + +Tasks shipped: +1. =beb646e= feat(open-tasks): archive-done sweep at start of Phase A — pearl item. +2. =9f84ea2= feat(sync-check): canonical/mirror drift detection + pre-commit hook — 8 bats tests green; hook installed via new =make install-githooks=. +3. =bdf755d= feat(status): add =make status= for compact health summary — six-line output composing audit/doctor/sync/todo/inbox/git. +4. (bundled into =5c0c7a6=) chore(claude-templates): delete vestigial Makefile — root Makefile already covers install + test. +5. =5c0c7a6= fix(sync-check): ignore generated python and elisp artifacts — pre-commit caught a false-positive on its first real-world run; added =__pycache__/=, =*.pyc=, =.pytest_cache=, =*.elc= excludes. Bundled Task 4's deletion accidentally because the =git rm= from earlier was still staged. +6. =814695e= feat(mcp): add uninstall + --check + README section — install.py grew --uninstall and --check modes via argparse; new =make uninstall-mcp= and =make check-mcp= targets; README.org gained an MCP section under "Two install modes". + +Six TODOs closed. No real questions hit during the batch. One mistake worth recording: the sync-check fix commit (=5c0c7a6=) accidentally bundled Task 4's Makefile deletion because a previously-staged =git rm= persisted across an intervening attempt. The commit message describes only the sync-check fix. Going forward, I should run =git status= and =git restore --staged= before each commit when intermediate staging may have accumulated. + +Mid-batch inbox arrival noted but not processed: =inbox/2026-05-28-0858-from-home-spec-naming-convention-apply-to-spec.org= — out of scope for the batch, queued for the next process-inbox pass. diff --git a/inbox/lint-followups.org b/inbox/lint-followups.org new file mode 100644 index 0000000..13b65fa --- /dev/null +++ b/inbox/lint-followups.org @@ -0,0 +1,7 @@ + +* 2026-05-29 lint-org follow-ups — todo.org +** TODO line 2429 — obsolete-properties-drawer — Incorrect contents for PROPERTIES drawer +** TODO line 2371 — misplaced-heading — Possibly misplaced heading line +** TODO line 1718 — misplaced-heading — Possibly misplaced heading line +** TODO line 1213 — invalid-custom-id-link — Unknown custom ID "16 Generic agent runtime support" +** TODO line 1176 — obsolete-properties-drawer — Incorrect contents for PROPERTIES drawer -- cgit v1.2.3