From ddbd47fbbea06e71456b7bc4228626d3a126bf28 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 18 Jul 2026 21:03:50 -0500 Subject: feat(todo-cleanup): dated-seal archiving and planning-line strip on convert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two batched changes to the todo hygiene tooling. Dated-seal archiving: --archive-done aging now keeps one month in-file (retain default 7 → 31, named as tc-archive-retain-days-default) and a new --seal renames the working task-archive.org to resolved-YYYY-MM-DD.org beside it, letting the next aging start a fresh working file. Dating the sealed file by the seal run rather than the calendar quarter is what avoids mislabeling a task closed late in a quarter and archived after the boundary. The unparseable-CLOSED case is now explicit in the contract: a keyword-complete task with no readable close date ages out too. The sealed file inherits the todo file's gitignore status. Planning-line strip: --convert-subtasks now drops the whole planning line when it rewrites a done sub-task to a dated event-log entry, not just the CLOSED cookie. A dated-log heading carries its date in the heading, so an active SCHEDULED/DEADLINE left on it pins the finished entry to the agenda as weeks-overdue forever (org renders any active planning timestamp, keyword or not). New lint-org checker dated-log-heading-active-timestamp backstops any that predate this. todo-format.md's sub-task and VERIFY completion rules gain the strip step. --- todo.org | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'todo.org') diff --git a/todo.org b/todo.org index f4b3a55..aa45b1d 100644 --- a/todo.org +++ b/todo.org @@ -1316,7 +1316,8 @@ having a skill to generate or check OV-1-shaped artifacts. Don't build speculatively — defense-specific notations are narrow enough that each skill should be driven by a concrete contract need, not aspiration. -** TODO [#B] todo-cleanup.el dated-seal archiving :feature:solo: +** DONE [#B] todo-cleanup.el dated-seal archiving :feature:solo: +CLOSED: [2026-07-18 Sat] Redefine =--archive-done= aging from a 7-day roll-into-one-file model to a one-month retention with dated seals. Craig ratified the design in the work project 2026-07-17; origin handoff preserved at @@ -1341,7 +1342,8 @@ TDD, canonical-then-mirror per the sync-check invariant. Home's planning-line strip proposal (filed alongside) also touches todo-cleanup.el =--convert-subtasks= — the two can be built as one batch. -** TODO [#B] Strip stale planning lines on dated completion + lint backstop :feature:solo: +** DONE [#B] Strip stale planning lines on dated completion + lint backstop :feature:solo: +CLOSED: [2026-07-18 Sat] Two linked fixes so a closed sub-task can't keep polluting the org agenda. Origin: home handoff 2026-07-17; design preserved at [[file:docs/design/2026-07-17-dated-log-planning-line-strip-proposal.md]]. A dated-log -- cgit v1.2.3