task: Weekly review proposes task new/task close; tracker gains a closing write path
CI / verify (push) Successful in 54s
Release / release (push) Successful in 36s

Files changed:
- CHANGES.md
- INSTALL.md
- README.md
- VERSION
- docs/knowledge-and-commitment.md
- instructions/gtd-weekly-review/SKILL.md
- instructions/ingest-large-tree.md
- instructions/wiki-ingest/SKILL.md
- tools/CONTRACT.md
- tools/chemenu/commands/review_cmd.py
- tools/chemenu/commands/task_cmd.py
- tools/chemenu/review.py
- tools/chemenu/tasks/protocol.py
- tools/chemenu/tasks/superproductivity.py
- tools/chemenu/tests/test_review.py
- tools/chemenu/tests/test_superproductivity.py
- tools/chemenu/tests/test_task_cmd.py
This commit is contained in:
torben committed 2026-09-22 21:46:09 +02:00
1 parent 8b535b4016
commit 62d1c5e636
17 files changed
+563 -87

No files matched your search

+12 -1
View File
@@ -48,11 +48,20 @@ class Finding:
"""One reported mismatch. `project` is the display name - the kb/ page's
title when a check is anchored on the kb/ side (checks 1 and 4, where the
kb/ page is what the finding is about), the tracker's own project name
otherwise (checks 2 and 3, where no kb/ page need exist)."""
otherwise (checks 2 and 3, where no kb/ page need exist).
`item_id` (Gitea #138) is the tracker's own id for the specific item a
finding is about - set on checks 2 (`waiting_overdue`) and 5
(`someday_stale`), which each name one item, and `None` on checks 1, 3
and 4, which are about a whole project rather than one item. It exists so
`gtd-weekly-review`'s own `task close --id` proposal (option (b) on both
checks) never has to re-look-up the item by title after the review
already read it."""
check: str
project: str
message: str
item_id: Optional[str] = None
@dataclass(frozen=True)
@@ -189,6 +198,7 @@ def run_review(root: Path, *, today: Optional[date] = None) -> ReviewReport:
CHECK_WAITING_OVERDUE, name,
f"'{item.title}' is {age_days} day(s) past its follow_up_at "
f"({item.follow_up_at.isoformat()}).",
item_id=item.id,
))
checks_run.append(CHECK_WAITING_OVERDUE)
@@ -249,6 +259,7 @@ def run_review(root: Path, *, today: Optional[date] = None) -> ReviewReport:
CHECK_SOMEDAY_STALE, item.title,
f"Untouched for {age_months} month(s) (last modified "
f"{item.modified.isoformat()}).",
item_id=item.id,
))
checks_run.append(CHECK_SOMEDAY_STALE)