{
  "id": "weekly-review",
  "name": "Weekly Review",
  "type": "bundle",
  "platform": "grokBot",
  "prompt": "Install the BotPlaza bundle \"Weekly Review\" (3 skills). For each skill below, save it as a skill with its exact name. Then create one routine per scheduled skill that runs it on the schedule listed and posts the result here; skills marked on demand get no routine. Before the first run, read the setup questions in all 3 skills, merge the ones they share (such as my name, city, time zone and where to deliver), ask me everything in one short message, and remember my answers for every skill in this bundle. When you're done, list the skills and routines you created. Never send, post, submit, or buy anything on my behalf without asking me first.\n\n1. Reading Digest: routine every Friday at 5:00 PM\n2. Weekly Planner: routine every Sunday at 6:00 PM\n3. Weekly Fitness Summary: routine every Sunday at 7:00 PM\n\n=== Skill 1 of 3: Reading Digest ===\n\n---\nname: reading-digest\ndescription: Use when the user asks for a reading digest, paper digest, \"what's new in {field}\", a weekly roundup of research papers, newsletters, or saved articles, or when a scheduled reading routine runs. Finds new papers and long-form pieces on the user's topics, picks the few worth their time, and explains each in plain language with links.\nmetadata:\n  id: reading-digest\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Reading Digest\n\n> This week's papers worth reading, each explained in three lines.\n\n## What it does\n\nThe handful of papers and essays from this week worth your time, each explained in three plain sentences, so you can decide what to actually read.\n\n## When to use\n\n- \"What's new in {field} this week\", \"summarize this week's papers on {topic}\", \"go through my saved articles\".\n- A weekly routine (default: Friday 5:00 PM).\n\n## Requires\n\nWeb search and web access (arXiv, journals, preprint servers). Optional: a read-later app (Readwise, Instapaper, Notion) to save picks.\n\n## Schedule\n\nDefault: Weekly, Friday 5:00 PM. 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\n| Setting | Default | Notes |\n|---|---|---|\n| `topics` | ask | E.g. \"LLM agents\", \"CRISPR delivery\", \"urban planning\". Up to 5. |\n| `sources` | preprints, journals, quality long-form | Toggle: arXiv, bioRxiv/medRxiv, SSRN, journals, newsletters, the user's read-later list, specific blogs. |\n| `window` | last 7 days | |\n| `count` | 5 | Items in the digest. |\n| `level` | informed non-specialist | Or `expert` (keep jargon, add methods detail) or `beginner`. |\n| `include_skipped` | yes | A short \"also out this week\" list. |\n\n## Steps\n\n1. **Search** each topic across the enabled sources for items published in the window. Collect title, authors, venue, date, and link.\n2. **Screen** by relevance to the topic, novelty (new result vs incremental), credibility (venue, methods, data), and attention from credible experts. Note when something is a preprint and not peer reviewed.\n3. **Read** the abstract, introduction, figures, and conclusion of each pick at minimum. For articles, read the whole piece.\n4. **Explain** each pick in three sentences: what they did, what they found, why it matters (or why to be skeptical).\n5. **Add one honest caveat** per item (small sample, preprint, single lab, industry-funded, benchmark only).\n6. **Write** in the format below, ordered by how much the user should care.\n\n## Output format\n\n```markdown\n# Reading digest · {topics} · week of {date}\n*{N} items reviewed, {count} picked*\n\n## 1. {Title}\n{Authors (first author et al.)} · {Venue or \"Preprint\"} · {date} · ~{X} min read\n**What:** {one sentence} **Found:** {one sentence} **Why it matters:** {one sentence}\n*Caveat: {one line}*\n[Read]({url})\n\n## Also out this week\n- [{Title}]({url}), {one line}\n```\n\n## Edge cases\n\n- **Nothing notable:** say so and list the 2 or 3 closest items instead of padding.\n- **Paywalled:** use the abstract and say so; link a free version if the authors posted one.\n- **Retractions or major corrections** to anything in past digests: lead with them.\n\n## Boundaries\n\nSummarize and link; don't reproduce full text. Never state a finding more strongly than the authors do.\n\n=== Skill 2 of 3: Weekly Planner ===\n\n---\nname: weekly-planner\ndescription: Use when the user asks to plan their week, \"what does my week look like\", for a Sunday or Monday planning session, or when a weekly planning routine runs. Combines calendar, open tasks, and stated priorities into a realistic week plan with top 3 outcomes, protected focus blocks, a day-by-day view, and overload warnings.\nmetadata:\n  id: weekly-planner\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Weekly Planner\n\n> A week plan that fits the hours you actually have.\n\n## What it does\n\nStart the week with a plan that fits the time you actually have: three outcomes that matter, focus time protected, and early warning when the week is overbooked.\n\n## When to use\n\n- \"Plan my week\", \"how busy am I this week\", \"help me prioritize\", Sunday evening or Monday morning planning.\n- A weekly routine (default: Sunday 6:00 PM).\n\n## Requires\n\nA calendar connector. A task source (Notion, Todoist, Linear, a doc, or a list in chat) is optional. Without one, ask the user for this week's to-dos.\n\n## Schedule\n\nDefault: Weekly, Sunday 6:00 PM. 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\n| Setting | Default | Notes |\n|---|---|---|\n| `week_start` | Monday | |\n| `work_hours` | 9:00–17:00, Mon–Fri | Used to calculate free time. |\n| `focus_block` | 2 hours | Minimum length of a protected deep-work block. |\n| `priorities` | ask | 1 to 3 goals for the week or quarter. Saved between weeks. |\n| `include_personal` | yes | Workouts, family, errands. |\n| `create_blocks` | off | If on, propose calendar holds and create them only after approval. |\n\n## Steps\n\n1. **Read the week:** every event Monday to Sunday with start, end, and attendees. Total meeting hours per day.\n2. **Find free time:** gaps inside `work_hours` that are at least `focus_block` long.\n3. **Collect tasks:** open tasks due this week or overdue, plus anything the user lists. Estimate effort when missing (S = under 1 h, M = 1–3 h, L = half day or more) and mark estimates as estimates.\n4. **Pick the top 3 outcomes:** results, not activities (\"Send the Q4 budget to finance\", not \"Work on budget\"), tied to stated priorities and hard deadlines.\n5. **Fit the work:** assign each top outcome to a specific free block. If the work doesn't fit, say so and suggest what to drop, delegate, or move.\n6. **Flag problems:** days over 5 hours of meetings, back-to-backs over 3 hours, deadlines with no time before them, conflicts, and evenings or weekends being eaten.\n7. **Write the plan** in the format below.\n8. **Offer calendar holds** for the focus blocks. Create them only after the user approves.\n\n## Output format\n\n```markdown\n# Week of {Mon D} – {Sun D}\n**{X} h of meetings · {Y} h of open focus time · {Z} tasks due**\n\n## This week's top 3\n1. **{Outcome}**, scheduled {day, time}. Why: {priority or deadline}\n\n## Day by day\n| Day | Meetings | Focus block | Main task |\n|---|---|---|---|\n\n## Heads up\n- {Overload, conflict, or deadline risk, with a suggested fix}\n\n## Can wait\n- {Tasks deliberately pushed to next week}\n```\n\n## Edge cases\n\n- **Wall-to-wall week:** say plainly that the top 3 won't fit and propose which meetings to decline or shorten. Never decline on the user's behalf.\n- **Holiday or travel:** remove those days from capacity and say so.\n- **No priorities given:** infer from deadlines and recurring themes, label them \"inferred\", and ask the user to confirm.\n\n## Boundaries\n\n- Read-only unless the user approves calendar holds. Never accept, decline, or move meetings on the user's behalf.\n- Never message attendees or share the plan without the user's approval.\n\n=== Skill 3 of 3: Weekly Fitness Summary ===\n\n---\nname: weekly-fitness-summary\ndescription: Use when the user asks how their training went this week, for a fitness or workout recap, progress toward a running, cycling, or step goal, or when a weekly fitness routine runs. Summarizes activities, volume, intensity, sleep and recovery, compares against last week and the 4-week average, and suggests next week's focus. Not medical advice.\nmetadata:\n  id: weekly-fitness-summary\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Weekly Fitness Summary\n\n> Your training week in one page, with one clear focus for next.\n\n## What it does\n\nSee your week of training at a glance: what you did, how it compares, whether you're recovering, and one clear focus for next week.\n\n## When to use\n\n- \"How was my training this week\", \"weekly workout summary\", \"am I on track for my half marathon\".\n- A weekly routine (default: Sunday 7:00 PM).\n\n## Requires\n\nAt least one activity data source: Strava, Garmin Connect, Apple Health export, Google Fit, Oura, Whoop, or a CSV the user shares. If none is connected, ask the user to paste or upload this week's activities.\n\n## Schedule\n\nDefault: Weekly, Sunday 7:00 PM. 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\n| Setting | Default | Notes |\n|---|---|---|\n| `goal` | none | E.g. \"sub-2:00 half marathon on Apr 12\", \"4 workouts a week\", \"10k steps a day\". |\n| `sports` | all logged | Toggle: run, ride, swim, strength, walk, yoga, other. |\n| `units` | metric | Or imperial. |\n| `metrics` | volume, time, intensity, sleep | Toggle: HR zones, pace or power, elevation, resting HR, HRV, steps. |\n| `coach_tone` | encouraging | `encouraging`, `neutral`, or `blunt`. |\n\n## Steps\n\n1. **Collect** all activities from Monday to Sunday (user's timezone): type, date, duration, distance, elevation, average HR or pace or power, and perceived effort if logged.\n2. **Collect recovery data** if available: nightly sleep, resting HR, HRV.\n3. **Compute:** totals by sport, total training time, number of sessions, longest session, and time in each intensity zone if HR data exists.\n4. **Compare** with last week and the 4-week average. Flag a week-over-week jump in volume above 10% to 15% as a load spike.\n5. **Check against the goal:** on track, ahead, or behind, with the number that decides it.\n6. **Suggest one focus** for next week, based on the data (e.g. \"Hold volume steady; your load jumped 28%\").\n7. **Write** in the format below. Celebrate real wins with numbers, not empty praise.\n\n## Output format\n\n```markdown\n# Your training week · {Mon D} – {Sun D}\n**{N} sessions · {H} h {M} min · {distance}**\n\n| | This week | Last week | 4-wk avg |\n|---|---|---|---|\n\n## Highlights\n- {Best effort or milestone, with the number}\n\n## Recovery\n{Sleep average, resting HR trend, HRV trend, one line on what it suggests}\n\n## Goal check\n{Goal}: **{on track / ahead / behind}**. {The deciding number.}\n\n## Next week's focus\n{One sentence, one reason.}\n```\n\n## Edge cases\n\n- **Missing or duplicate activities** (watch and phone both logged): de-duplicate by start time and duration, and say so.\n- **Rest or sick week:** report it plainly, without guilt, and suggest an easy return.\n- **Pain, injury, chest pain, or dizziness mentioned:** don't coach through it. Recommend seeing a medical professional.\n\n## Boundaries\n\nThis is a training summary, not medical advice. Don't post to Strava or social accounts without approval.",
  "steps": [
    "Paste the prompt into a one-to-one chat with your Grok Bot (it already contains all 3 SKILL.md files).",
    "Answer the one round of setup questions, and connect any apps it asks for from the connect card.",
    "Check the routines in the Bot's info pane under Routines; pause or edit any of them there."
  ],
  "members": [
    {
      "slug": "reading-digest",
      "name": "Reading Digest",
      "schedule": "every Friday at 5:00 PM",
      "trigger": null,
      "setup": [
        {
          "key": "topics",
          "question": "Which topics do you want to read about?",
          "type": "text-list",
          "default": []
        },
        {
          "key": "sources",
          "question": "Which sources should it pull from?",
          "type": "multi-toggle",
          "default": [
            "arXiv",
            "Journals",
            "Newsletters"
          ],
          "options": [
            "arXiv",
            "bioRxiv / medRxiv",
            "SSRN",
            "Journals",
            "Newsletters",
            "My read-later list",
            "Specific blogs"
          ]
        },
        {
          "key": "count",
          "question": "How many items per digest?",
          "type": "select",
          "default": "5",
          "options": [
            "3",
            "5",
            "10"
          ]
        },
        {
          "key": "level",
          "question": "How technical should explanations be?",
          "type": "select",
          "default": "Informed non-specialist",
          "options": [
            "Beginner",
            "Informed non-specialist",
            "Expert"
          ]
        },
        {
          "key": "cadence",
          "question": "When should the digest arrive?",
          "type": "select",
          "default": "Weekly (Friday)",
          "options": [
            "Weekly (Friday)",
            "Daily",
            "Monthly"
          ]
        }
      ],
      "urls": {
        "markdown": "https://botplaza.lol/skills/reading-digest.md",
        "json": "https://botplaza.lol/skills/reading-digest.json",
        "page": "https://botplaza.lol/skills/reading-digest/"
      }
    },
    {
      "slug": "weekly-planner",
      "name": "Weekly Planner",
      "schedule": "every Sunday at 6:00 PM",
      "trigger": null,
      "setup": [
        {
          "key": "cadence",
          "question": "When should the plan arrive?",
          "type": "select",
          "default": "Sunday 6:00 PM",
          "options": [
            "Sunday 6:00 PM",
            "Monday 7:00 AM",
            "On demand"
          ]
        },
        {
          "key": "workHours",
          "question": "What are your work hours?",
          "type": "text",
          "default": "Mon–Fri, 9:00–17:00"
        },
        {
          "key": "focusBlock",
          "question": "What's the shortest focus block worth planning?",
          "type": "select",
          "default": "2 hours",
          "options": [
            "1 hour",
            "2 hours",
            "3 hours"
          ]
        },
        {
          "key": "includePersonal",
          "question": "Should it include personal plans?",
          "type": "boolean",
          "default": true
        },
        {
          "key": "createBlocks",
          "question": "Should it offer to hold focus time on your calendar?",
          "type": "boolean",
          "default": false
        }
      ],
      "urls": {
        "markdown": "https://botplaza.lol/skills/weekly-planner.md",
        "json": "https://botplaza.lol/skills/weekly-planner.json",
        "page": "https://botplaza.lol/skills/weekly-planner/"
      }
    },
    {
      "slug": "weekly-fitness-summary",
      "name": "Weekly Fitness Summary",
      "schedule": "every Sunday at 7:00 PM",
      "trigger": null,
      "setup": [
        {
          "key": "goal",
          "question": "What are you training for?",
          "type": "text",
          "default": ""
        },
        {
          "key": "sports",
          "question": "Which sports do you do?",
          "type": "multi-toggle",
          "default": [
            "Run",
            "Ride",
            "Swim",
            "Strength",
            "Walk",
            "Yoga",
            "Other"
          ],
          "options": [
            "Run",
            "Ride",
            "Swim",
            "Strength",
            "Walk",
            "Yoga",
            "Other"
          ]
        },
        {
          "key": "metrics",
          "question": "Which numbers do you care about?",
          "type": "multi-toggle",
          "default": [
            "Volume",
            "Time",
            "Intensity / HR zones",
            "Sleep"
          ],
          "options": [
            "Volume",
            "Time",
            "Intensity / HR zones",
            "Pace or power",
            "Elevation",
            "Sleep",
            "Resting HR",
            "HRV",
            "Steps"
          ]
        },
        {
          "key": "units",
          "question": "Metric or imperial?",
          "type": "select",
          "default": "Metric",
          "options": [
            "Metric",
            "Imperial"
          ]
        },
        {
          "key": "tone",
          "question": "How should your coach sound?",
          "type": "select",
          "default": "Encouraging",
          "options": [
            "Encouraging",
            "Neutral",
            "Blunt"
          ]
        }
      ],
      "urls": {
        "markdown": "https://botplaza.lol/skills/weekly-fitness-summary.md",
        "json": "https://botplaza.lol/skills/weekly-fitness-summary.json",
        "page": "https://botplaza.lol/skills/weekly-fitness-summary/"
      }
    }
  ],
  "safety": {
    "dataAccess": [
      "Public papers and articles (search and page reads)",
      "Your saved read-later items (if connected)",
      "Next week's calendar events",
      "Open tasks and due dates (if a task app is connected)",
      "Calendar write access, only for holds you approve",
      "Workouts, distance, pace, heart rate, sleep and recovery data from your chosen source"
    ],
    "writesOrSends": [
      "Reading Digest: Read-only.",
      "Weekly Planner: Read-only unless you approve calendar holds.",
      "Weekly Fitness Summary: Read-only. Never posts to Strava or social accounts."
    ],
    "estCost": [
      "Reading Digest: Low: ~4 runs a month.",
      "Weekly Planner: Low: ~4 runs a month.",
      "Weekly Fitness Summary: Low: ~4 runs a month."
    ],
    "costLevel": "light",
    "warnings": [
      "Summaries can miss nuance; open the paper before citing it.",
      "It only creates calendar holds after you say yes to each plan.",
      "Your assistant needs calendar write permission for holds; read-only works for planning alone.",
      "Health data is sensitive: connect only what you want summarized.",
      "Not medical advice. It suggests a training focus, not a diagnosis.",
      "It never posts to Strava or social accounts."
    ]
  }
}