diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-30 16:07:39 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-30 16:07:39 -0500 |
| commit | 86326c1f2677484b2906d8142891e8d023ba803e (patch) | |
| tree | 57264c662e223097a686ae0037b185156ad0e7f1 /.ai/session-context.org | |
| parent | b80a9ceb3fc9cdca9798b48fbc4f9ab9c1592b57 (diff) | |
| download | rulesets-86326c1f2677484b2906d8142891e8d023ba803e.tar.gz rulesets-86326c1f2677484b2906d8142891e8d023ba803e.zip | |
chore(ai): archive session record + lint follow-ups
Diffstat (limited to '.ai/session-context.org')
| -rw-r--r-- | .ai/session-context.org | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/.ai/session-context.org b/.ai/session-context.org deleted file mode 100644 index 7d32f3b..0000000 --- a/.ai/session-context.org +++ /dev/null @@ -1,81 +0,0 @@ -#+TITLE: Session — lint-followups inbox pass -#+DATE: 2026-05-30 - -* Summary - -** Active Goal -** Decisions -** Data Collected / Findings -** Files Modified -** Next Steps - -* Session Log - -** 2026-05-30 07:30 CDT — startup + inbox - -Startup ran clean: both repos current, no crashed session, no reminders/pending decisions, no cross-agent messages, no stale tasks, language bundle clean. One inbox item: =lint-followups.org=, five lint findings on =todo.org= from the lint-org pipeline (script source). - -Triaged the five against the actual lines: -- 1213 invalid-custom-id-link — link points to nonexistent CUSTOM_ID =#16 Generic agent runtime support=; target heading (1165) has no CUSTOM_ID. Real. Fix: fuzzy heading link. -- 1176, 2429 obsolete-properties-drawer — two =LAST_REVIEWED= drawers sit at the bottom of their task bodies, detached from the heading, so org treats them as inert text. Real. Fix: relocate each drawer to directly under its heading (1165 and 2415). -- 2371, 1718 misplaced-heading — both flag verbatim org markup inside prose (=** DONE=, =** Startup Pull Ordering=). Verbatim-marker false-positive class (seen 2026-05-25). No change. - -Craig chose: fix the 3 real findings, dismiss the 2 false positives, clear the inbox file in one commit. - -Applied: relocated both =LAST_REVIEWED= drawers to directly under their headings (Generic-agent-runtime TODO and Iteration-history-backfill DONE); converted the =#16= custom-id link to a fuzzy heading link. Verified with =lint-org --check todo.org= — the three findings are gone; only the two false-positive misplaced-heading items remain (now at lines 2370/1717). =.ai/session-context.org= stays out of the commit (live anchor, renamed at wrap-up). - -Reconciled (0 behind / 0 ahead), reviewed staged diff inline (Approve, no findings), drafted the commit message, ran =/voice personal= (em-dash fix only), committed as =e305924= "chore(todo): fix lint findings on todo.org" — todo.org + inbox deletion. Author confirmed Craig Jennings. Inbox now empty. Stamped =:LAST_INBOX_PROCESS: 2026-05-30= in notes.org. Pushed to origin/main (=0c16004..e305924=) after a clean pre-push reconcile (0 behind, 1 ahead). - -** 2026-05-30 ~12:47 CDT — second inbox pass (drill-to-anki handoffs) - -Checked inbox on Craig's request. Two handoffs had arrived from health + work, both about drill-to-anki. Discovered the work session had committed 80e76cb + 23d87c1 to rulesets cross-project (drill-deck-review workflow + drawer-stripping script extension); already integrated, HEAD was at 23d87c1. - -Health handoff-1: two drill-to-anki default tweaks. Craig picked option 1 (implement now, raw basename for deck name; file work's helper scripts as a [#C] TODO). - -Implemented handoff-1 TDD-style: wrote test_drill_to_anki.py red-first (genanki stubbed in sys.modules so the uv-only dep doesn't block import), then changed default_output_path → ~/sync/phone/anki/ and default_deck_name → raw input basename (dropped title_from_org as now-dead). Updated docstring + arg help. Mirror-synced, sync-check clean, full suite green (331/1skip + 54 hooks + 24 + 23 ERT + bats). Committed 038d59b (feat(drill-to-anki): ...) — LOCAL, not pushed yet. - -Mid-work, a burst of newer files arrived from work (12:51, 12:57): drill-deck-stats.py, drill-deck-diff-ids.py, drill-deck-sync wrapper, an updated drill-deck-review.org, and two notes. The 12:51 follow-up says Craig GREEN-LIT all three scripts on the work side and sent an apply-ready bundle (with explicit rulesets-side apply instructions). The 12:57 note adds a title-audit tweak to stats.py + the workflow. - -CONFLICT: the bundle's "green-lit, install it" contradicts the "file as TODO" Craig picked here minutes earlier. Holding — surfacing to Craig before applying. Also flagged: handoff-1's 1b change (deck name = basename) already neutralizes the #+TITLE org-drill-jargon leak for the default path, overlapping work's title-audit. - -Working tree currently holds the premature [#C] TODO (todo.org) + docs/design preservation of the two earlier scripts, pending Craig's decision on the bundle. - -*** Resolution: Craig said "incorporate any flashcard items" — apply the bundle. - -Installed the three scripts (drill-deck-stats.py, drill-deck-diff-ids.py, drill-deck-sync) to canonical + mirror, chmod +x. Replaced drill-deck-review.org with the bundle version (Helper Scripts section, Deck-title subsection, script refs in phases). Reconciled the workflow's stale output-path prose: it claimed drill-to-anki.py defaults to ~/sync/org/drill/, which 038d59b changed to ~/sync/phone/anki/ — fixed lines 37, 253-256, and dropped the now-moot Common Mistake about outputting to the script default. Lines 30/32/256 keep ~/sync/org/drill/ where it correctly names the org-source home. - -Added tests: test_drill_deck_stats.py (is_prompt_form pure + CLI clean/dirty/missing-file), test_drill_deck_diff_ids.py (card_id_map + CLI identical/dropped-id), drill-deck-sync.bats (no-args, missing-file, stats-gate-failure). 11 pytest + 3 bats, all green. Removed the premature [#C] TODO (todo.org back to committed state) and the docs/design preservation. sync-check clean, full suite 342/1skip + 54 hooks + 24 + 23 ERT + bats green. Deleted the 4 inbox bundle files; inbox empty. - -Committed 0234e52 (chore(scripts): ...). Pushed 038d59b + 0234e52 together: =23d87c1..0234e52= on origin/main after clean pre-push reconcile (0 behind, 2 ahead). - -Work's follow-up said "no additional follow-ups open," so no reply sent (accepted handoff). The workflow output-path reconciliation propagates to work via the normal rsync on their next startup. - -Still uncommitted (session housekeeping for wrap-up): notes.org :LAST_INBOX_PROCESS: stamp, this session-context.org. - -** 2026-05-30 ~13:25 CDT — /add-tests for the flashcard + untested scripts - -Craig ran /add-tests "for all those scripts if they need it" + asked which other scripts lack tests. Inventory: every script under .ai/scripts/ maps to a test except cross-project-broadcast.py and daily-prep-agenda.el (zero), and drill-to-anki.py was only partially covered (default helpers only). Craig picked option 3 (everything). - -Wrote, TDD-verified each batch: -- test_drill_to_anki.py extended +22: parse, strip_org_metadata, section_to_tag, escape_html, stable_id. build/make_model skipped (genanki framework glue). No bugs surfaced. -- test_drill_deck_stats.py +2 (missing-title WARN, PROPERTIES-mismatch WARN), test_drill_deck_diff_ids.py +1 (appeared-IDs note path). -- test_cross_project_broadcast.py new (12): is_broadcastable, discover (SEARCH_ROOTS monkeypatched to tmp tree), sender_project, inbox_send_path. -- test-daily-prep-agenda.el new (15 ERT): dp-iso-date, dp-bucket (clock pinned via dynamic let), dp-format-entry, dp-collect end-to-end on a temp org file. - -Testability refactor: daily-prep-agenda.el's batch entrypoint fired on any load, blocking ERT. Gated it behind dp--cli-invocation-p (same readable-files check lint-org.el uses). Real-file invocation unchanged; no-arg run now no-ops. - -Verified: sync-check clean, full suite 379/1skip + 54 hooks + 15 + 24 + 23 ERT + bats, all green. Committed a631395 (test(scripts): ...), pushed =0234e52..a631395= after clean reconcile. - -No other scripts lack tests now. The only deliberate coverage gaps: drill-to-anki build/make_model and the drill-deck-sync clean end-to-end path, all of which need uv-resolved genanki and are left to integration. - -Committed housekeeping 82e99ff (chore(ai): refresh session log + marker), pushed =a631395..82e99ff=. - -** 2026-05-30 ~13:30 CDT — research Anki/flashcard best practices (workflow) - -Craig asked to research flashcard/Anki best practices and propose drill-deck-review.org updates. Launched a Workflow: 5-facet research fan-out (SRS scheduling, card-authoring principles, question formulation, Anki mechanics, anti-patterns) → synthesis that reads the current workflow and proposes section-by-section updates. Proposal only — no workflow edits until Craig approves. - -Workflow completed (6 agents, ~237s). Proposal: 8 already-strong, 7 updates (2 high stats.py linters, 4 medium, 1 low), 5 conflicts not adopted. Full result at the workflow output file. Craig chose: apply all 7 + add a card-authoring section. Implementing now: drill-deck-stats.py gains answer-leakage WARN, duplicate-front WARN, and non-blocking NOTEs for overloaded/list backs and binary prompts (with tests); drill-deck-review.org gains a Card Authoring section, person-card split path, Phase B cost-benefit + leech-feedback, a scheduling-is-Anki-side note, and Helper-Scripts/Common-Mistakes updates for the new checks. - -Implemented + shipped. drill-deck-stats.py rewritten: new pure helpers (content_words, leakage_ratio, normalize_heading, is_binary_prompt, back_word_count, is_list_back, parse_cards, find_duplicate_fronts) + two-tier WARN/NOTE reporter; fuzzy thresholds in tunable constants (LEAKAGE_RATIO=0.8, BACK_WORD_LIMIT=60). +17 tests (27 total in the file). drill-deck-review.org got all 8 doc edits (Overview scheduling note, Card Authoring Principles section with sourced org links, person-card split path, Phase A signal mention, Phase B removal category + leech/one-directional disposition, Helper-Scripts stats description, two Common Mistakes, Living Document entry). Sanity-ran stats.py on a mixed sample — correctly flagged a leaky card (blocking) + list/binary NOTEs (non-blocking). sync-check clean, full suite 396/1skip + hooks + ERT + bats green. Committed 5bd7591 (feat(drill-deck): ...), pushed =82e99ff..5bd7591=. - -Still uncommitted for wrap-up: session-context.org (this file). notes.org marker already committed in 82e99ff. |
