From 656f11d8aea1595ce72f04b44744764c1ef343fa Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Tue, 2 Jun 2026 20:57:56 -0500 Subject: chore(todo): task-review stamps + :quick: tags on start-work tasks --- todo.org | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/todo.org b/todo.org index fa3a454..0cf450f 100644 --- a/todo.org +++ b/todo.org @@ -35,23 +35,35 @@ Tags are assigned and refreshed by =task-audit=; =task-review= keeps them honest * Rulesets Open Work ** TODO [#C] task-review pass at end of task-audit :chore:solo: +:PROPERTIES: +:LAST_REVIEWED: 2026-06-02 +:END: Have the =task-audit= workflow chain a =task-review= pass as its final phase, so a freshly-audited list also gets the lighter staleness/honesty sweep without a second invocation. The legend already notes the division of labor — task-audit assigns and refreshes tags, task-review keeps them honest in passing — so running task-review at the tail of task-audit closes the loop in one pass. Edit =claude-templates/.ai/workflows/task-audit.org= (and the synced mirror) to add the final phase; check whether =open-tasks.org= already invokes task-review so the chaining stays consistent. ** TODO [#C] lint-followups drift — reconcile-on-write + audit dead-link reaping :feature: +:PROPERTIES: +:LAST_REVIEWED: 2026-06-02 +:END: From an .emacs.d handoff (2026-06-02): running task-audit against a large todo.org proved several =.ai/lint-followups.org= entries stale (four dead-link flags pointed at docs that now exist; three near-duplicate dated lint runs had piled up). Two fixes, scoped separately. 1. =lint-org= workflow/script (the real fix): reconcile-on-write. Before appending a run, drop entries whose finding no longer reproduces (dead link now resolves, flagged block/timestamp now clean) and dedupe against the prior run instead of re-logging. Key entries by content/finding rather than line number, so they survive edits to the target file (line numbers go stale immediately). 2. =task-audit.org= (small, narrow): in the Phase C link-hygiene step, when fixing/verifying a =file:= link, also reap any matching dead-link entry in the project's lint-followups file so the two artifacts don't drift. Scope explicitly to dead-link entries — do NOT pull general lint cleanup into the audit; that mixes two concerns and slows the audit. -** TODO [#C] start-work Justify gate: explicit "reasons not to do this" item :feature: +** TODO [#C] start-work Justify gate: explicit "reasons not to do this" item :feature:quick: +:PROPERTIES: +:LAST_REVIEWED: 2026-06-02 +:END: From a work handoff (2026-06-02, surfaced running /start-work on a clean low-risk refactor). The Phase 2 Justify gate has "Downsides" and "Alternatives considered" but no forced devil's-advocate verdict on "should we even do this?" Add a "top reasons not to do this" item: surface the top three objections if any exist; when none rise to a real objection, state one line instead of manufacturing three (e.g. "Nothing material argues against this; no reason to defer or drop it"). Building the case against the work before committing is cheapest exactly at this gate, which is its purpose. Edit the start-work skill's Justify-gate phase. -** TODO [#C] start-work Approach gate: spec-needed check :feature: +** TODO [#C] start-work Approach gate: spec-needed check :feature:quick: +:PROPERTIES: +:LAST_REVIEWED: 2026-06-02 +:END: From Craig (2026-06-02). The Approach phase should consider whether the work needs a spec when one doesn't already exist. For a big task, this isn't a silent skip — the pre-confirmation summary must explicitly report why a spec isn't needed, so the decision is visible and challengeable at the gate rather than assumed. Small tasks can pass without comment. Edit the start-work skill's Approach-gate phase to add the spec-needed consideration and the big-task report-why-not requirement. ** TODO [#B] Cross-project pattern catalog :spec:thinking: :PROPERTIES: -:LAST_REVIEWED: 2026-05-28 +:LAST_REVIEWED: 2026-06-02 :END: From pearl handoffs [[file:docs/design/2026-05-27-pattern-catalog-pearl-notes.org][2026-05-27]] + [[file:docs/design/2026-05-28-pattern-catalog-no-empty-input.org][2026-05-28 follow-up]]. @@ -75,7 +87,7 @@ One-page spec drafted 2026-06-02: [[file:docs/design/2026-06-02-pattern-catalog- ** TODO [#C] Check that memories are sync'd across machines via git :spec: :PROPERTIES: -:LAST_REVIEWED: 2026-05-28 +:LAST_REVIEWED: 2026-06-02 :END: *** 2026-05-16 Sat @ 01:12:52 -0500 Spec #+begin_src cj: comment @@ -115,7 +127,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//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 :feature: :PROPERTIES: -:LAST_REVIEWED: 2026-05-28 +:LAST_REVIEWED: 2026-06-02 :END: Create a Claude skill named =create-documentation= that can plan, write, -- cgit v1.2.3