diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-14 07:29:57 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-14 07:29:57 -0500 |
| commit | 99252c04a5a0113947681dfb4276116d4aa69983 (patch) | |
| tree | fbbbbdc64a92a02e3a9e36144dcece7cc9b7bd82 /scripts | |
| parent | 3abac9b797e31429b55cd08f5d102275c25b75a4 (diff) | |
| download | rulesets-99252c04a5a0113947681dfb4276116d4aa69983.tar.gz rulesets-99252c04a5a0113947681dfb4276116d4aa69983.zip | |
feat(todo-cleanup): add --sync-child-priority mode for drifted children
When a parent task in todo.org gets reprioritized, its children frequently keep their original (lower) priority cookies, which then mismatches the parent's new importance. The new mode walks every heading with a priority cookie and bumps any direct child whose own cookie is lower (D ranks below A in org's default scheme). Down-only: parents are never bumped up to a child's priority. Priority-less parents and priority-less children are both left alone — sync does not invent priorities.
Children opt out by carrying the :no-sync: literal tag, useful for Follow-up:/Spike: sub-tasks that are deliberately deprioritized. The tag match is literal regex against the heading line rather than going through org-get-tags, because org's default tag character class excludes hyphens — :no-sync: would not be parsed as a real tag in batch mode without a custom org-tag-re.
org-map-entries visits headings in document order, so a multi-level chain [#A] → [#B] → [#D] collapses to the top priority in one pass: the middle bumps to [#A] before the walk reaches the leaf.
wrap-it-up.org Step 3 now invokes --sync-child-priority after --archive-done. --check-child-priority is the report-only alias (--sync-child-priority --check) for previewing before applying. Default cadence is auto-apply, same as --archive-done.
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions
