Clusters pending JoyOS feedback items by affected component/theme overnight and injects a prioritized batch plan into your morning tablet brief. Instead of opening 4 separate Claude sessions for 4 feedback items (like #4111-4115), you'd see 'Gate Flow cluster (3 items) — batch these in one session' on your tablet over coffee, letting you tackle related fixes together.
Create ~/bin/feedback-sprint-digest as a Python script (~80 lines). It reads pending feedback from the joyos-feedback-daemon's data store, clusters items by extracting component keywords (gate, billing, auth, etc.) from titles/descriptions using simple regex matching, scores each cluster by size and recency, then generates a markdown section. Append this section to the morning-tablet-brief output via a hook in the existing brief pipeline (morning-tablet-brief already assembles sections). Add a cron entry: 0 5 * * * ~/bin/feedback-sprint-digest >> ~/Tablet/morning-brief-sections/feedback-sprint.md. The tablet-sync service already watches ~/Tablet/ so it arrives automatically. Each cluster entry includes: component name, item count, item IDs with one-line summaries, and a suggested batch prompt like 'Process gate completion feedback: #4111, #4112, #4115'.
**Script:** `~/bin/feedback-sprint-digest` (86 lines, executable)
- Queries SpacetimeDB `joyos-labs` for feedback with status `submitted`, `pending`, or `planned`
- Classifies each item into 13 component buckets (gate, billing, auth, admin, epic, community, intros, settings, feedback, navigation, discovery, documents, chat) via regex on text + page
- Falls back to page path segment for unmatched items
- Scores clusters by `count / age_hours` so larger, newer clusters rank first
- Outputs prioritized markdown with per-cluster batch prompts like `Process gate feedback: #4111, #4112, #4115`
- Writes to `~/Tablet/morning-brief-sections/feedback-sprint.md`
**Cron:** `3 5 * * *` -- runs daily at 5:03 AM. The tablet-sync daemon picks up the file automatically.
**Tested:** Ran successfully against live SpacetimeDB (0 pending items currently, wrote empty digest). Verified clustering with synthetic data -- 3 gate-related items correctly batched together, epic and billing separated.