From 1952ed41ca07b8bf4bca3b68b0f94a786ce2345a Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 1 Jun 2026 15:28:13 -0500 Subject: chore(ai): archive session record --- ...-27-daily-prep-symlink-and-install-ai-inbox.org | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 .ai/sessions/2026-06-01-15-27-daily-prep-symlink-and-install-ai-inbox.org diff --git a/.ai/sessions/2026-06-01-15-27-daily-prep-symlink-and-install-ai-inbox.org b/.ai/sessions/2026-06-01-15-27-daily-prep-symlink-and-install-ai-inbox.org new file mode 100644 index 0000000..15417cf --- /dev/null +++ b/.ai/sessions/2026-06-01-15-27-daily-prep-symlink-and-install-ai-inbox.org @@ -0,0 +1,110 @@ +#+TITLE: Session Context +#+DATE: 2026-06-01 + +* Summary + +** Active Goal + +Reworked the daily-prep storage model (prep docs in =daily-prep/= behind a root symlink), taught =install-ai= to create the cross-project =inbox/= on bootstrap, and bootstrapped =~/code/pearl= as an AI project. Two commits, both pushed; one cross-project handoff to =.emacs.d= sent and confirmed. + +** Decisions + +- *Daily-prep home = =daily-prep/=, not =assets/=.* Craig first said assets, then corrected to the existing =daily-prep/= dir, which becomes the born-here home (no more inbox birth + archive move). +- *Stable symlink at project root:* =daily-prep.org= → =daily-prep/YYYY-MM-DD-daily-prep.org=, repointed each run with =ln -sf=. Only the symlink changes day to day. +- *Emacs opener follows the symlink:* the existing =cj/open-project-daily-prep= pointed at =inbox/today-prep.org= (superseded). Filed a handoff to =.emacs.d= rather than editing another repo from here; that agent repointed it to =daily-prep.org= and confirmed. +- *=install-ai= creates =inbox/= unconditionally* (both track and gitignore modes), since =inbox/= is a project-root convention independent of =.ai/= tracking, and inbox-send needs both markers. +- *pearl bootstrapped in gitignore mode* (code project, private cjennings.net remote → session records stay local). +- *=wrap-it-up.org= left untouched* — its =inbox/= references are =lint-followups.org= routing, not the prep doc, so they stayed correct. + +** Data Collected / Findings + +- lint-org on the reworked =daily-prep.org=: judgment 16→15 (the Phase 8 rewrite cleared one misplaced-heading false positive), mechanical unchanged at 3 (pre-existing Phase 6 item-number counters). Zero new findings. +- review-code --staged on the daily-prep diff caught a real inconsistency: the "Phase 8 in standup-only mode" subsection still described the old archive behavior. Fixed. +- =install-ai.bats= 7/7 green after adding 3 inbox tests (red-then-green). +- pearl wasn't in inbox-send's list until =inbox/= existed — inbox-send requires =.ai/= AND a top-level =inbox/=. + +** Files Modified + +- =claude-templates/.ai/workflows/daily-prep.org= (+ mirror) — Phase A/slim-Phase-A lookback now globs =daily-prep/= and takes the file before the symlink target; standup-only "Where the brief lands"; Phase 8 rewritten "Archive Older Prep Docs" → "Repoint the Current-Day Symlink" + standup-only Phase 8; 2026-02-23 note superseded; new 2026-06-01 changelog entry. Commit 225c60d. +- =claude-templates/.ai/workflows/triage-intake.org= (+ mirror) — sentinel-anchor fallback dropped its =inbox/= prep-doc path. Commit 225c60d. +- =scripts/install-ai.sh= + =scripts/tests/install-ai.bats= — create top-level =inbox/= with =.gitkeep= on bootstrap; 3 new tests. Commit 19e39ae. +- =~/code/pearl/.ai/= (bootstrapped, gitignored) + =~/code/pearl/inbox/.gitkeep= — pearl's own repo, not committed from here. +- =~/.emacs.d/inbox/2026-06-01-handoff-from-rulesets-daily-prep-symlink-move.org= — cross-project handoff, processed and confirmed by that project. + +** Next Steps + +- pearl: add a language bundle if it's a specific stack (=make install-lang PROJECT=~/code/pearl=); its =docs/local-and-linear-views-spec.org= is Craig's own in-flight work, left for a pearl session. +- First real adopter of the daily-prep symlink model on a consuming project is the live test (logic is verified, not yet run against an accumulated-inbox tree). The migration block in Phase 8 handles the one-time move. +- Carryover unchanged from prior sessions: Signal MCP install at the desktop (GPG pinentry blocks remote); build out the real Go bundle so its coverage slice becomes sync-maintainable; first adopters sanity-check the Python/TS coverage scripts against a live run. + +* Session Log + +** Daily-prep symlink rework (2026-06-01 morning) + +Craig asked to change the daily-prep workflow so prep docs reside in their +permanent home from creation and only a stable symlink flips day-to-day. + +Settled through two proposal rounds: +- Home = =daily-prep/= (the existing archive dir becomes the born-here home; no + more inbox birth + archive move). Craig first said assets/, then corrected to + daily-prep/. +- Stable symlink at the *project root*: =daily-prep.org= → =daily-prep/YYYY-MM-DD-daily-prep.org=, + repointed each run with =ln -sf=. + +Discovered the Emacs side already used a stable symlink but at +=inbox/today-prep.org= (opener =cj/open-project-daily-prep= in +=~/.emacs.d/modules/prog-general.el=, bound =C-c p d=, test +=tests/test-prog-general-open-project-daily-prep.el=). That path is superseded +by the new root symlink. Per Craig, filed a handoff to the =.emacs.d= project's +inbox (created =~/.emacs.d/inbox/=, dropped +=2026-06-01-handoff-from-rulesets-daily-prep-symlink-move.org=) asking that +agent to repoint the opener from =inbox/today-prep.org= to =daily-prep.org=. + +Template edits, all in =claude-templates/.ai/workflows/= (canonical; pre-commit +hook mirrors into =.ai/=): +- =daily-prep.org=: standup-only "Where the brief lands" (→ daily-prep/ + symlink), + slim-Phase-A step 2 lookback, Phase A step 5 lookback (glob daily-prep/, take + file before symlink target), Phase 8 rewritten "Archive Older Prep Docs" → + "Repoint the Current-Day Symlink" with one-time migration note, 2026-02-23 + "Prep doc output" note marked superseded, new 2026-06-01 Updates entry. +- =triage-intake.org= line 205: sentinel-anchor fallback dropped its inbox/ prep-doc path. +- =wrap-it-up.org=: deliberately left as-is — its inbox/ references are about + lint-followups.org routing, not the prep doc, so they stay correct. + +Verification: lint-org --check on daily-prep.org — judgment 16→15 (my Phase 8 +rewrite cleared one misplaced-heading false positive), mechanical unchanged at 3 +(pre-existing Phase 6 item-number counters). Zero new findings from the edits. + +Publish flow: review-code --staged surfaced one real inconsistency — the +"Phase 8 in standup-only mode" subsection still described the old +archive-from-inbox behavior; rewrote it to the symlink model. Synced mirror via +=scripts/sync-check.sh --fix=, staged the four workflow files (not the live +=session-context.org=). /voice personal on the message changed "This replaces" +→ "I replaced" (#32). Committed 225c60d =feat(daily-prep): store prep docs in +daily-prep/ with a root symlink= on main; pre-commit sync-check passed. Not +pushed yet — awaiting Craig's go. + +The emacs.d handoff sits untracked in =~/.emacs.d/inbox/= by design — that +project's next session processes it. + +** Bootstrap pearl as an AI project + teach install-ai to create inbox/ + +=make install-ai PROJECT=~/code/pearl GITIGNORE=1= bootstrapped pearl's =.ai/= +(code project, private cjennings.net remote → gitignore mode). install-ai +doesn't create a top-level =inbox/=, and inbox-send requires =.ai/= AND +=inbox/=, so pearl wasn't a messaging target. Created =~/code/pearl/inbox/.gitkeep= +manually — pearl now lists as #15. + +Then made install-ai do this for every project: =scripts/install-ai.sh= now +=mkdir -p $project/inbox= + =touch inbox/.gitkeep= unconditionally (both modes, +idempotent so existing inbox content is preserved), with a banner line. TDD: +added 3 bats tests to =scripts/tests/install-ai.bats= (inbox in gitignore mode, +inbox in track mode, preserve pre-existing inbox) — red first, then green. Full +suite 7/7. Committed 19e39ae =feat(install-ai): create top-level inbox/ on +bootstrap=, pushed 225c60d..19e39ae. + +emacs.d closed its loop fast: a confirmation reply landed in rulesets' inbox +mid-flow (=2026-06-01-0829-from-.emacs.d-confirmed-daily-prep-opener-repointed.org=) +— that agent repointed =cj/open-project-daily-prep= to =/daily-prep.org=, +updated docstring/message/tests (3/3 green), live-reloaded the daemon. Acknowledged, +cleared the processed reply; inbox clean. -- cgit v1.2.3