aboutsummaryrefslogtreecommitdiff
path: root/.ai/scripts
Commit message (Collapse)AuthorAgeFilesLines
* feat(todo-cleanup): add --archive-done mode with ERT test suiteCraig Jennings2026-05-113-29/+566
| | | | | | | | --archive-done moves every level-2 subtree whose TODO state is DONE or CANCELLED out of the "Open Work" section into the "Resolved" section of the same org file, subtree intact. Sections match on a unique level-1 heading containing "Open Work" (case-insensitive) and one containing "Resolved"; a missing or ambiguous section skips the file with a message rather than crashing. Only direct level-2 children move. A DONE entry nested under an open parent stays put. Opt-in, never run by default, doesn't also run the hygiene passes; --check previews without writing. The CLI dispatch moved into tc-main behind a guard so the new ERT suite can require the file without firing it. Hygiene mode is unchanged. 13 ERT cases (the repo's first elisp tests) cover the move and the stay-put cases, EOF with no final newline, missing or ambiguous sections, lowercase headings, idempotency, and --check. tests/fixtures/todo-sample.org is the synthetic sample, and the Makefile test target now runs the ERT suites alongside pytest.
* chore(ai): sync template updates from claude-templatesCraig Jennings2026-05-114-20/+26
| | | | Pull in the latest maildir-flag-manager.py and cross-agent-comms doc updates from the claude-templates source.
* fix(gmail): Improve safe_filename to handle .. prefixesCraig Jennings2026-05-081-2/+11
| | | | | | Strip leading ".." sequences instead of stripping all leading dots, so dotfiles like ".gitignore" are preserved while still preventing directory traversal via "../foo" style names. ```
* feat: Add cmail IMAP action script and test suiteCraig Jennings2026-05-084-0/+1786
| | | | | | | | Add cmail-action.py for IMAP triage operations against Proton Mail Bridge (list-unread, read, mark-read, star, unstar, trash, send, folders) mirroring the Gmail MCP workflow. Also add comprehensive tests for cmail-action, gmail-fetch-attachments, and maildir-flag-manager scripts.
* chore(ai): correct stale ~/projects/work/ path references in workflows and ↵Craig Jennings2026-05-083-4/+4
| | | | scripts
* chore(ai): sync template updates from claude-templatesCraig Jennings2026-05-063-4/+4
| | | | | | I added a "Shell aliases (=ls= → =exa=)" note to protocols.org so future sessions know to use \ls when capturing ls output programmatically. exa prints nothing to non-TTY pipes, so the symptom looks like an empty directory. I hit this earlier in the session when a sweep came back blank for a directory I knew was populated. I also fixed three stale ~/projects/career/ examples in cross-agent-comms/ docs that didn't get updated when career was renamed to work, and the daily-prep.org path leak from last session (~/code/deepsat/... → ~/projects/work/deepsat/code/...). The authoritative edits live in claude-templates. These rulesets snapshots landed via the standard rsync from upstream.
* chore(ai): initialize project notes and Claude tooling surfacesCraig Jennings2026-05-0641-0/+5836
Replace the seed notes.org with project-specific context (layout, install modes, task tracker location, recent inflection point). Bring in the synced template surfaces (protocols, workflows, scripts, references, retrospectives, someday-maybe) as tracked content for this content/documentation project.