Skip to content

feat(review): lay out the monthly letter as theme, stats and suggestion - #548

Open
AlexisEvan wants to merge 4 commits into
mainfrom
letter-layout
Open

AlexisEvan wants to merge 4 commits into
mainfrom
letter-layout

Conversation

@AlexisEvan

Copy link
Copy Markdown
Collaborator

Summary

The monthly letter rendered as one block of prose even after the backend split it into parts. It now renders as separate blocks: the theme, the month's numbers, the body, and one thing to try next month.

  • Theme gates the structured blocks — a weekly letter, a month too quiet to name a theme, and a letter written before the split all leave it null and render body-only. tasksCompleted is counted live and always has a value, so it cannot carry that signal
  • The stats row renders whichever stats it was given rather than a fixed three: days active has no data source yet, focused minutes is deferred
  • The weekly review is untouched — the new blocks are gated to monthly
  • A quiet period now keeps its next-period suggestion instead of dropping it, so a low-activity month still closes on something to try

Release note

Your monthly review letter now shows the month's theme and numbers at a glance, and ends with one thing to try next month.

Status:

  • User-facing — announce it
  • Beta / partial — announce, but tagged as beta
  • Hidden in production (feature-flagged / not enabled for users) — don't announce
  • Internal only (refactor / infra / tests / CI / deps) — don't announce

The monthly letter rendered as one block of prose even after the backend split
it into parts, so the month had no shape at a glance. The card now renders the
theme, the month's numbers, the body and one suggestion for next month as
separate blocks.

- Theme decides whether the structured blocks show at all: a weekly letter, a
  month too quiet to name a theme and a letter written before the split all
  leave it null and render body-only, which is the one rule that covers every
  case. tasksCompleted is counted live and always has a value, so it cannot
  carry that signal
- The stats row renders whichever stats it was given rather than a fixed three:
  days active has no data source yet and focused minutes is deferred
- The weekly review is untouched — the new blocks are gated to monthly
- A quiet period now keeps its next-period suggestion instead of dropping it,
  so a low-activity month still closes on something to try

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Test Results

126 tests   126 ✅  24s ⏱️
  1 suites    0 💤
  1 files      0 ❌

Results for commit 0c044e3.

♻️ This comment has been updated with latest results.

@github-actions

Copy link
Copy Markdown
Contributor
Package Line Rate Branch Rate Complexity Health
BlotzTask 4% 34% 2743
BlotzTask 4% 34% 2743
Summary 4% (4584 / 113766) 34% (968 / 2830) 5486

@AlexisEvan

Copy link
Copy Markdown
Collaborator Author
截屏2026-09-17 上午12 16 04 截屏2026-09-17 上午12 15 50

@AlexisEvan

Copy link
Copy Markdown
Collaborator Author
截屏2026-09-17 上午12 17 08

quiet month

Comment thread blotztask-mobile/src/feature/review/components/letter-stats.tsx Outdated
Comment thread blotztask-api/Modules/Reviews/Prompts/ReviewPrompts.cs Outdated
Comment thread blotztask-mobile/src/feature/review/models/review-dto.ts Outdated
AlexisEvan and others added 2 commits September 19, 2026 01:52
- Hide the tasks-completed stat when the count is 0
- Treat missing theme/suggestion fields as absent (!= null) for older APIs
- Give the quiet-period suggestion several examples and ask the model to vary it
- Correct comments on when theme and oneThingToTryNext are null

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants