Add Tasks Planner review workflow #116

Closed
opened 2026-05-27 09:14:11 +00:00 by steve · 0 comments
Owner

Add a review surface that helps users keep Inbox, Anytime, Someday, and project lists trustworthy after the core planner workflow exists.

Problem

A calm planner can become stale without a review habit. The Tasks plugin has timestamps, status, projects, reminders, and scheduled dates, but no workflow that highlights stale active work, unreviewed Someday tasks, or projects without a next action.

Goal

Provide an optional planner review view that surfaces stale or under-organized work and lets users review, defer, park, or plan tasks without leaving the planner.

Scope

  • Add review metadata such as reviewed only when a real review action writes it.
  • Surface Inbox count, stale Anytime tasks, Someday tasks not reviewed recently, and projects with no next active task.
  • Add actions to mark reviewed, move to Today, defer, move to Someday, assign area/project, and clear planning.
  • Add settings for review thresholds once TASK-PLUGIN-060 is available.
  • Add unit tests for review projection logic and e2e coverage for at least one review action.

Non-goals

  • No notifications or recurring review reminders in the first review slice.
  • No automated task archival.
  • No external calendar or Pomodoro integration.
  • No project health scoring beyond simple next-action checks.

Acceptance Criteria

  • Review view can be opened from the planner.
  • Review counts are derived from current task metadata and update after mutations.
  • Marking a task reviewed persists mapped reviewed metadata without changing due/scheduled dates.
  • Someday review respects the configured or default review age threshold.
  • Projects with no next active task are listed when project/section metadata supports the check.
  • Existing planner buckets remain usable without enabling the review workflow.

Implementation Notes

  • Keep review projection logic pure and unit-tested.
  • Avoid adding reviewed metadata before it is written by user action.
  • Tie stale checks to date-only comparisons so browser and desktop hosts behave consistently.

Suggested Files or Specs To Inspect

  • packages/plugins/plugin-tasks/src/planner/
  • packages/plugins/plugin-tasks/src/core/model.ts
  • packages/plugins/plugin-tasks/src/core/settings.ts
  • packages/plugins/plugin-tasks/src/core/plugin.ts
  • packages/workspace/e2e/tasks.spec.ts

Validation Commands

  • pnpm --filter @lapis-notes/tasks test
  • pnpm --filter @lapis-notes/tasks check
  • pnpm --filter @lapis-notes/workspace check
  • make spec-lint
  • pnpm test:smoke

Follow-up Tasks

  • Decide whether review reminders belong in the notifications plugin or Tasks planner settings.

Implementation Summary

Added the planner review workflow with reviewed metadata, stale task projections, projects-without-next-action detection, review actions, and review coverage.

Add a review surface that helps users keep Inbox, Anytime, Someday, and project lists trustworthy after the core planner workflow exists. ## Problem A calm planner can become stale without a review habit. The Tasks plugin has timestamps, status, projects, reminders, and scheduled dates, but no workflow that highlights stale active work, unreviewed Someday tasks, or projects without a next action. ## Goal Provide an optional planner review view that surfaces stale or under-organized work and lets users review, defer, park, or plan tasks without leaving the planner. ## Scope - Add review metadata such as `reviewed` only when a real review action writes it. - Surface Inbox count, stale Anytime tasks, Someday tasks not reviewed recently, and projects with no next active task. - Add actions to mark reviewed, move to Today, defer, move to Someday, assign area/project, and clear planning. - Add settings for review thresholds once TASK-PLUGIN-060 is available. - Add unit tests for review projection logic and e2e coverage for at least one review action. ## Non-goals - No notifications or recurring review reminders in the first review slice. - No automated task archival. - No external calendar or Pomodoro integration. - No project health scoring beyond simple next-action checks. ## Acceptance Criteria - Review view can be opened from the planner. - Review counts are derived from current task metadata and update after mutations. - Marking a task reviewed persists mapped `reviewed` metadata without changing due/scheduled dates. - Someday review respects the configured or default review age threshold. - Projects with no next active task are listed when project/section metadata supports the check. - Existing planner buckets remain usable without enabling the review workflow. ## Implementation Notes - Keep review projection logic pure and unit-tested. - Avoid adding `reviewed` metadata before it is written by user action. - Tie stale checks to date-only comparisons so browser and desktop hosts behave consistently. ## Suggested Files or Specs To Inspect - `packages/plugins/plugin-tasks/src/planner/` - `packages/plugins/plugin-tasks/src/core/model.ts` - `packages/plugins/plugin-tasks/src/core/settings.ts` - `packages/plugins/plugin-tasks/src/core/plugin.ts` - `packages/workspace/e2e/tasks.spec.ts` ## Validation Commands - `pnpm --filter @lapis-notes/tasks test` - `pnpm --filter @lapis-notes/tasks check` - `pnpm --filter @lapis-notes/workspace check` - `make spec-lint` - `pnpm test:smoke` ## Follow-up Tasks - Decide whether review reminders belong in the notifications plugin or Tasks planner settings. ## Implementation Summary Added the planner review workflow with reviewed metadata, stale task projections, projects-without-next-action detection, review actions, and review coverage. <!-- backlog:task_id=TASK-PLUGIN-063 source_spec=spec/src/20-packages/plugins/tasks/index.md#things-like-planner-workflow -->
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lapis-notes/lapis#116
No description provided.