diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-26 02:31:33 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-26 02:31:33 -0500 |
| commit | b7b932d208849b69917ab076f5d990ce6a208fdd (patch) | |
| tree | dc00d53e53f9e35cdbb53ca515015d1a10157b53 | |
| parent | 15cca70d2b8badd3314b87d4cd00cb21bf5ef113 (diff) | |
| download | rulesets-b7b932d208849b69917ab076f5d990ce6a208fdd.tar.gz rulesets-b7b932d208849b69917ab076f5d990ce6a208fdd.zip | |
chore(todo): full review pass — re-stamp, drop stale schedules, refresh daily-prep task
Walked all 14 open tasks. Re-stamped LAST_REVIEWED to 2026-05-26, dropped the past SCHEDULED dates from the research-writer and Skill-Seekers wait-for-trigger tasks, tagged the Makefile consolidation :quick:solo:, and refreshed the daily-prep delegation task to reflect the triage-intake engine/plugin split.
| -rw-r--r-- | todo.org | 39 |
1 files changed, 19 insertions, 20 deletions
@@ -9,7 +9,7 @@ Project-scoped (not the global =~/sync/org/roam/inbox.org= list). ** TODO [#C] Check that memories are sync'd across machines via git :PROPERTIES: -:LAST_REVIEWED: 2026-05-20 +:LAST_REVIEWED: 2026-05-26 :END: *** 2026-05-16 Sat @ 01:12:52 -0500 Spec #+begin_src cj: comment @@ -49,7 +49,7 @@ Created bare =git@cjennings.net:claude-memory.git=, cloned to =~/.claude-memory= Cancelled the follow-up brainstorm and undid the dedicated-repo migration at Craig's call. Moved all 7 memory dirs back to =~/.claude/projects/<enc>/memory/= (content preserved), deleted the =~/.claude-memory= clone, and deleted the bare =claude-memory.git= on the server. Memory is back to its original at-risk state, so the task reopens at [#C] pending a direction. The brainstorm landed on a two-tier idea for whenever this resumes: promote general lessons into a rulesets-tracked file symlinked into =~/.claude/rules/= (loaded into every project natively, one repo), and keep project-specific memory under each project's own =.ai/memory/= (committed where =.ai/= is tracked, at-risk where it's gitignored). Not implemented. ** TODO [#C] Build =create-documentation= skill for high-quality project/product docs :PROPERTIES: -:LAST_REVIEWED: 2026-05-20 +:LAST_REVIEWED: 2026-05-26 :END: Create a Claude skill named =create-documentation= that can plan, write, @@ -686,7 +686,7 @@ The skill should reject: ** TODO [#C] Build =/update-skills= skill for keeping forks in sync with upstream :PROPERTIES: -:LAST_REVIEWED: 2026-05-20 +:LAST_REVIEWED: 2026-05-26 :END: The rulesets repo has a growing set of forks (=arch-decide= from @@ -771,9 +771,8 @@ write the specification here. or degrade gracefully? Likely degrade; print warning per fork. ** TODO [#C] Build /research-writer — clean-room synthesis for research-backed long-form -SCHEDULED: <2026-05-15 Fri> :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: Gap in current rulesets: between =brainstorm= (idea refinement → design doc) @@ -829,9 +828,8 @@ Upstream reference (do not vendor): ComposioHQ/awesome-claude-skills =content-research-writer/SKILL.md=. ** TODO [#C] Try Skill Seekers on a real DeepSat docs-briefing need -SCHEDULED: <2026-05-15 Fri> :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: =Skill Seekers= ([[https://github.com/yusufkaraaslan/Skill_Seekers]]) is a Python @@ -878,7 +876,7 @@ discard and stick with hand briefing. ** TODO [#C] Revisit =c4-*= rename if a second notation skill ships :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: Current naming keeps =c4-analyze= and =c4-diagram= as-is (framework prefix @@ -1024,7 +1022,7 @@ skill should be driven by a concrete contract need, not aspiration. ** TODO [#C] Add =make uninstall-mcp= + =mcp/install.py --check= for symmetry :solo:quick: :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: Currently the MCP install pipeline only flows one direction. No way to remove rulesets-managed MCP servers in one command. No way to ask "what's the drift between =servers.json= and =claude mcp list=" without eyeballing. @@ -1045,14 +1043,14 @@ Useful for diagnosing connection failures and for the eventual =make doctor= int ** TODO [#C] Update =README.org= with MCP install pipeline section :solo:quick: :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: =README.org= covers global install, per-project language bundles, and design principles, but doesn't mention =make install-mcp= or the =mcp/= directory. Add a short section after "Per-project language bundles" describing the user-scope MCP install pattern (decrypt → expand → register) and pointing at the eventual =mcp/README.org=. ** TODO [#C] Token-rotation helper for =@a-bonus/google-docs-mcp= OAuth refresh :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: When a Google refresh token gets revoked (re-grant scopes, removed Connected App, account password reset), recovery is currently manual: run =npx -y @a-bonus/google-docs-mcp= with the right env, follow the URL in a browser, kill the process, base64-encode the new =token.json=, decrypt =secrets.env.gpg=, replace the var, re-encrypt. A small =mcp/refresh-google-docs-token.sh <profile>= would chain that into one command. @@ -1077,7 +1075,7 @@ The flow tonight worked but took a handful of manual steps. One script collapses ** TODO [#C] Decide on category-3 rule copies in the deepsat tree :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: While symlinking personal-project =.claude/rules/= mirrors to the rulesets canonical on 2026-05-07, two locations didn't fit the "personal mirror → symlink" pattern and were left untouched pending judgment: @@ -1089,7 +1087,7 @@ For each: read the file, diff against the rulesets canonical, decide whether it' ** TODO [#C] Audit language-specific rule files for cross-project duplication :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: The four canonical rules (=commits=, =testing=, =verification=, =subagents=) are now symlinked across the five personal-project mirrors as of 2026-05-07. But several language-specific rule files exist in multiple project mirrors and may be duplicated or drifted: @@ -1100,9 +1098,9 @@ The four canonical rules (=commits=, =testing=, =verification=, =subagents=) are The Elisp pair is the most suspicious — three repos using essentially the same rules. Audit: diff these across the projects, check for drift, then decide whether to canonicalize them under =~/code/rulesets/claude-rules/languages/<lang>/= and symlink, or leave them as project-local. -** TODO [#C] Consolidate =claude-templates/Makefile= after fold :chore: +** TODO [#C] Consolidate =claude-templates/Makefile= after fold :chore:quick:solo: :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: Sibling follow-up from the fold child (2026-05-15). After the subtree merge, =rulesets/claude-templates/Makefile= still has its standalone =install= / =uninstall= / =list= / =test-scripts= targets. The =install= target's =bin/ai= logic is now duplicated in =rulesets/Makefile=. Both work; the redundancy is harmless but worth cleaning up. @@ -1116,21 +1114,22 @@ Triggered by: 2026-05-15 fold session's refactor audit (commit =2d645fc=). ** TODO [#C] Refactor =daily-prep.org= to delegate to =triage-intake.org= for the triage section :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: -=daily-prep.org= still does its own inline triage (Gmail × 3 accounts, Slack, Linear, GHE PRs, calendars) as part of the full prep flow. Now that =triage-intake.org= exists as a standalone scan over the same source set, daily-prep could call it and consume its synthesis instead of duplicating the source-scan logic — DRYs up a 57k-line workflow and keeps both flows in sync when sources change. +=daily-prep.org= still does its own inline triage (Gmail × 3 accounts, Slack, Linear, GHE PRs, calendars) as part of the full prep flow. =triage-intake.org= is now a source-agnostic engine that loads =triage-intake.<source>.org= plugins (refactored 2026-05-26), so daily-prep could call the engine and consume its synthesis instead of duplicating the source-scan logic. That DRYs up a large workflow and keeps both flows in sync when sources change — a source change now lives in one plugin that both flows pick up. Scope: - Identify the sections in =daily-prep.org= that do the inline triage (the email / Slack / Linear / PR / calendar fan-out, plus the "Sources checked: ..." footer at the top of each generated prep doc). -- Replace those sections with "run =triage-intake.org=" and adapt the downstream sections (Heads-up, Day's Priorities, Carry-forwards) to read triage-intake's synthesis output rather than the inline scan results. +- Replace those sections with "run the =triage-intake.org= engine" and adapt the downstream sections (Heads-up, Day's Priorities, Carry-forwards) to read the engine's synthesis output rather than the inline scan results. - Verify the generated prep doc still has the same shape (Heads-up + Day's Priorities + Carry-forwards + Sources checked). +- Reconcile source coverage: daily-prep's inline triage scans work accounts (3 Gmail, Slack, Linear, GHE PRs) that are project-specific plugins under =.ai/project-workflows/=, not general plugins. The delegation must ensure the engine loads those project plugins (Phase 0 globs both dirs) so nothing daily-prep currently scans drops out. -Origin: came up while authoring =triage-intake.org= on 2026-05-11. +Origin: came up while authoring =triage-intake.org= on 2026-05-11; body refreshed after the engine/plugin refactor on 2026-05-26. ** TODO [#C] Templatize =make coverage-summary= into the language bundles :PROPERTIES: -:LAST_REVIEWED: 2026-05-25 +:LAST_REVIEWED: 2026-05-26 :END: Borrow dotemacs's =make coverage-summary= into the language bundles. After =make coverage= writes a coverage file, =coverage-summary= prints per-unit covered/total with percentages, a unit-weighted project number, and a list of source files present on disk but missing from the coverage report. |
