diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-30 13:50:22 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-30 13:50:22 -0400 |
| commit | d9d8ce79da82b8c0fbbc8d6090548cd1f508b4c0 (patch) | |
| tree | 29e90ba96bb227fd7c4d8d0bf1c24aa863f6a331 /scripts/kb-hygiene.sh | |
| parent | f67e72430845236ab5ed4ca00ba13afe87eda53a (diff) | |
| download | rulesets-d9d8ce79da82b8c0fbbc8d6090548cd1f508b4c0.tar.gz rulesets-d9d8ce79da82b8c0fbbc8d6090548cd1f508b4c0.zip | |
feat(lint-org): add four structural heading checkers org-lint misses
org-lint validates links, drawers, blocks, and babel, but not heading well-formedness. These four catch hand-edit defects it stays silent on: an indented heading demoted to body text (the task vanishes from the agenda and never archives), bare stars with no title, a malformed priority cookie org rejected, and a level-2 DONE/CANCELLED with no CLOSED line. All judgment-only and regex-based, wired in after the existing dated-header check. The last one pairs with the new aging step, which archives an undated completed task immediately.
I tightened the indented-heading check to two-or-more stars. The proposed one-or-more-stars regex flagged indented single-star lines, but an indented single * is a valid plain-list bullet, not a lost heading, so it false-positived on legitimate lists (confirmed: three valid bullets flagged). A ** is never a bullet, so an indented one is unambiguously a demoted heading. Added a test that a single-star list stays silent.
Diffstat (limited to 'scripts/kb-hygiene.sh')
0 files changed, 0 insertions, 0 deletions
