aboutsummaryrefslogtreecommitdiff
path: root/todo.org
Commit message (Collapse)AuthorAgeFilesLines
* docs(todo): mark fold-epic children 1-3 done (audit, install-ai, fold), ↵Craig Jennings2026-05-151-3/+6
| | | | child 5 awaits ratio
* feat(make): add catchup-machine target for cross-machine .ai/ syncCraig Jennings2026-05-151-1/+1
| | | | | | | | scripts/catchup-machine.sh runs the four steps that bring a machine in sync with rulesets canonical: git pull, make install (symlink refresh), make audit APPLY=1 (rsync .ai/ across all projects), and make doctor (verify). Idempotent, safe to re-run any time. Built for the post-fold ratio migration but applies generally: after a fresh rulesets clone on a new machine, or whenever the canonical source has advanced since last sync. Handles dirty working trees by skipping the pull and surfacing a warning; user commits or stashes before re-running.
* docs(todo): close fold-epic test plan, file edge-case follow-upCraig Jennings2026-05-151-1/+16
| | | | Audit and install-ai both pass their core test paths (report-only, --apply convergence, idempotency, fresh install, refusal-on-existing, GITIGNORE mode, doctor 36/0/0, pytest 296+1 skipped). Three destructive edge cases (--force on dirty, missing .ai/ FAIL, install-ai fzf-pick form) were deferred to a [#C] sibling task that proposes a self-contained test harness rather than running them against real projects.
* feat(make): add install-ai target for bootstrapping .ai/ in fresh projectsCraig Jennings2026-05-151-1/+1
| | | | | | | | scripts/install-ai.sh copies canonical .ai/ content from claude-templates/ into a fresh project. Rsyncs protocols.org, workflows/, scripts/, someday-maybe.org as-is; templates notes.org with project-name and date placeholders substituted; creates empty sessions/, references/, retrospectives/ dirs. Two tracking modes: TRACK=1 adds .gitkeep files inside otherwise-empty dirs so they survive in git history; GITIGNORE=1 appends .ai/ to the project's .gitignore so session records stay local. Prompts interactively if neither flag is set. Refuses if PROJECT/.ai/ already exists with a message pointing to `make audit APPLY=1` for sync of existing installs. Without a PROJECT argument, fzf-picks from ~/code/* + ~/projects/* git checkouts that don't already have .ai/.
* feat(make): add audit target for cross-project .ai/ drift detectionCraig Jennings2026-05-151-1/+1
| | | | | | | | scripts/audit.sh walks every .ai/-using project under ~/code/, ~/projects/, and ~/.emacs.d/, compares each .ai/ against the canonical source at claude-templates/.ai/, and reports drift per project. Default mode is report-only; APPLY=1 rsyncs detected drift into each project (no auto-commit). FORCE=1 also rsyncs into projects with uncommitted .ai/ changes (default: skip with a warning). Uses diff -rq for content comparison rather than rsync --itemize-changes to avoid false positives on attribute-only drift (mtime, permissions). Skips the rulesets repo itself, the in-repo canonical source, and the legacy standalone ~/projects/claude-templates/ during the fold transition. Output mirrors make doctor: per-project ok/drift/applied/skipped/FAIL lines, summary tally, exit 0 when all ok. Runs make doctor as the final check by default; NO_DOCTOR=1 skips.
* docs(todo): file start-work follow-up filing rule taskCraig Jennings2026-05-151-0/+15
| | | | Top-level [#B] task captures a gap in /start-work Phase 4 step 5: the "file a ticket" disposition doesn't say where to file, so follow-ups land ad-hoc. Proposed rules in the task body — siblings for epic parents, new top-level for standalone tasks. Triggered by today's fold-epic session surfacing the gap.
* docs(todo): file Makefile redundancy as fold-epic siblingCraig Jennings2026-05-151-0/+11
| | | | After the bin/ai fold (commit 2d645fc), claude-templates/Makefile still has install/uninstall/list/test-scripts targets, and its bin/ai install logic duplicates rulesets/Makefile. [#C] sibling task captures the cleanup options (delete, strip down, leave) without gating the parent epic's DONE state.
* docs(todo): start consolidate .ai/ template infra epicCraig Jennings2026-05-151-12/+125
| | | | Parent task at todo.org:1774 umbrellas five children: fold claude-templates into rulesets, build make audit + make install-ai, test plan, ratio migration. Existing [#B] fold and audit tasks demoted as children, promoted to [#A]. Parent marked DOING.
* docs(todo): start memory-sync investigation, bump audit prioritiesCraig Jennings2026-05-141-47/+69
| | | | | | | | | | | | | | | | | | Memory-sync [#A] TODO flipped to DOING. Added a dated work-log subheader recording what's on disk under ~/.claude/projects/ (plain files, no symlinks, no git) and the proposed fix (stow ~/.claude/projects via archsetup/dotfiles/common/). Added a VERIFY child awaiting approval on the stow approach before any moves. Side effect of the wrap-up's --sync-child-priority pass: 43 [#B] children of the [#A] "Review pass: tighten skills and rulesets after 2026-05-04 audit" parent bumped to [#A] to match the parent. Tag any of them :no-sync: if they should stay at [#B]. Archived 2026-05-14-21-43-lint-org-build-and-memory-sync-investigation to .ai/sessions/. The day shipped /lint-org as a four-commit feature across claude-templates and rulesets, then this short follow-on pass processed the line-11 src-block via /respond-to-cj-comments.
* feat(lint-org): add /lint-org command + file design specCraig Jennings2026-05-141-0/+21
| | | | | | | | | | | | | | | A new /lint-org command at .claude/commands/lint-org.md orchestrates the elisp script: invokes it, parses the stdout plist stream, walks each judgment item with the user via inline numbered options (per interaction.md, no popup), and reports pre/post-pass deltas. Two modes: interactive (default, walks judgments now) and mechanical-only (defers them to a follow-ups file via --followups-file). The spec at .ai/specs/lint-org-skill-spec.md is the design doc that motivated this work, captured from yesterday's manual 55→1 lint pass on todo.org. todo.org gains a [#A] entry pointing at the spec.
* docs(todo): track pull-before-project ordering rule for protocols.orgCraig Jennings2026-05-131-0/+19
|
* chore: updating todo.org fileCraig Jennings2026-05-131-0/+4
|
* docs(todo): plan daily-prep delegation to triage-intakeCraig Jennings2026-05-111-0/+11
|
* docs(todo): mark --archive-done task doneCraig Jennings2026-05-111-11/+13
|
* docs(todo): add --archive-done task for todo-cleanup.elCraig Jennings2026-05-111-0/+11
|
* docs(todo): add make-audit and claude-templates-fold tasksCraig Jennings2026-05-111-0/+39
| | | | I added two [#B] entries. The first folds the standalone claude-templates repo into rulesets/claude-templates/ via subtree merge, bridging the path change with a transitional symlink while every project picks up the updated startup.org. The second adds a make audit target that diffs each .ai/-using project against the canonical template source. Both are on hold for now — the entries just record the plan.
* docs(todo): nest entries under a "Rulesets Open Work" headingCraig Jennings2026-05-111-194/+199
| | | | Add a single top-level "Rulesets Open Work" heading and demote every entry one level so the file has one root section.
* docs(todo): add follow-ups for category-3 rules and language-rule auditCraig Jennings2026-05-071-0/+19
| | | | | | | Two open decisions from the 2026-05-07 rulesets centralization pass: - Category-3 rule copies in the deepsat tree (`coding-rulesets/` and `orchestration_dashboard_mvp/`) — read each and decide between leave, sync, or symlink. - Language-specific rule files (python-testing, typescript-testing, elisp-testing, elisp) duplicated across multiple project mirrors — audit and possibly canonicalize.
* chore(skills): remove humanizer (superseded by voice)Craig Jennings2026-05-071-0/+210
| | | | | | | | I deleted humanizer/SKILL.md now that all three callers (commits.md, respond-to-cj-comments.md, start-work.md) invoke /voice instead. The 25 humanizer patterns live on as patterns 1-25 in voice/SKILL.md. Same source (Wikipedia's Signs of AI writing), same prose, same examples — just renumbered alongside the universal good-writing additions and the personal-only patterns. I also updated .ai/notes.org and .ai/workflows/wrap-it-up.org to reference /voice personal instead of the old humanizer + manual-passes flow. The wrap-it-up change landed upstream in claude-templates first so it survives the next startup rsync. todo.org gets the matching update: the voice TODO is marked DONE with a "Built and shipped" timestamp, the publish-mode terminology is renamed to personal-mode throughout, the V1 scope checklist is ticked, the open questions are resolved with the answers we landed on during implementation, and the migration section records the delete-not-alias decision.
* feat(make): add doctor target for ~/.claude drift detectionCraig Jennings2026-05-071-0/+83
| | | | | | | | | | | | =make doctor= scans =~/.claude/= and reports drift against the repo + settings.json. Read-only diagnostic. Eight checks cover skills, rules, default hooks, claude config, settings.json hook references, enabledPlugins, MCP server registrations, and dangling symlinks. Each line prints =ok= / =WARN= / =FAIL= with a final summary. Exit 1 on any FAIL. A sweep last night found =~/.claude/hooks/= didn't exist on this machine even though =settings.json= referenced a PreCompact hook there. Compaction would have silently failed to invoke it. doctor catches that kind of drift in one command instead of relying on a manual look. The MCP drift check reads =~/.claude.json= directly rather than parsing =claude mcp list=. The CLI has no JSON output and runs a per-server health probe (~10s). The JSON file is the user-scope source of truth for registrations and parses in well under a second. I verified by injecting four drift scenarios — removed hook symlink, removed skill symlink, moved-aside plugin data dir, unregistered MCP server. Each produced the expected =FAIL= line and exit 1. After restoring state, doctor came back clean (33 ok). Bundling four other improvement TODOs from the same sweep — =mcp/README.org=, =make uninstall-mcp= and =mcp/install.py --check=, a README.org section for the MCP install pipeline, and a token-rotation helper for =@a-bonus/google-docs-mcp= OAuth refresh. Plus a stale-bullet note on the existing =make remove= TODO (the bridge symlink it references was removed earlier).
* docs(todo): add make-remove fzf-picker taskCraig Jennings2026-05-061-0/+1130
| | | | | | Captures the design discussion for an interactive Makefile target that lists installed rulesets and removes selected entries via fzf. Granular alternative to the bulk make uninstall.
* docs(todo): add OV-1 skill build plan triggered by SOFWeek (May 2026)Craig Jennings2026-04-191-0/+74
|
* docs(todo): expand c4-* rename entry with DoD notation landscape (SysML / ↵Craig Jennings2026-04-191-0/+101
| | | | DoDAF / UAF / IDEF1X)
* docs(todo): note c4-* rename trigger and future notation skills (UML, ERD, ↵Craig Jennings2026-04-191-0/+42
| | | | arc42)
* docs(todo): shelve /research-writer design pending a real writing task as ↵Craig Jennings2026-04-191-0/+55
| | | | trigger
* docs(todo): bookmark Skill Seekers for a future docs-briefing experimentCraig Jennings2026-04-191-0/+45
|
* docs(todo): switch /update-skills conflict policy to per-hunk promptCraig Jennings2026-04-191-9/+19
| | | | | | | | | | | | Per-hunk prompt inside the skill is editor-independent — works on machines without Emacs available. The git-style-markers approach required smerge-mode or ediff to be pleasant, and Craig can't assume Emacs on every machine. Side-by-side file fallback still applies when the baseline is missing or corrupt (can't run a 3-way merge in the first place). Emacs users can optionally drop into ediff via smerge-ediff — listed as a v2+ enhancement.
* docs: add todo.org with /update-skills task + design decisionsCraig Jennings2026-04-191-0/+73