{"version":"2.1.207","anchor":"morning-brief-for-non-cowork-sessions-in-development","canonical_anchor":"morning-brief-for-non-cowork-sessions-in-development","heading":"Morning Brief for Non-Cowork Sessions [In Development]","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.207\/e\/morning-brief-for-non-cowork-sessions-in-development","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.207","markdown":"### Morning Brief for Non-Cowork Sessions [In Development]\n\n**What**\n\nThe Morning Brief skill (`\/morning`) exists in the codebase but is currently only enabled in cowork\/remote-trigger entrypoints. Regular interactive sessions will see the skill once `tengu_morning_brief_skill` is enabled more broadly.\n\n**Details**\n\n- The `eSb()` enablement guard evaluates four conditions in sequence: (1) sessions that are neither `CLAUDE_CODE_IS_COWORK` nor a `remote_cowork`\/`remote_trigger` `CLAUDE_CODE_ENTRYPOINT` are unconditionally disabled; (2) `CLAUDE_CODE_ENABLE_MORNING_BRIEF` (any truthy value) overrides all other conditions and forces the skill on; (3) remote-cowork and remote-trigger entrypoints return `false` unless the env-var override fires first \u2014 they do **not** consult the feature flag at all; (4) only non-remote cowork sessions (`CLAUDE_CODE_IS_COWORK=1` with a non-remote entrypoint) reach the `tengu_morning_brief_skill` flag check, which defaults to `false`.\n- Custom skill prompt resolution follows its own three-step chain in `nSb()`: `CLAUDE_CODE_MORNING_BRIEF_PROMPT` env var is checked first (clamped to 500\u201350 000 characters); for non-remote sessions only, `tengu_morning_brief_config` feature flag (a JSON object with a `skillPrompt` string field) is checked second; the built-in prompt is the final fallback. Remote entrypoints always skip the feature-flag config and jump straight to the fallback.\n- When not enabled, the `\/morning` command is simply absent from the skill registry \u2014 no help text or invocation trigger is registered, so users see no trace of it.\n- The skill's `menuDescription` is \"Your morning brief \u2014 run it now, or set it up as a recurring weekday task\", and its invocation trigger list includes \"morning brief\", \"daily brief\", \"set up my morning brief\", \"what's my day look like\", and \"run my brief\".\n\n**Status**\n\nFeature-flagged \u2014 `tengu_morning_brief_skill` defaults to `false`. Can be forced on with `CLAUDE_CODE_ENABLE_MORNING_BRIEF=1`.\n\n**Evidence**\n\nEnablement guard `eSb()` (lines 839865\u2013839871) \u2014 four-path conditional ending with `Qe(\"tengu_morning_brief_skill\", !1)`; prompt resolver `nSb()` (lines 839878\u2013839887) reads `tengu_morning_brief_config.skillPrompt` only on non-remote sessions; prompt length bounds `tSb = 500` \/ `rSb = 50000` (lines 839971\u2013839972) (search for `\"tengu_morning_brief_skill\"`)\n\n- Flag `tengu_morning_brief_skill`: Not enough to say (read for one account on one subscription tier against v2.1.207; this account: no value returned, anonymous baseline: no value returned, compiled default: off) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Flag `tengu_morning_brief_config`: Not enough to say (read for one account on one subscription tier against v2.1.207; this account: no value returned, anonymous baseline: no value returned, compiled default: not a boolean we can read) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release."}