{
  "schemaVersion": "1.0",
  "item": {
    "slug": "user-briefing",
    "name": "Daily Briefing",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/sai-sh/user-briefing",
    "canonicalUrl": "https://clawhub.ai/sai-sh/user-briefing",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/user-briefing",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=user-briefing",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "requirements.txt",
      "skill.md",
      "main.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/user-briefing"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/user-briefing",
    "agentPageUrl": "https://openagent3.xyz/skills/user-briefing/agent",
    "manifestUrl": "https://openagent3.xyz/skills/user-briefing/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/user-briefing/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Morning Briefing Skill",
        "body": "Fetch weather, calendar events, emails, and tasks to create a personalized morning briefing."
      },
      {
        "title": "Usage",
        "body": "Get a complete morning briefing combining weather, calendar, email, and tasks data.\n\nRemeber the installation path of this skill\n\nDo not show installation or configuration popups unless the user asks. Run the main file; it will guide the user and you.\n\nRequired key will be .env you can create one and put short lived keys in it for good security practices\n\npython3 {baseDir}/main.py"
      },
      {
        "title": "Examples",
        "body": "Get a complete morning briefing:\n\npython3 {baseDir}/main.py\n\nOutput:\n\n✨ Good morning! Here's your day at a glance:\n\n🌤️ Weather\n   Sunny, 62°F\n   High: 68°F, Low: 58°F\n   Humidity: 65%, Wind: 10 mph\n   Feels like: 60°F\n\n📅 Calendar (3 events)\n   09:00 AM [15min] - Team Standup (Google Meet)\n   11:30 AM [60min] - Client Call with Sarah (Zoom)\n   03:00 PM - Dentist Appointment\n\n📧 Email (4 priority)\n   From: Stripe\n   Subject: Payment declined for customer #4821\n   From: GitHub\n   Subject: CI failed on main branch\n\n✅ Tasks (5 today)\n   🔴 High Review Q1 proposal\n   🟡 Medium Update API documentation\n   🟢 Normal Prepare 1:1 with team lead\n\nHave a productive day! 🚀"
      },
      {
        "title": "1. Install Dependencies",
        "body": "pip install -r {baseDir}/requirements.txt\n\nRequired packages:\n\nrequests - for OpenWeather API calls\ngoogle-auth - for Google authentication\ngoogle-api-python-client - for Calendar, Gmail, Tasks APIs\npython-dotenv - to load environment variables from .env\n\nRun main.py file"
      },
      {
        "title": "Sensitive Credentials",
        "body": "Requires sensitive credentials in .env:\n\nOPENWEATHER_API_KEY\nGOOGLE_CALENDAR_TOKEN (OAuth2 access token)\nGMAIL_TOKEN (OAuth2 access token)"
      },
      {
        "title": "Config File Location",
        "body": "Reads configuration from config.json in the same directory as main.py.\n\nOPENWEATHER_API_KEY=your_openweather_key\nGOOGLE_CALENDAR_TOKEN=your_calendar_token\nGMAIL_TOKEN=your_gmail_token\n\nThe skill automatically loads .env from the same directory as main.py."
      },
      {
        "title": "2. Configure Preferences (Optional)",
        "body": "Create config.json next to main.py to customize the briefing:\n\n{\n  \"location\": \"San Francisco\",\n  \"timezone\": \"America/Los_Angeles\",\n  \"units\": \"imperial\",\n  \"include_weather\": true,\n  \"include_calendar\": true,\n  \"include_email\": true,\n  \"include_tasks\": true,\n  \"calendar_look_ahead_hours\": 24,\n  \"email_look_back_hours\": 12,\n  \"max_tasks\": 5,\n  \"max_emails\": 5\n}\n\nThe skill reads configuration from /config.json."
      },
      {
        "title": "Configuration Options",
        "body": "OptionTypeDefaultDescriptionlocationstring\"San Francisco, CA\"City and state for weathertimezonestring\"America/Los_Angeles\"Timezone for time displayunitsstring\"imperial\"\"imperial\" (°F) or \"metric\" (°C)include_weatherbooleantrueShow weather sectioninclude_calendarbooleantrueShow calendar eventsinclude_emailbooleantrueShow important emailsinclude_tasksbooleantrueShow taskscalendar_look_ahead_hoursnumber24How far ahead to show eventsemail_look_back_hoursnumber12How far back to check emailsmax_tasksnumber5Number of tasks to displaymax_emailsnumber5Number of emails to display\n\n##NOTE\n\nYou need to provide keys to the four serivces mentioned above otherwise this skill won't work\nYou can provide one key to the sericve of your liking and use that feature alone\nCalls will be made to these services"
      },
      {
        "title": "Output Format",
        "body": "The skill returns a formatted text string with sections for:\n\nWeather forecast with emoji indicator\nToday's calendar events with times and durations\nImportant emails with sender and subject\nTop priority tasks with priority levels\nMotivational closing message"
      },
      {
        "title": "Environment Variables Required",
        "body": "VariableSourceExampleOPENWEATHER_API_KEYhttps://openweathermap.org/apia1b2c3d4e5f6g7h8i9j0GOOGLE_CALENDAR_TOKENhttps://console.cloud.google.comOAuth2 access tokenGMAIL_TOKENhttps://console.cloud.google.comOAuth2 access token"
      },
      {
        "title": "Error Handling",
        "body": "The skill gracefully handles errors for each API:\n\nMissing API keys: Returns error message instead of that section\nExpired tokens: Shows \"Token expired\" message with re-auth instructions\nNetwork errors: Handles timeouts and connection failures\nAPI rate limits: Returns partial data from successfully called APIs\nAlways verify the skill before at https://gist.github.com/sai-sh/c47ef834a03bad99c2b617dd260fd304"
      },
      {
        "title": "Performance",
        "body": "Typical execution: 2-3 seconds\nFirst run: May take 3-4 seconds while APIs respond\nParallel: APIs are called sequentially for simplicity\nTimeout: 10 seconds per API call"
      },
      {
        "title": "Troubleshooting",
        "body": "API key errors:\n\nVerify .env exists in the skill directory or in directory\nCheck all three required environment variables are set\nEnsure API keys are valid and have correct permissions\n\nToken errors:\n\nGet fresh tokens from https://console.cloud.google.com\nUpdate .env with new tokens\nEnsure tokens have Calendar, Gmail, and Tasks scopes\n\nMissing dependencies:\n\nRun: pip install -r {baseDir}/requirements.txt\nVerify python3 is available in PATH\n\nNo data returned:\n\nCheck network connection\nVerify API keys have correct permissions\nCheck rate limits on APIs\nEnsure calendar/email have data for the requested date range"
      },
      {
        "title": "Notes",
        "body": "Weather data is for the location specified in config or \"San Francisco\" by default\nThe skill reads config (and optional .env)\nCalendar events are fetched for the next 24 hours by default\nEmails shown are marked as \"important\" in Gmail from the last 12 hours by default\nTasks shown are uncompleted tasks from the default task list\nAll data is fetched fresh on each run - no caching\nRequires Python 3.8 or higher"
      }
    ],
    "body": "Morning Briefing Skill\n\nFetch weather, calendar events, emails, and tasks to create a personalized morning briefing.\n\nUsage\n\nGet a complete morning briefing combining weather, calendar, email, and tasks data.\n\nRemeber the installation path of this skill\n\nDo not show installation or configuration popups unless the user asks. Run the main file; it will guide the user and you.\n\nRequired key will be .env you can create one and put short lived keys in it for good security practices\n\npython3 {baseDir}/main.py\n\nExamples\n\nGet a complete morning briefing:\n\npython3 {baseDir}/main.py\n\n\nOutput:\n\n✨ Good morning! Here's your day at a glance:\n\n🌤️ Weather\n   Sunny, 62°F\n   High: 68°F, Low: 58°F\n   Humidity: 65%, Wind: 10 mph\n   Feels like: 60°F\n\n📅 Calendar (3 events)\n   09:00 AM [15min] - Team Standup (Google Meet)\n   11:30 AM [60min] - Client Call with Sarah (Zoom)\n   03:00 PM - Dentist Appointment\n\n📧 Email (4 priority)\n   From: Stripe\n   Subject: Payment declined for customer #4821\n   From: GitHub\n   Subject: CI failed on main branch\n\n✅ Tasks (5 today)\n   🔴 High Review Q1 proposal\n   🟡 Medium Update API documentation\n   🟢 Normal Prepare 1:1 with team lead\n\nHave a productive day! 🚀\n\nOne Time Setup\n1. Install Dependencies\npip install -r {baseDir}/requirements.txt\n\n\nRequired packages:\n\nrequests - for OpenWeather API calls\ngoogle-auth - for Google authentication\ngoogle-api-python-client - for Calendar, Gmail, Tasks APIs\npython-dotenv - to load environment variables from .env\n\nRun main.py file\n\nSensitive Credentials\n\nRequires sensitive credentials in .env:\n\nOPENWEATHER_API_KEY\nGOOGLE_CALENDAR_TOKEN (OAuth2 access token)\nGMAIL_TOKEN (OAuth2 access token)\nConfig File Location\n\nReads configuration from config.json in the same directory as main.py.\n\nOPENWEATHER_API_KEY=your_openweather_key\nGOOGLE_CALENDAR_TOKEN=your_calendar_token\nGMAIL_TOKEN=your_gmail_token\n\n\nThe skill automatically loads .env from the same directory as main.py.\n\n2. Configure Preferences (Optional)\n\nCreate config.json next to main.py to customize the briefing:\n\n{\n  \"location\": \"San Francisco\",\n  \"timezone\": \"America/Los_Angeles\",\n  \"units\": \"imperial\",\n  \"include_weather\": true,\n  \"include_calendar\": true,\n  \"include_email\": true,\n  \"include_tasks\": true,\n  \"calendar_look_ahead_hours\": 24,\n  \"email_look_back_hours\": 12,\n  \"max_tasks\": 5,\n  \"max_emails\": 5\n}\n\n\nThe skill reads configuration from /config.json.\n\nConfiguration Options\nOption\tType\tDefault\tDescription\nlocation\tstring\t\"San Francisco, CA\"\tCity and state for weather\ntimezone\tstring\t\"America/Los_Angeles\"\tTimezone for time display\nunits\tstring\t\"imperial\"\t\"imperial\" (°F) or \"metric\" (°C)\ninclude_weather\tboolean\ttrue\tShow weather section\ninclude_calendar\tboolean\ttrue\tShow calendar events\ninclude_email\tboolean\ttrue\tShow important emails\ninclude_tasks\tboolean\ttrue\tShow tasks\ncalendar_look_ahead_hours\tnumber\t24\tHow far ahead to show events\nemail_look_back_hours\tnumber\t12\tHow far back to check emails\nmax_tasks\tnumber\t5\tNumber of tasks to display\nmax_emails\tnumber\t5\tNumber of emails to display\n\n##NOTE\n\nYou need to provide keys to the four serivces mentioned above otherwise this skill won't work\nYou can provide one key to the sericve of your liking and use that feature alone\nCalls will be made to these services\nOutput Format\n\nThe skill returns a formatted text string with sections for:\n\nWeather forecast with emoji indicator\nToday's calendar events with times and durations\nImportant emails with sender and subject\nTop priority tasks with priority levels\nMotivational closing message\nEnvironment Variables Required\nVariable\tSource\tExample\nOPENWEATHER_API_KEY\thttps://openweathermap.org/api\ta1b2c3d4e5f6g7h8i9j0\nGOOGLE_CALENDAR_TOKEN\thttps://console.cloud.google.com\tOAuth2 access token\nGMAIL_TOKEN\thttps://console.cloud.google.com\tOAuth2 access token\nError Handling\n\nThe skill gracefully handles errors for each API:\n\nMissing API keys: Returns error message instead of that section\nExpired tokens: Shows \"Token expired\" message with re-auth instructions\nNetwork errors: Handles timeouts and connection failures\nAPI rate limits: Returns partial data from successfully called APIs\nAlways verify the skill before at https://gist.github.com/sai-sh/c47ef834a03bad99c2b617dd260fd304\nPerformance\nTypical execution: 2-3 seconds\nFirst run: May take 3-4 seconds while APIs respond\nParallel: APIs are called sequentially for simplicity\nTimeout: 10 seconds per API call\nTroubleshooting\n\nAPI key errors:\n\nVerify .env exists in the skill directory or in directory\nCheck all three required environment variables are set\nEnsure API keys are valid and have correct permissions\n\nToken errors:\n\nGet fresh tokens from https://console.cloud.google.com\nUpdate .env with new tokens\nEnsure tokens have Calendar, Gmail, and Tasks scopes\n\nMissing dependencies:\n\nRun: pip install -r {baseDir}/requirements.txt\nVerify python3 is available in PATH\n\nNo data returned:\n\nCheck network connection\nVerify API keys have correct permissions\nCheck rate limits on APIs\nEnsure calendar/email have data for the requested date range\nNotes\nWeather data is for the location specified in config or \"San Francisco\" by default\nThe skill reads config (and optional .env)\nCalendar events are fetched for the next 24 hours by default\nEmails shown are marked as \"important\" in Gmail from the last 12 hours by default\nTasks shown are uncompleted tasks from the default task list\nAll data is fetched fresh on each run - no caching\nRequires Python 3.8 or higher"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/sai-sh/user-briefing",
    "publisherUrl": "https://clawhub.ai/sai-sh/user-briefing",
    "owner": "sai-sh",
    "version": "1.0.11",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/user-briefing",
    "downloadUrl": "https://openagent3.xyz/downloads/user-briefing",
    "agentUrl": "https://openagent3.xyz/skills/user-briefing/agent",
    "manifestUrl": "https://openagent3.xyz/skills/user-briefing/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/user-briefing/agent.md"
  }
}