feat(morning-brief): inline brief prompt into task description#889
Merged
Conversation
The Morning Brief skill is no longer seeded as a separate document. Every workspace gets the brief instructions directly on its recurring task page (via createScheduledTask description), so the agent has the prompt on every firing without a skill-lookup indirection. Initial scope is Gmail only — GitHub and Calendar are stubbed out in the prompt; the Slack send + scratchpad-update structure is preserved. - New: apps/webapp/app/services/morning-brief.ts exports MORNING_BRIEF_TASK_DESCRIPTION. - workspace.server.ts: drop the morning-brief skill gate; seed the task with the description. - backfill-morning-brief.ts: drop skill ensuring; create missing tasks with the description, and write the description into existing tasks that have an empty page (legacy seeds). Tasks with a non-empty description are left alone. - skills.defaults.ts: remove the Morning Brief entry from DEFAULT_SKILL_DEFINITIONS. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…structions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
createScheduledTask({ description }), so the agent has the instructions on every firing without a skill-lookup indirection.<h3>Brief — ...</h3>scratchpad-update structure are preserved.Files
apps/webapp/app/services/morning-brief.ts(new) — exportsMORNING_BRIEF_TASK_DESCRIPTION.apps/webapp/app/models/workspace.server.ts— drops the skill gate, seeds the task with the description.apps/webapp/app/scripts/backfill-morning-brief.ts— drops skill ensuring; backfills descriptions for legacy seeds.apps/webapp/app/services/skills.defaults.ts— removes theMorning Briefentry fromDEFAULT_SKILL_DEFINITIONS.Out of scope (call out)
morning-briefskill documents in already-seeded workspaces are not deleted. They become redundant but harmless. Happy to add a soft-delete step in the backfill if we want a clean slate.update_taskdescription-guard for recurring tasks is unchanged — seeding bypasses it via directcreateScheduledTaskand the backfill writes viasetPageContentFromHtml. A separate change can add aneditPrompt: trueopt-in toupdate_taskif needed.Test plan
MODE=morning WORKSPACE_IDS=<id> tsx apps/webapp/app/scripts/backfill-morning-brief.tsagainst a workspace whose morning-brief task currently has an empty page; verify the description is written.skipped: task ... already has a description.seeded: task id=... (created with description).<h3>Brief — ...</h3>block.🤖 Generated with Claude Code