aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-03 16:02:55 -0500
committerCraig Jennings <c@cjennings.net>2026-06-03 16:02:55 -0500
commit46e1d3791c97fde0b931120a5cb8d1d6b1829c02 (patch)
treeb9c0ef37eb5f408326d54889b7b78026a50ad639
parent36e57f15e2cc191172016c50d45b5bf5d71933e5 (diff)
downloadrulesets-46e1d3791c97fde0b931120a5cb8d1d6b1829c02.tar.gz
rulesets-46e1d3791c97fde0b931120a5cb8d1d6b1829c02.zip
chore(ai): archive session record
-rw-r--r--.ai/notes.org2
-rw-r--r--.ai/sessions/2026-06-03-16-02-command-desc-cap-and-coverage-redrop-fix.org57
2 files changed, 58 insertions, 1 deletions
diff --git a/.ai/notes.org b/.ai/notes.org
index 4e6b465..bf5e1b7 100644
--- a/.ai/notes.org
+++ b/.ai/notes.org
@@ -79,6 +79,6 @@ Format:
Markers maintained by workflows to record when they last ran. Read by other workflows that gate their behavior on freshness.
:LAST_AUDIT: 2026-05-28
-:LAST_INBOX_PROCESS: 2026-06-02
+:LAST_INBOX_PROCESS: 2026-06-03
Format: one =:MARKER: YYYY-MM-DD= line per workflow. Workflows overwrite their own marker on completion.
diff --git a/.ai/sessions/2026-06-03-16-02-command-desc-cap-and-coverage-redrop-fix.org b/.ai/sessions/2026-06-03-16-02-command-desc-cap-and-coverage-redrop-fix.org
new file mode 100644
index 0000000..2fdd177
--- /dev/null
+++ b/.ai/sessions/2026-06-03-16-02-command-desc-cap-and-coverage-redrop-fix.org
@@ -0,0 +1,57 @@
+#+TITLE: Session Context
+#+DATE: 2026-06-03
+
+* Summary
+
+** Active Goal
+
+Startup, then process two cross-project inbox handoffs (both polish/bug reports about rulesets' own tooling). Two commits, both pushed to origin/main. Also killed Chrome/Firefox per a one-off request.
+
+** Decisions
+
+- *Trim two over-cap command descriptions rather than raise the global cap.* The work project's /doctor flagged start-work and respond-to-cj-comments as exceeding Claude Code's ~1536-char skill-listing cap. Trimmed descriptive prose only, preserving every "Use when" / "Do NOT use" routing trigger verbatim, so triggering is unchanged. Raising skillListingMaxDescChars would have cost ~7k tokens every session.
+- *Fix the coverage re-drop by detecting Makefile targets, not by adding adopted-ack state.* .emacs.d's handoff offered two options; chose Makefile-target detection (grep for the distinctive coverage-summary: target) because it needs no persistent marker file. Kept inbox_drop generic — the coverage-specific check lives at the call site.
+- *Killed only the Google Chrome tree, spared Slack's chrome_crashpad_handler.* The Slack helper matched "chrome" by path but belongs to Electron, not the browser.
+
+** Data Collected / Findings
+
+- Description lengths: start-work 1680→1513, respond-to-cj-comments 1568→1518.
+- Coverage re-drop root cause: inbox_drop only recognized the fragment-at-root adoption form, not the targets-copied-into-Makefile form that install-lang.sh:86 actually documents. .emacs.d followed the documented path (deleted the fragment), so every sync saw it as un-adopted and re-dropped (3 sessions running).
+- Verified the fix predicate against the real .emacs.d Makefile (line 274 has coverage-summary:). bats suite 22/22 after adding 2 regression tests.
+- sync-language-bundle.sh lives only at scripts/ (repo-root install tooling) — no .ai/ mirror to keep in sync.
+- inbox-send.py does not discover ~/.emacs.d among its 15 projects; replies to that project go to its root inbox/ directly.
+
+** Files Modified
+
+- .claude/commands/start-work.md, .claude/commands/respond-to-cj-comments.md — description trims under the listing cap (586c8f6).
+- scripts/sync-language-bundle.sh — guard the coverage-fragment drop on a project Makefile already defining coverage-summary: (36e57f1).
+- scripts/tests/sync-language-bundle.bats — 2 regression tests for adopted-via-Makefile and the over-broad-detection guard (36e57f1).
+- .ai/notes.org — :LAST_INBOX_PROCESS: bumped to 2026-06-03.
+- ~/.emacs.d/inbox/2026-06-03-handoff-from-rulesets-coverage-redrop-fixed.org — cross-project reply (outside this repo).
+- ~/projects/work/inbox/2026-06-03-1252-from-rulesets-work-reply.txt — cross-project reply (outside this repo).
+
+** Next Steps
+
+- Pattern catalog [#B] is still the one open high-priority item, gated on Craig's review of docs/design/2026-06-02-pattern-catalog-spec.org (opened in Emacs this session, five open questions with recommended calls). Once he signs off, build out patterns/ + the six seed patterns.
+- Both fixes are live for consuming projects on their next rulesets pull; .emacs.d's re-drop stops on its next startup.
+- Open [#C]s unchanged: memories-synced-across-machines (needs a direction decision), create-documentation skill, the lint-org follow-ups append-vs-converged semantics question, the rotation batch.
+
+* Session Log
+
+** 2026-06-03 ~12:52 CDT — Startup + inbox handoff: trim two over-cap command descriptions
+
+Ran startup (clean: no crashed session, .ai/ synced, no reminders/pending/cross-agent, staleness 0). One inbox handoff from the work project's Claude: a /doctor observation that two command descriptions exceed Claude Code's skillListingMaxDescChars (~1536) and truncate in the menu listing.
+
+Verified on disk: start-work was 1680 chars, respond-to-cj-comments 1568 — both over. Craig chose to trim now. Tightened only descriptive prose in each, preserving every "Use when" / "Do NOT use" routing trigger verbatim so triggering behavior is unchanged. New lengths: start-work 1513, respond-to-cj-comments 1518. Edited .claude/commands/start-work.md and .claude/commands/respond-to-cj-comments.md.
+
+Replied to the work project via inbox-send (landed at work/inbox/2026-06-03-1252-from-rulesets-work-reply.txt), deleted the processed handoff, bumped :LAST_INBOX_PROCESS: to 2026-06-03 in notes.org.
+
+Committed the two command-file trims as 586c8f6 (docs(commands): trim two command descriptions under listing cap), ran review-code (Approve, doc-only) and /voice personal on the message. Pushed fe3bd8f..586c8f6 to origin/main. notes.org marker bump and live session-context.org left uncommitted for wrap-up. Then opened docs/design/2026-06-02-pattern-catalog-spec.org in emacsclient for Craig's review.
+
+** 2026-06-03 ~13:10 CDT — Fix recurring coverage-makefile re-drop (from .emacs.d handoff)
+
+.emacs.d reported the elisp bundle sync re-drops from-rulesets-coverage-makefile.txt every run (deleted 3 sessions running). Root cause: inbox_drop in scripts/sync-language-bundle.sh only treats the fragment as adopted if coverage-makefile.txt sits at the project root or waits in the inbox. But install-lang.sh:86 tells users to copy the targets into their Makefile and delete the fragment — the documented path that .emacs.d took. Neither guard fires, so it re-drops forever.
+
+Fix: guard the inbox_drop call site so a project Makefile that already defines the distinctive `coverage-summary:` target counts as adopted (grep -qE '^coverage-summary:' "$PROJECT/Makefile"). Kept inbox_drop generic; coverage-specific detection lives at the call site. TDD: added 2 bats tests (adopted-via-Makefile → no re-drop; unrelated Makefile → still drops), red then green. Full suite 22/22. Verified the predicate against the real .emacs.d Makefile (line 274 has coverage-summary:). sync-language-bundle.sh has no mirror (repo-root install tooling, not a templated .ai/ script).
+
+review-code Approve (root-cause fix, red-green evidence), /voice personal on the message. Committed 36e57f1 (fix(language-bundle): don't re-drop the coverage fragment once adopted), pushed 586c8f6..36e57f1 to origin/main. Replied to .emacs.d — inbox-send doesn't discover ~/.emacs.d, so wrote the reply directly to ~/.emacs.d/inbox/2026-06-03-handoff-from-rulesets-coverage-redrop-fixed.org (that project uses root inbox/ for handoffs). Deleted the processed handoff; rulesets inbox clean.