{
  "id": "morning-newspaper",
  "slug": "morning-newspaper",
  "name": "Morning Newspaper",
  "tagline": "Wake up to a front page built for you.",
  "description": "A newspaper-style briefing every morning: top stories, your topics, markets, weather, your calendar, and one long read. Every story is linked and from the last 24 hours.",
  "category": "News & Briefings",
  "platforms": [
    "Grok Bot",
    "Muse",
    "Dots"
  ],
  "schedule": "Daily, 7:00 AM",
  "outputType": "newspaper",
  "previewImage": "previews/morning-newspaper.png",
  "installSteps": {
    "grokBot": {
      "label": "Grok Bot",
      "status": "verified",
      "steps": [
        "Copy skills/morning-newspaper/SKILL.md (the whole file, including the --- header).",
        "Open a one-to-one chat with your Grok Bot and paste the prompt below, with the file where it says.",
        "When the Bot asks, connect: Google Calendar or Outlook (optional, for Your day), Gmail or Outlook (optional, for Inbox watch). It shows a connect card right in the chat.",
        "Try it once now: \"Run Morning Newspaper.\"",
        "The routine shows in the Bot's info pane (click the Bot's name in the chat header) under Routines, where you can pause or edit it."
      ],
      "prompt": "Save the following as a skill called \"Morning Newspaper\". Then create a routine that runs it every day at 7:00 AM and posts the result here. Before the first run, ask me the setup questions in the skill and remember my answers.\n\n<paste SKILL.md here>",
      "note": "Skills and routines are saved by asking the Bot; no settings to dig through.",
      "promptFull": "Save the following as a skill called \"Morning Newspaper\". Then create a routine that runs it every day at 7:00 AM and posts the result here. Before the first run, ask me the setup questions in the skill and remember my answers.\n\n---\nname: morning-newspaper\ndescription: Use when the user asks for their morning paper, daily briefing, front page, or \"what do I need to know today\", or when a scheduled morning routine runs this skill. Builds a personalized, newspaper-style briefing with top stories, the user's chosen topics, markets, weather, a calendar glance, and one long read, every item linked to a source published in the last 24 hours.\nmetadata:\n  id: morning-newspaper\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Morning Newspaper\n\n> Wake up to a front page built for you.\n\n## What it does\n\nAssemble a one-page, newspaper-style briefing the reader can finish over coffee: a masthead, a lead story, the topics they care about, markets, weather, today's calendar, and one long read worth saving for later. Every story links to its source. Nothing is invented.\n\n## When to use\n\n- The user asks for \"my paper\", \"the morning paper\", \"today's front page\", \"daily briefing\", or \"what's going on today\".\n- A scheduled routine (for example \"every day at 7:00 AM\") calls this skill.\n- The user asks to change what the paper covers. Update the saved preferences, then confirm the change in one line.\n\n## Requires\n\nWeb search and web access for news and weather. Optional: a calendar connector (Google Calendar or Outlook) for \"Your day\", and an email connector for \"Inbox watch\". If an optional connector is missing, skip that section and say so in one line.\n\n## Schedule\n\nDefault: Daily, 7:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\nRead these from saved preferences or memory. On the first run, ask for them once in a single short message, offer the defaults, and save the answers.\n\n| Setting | Default | Notes |\n|---|---|---|\n| `masthead` | \"The Morning Edition\" | Paper name shown at the top. Many readers use \"The [Name] Daily\". |\n| `reader_name` | user's first name | Used in the greeting line only. |\n| `location` | ask | City for weather. Also sets the \"local\" section. |\n| `timezone` | user's timezone | All times print in this zone, with its label. |\n| `topics` | World, Technology, Business, Science | Toggle any of: World, Local, Politics, Business, Technology, AI, Science, Health, Climate, Sports, Culture, Books, Design, Startups, Crypto. Custom topics allowed (e.g. \"Formula 1\", \"Denver housing\"). |\n| `teams_or_tickers` | none | Sports teams to follow and market tickers to watch. |\n| `sections` | all on | Front page, Topics, Markets, Weather, Calendar, Long Read, Inbox Watch (off by default), On This Day (off by default), Quote (off by default). |\n| `length` | standard | `brief` (about 3 min read), `standard` (about 6 min), `full` (about 12 min). |\n| `tone` | straight | `straight` (wire-service neutral), `conversational`, or `witty` (light, never flippant about tragedy). |\n| `sources_prefer` / `sources_avoid` | none | Outlets to favor or skip. |\n| `delivery` | this chat | Where the paper lands: chat, email draft, or a document. |\n\n## Steps\n\n1. **Load preferences.** Read saved settings. If any required setting (`location`, `timezone`) is missing, use the defaults above, run anyway, and ask for it at the end of the paper in one line.\n2. **Set the news window.** The window is the 24 hours before now in the reader's timezone. On Monday, widen to 72 hours so weekend news isn't lost. Write today's date in full for the masthead (e.g. \"Saturday, October 31, 2026\").\n3. **Gather the front page.** Search the web for the biggest stories in the window. Pick candidates that at least two independent outlets are reporting. Open each article; do not write from search snippets alone. Record the outlet, headline, publish time, and URL.\n4. **Gather each topic.** For each toggled topic, find 1 to 3 stories in the window (1 for `brief`, 2 for `standard`, 3 for `full`). Prefer original reporting, primary sources (filings, papers, official statements), and the user's `sources_prefer`. Skip `sources_avoid`.\n5. **Markets.** If the Markets section is on, get the latest close or current level for major indexes plus each ticker in `teams_or_tickers`, with percent change and the \"as of\" time. On weekends and market holidays, show the last close and say so (\"Markets closed; figures as of Friday's close\").\n6. **Weather.** Get today's forecast for `location`: high, low, conditions, precipitation chance, and anything notable (warnings, air quality, sunset time). One sentence on what it means for the day (\"Bring an umbrella after 3 PM\").\n7. **Calendar glance.** If a calendar connector is available, list today's events with start times in the reader's timezone, and flag conflicts, early starts, and travel gaps. If no calendar is connected, drop the section silently on scheduled runs, and mention once on manual runs that connecting a calendar adds it.\n8. **Inbox watch (optional).** If enabled and an email connector is available, list up to 3 messages that need a reply today. Show sender and subject only, never full message bodies.\n9. **Long read.** Pick one substantial piece (feature, essay, investigation, or interview) published in the last 7 days that matches the reader's topics. Give its reading time and a two-sentence reason it's worth the time.\n10. **Rank and cut.** Lead with the story that most affects the reader: global significance first, then topic match, then local relevance. Remove duplicates across sections. Cut to the length budget. A short paper beats a padded one.\n11. **Write.** Use the output format below. Headlines in sentence case, active voice, under 12 words. Each summary is 1 to 3 sentences: what happened, why it matters, what's next. Write in the chosen tone. No hype words (\"game-changer\", \"revolutionary\"), and no opinions presented as fact.\n12. **Check before sending.** Every story has a working link and a publish time inside the window. Every number (prices, percentages, temperatures) comes from a source opened this run. Dates and times show the reader's timezone. If a fact can't be verified, cut it.\n13. **Deliver.** Post to the `delivery` destination. If delivery means sending an email or posting somewhere new, draft it and ask for approval the first time.\n\n## Output format\n\n```markdown\n# {MASTHEAD}\n**{Weekday, Month D, YYYY}** \u00b7 {Location} \u00b7 {Edition No. N, optional}\n*Good morning, {reader_name}. {One sentence on the shape of the day.}*\n\n---\n\n## Front page\n### {Lead headline}\n{2\u20133 sentence summary.} [{Outlet}]({url}) \u00b7 {time, tz}\n\n### {Second headline}\n{1\u20132 sentences.} [{Outlet}]({url})\n\n## {Topic name}\n- **{Headline}.** {1\u20132 sentences.} [{Outlet}]({url})\n\n## Markets\n| Index / ticker | Level | Change |\n|---|---|---|\n*As of {time, tz}. Source: [{source}]({url})*\n\n## Weather: {Location}\n{High}/{Low}, {conditions}. {Precip chance}. {What it means for the day.}\n\n## Your day\n- {time} \u00b7 {event} {flag if any}\n\n## The long read\n**[{Title}]({url})**, {Outlet}, {N} min read\n{Two sentences on why it's worth it.}\n\n---\n*Sources opened this morning: {count}. Reply \"more on {topic}\", \"less {topic}\", or \"add {topic}\" to adjust tomorrow's paper.*\n```\n\n## Customization\n\n- \"Add Formula 1 and drop crypto.\" Update `topics`.\n- \"Make it shorter on weekdays and full on Sundays.\" Store a per-day `length`.\n- \"Call it The Rivera Herald.\" Update `masthead`.\n- \"Deliver at 6:30 AM.\" Update the routine schedule, not this skill.\n- \"Only Canadian sources for local news.\" Add to `sources_prefer` for Local.\n\n## Edge cases\n\n- **Quiet news day:** run fewer stories. Never pad with old news. Say \"A quiet morning\" in the greeting.\n- **Breaking story still developing:** label it \"Developing\" and say what is confirmed and what isn't.\n- **Paywalled source:** summarize only what's visible and mark the link \"(paywall)\". Prefer an open source covering the same story.\n- **Topic with no news in the window:** omit the topic. Don't stretch the window except on Mondays.\n- **Reader is traveling:** if the calendar shows travel or the user says they're away, use the destination for weather and local news and label it.\n- **Tragedy or sensitive news:** use the straight tone for that item even when the paper is set to witty.\n- **A source fails or a connector is down:** run with what works and note it in one line at the bottom (\"Calendar unavailable this morning\").\n- **Conflicting reports:** give both figures and their sources rather than picking one.\n\n## Boundaries\n\n- Read-only. This skill never sends email, accepts invites, or posts publicly without the user's approval.\n- Never present unverified claims, search snippets, or model memory as today's news.\n- Don't quote more than a sentence or two from any article. Summarize and link."
    },
    "muse": {
      "label": "Muse",
      "status": "partially-verified",
      "steps": [
        "Copy skills/morning-newspaper/SKILL.md.",
        "Open Muse and paste the prompt below with the file where it says.",
        "Try it: \"Run Morning Newspaper.\" Muse has no skill install for outside skills, so it follows the pasted instructions.",
        "Ask Muse to make it a recurring task every day at 7:00 AM. It then shows under the Assistant icon > Upcoming.",
        "Muse Code (developer CLI): unzip downloads/morning-newspaper.zip, run `muse skills validate ./morning-newspaper` then `muse skills install ./morning-newspaper --scope user`. Optional: add the BotPlaza connector (https://botplaza.lol/api/mcp) under mcpServers in ~/.config/muse/settings.json."
      ],
      "sourceUrl": "https://www.meta.com/help/superintelligence/1484325780075655/",
      "note": "Recurring tasks and Muse Code skill install are documented by Meta. Installing outside skills in the Muse app is not.",
      "prompt": "Here are instructions for a task called \"Morning Newspaper\". Follow them whenever I say \"Run Morning Newspaper\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>\n\nIf you can save this as a skill, please do.",
      "promptFull": "Here are instructions for a task called \"Morning Newspaper\". Follow them whenever I say \"Run Morning Newspaper\". Ask me the setup questions first and remember my answers.\n\n---\nname: morning-newspaper\ndescription: Use when the user asks for their morning paper, daily briefing, front page, or \"what do I need to know today\", or when a scheduled morning routine runs this skill. Builds a personalized, newspaper-style briefing with top stories, the user's chosen topics, markets, weather, a calendar glance, and one long read, every item linked to a source published in the last 24 hours.\nmetadata:\n  id: morning-newspaper\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Morning Newspaper\n\n> Wake up to a front page built for you.\n\n## What it does\n\nAssemble a one-page, newspaper-style briefing the reader can finish over coffee: a masthead, a lead story, the topics they care about, markets, weather, today's calendar, and one long read worth saving for later. Every story links to its source. Nothing is invented.\n\n## When to use\n\n- The user asks for \"my paper\", \"the morning paper\", \"today's front page\", \"daily briefing\", or \"what's going on today\".\n- A scheduled routine (for example \"every day at 7:00 AM\") calls this skill.\n- The user asks to change what the paper covers. Update the saved preferences, then confirm the change in one line.\n\n## Requires\n\nWeb search and web access for news and weather. Optional: a calendar connector (Google Calendar or Outlook) for \"Your day\", and an email connector for \"Inbox watch\". If an optional connector is missing, skip that section and say so in one line.\n\n## Schedule\n\nDefault: Daily, 7:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\nRead these from saved preferences or memory. On the first run, ask for them once in a single short message, offer the defaults, and save the answers.\n\n| Setting | Default | Notes |\n|---|---|---|\n| `masthead` | \"The Morning Edition\" | Paper name shown at the top. Many readers use \"The [Name] Daily\". |\n| `reader_name` | user's first name | Used in the greeting line only. |\n| `location` | ask | City for weather. Also sets the \"local\" section. |\n| `timezone` | user's timezone | All times print in this zone, with its label. |\n| `topics` | World, Technology, Business, Science | Toggle any of: World, Local, Politics, Business, Technology, AI, Science, Health, Climate, Sports, Culture, Books, Design, Startups, Crypto. Custom topics allowed (e.g. \"Formula 1\", \"Denver housing\"). |\n| `teams_or_tickers` | none | Sports teams to follow and market tickers to watch. |\n| `sections` | all on | Front page, Topics, Markets, Weather, Calendar, Long Read, Inbox Watch (off by default), On This Day (off by default), Quote (off by default). |\n| `length` | standard | `brief` (about 3 min read), `standard` (about 6 min), `full` (about 12 min). |\n| `tone` | straight | `straight` (wire-service neutral), `conversational`, or `witty` (light, never flippant about tragedy). |\n| `sources_prefer` / `sources_avoid` | none | Outlets to favor or skip. |\n| `delivery` | this chat | Where the paper lands: chat, email draft, or a document. |\n\n## Steps\n\n1. **Load preferences.** Read saved settings. If any required setting (`location`, `timezone`) is missing, use the defaults above, run anyway, and ask for it at the end of the paper in one line.\n2. **Set the news window.** The window is the 24 hours before now in the reader's timezone. On Monday, widen to 72 hours so weekend news isn't lost. Write today's date in full for the masthead (e.g. \"Saturday, October 31, 2026\").\n3. **Gather the front page.** Search the web for the biggest stories in the window. Pick candidates that at least two independent outlets are reporting. Open each article; do not write from search snippets alone. Record the outlet, headline, publish time, and URL.\n4. **Gather each topic.** For each toggled topic, find 1 to 3 stories in the window (1 for `brief`, 2 for `standard`, 3 for `full`). Prefer original reporting, primary sources (filings, papers, official statements), and the user's `sources_prefer`. Skip `sources_avoid`.\n5. **Markets.** If the Markets section is on, get the latest close or current level for major indexes plus each ticker in `teams_or_tickers`, with percent change and the \"as of\" time. On weekends and market holidays, show the last close and say so (\"Markets closed; figures as of Friday's close\").\n6. **Weather.** Get today's forecast for `location`: high, low, conditions, precipitation chance, and anything notable (warnings, air quality, sunset time). One sentence on what it means for the day (\"Bring an umbrella after 3 PM\").\n7. **Calendar glance.** If a calendar connector is available, list today's events with start times in the reader's timezone, and flag conflicts, early starts, and travel gaps. If no calendar is connected, drop the section silently on scheduled runs, and mention once on manual runs that connecting a calendar adds it.\n8. **Inbox watch (optional).** If enabled and an email connector is available, list up to 3 messages that need a reply today. Show sender and subject only, never full message bodies.\n9. **Long read.** Pick one substantial piece (feature, essay, investigation, or interview) published in the last 7 days that matches the reader's topics. Give its reading time and a two-sentence reason it's worth the time.\n10. **Rank and cut.** Lead with the story that most affects the reader: global significance first, then topic match, then local relevance. Remove duplicates across sections. Cut to the length budget. A short paper beats a padded one.\n11. **Write.** Use the output format below. Headlines in sentence case, active voice, under 12 words. Each summary is 1 to 3 sentences: what happened, why it matters, what's next. Write in the chosen tone. No hype words (\"game-changer\", \"revolutionary\"), and no opinions presented as fact.\n12. **Check before sending.** Every story has a working link and a publish time inside the window. Every number (prices, percentages, temperatures) comes from a source opened this run. Dates and times show the reader's timezone. If a fact can't be verified, cut it.\n13. **Deliver.** Post to the `delivery` destination. If delivery means sending an email or posting somewhere new, draft it and ask for approval the first time.\n\n## Output format\n\n```markdown\n# {MASTHEAD}\n**{Weekday, Month D, YYYY}** \u00b7 {Location} \u00b7 {Edition No. N, optional}\n*Good morning, {reader_name}. {One sentence on the shape of the day.}*\n\n---\n\n## Front page\n### {Lead headline}\n{2\u20133 sentence summary.} [{Outlet}]({url}) \u00b7 {time, tz}\n\n### {Second headline}\n{1\u20132 sentences.} [{Outlet}]({url})\n\n## {Topic name}\n- **{Headline}.** {1\u20132 sentences.} [{Outlet}]({url})\n\n## Markets\n| Index / ticker | Level | Change |\n|---|---|---|\n*As of {time, tz}. Source: [{source}]({url})*\n\n## Weather: {Location}\n{High}/{Low}, {conditions}. {Precip chance}. {What it means for the day.}\n\n## Your day\n- {time} \u00b7 {event} {flag if any}\n\n## The long read\n**[{Title}]({url})**, {Outlet}, {N} min read\n{Two sentences on why it's worth it.}\n\n---\n*Sources opened this morning: {count}. Reply \"more on {topic}\", \"less {topic}\", or \"add {topic}\" to adjust tomorrow's paper.*\n```\n\n## Customization\n\n- \"Add Formula 1 and drop crypto.\" Update `topics`.\n- \"Make it shorter on weekdays and full on Sundays.\" Store a per-day `length`.\n- \"Call it The Rivera Herald.\" Update `masthead`.\n- \"Deliver at 6:30 AM.\" Update the routine schedule, not this skill.\n- \"Only Canadian sources for local news.\" Add to `sources_prefer` for Local.\n\n## Edge cases\n\n- **Quiet news day:** run fewer stories. Never pad with old news. Say \"A quiet morning\" in the greeting.\n- **Breaking story still developing:** label it \"Developing\" and say what is confirmed and what isn't.\n- **Paywalled source:** summarize only what's visible and mark the link \"(paywall)\". Prefer an open source covering the same story.\n- **Topic with no news in the window:** omit the topic. Don't stretch the window except on Mondays.\n- **Reader is traveling:** if the calendar shows travel or the user says they're away, use the destination for weather and local news and label it.\n- **Tragedy or sensitive news:** use the straight tone for that item even when the paper is set to witty.\n- **A source fails or a connector is down:** run with what works and note it in one line at the bottom (\"Calendar unavailable this morning\").\n- **Conflicting reports:** give both figures and their sources rather than picking one.\n\n## Boundaries\n\n- Read-only. This skill never sends email, accepts invites, or posts publicly without the user's approval.\n- Never present unverified claims, search snippets, or model memory as today's news.\n- Don't quote more than a sentence or two from any article. Summarize and link.\n\nIf you can save this as a skill, please do."
    },
    "dots": {
      "label": "Dots",
      "status": "partially-verified",
      "steps": [
        "Copy skills/morning-newspaper/SKILL.md.",
        "Paste the prompt below into your dot's conversation in ChatGPT, with the file where it says.",
        "Wait for the dot to confirm the schedule, time zone and end date.",
        "Optional: in ChatGPT, Plugins > + > Add custom MCP server with https://botplaza.lol/api/mcp (no authentication). Dots can use installed plugins, but OpenAI hasn't said whether that includes custom ones.",
        "Business, Enterprise, Healthcare and Edu workspaces can also upload downloads/morning-newspaper.zip under Plugins > Skills > Create > Upload from your computer."
      ],
      "sourceUrl": "https://learn.chatgpt.com/docs/dots",
      "note": "Dots are available on ChatGPT Pro, Business Premium and Enterprise, and are still rolling out. Pasting instructions in and scheduled check-ins are documented.",
      "prompt": "Here are instructions for a task called \"Morning Newspaper\". Take this on as an ongoing responsibility and follow them whenever I say \"Run Morning Newspaper\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>\n\nCheck in every day at 7:00 AM Eastern time for the next 3 months, and confirm the schedule back to me.",
      "promptFull": "Here are instructions for a task called \"Morning Newspaper\". Take this on as an ongoing responsibility and follow them whenever I say \"Run Morning Newspaper\". Ask me the setup questions first and remember my answers.\n\n---\nname: morning-newspaper\ndescription: Use when the user asks for their morning paper, daily briefing, front page, or \"what do I need to know today\", or when a scheduled morning routine runs this skill. Builds a personalized, newspaper-style briefing with top stories, the user's chosen topics, markets, weather, a calendar glance, and one long read, every item linked to a source published in the last 24 hours.\nmetadata:\n  id: morning-newspaper\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Morning Newspaper\n\n> Wake up to a front page built for you.\n\n## What it does\n\nAssemble a one-page, newspaper-style briefing the reader can finish over coffee: a masthead, a lead story, the topics they care about, markets, weather, today's calendar, and one long read worth saving for later. Every story links to its source. Nothing is invented.\n\n## When to use\n\n- The user asks for \"my paper\", \"the morning paper\", \"today's front page\", \"daily briefing\", or \"what's going on today\".\n- A scheduled routine (for example \"every day at 7:00 AM\") calls this skill.\n- The user asks to change what the paper covers. Update the saved preferences, then confirm the change in one line.\n\n## Requires\n\nWeb search and web access for news and weather. Optional: a calendar connector (Google Calendar or Outlook) for \"Your day\", and an email connector for \"Inbox watch\". If an optional connector is missing, skip that section and say so in one line.\n\n## Schedule\n\nDefault: Daily, 7:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\nRead these from saved preferences or memory. On the first run, ask for them once in a single short message, offer the defaults, and save the answers.\n\n| Setting | Default | Notes |\n|---|---|---|\n| `masthead` | \"The Morning Edition\" | Paper name shown at the top. Many readers use \"The [Name] Daily\". |\n| `reader_name` | user's first name | Used in the greeting line only. |\n| `location` | ask | City for weather. Also sets the \"local\" section. |\n| `timezone` | user's timezone | All times print in this zone, with its label. |\n| `topics` | World, Technology, Business, Science | Toggle any of: World, Local, Politics, Business, Technology, AI, Science, Health, Climate, Sports, Culture, Books, Design, Startups, Crypto. Custom topics allowed (e.g. \"Formula 1\", \"Denver housing\"). |\n| `teams_or_tickers` | none | Sports teams to follow and market tickers to watch. |\n| `sections` | all on | Front page, Topics, Markets, Weather, Calendar, Long Read, Inbox Watch (off by default), On This Day (off by default), Quote (off by default). |\n| `length` | standard | `brief` (about 3 min read), `standard` (about 6 min), `full` (about 12 min). |\n| `tone` | straight | `straight` (wire-service neutral), `conversational`, or `witty` (light, never flippant about tragedy). |\n| `sources_prefer` / `sources_avoid` | none | Outlets to favor or skip. |\n| `delivery` | this chat | Where the paper lands: chat, email draft, or a document. |\n\n## Steps\n\n1. **Load preferences.** Read saved settings. If any required setting (`location`, `timezone`) is missing, use the defaults above, run anyway, and ask for it at the end of the paper in one line.\n2. **Set the news window.** The window is the 24 hours before now in the reader's timezone. On Monday, widen to 72 hours so weekend news isn't lost. Write today's date in full for the masthead (e.g. \"Saturday, October 31, 2026\").\n3. **Gather the front page.** Search the web for the biggest stories in the window. Pick candidates that at least two independent outlets are reporting. Open each article; do not write from search snippets alone. Record the outlet, headline, publish time, and URL.\n4. **Gather each topic.** For each toggled topic, find 1 to 3 stories in the window (1 for `brief`, 2 for `standard`, 3 for `full`). Prefer original reporting, primary sources (filings, papers, official statements), and the user's `sources_prefer`. Skip `sources_avoid`.\n5. **Markets.** If the Markets section is on, get the latest close or current level for major indexes plus each ticker in `teams_or_tickers`, with percent change and the \"as of\" time. On weekends and market holidays, show the last close and say so (\"Markets closed; figures as of Friday's close\").\n6. **Weather.** Get today's forecast for `location`: high, low, conditions, precipitation chance, and anything notable (warnings, air quality, sunset time). One sentence on what it means for the day (\"Bring an umbrella after 3 PM\").\n7. **Calendar glance.** If a calendar connector is available, list today's events with start times in the reader's timezone, and flag conflicts, early starts, and travel gaps. If no calendar is connected, drop the section silently on scheduled runs, and mention once on manual runs that connecting a calendar adds it.\n8. **Inbox watch (optional).** If enabled and an email connector is available, list up to 3 messages that need a reply today. Show sender and subject only, never full message bodies.\n9. **Long read.** Pick one substantial piece (feature, essay, investigation, or interview) published in the last 7 days that matches the reader's topics. Give its reading time and a two-sentence reason it's worth the time.\n10. **Rank and cut.** Lead with the story that most affects the reader: global significance first, then topic match, then local relevance. Remove duplicates across sections. Cut to the length budget. A short paper beats a padded one.\n11. **Write.** Use the output format below. Headlines in sentence case, active voice, under 12 words. Each summary is 1 to 3 sentences: what happened, why it matters, what's next. Write in the chosen tone. No hype words (\"game-changer\", \"revolutionary\"), and no opinions presented as fact.\n12. **Check before sending.** Every story has a working link and a publish time inside the window. Every number (prices, percentages, temperatures) comes from a source opened this run. Dates and times show the reader's timezone. If a fact can't be verified, cut it.\n13. **Deliver.** Post to the `delivery` destination. If delivery means sending an email or posting somewhere new, draft it and ask for approval the first time.\n\n## Output format\n\n```markdown\n# {MASTHEAD}\n**{Weekday, Month D, YYYY}** \u00b7 {Location} \u00b7 {Edition No. N, optional}\n*Good morning, {reader_name}. {One sentence on the shape of the day.}*\n\n---\n\n## Front page\n### {Lead headline}\n{2\u20133 sentence summary.} [{Outlet}]({url}) \u00b7 {time, tz}\n\n### {Second headline}\n{1\u20132 sentences.} [{Outlet}]({url})\n\n## {Topic name}\n- **{Headline}.** {1\u20132 sentences.} [{Outlet}]({url})\n\n## Markets\n| Index / ticker | Level | Change |\n|---|---|---|\n*As of {time, tz}. Source: [{source}]({url})*\n\n## Weather: {Location}\n{High}/{Low}, {conditions}. {Precip chance}. {What it means for the day.}\n\n## Your day\n- {time} \u00b7 {event} {flag if any}\n\n## The long read\n**[{Title}]({url})**, {Outlet}, {N} min read\n{Two sentences on why it's worth it.}\n\n---\n*Sources opened this morning: {count}. Reply \"more on {topic}\", \"less {topic}\", or \"add {topic}\" to adjust tomorrow's paper.*\n```\n\n## Customization\n\n- \"Add Formula 1 and drop crypto.\" Update `topics`.\n- \"Make it shorter on weekdays and full on Sundays.\" Store a per-day `length`.\n- \"Call it The Rivera Herald.\" Update `masthead`.\n- \"Deliver at 6:30 AM.\" Update the routine schedule, not this skill.\n- \"Only Canadian sources for local news.\" Add to `sources_prefer` for Local.\n\n## Edge cases\n\n- **Quiet news day:** run fewer stories. Never pad with old news. Say \"A quiet morning\" in the greeting.\n- **Breaking story still developing:** label it \"Developing\" and say what is confirmed and what isn't.\n- **Paywalled source:** summarize only what's visible and mark the link \"(paywall)\". Prefer an open source covering the same story.\n- **Topic with no news in the window:** omit the topic. Don't stretch the window except on Mondays.\n- **Reader is traveling:** if the calendar shows travel or the user says they're away, use the destination for weather and local news and label it.\n- **Tragedy or sensitive news:** use the straight tone for that item even when the paper is set to witty.\n- **A source fails or a connector is down:** run with what works and note it in one line at the bottom (\"Calendar unavailable this morning\").\n- **Conflicting reports:** give both figures and their sources rather than picking one.\n\n## Boundaries\n\n- Read-only. This skill never sends email, accepts invites, or posts publicly without the user's approval.\n- Never present unverified claims, search snippets, or model memory as today's news.\n- Don't quote more than a sentence or two from any article. Summarize and link.\n\nCheck in every day at 7:00 AM Eastern time for the next 3 months, and confirm the schedule back to me."
    },
    "chatgpt": {
      "label": "ChatGPT",
      "status": "unverified",
      "verified": false,
      "steps": [
        "Download https://botplaza.lol/downloads/morning-newspaper.zip (don't unzip).",
        "ChatGPT sidebar \u2192 Plugins \u2192 Skills tab \u2192 Create \u2192 Upload from your computer.",
        "Wait for the scan; if it says Needs Review, read it and approve.",
        "Use it with @morning-newspaper or just ask.",
        "Ask ChatGPT to set a scheduled task that runs @morning-newspaper at this cadence: every day at 7:00 AM. Set the time in your own time zone."
      ],
      "sourceUrl": "https://help.openai.com/en/articles/20001066-skills-in-chatgpt",
      "note": "Business, Enterprise, Edu and Healthcare plans only. Other plans fall back to pasting the prompt.",
      "prompt": "Here are instructions for a task called \"Morning Newspaper\". Follow them whenever I say \"Run Morning Newspaper\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>",
      "promptFull": "Here are instructions for a task called \"Morning Newspaper\". Follow them whenever I say \"Run Morning Newspaper\". Ask me the setup questions first and remember my answers.\n\n---\nname: morning-newspaper\ndescription: Use when the user asks for their morning paper, daily briefing, front page, or \"what do I need to know today\", or when a scheduled morning routine runs this skill. Builds a personalized, newspaper-style briefing with top stories, the user's chosen topics, markets, weather, a calendar glance, and one long read, every item linked to a source published in the last 24 hours.\nmetadata:\n  id: morning-newspaper\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Morning Newspaper\n\n> Wake up to a front page built for you.\n\n## What it does\n\nAssemble a one-page, newspaper-style briefing the reader can finish over coffee: a masthead, a lead story, the topics they care about, markets, weather, today's calendar, and one long read worth saving for later. Every story links to its source. Nothing is invented.\n\n## When to use\n\n- The user asks for \"my paper\", \"the morning paper\", \"today's front page\", \"daily briefing\", or \"what's going on today\".\n- A scheduled routine (for example \"every day at 7:00 AM\") calls this skill.\n- The user asks to change what the paper covers. Update the saved preferences, then confirm the change in one line.\n\n## Requires\n\nWeb search and web access for news and weather. Optional: a calendar connector (Google Calendar or Outlook) for \"Your day\", and an email connector for \"Inbox watch\". If an optional connector is missing, skip that section and say so in one line.\n\n## Schedule\n\nDefault: Daily, 7:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\nRead these from saved preferences or memory. On the first run, ask for them once in a single short message, offer the defaults, and save the answers.\n\n| Setting | Default | Notes |\n|---|---|---|\n| `masthead` | \"The Morning Edition\" | Paper name shown at the top. Many readers use \"The [Name] Daily\". |\n| `reader_name` | user's first name | Used in the greeting line only. |\n| `location` | ask | City for weather. Also sets the \"local\" section. |\n| `timezone` | user's timezone | All times print in this zone, with its label. |\n| `topics` | World, Technology, Business, Science | Toggle any of: World, Local, Politics, Business, Technology, AI, Science, Health, Climate, Sports, Culture, Books, Design, Startups, Crypto. Custom topics allowed (e.g. \"Formula 1\", \"Denver housing\"). |\n| `teams_or_tickers` | none | Sports teams to follow and market tickers to watch. |\n| `sections` | all on | Front page, Topics, Markets, Weather, Calendar, Long Read, Inbox Watch (off by default), On This Day (off by default), Quote (off by default). |\n| `length` | standard | `brief` (about 3 min read), `standard` (about 6 min), `full` (about 12 min). |\n| `tone` | straight | `straight` (wire-service neutral), `conversational`, or `witty` (light, never flippant about tragedy). |\n| `sources_prefer` / `sources_avoid` | none | Outlets to favor or skip. |\n| `delivery` | this chat | Where the paper lands: chat, email draft, or a document. |\n\n## Steps\n\n1. **Load preferences.** Read saved settings. If any required setting (`location`, `timezone`) is missing, use the defaults above, run anyway, and ask for it at the end of the paper in one line.\n2. **Set the news window.** The window is the 24 hours before now in the reader's timezone. On Monday, widen to 72 hours so weekend news isn't lost. Write today's date in full for the masthead (e.g. \"Saturday, October 31, 2026\").\n3. **Gather the front page.** Search the web for the biggest stories in the window. Pick candidates that at least two independent outlets are reporting. Open each article; do not write from search snippets alone. Record the outlet, headline, publish time, and URL.\n4. **Gather each topic.** For each toggled topic, find 1 to 3 stories in the window (1 for `brief`, 2 for `standard`, 3 for `full`). Prefer original reporting, primary sources (filings, papers, official statements), and the user's `sources_prefer`. Skip `sources_avoid`.\n5. **Markets.** If the Markets section is on, get the latest close or current level for major indexes plus each ticker in `teams_or_tickers`, with percent change and the \"as of\" time. On weekends and market holidays, show the last close and say so (\"Markets closed; figures as of Friday's close\").\n6. **Weather.** Get today's forecast for `location`: high, low, conditions, precipitation chance, and anything notable (warnings, air quality, sunset time). One sentence on what it means for the day (\"Bring an umbrella after 3 PM\").\n7. **Calendar glance.** If a calendar connector is available, list today's events with start times in the reader's timezone, and flag conflicts, early starts, and travel gaps. If no calendar is connected, drop the section silently on scheduled runs, and mention once on manual runs that connecting a calendar adds it.\n8. **Inbox watch (optional).** If enabled and an email connector is available, list up to 3 messages that need a reply today. Show sender and subject only, never full message bodies.\n9. **Long read.** Pick one substantial piece (feature, essay, investigation, or interview) published in the last 7 days that matches the reader's topics. Give its reading time and a two-sentence reason it's worth the time.\n10. **Rank and cut.** Lead with the story that most affects the reader: global significance first, then topic match, then local relevance. Remove duplicates across sections. Cut to the length budget. A short paper beats a padded one.\n11. **Write.** Use the output format below. Headlines in sentence case, active voice, under 12 words. Each summary is 1 to 3 sentences: what happened, why it matters, what's next. Write in the chosen tone. No hype words (\"game-changer\", \"revolutionary\"), and no opinions presented as fact.\n12. **Check before sending.** Every story has a working link and a publish time inside the window. Every number (prices, percentages, temperatures) comes from a source opened this run. Dates and times show the reader's timezone. If a fact can't be verified, cut it.\n13. **Deliver.** Post to the `delivery` destination. If delivery means sending an email or posting somewhere new, draft it and ask for approval the first time.\n\n## Output format\n\n```markdown\n# {MASTHEAD}\n**{Weekday, Month D, YYYY}** \u00b7 {Location} \u00b7 {Edition No. N, optional}\n*Good morning, {reader_name}. {One sentence on the shape of the day.}*\n\n---\n\n## Front page\n### {Lead headline}\n{2\u20133 sentence summary.} [{Outlet}]({url}) \u00b7 {time, tz}\n\n### {Second headline}\n{1\u20132 sentences.} [{Outlet}]({url})\n\n## {Topic name}\n- **{Headline}.** {1\u20132 sentences.} [{Outlet}]({url})\n\n## Markets\n| Index / ticker | Level | Change |\n|---|---|---|\n*As of {time, tz}. Source: [{source}]({url})*\n\n## Weather: {Location}\n{High}/{Low}, {conditions}. {Precip chance}. {What it means for the day.}\n\n## Your day\n- {time} \u00b7 {event} {flag if any}\n\n## The long read\n**[{Title}]({url})**, {Outlet}, {N} min read\n{Two sentences on why it's worth it.}\n\n---\n*Sources opened this morning: {count}. Reply \"more on {topic}\", \"less {topic}\", or \"add {topic}\" to adjust tomorrow's paper.*\n```\n\n## Customization\n\n- \"Add Formula 1 and drop crypto.\" Update `topics`.\n- \"Make it shorter on weekdays and full on Sundays.\" Store a per-day `length`.\n- \"Call it The Rivera Herald.\" Update `masthead`.\n- \"Deliver at 6:30 AM.\" Update the routine schedule, not this skill.\n- \"Only Canadian sources for local news.\" Add to `sources_prefer` for Local.\n\n## Edge cases\n\n- **Quiet news day:** run fewer stories. Never pad with old news. Say \"A quiet morning\" in the greeting.\n- **Breaking story still developing:** label it \"Developing\" and say what is confirmed and what isn't.\n- **Paywalled source:** summarize only what's visible and mark the link \"(paywall)\". Prefer an open source covering the same story.\n- **Topic with no news in the window:** omit the topic. Don't stretch the window except on Mondays.\n- **Reader is traveling:** if the calendar shows travel or the user says they're away, use the destination for weather and local news and label it.\n- **Tragedy or sensitive news:** use the straight tone for that item even when the paper is set to witty.\n- **A source fails or a connector is down:** run with what works and note it in one line at the bottom (\"Calendar unavailable this morning\").\n- **Conflicting reports:** give both figures and their sources rather than picking one.\n\n## Boundaries\n\n- Read-only. This skill never sends email, accepts invites, or posts publicly without the user's approval.\n- Never present unverified claims, search snippets, or model memory as today's news.\n- Don't quote more than a sentence or two from any article. Summarize and link."
    },
    "gemini": {
      "label": "Gemini",
      "status": "unverified",
      "verified": false,
      "steps": [
        "gemini.google.com \u2192 Customize \u2192 Skills \u2192 Create \u2192 Upload \u2192 pick the SKILL.md at https://botplaza.lol/skills/morning-newspaper.md (or https://botplaza.lol/downloads/morning-newspaper.zip).",
        "Review, then Create.",
        "Use it with /morning-newspaper."
      ],
      "sourceUrl": "https://support.google.com/gemini/answer/17094296",
      "note": "Personal accounts 18+. Workspace users must recreate the skill in Workspace Studio.",
      "prompt": "Here are instructions for a task called \"Morning Newspaper\". Follow them whenever I say \"Run Morning Newspaper\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>",
      "promptFull": "Here are instructions for a task called \"Morning Newspaper\". Follow them whenever I say \"Run Morning Newspaper\". Ask me the setup questions first and remember my answers.\n\n---\nname: morning-newspaper\ndescription: Use when the user asks for their morning paper, daily briefing, front page, or \"what do I need to know today\", or when a scheduled morning routine runs this skill. Builds a personalized, newspaper-style briefing with top stories, the user's chosen topics, markets, weather, a calendar glance, and one long read, every item linked to a source published in the last 24 hours.\nmetadata:\n  id: morning-newspaper\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Morning Newspaper\n\n> Wake up to a front page built for you.\n\n## What it does\n\nAssemble a one-page, newspaper-style briefing the reader can finish over coffee: a masthead, a lead story, the topics they care about, markets, weather, today's calendar, and one long read worth saving for later. Every story links to its source. Nothing is invented.\n\n## When to use\n\n- The user asks for \"my paper\", \"the morning paper\", \"today's front page\", \"daily briefing\", or \"what's going on today\".\n- A scheduled routine (for example \"every day at 7:00 AM\") calls this skill.\n- The user asks to change what the paper covers. Update the saved preferences, then confirm the change in one line.\n\n## Requires\n\nWeb search and web access for news and weather. Optional: a calendar connector (Google Calendar or Outlook) for \"Your day\", and an email connector for \"Inbox watch\". If an optional connector is missing, skip that section and say so in one line.\n\n## Schedule\n\nDefault: Daily, 7:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\nRead these from saved preferences or memory. On the first run, ask for them once in a single short message, offer the defaults, and save the answers.\n\n| Setting | Default | Notes |\n|---|---|---|\n| `masthead` | \"The Morning Edition\" | Paper name shown at the top. Many readers use \"The [Name] Daily\". |\n| `reader_name` | user's first name | Used in the greeting line only. |\n| `location` | ask | City for weather. Also sets the \"local\" section. |\n| `timezone` | user's timezone | All times print in this zone, with its label. |\n| `topics` | World, Technology, Business, Science | Toggle any of: World, Local, Politics, Business, Technology, AI, Science, Health, Climate, Sports, Culture, Books, Design, Startups, Crypto. Custom topics allowed (e.g. \"Formula 1\", \"Denver housing\"). |\n| `teams_or_tickers` | none | Sports teams to follow and market tickers to watch. |\n| `sections` | all on | Front page, Topics, Markets, Weather, Calendar, Long Read, Inbox Watch (off by default), On This Day (off by default), Quote (off by default). |\n| `length` | standard | `brief` (about 3 min read), `standard` (about 6 min), `full` (about 12 min). |\n| `tone` | straight | `straight` (wire-service neutral), `conversational`, or `witty` (light, never flippant about tragedy). |\n| `sources_prefer` / `sources_avoid` | none | Outlets to favor or skip. |\n| `delivery` | this chat | Where the paper lands: chat, email draft, or a document. |\n\n## Steps\n\n1. **Load preferences.** Read saved settings. If any required setting (`location`, `timezone`) is missing, use the defaults above, run anyway, and ask for it at the end of the paper in one line.\n2. **Set the news window.** The window is the 24 hours before now in the reader's timezone. On Monday, widen to 72 hours so weekend news isn't lost. Write today's date in full for the masthead (e.g. \"Saturday, October 31, 2026\").\n3. **Gather the front page.** Search the web for the biggest stories in the window. Pick candidates that at least two independent outlets are reporting. Open each article; do not write from search snippets alone. Record the outlet, headline, publish time, and URL.\n4. **Gather each topic.** For each toggled topic, find 1 to 3 stories in the window (1 for `brief`, 2 for `standard`, 3 for `full`). Prefer original reporting, primary sources (filings, papers, official statements), and the user's `sources_prefer`. Skip `sources_avoid`.\n5. **Markets.** If the Markets section is on, get the latest close or current level for major indexes plus each ticker in `teams_or_tickers`, with percent change and the \"as of\" time. On weekends and market holidays, show the last close and say so (\"Markets closed; figures as of Friday's close\").\n6. **Weather.** Get today's forecast for `location`: high, low, conditions, precipitation chance, and anything notable (warnings, air quality, sunset time). One sentence on what it means for the day (\"Bring an umbrella after 3 PM\").\n7. **Calendar glance.** If a calendar connector is available, list today's events with start times in the reader's timezone, and flag conflicts, early starts, and travel gaps. If no calendar is connected, drop the section silently on scheduled runs, and mention once on manual runs that connecting a calendar adds it.\n8. **Inbox watch (optional).** If enabled and an email connector is available, list up to 3 messages that need a reply today. Show sender and subject only, never full message bodies.\n9. **Long read.** Pick one substantial piece (feature, essay, investigation, or interview) published in the last 7 days that matches the reader's topics. Give its reading time and a two-sentence reason it's worth the time.\n10. **Rank and cut.** Lead with the story that most affects the reader: global significance first, then topic match, then local relevance. Remove duplicates across sections. Cut to the length budget. A short paper beats a padded one.\n11. **Write.** Use the output format below. Headlines in sentence case, active voice, under 12 words. Each summary is 1 to 3 sentences: what happened, why it matters, what's next. Write in the chosen tone. No hype words (\"game-changer\", \"revolutionary\"), and no opinions presented as fact.\n12. **Check before sending.** Every story has a working link and a publish time inside the window. Every number (prices, percentages, temperatures) comes from a source opened this run. Dates and times show the reader's timezone. If a fact can't be verified, cut it.\n13. **Deliver.** Post to the `delivery` destination. If delivery means sending an email or posting somewhere new, draft it and ask for approval the first time.\n\n## Output format\n\n```markdown\n# {MASTHEAD}\n**{Weekday, Month D, YYYY}** \u00b7 {Location} \u00b7 {Edition No. N, optional}\n*Good morning, {reader_name}. {One sentence on the shape of the day.}*\n\n---\n\n## Front page\n### {Lead headline}\n{2\u20133 sentence summary.} [{Outlet}]({url}) \u00b7 {time, tz}\n\n### {Second headline}\n{1\u20132 sentences.} [{Outlet}]({url})\n\n## {Topic name}\n- **{Headline}.** {1\u20132 sentences.} [{Outlet}]({url})\n\n## Markets\n| Index / ticker | Level | Change |\n|---|---|---|\n*As of {time, tz}. Source: [{source}]({url})*\n\n## Weather: {Location}\n{High}/{Low}, {conditions}. {Precip chance}. {What it means for the day.}\n\n## Your day\n- {time} \u00b7 {event} {flag if any}\n\n## The long read\n**[{Title}]({url})**, {Outlet}, {N} min read\n{Two sentences on why it's worth it.}\n\n---\n*Sources opened this morning: {count}. Reply \"more on {topic}\", \"less {topic}\", or \"add {topic}\" to adjust tomorrow's paper.*\n```\n\n## Customization\n\n- \"Add Formula 1 and drop crypto.\" Update `topics`.\n- \"Make it shorter on weekdays and full on Sundays.\" Store a per-day `length`.\n- \"Call it The Rivera Herald.\" Update `masthead`.\n- \"Deliver at 6:30 AM.\" Update the routine schedule, not this skill.\n- \"Only Canadian sources for local news.\" Add to `sources_prefer` for Local.\n\n## Edge cases\n\n- **Quiet news day:** run fewer stories. Never pad with old news. Say \"A quiet morning\" in the greeting.\n- **Breaking story still developing:** label it \"Developing\" and say what is confirmed and what isn't.\n- **Paywalled source:** summarize only what's visible and mark the link \"(paywall)\". Prefer an open source covering the same story.\n- **Topic with no news in the window:** omit the topic. Don't stretch the window except on Mondays.\n- **Reader is traveling:** if the calendar shows travel or the user says they're away, use the destination for weather and local news and label it.\n- **Tragedy or sensitive news:** use the straight tone for that item even when the paper is set to witty.\n- **A source fails or a connector is down:** run with what works and note it in one line at the bottom (\"Calendar unavailable this morning\").\n- **Conflicting reports:** give both figures and their sources rather than picking one.\n\n## Boundaries\n\n- Read-only. This skill never sends email, accepts invites, or posts publicly without the user's approval.\n- Never present unverified claims, search snippets, or model memory as today's news.\n- Don't quote more than a sentence or two from any article. Summarize and link."
    },
    "cli": {
      "label": "Skills CLI",
      "status": "verified",
      "steps": [
        "All agents: `npx skills add https://botplaza.lol --skill morning-newspaper` (add `-a claude-code`, `-a codex`, or `-a cursor` to choose one).",
        "Claude Code marketplace: `/plugin marketplace add https://botplaza.lol/.claude-plugin/marketplace.json` then `/plugin install morning-newspaper@botplaza`.",
        "Fallback, Claude Code: `curl -fsSL https://botplaza.lol/downloads/morning-newspaper.zip -o s.zip && unzip s.zip -d ~/.claude/skills/`.",
        "Fallback, Codex and other .agents readers: `curl -fsSL https://botplaza.lol/downloads/morning-newspaper.zip -o s.zip && unzip s.zip -d ~/.agents/skills/`.",
        "Fallback, Cursor project: `curl -fsSL https://botplaza.lol/downloads/morning-newspaper.zip -o s.zip && unzip s.zip -d .cursor/skills/`."
      ],
      "sourceUrl": "https://www.skills.sh/docs",
      "note": "The skills CLI reads /.well-known/agent-skills/index.json and installs each SKILL.md. The zip fallback uses the existing downloads/<slug>.zip folder layout.",
      "prompt": "npx skills add https://botplaza.lol --skill morning-newspaper",
      "promptFull": "npx skills add https://botplaza.lol --skill morning-newspaper"
    }
  },
  "author": "BotPlaza",
  "tags": [
    "news",
    "daily briefing",
    "morning routine",
    "markets",
    "weather",
    "calendar",
    "personalized"
  ],
  "featured": true,
  "longDescription": "Morning Newspaper replaces the scroll. Each morning it reads the news the way an editor would, opens the sources, cuts what doesn't matter to you, and lays the rest out as a single front page with a masthead and your name on it. You choose the topics, length, and tone; it adds the weather where you are, the markets you watch, and a glance at your day. It never runs a story it couldn't source, and on a quiet morning it prints a shorter paper instead of padding it.",
  "customization": [
    {
      "key": "topics",
      "label": "Topics",
      "type": "multi-toggle",
      "options": [
        "World",
        "Local",
        "Politics",
        "Business",
        "Technology",
        "AI",
        "Science",
        "Health",
        "Climate",
        "Sports",
        "Culture",
        "Books",
        "Design",
        "Startups",
        "Crypto"
      ],
      "default": [
        "World",
        "Technology",
        "Business",
        "Science"
      ],
      "allowCustom": true,
      "question": "Which topics should your paper cover?"
    },
    {
      "key": "sections",
      "label": "Sections",
      "type": "multi-toggle",
      "options": [
        "Front page",
        "Topics",
        "Markets",
        "Weather",
        "Your day",
        "The long read",
        "Inbox watch",
        "On this day",
        "Quote of the day"
      ],
      "default": [
        "Front page",
        "Topics",
        "Markets",
        "Weather",
        "Your day",
        "The long read"
      ],
      "question": "Which sections do you want?"
    },
    {
      "key": "length",
      "label": "Length",
      "type": "select",
      "options": [
        "Brief (3 min)",
        "Standard (6 min)",
        "Full (12 min)"
      ],
      "default": "Standard (6 min)",
      "question": "How long should it be?"
    },
    {
      "key": "tone",
      "label": "Tone",
      "type": "select",
      "options": [
        "Straight",
        "Conversational",
        "Witty"
      ],
      "default": "Straight",
      "question": "What tone do you like?"
    },
    {
      "key": "cadence",
      "label": "Delivery time",
      "type": "time",
      "default": "07:00",
      "question": "What time should it arrive?"
    },
    {
      "key": "masthead",
      "label": "Masthead name",
      "type": "text",
      "default": "The Morning Edition",
      "question": "What should the paper be called?"
    },
    {
      "key": "tickers",
      "label": "Tickers and teams to follow",
      "type": "text-list",
      "default": [],
      "question": "Any stocks or sports teams to follow?"
    },
    {
      "key": "sourcesAvoid",
      "label": "Outlets to skip",
      "type": "text-list",
      "default": [],
      "question": "Any news outlets to skip?"
    }
  ],
  "whatYouGet": [
    "A dated front page with your masthead and a one-line read on the day",
    "2\u20133 lead stories, each linked to a source from the last 24 hours",
    "Your chosen topics, 1\u20133 stories each",
    "Markets with an 'as of' time, and your own tickers",
    "Local weather with what it means for your plans",
    "Today's calendar, with conflicts flagged",
    "One long read worth saving for later"
  ],
  "dataSources": [
    {
      "name": "Web search",
      "required": true
    },
    {
      "name": "Weather (web)",
      "required": true
    },
    {
      "name": "Google Calendar or Outlook Calendar",
      "required": false
    },
    {
      "name": "Gmail or Outlook (Inbox watch)",
      "required": false
    }
  ],
  "setupTime": "3 minutes",
  "sampleOutput": "samples/morning-newspaper.md",
  "skillFile": "skills/morning-newspaper/SKILL.md",
  "version": "1.0.0",
  "license": "",
  "previewAlt": "A Morning Edition newspaper for Denver, Saturday Oct 31: a front-page local story, weather, today's calendar and a long-read pick.",
  "writesOrSends": "Read-only. Posts the paper to your chat; asks before emailing it anywhere.",
  "audience": "people",
  "setup": [
    {
      "key": "topics",
      "question": "Which topics should your paper cover?",
      "type": "multi-toggle",
      "default": [
        "World",
        "Technology",
        "Business",
        "Science"
      ],
      "options": [
        "World",
        "Local",
        "Politics",
        "Business",
        "Technology",
        "AI",
        "Science",
        "Health",
        "Climate",
        "Sports",
        "Culture",
        "Books",
        "Design",
        "Startups",
        "Crypto"
      ]
    },
    {
      "key": "sections",
      "question": "Which sections do you want?",
      "type": "multi-toggle",
      "default": [
        "Front page",
        "Topics",
        "Markets",
        "Weather",
        "Your day",
        "The long read"
      ],
      "options": [
        "Front page",
        "Topics",
        "Markets",
        "Weather",
        "Your day",
        "The long read",
        "Inbox watch",
        "On this day",
        "Quote of the day"
      ]
    },
    {
      "key": "length",
      "question": "How long should it be?",
      "type": "select",
      "default": "Standard (6 min)",
      "options": [
        "Brief (3 min)",
        "Standard (6 min)",
        "Full (12 min)"
      ]
    },
    {
      "key": "tone",
      "question": "What tone do you like?",
      "type": "select",
      "default": "Straight",
      "options": [
        "Straight",
        "Conversational",
        "Witty"
      ]
    },
    {
      "key": "cadence",
      "question": "What time should it arrive?",
      "type": "time",
      "default": "07:00"
    },
    {
      "key": "masthead",
      "question": "What should the paper be called?",
      "type": "text",
      "default": "The Morning Edition"
    },
    {
      "key": "tickers",
      "question": "Any stocks or sports teams to follow?",
      "type": "text-list",
      "default": []
    },
    {
      "key": "sourcesAvoid",
      "question": "Any news outlets to skip?",
      "type": "text-list",
      "default": []
    }
  ],
  "safety": {
    "dataAccess": [
      "Public web news and weather (search and page reads)",
      "Calendar events for today: titles, times, attendees (only if connected)",
      "Email subject lines and senders from the last 24 hours (only if Inbox watch is on)"
    ],
    "writesOrSends": "Read-only. Posts the paper to your chat; asks before emailing it anywhere.",
    "estCost": "Medium: one run a day (~30 a month). Each run does several web searches and page reads; Full length roughly doubles that.",
    "costLevel": "medium",
    "warnings": [
      "Calendar and inbox details appear in the paper, so don't post it to a shared channel unless you're fine with others seeing them.",
      "Markets data is delayed; the paper shows an 'as of' time. Not financial advice."
    ]
  },
  "checked": {
    "instructionOnly": true,
    "scripts": false,
    "runtimeFetch": false,
    "sha256": "6547a1ad382beb73bee153f79ab7f4c9785d1fc358b7d5e61bba263204807836",
    "checkedOn": "2026-10-31"
  },
  "urls": {
    "page": "https://botplaza.lol/skills/morning-newspaper/",
    "markdown": "https://botplaza.lol/skills/morning-newspaper.md",
    "skillMd": "https://botplaza.lol/skills/morning-newspaper/SKILL.md",
    "json": "https://botplaza.lol/skills/morning-newspaper.json",
    "zip": "https://botplaza.lol/downloads/morning-newspaper.zip",
    "mcp": "https://botplaza.lol/api/mcp"
  }
}