Install
$ agentstack add skill-jmlozano1990-cowork-starter-kit-daily-briefing ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
When to use
Use at the start of Casey's day when a structured intention-setting ritual is needed — schedule, open tasks, pending follow-ups, and a one-line focus intention. Edge case: when no calendar, tasks, or people data are available, the skill prompts for user input rather than fabricating a briefing.
Triggers
- User says "daily briefing", "morning brief", "what's on my plate today", "what's my day look like", or names this skill directly.
- User asks "what should I focus on today" or asks for a rundown of their calendar or schedule.
Do NOT fire merely because a message is the first of a session or day — a first message about a specific task belongs to that task's skill. Offer a briefing at session start only when the message itself is an open "good morning"-style check-in with no other intent.
Instructions
- Determine invocation path. If invoked via Trigger 1 (user typed "morning brief", "daily briefing", "what's on my plate", etc.), proceed directly. If invoked via Trigger 2, 3, or 4 (proactive-offer per
examples/personal-assistant/global-instructions.mdline 19), wait for user confirmation before reading any files. Do NOT auto-execute. - Read sources with graceful-degradation ladder. Read
Calendar/folder (any*.mdfiles matching today's date or a date range that includes today). If folder is missing or empty: note "No calendar entries found for today" in the Time blocks section. Do NOT error. ReadTasks/folder (any*.mdfiles). If folder is missing or empty: note "No tasks tracked" in the Priorities section. Do NOT error. ReadPeople/folder (any*.mdfiles). If folder is missing or empty: note "No people-tracked follow-ups" inline in the Priorities or Time blocks section as appropriate. Do NOT error. If all three folders are missing AND no inline context is provided, ask the user: "I can produce a briefing if you paste today's calendar / tasks / follow-ups, or point me at the right folders." Do NOT generate a fabricated briefing. - Ask the three intention questions. Ask: (a) energy level today; (b) priority-one for today; (c) one thing to protect against interruption. If any of these were inferable from a previous session's brief or shared context, surface that and ask for confirmation rather than re-asking.
- Draft the priority-ordered structure. Condense the Tasks/ + People/ content into at most 3 ranked priorities. Do NOT produce a 10-item priority list — see anti-pattern 1 below.
- Add time blocks. Build a table with three columns: time range, activity, priority-link. Each time block links to one of the at-most-3 priorities or to the Protect item. Do NOT add unsolicited time-blocks not derived from user-stated priorities.
- Write the one-line "why today matters" intention. One sentence, in the user's voice. Consult
context/writing-profile.mdfor the Intention line (see## Writing-profile integration). - Present for user confirmation before saving any file or scheduling any event. Ask: "Does this brief match your day, or should I adjust priorities or time-blocks?" Do NOT save to file silently.
Output format
The output must contain exactly these four labeled sections in this order:
- Intention — one line. The "why today matters" sentence in the user's voice.
- Priorities — at most 3 bullets, ranked. Each bullet is at most one line.
- Time blocks — markdown table with three columns: time range | activity | priority-link.
- Protect — one item. The single thing to defend against interruption.
No additional sections. No "Tomorrow" preview. No moralizing summary at the end.
Quality criteria
- Intention is one line, not a paragraph.
- Priorities are at most 3 (not a task dump from the Tasks/ folder).
- Every time block links to a priority or to the Protect item.
- No moralizing or productivity advice beyond user-named priorities.
Anti-patterns
- Generating a 10-item priority list — violates the at-most-3 focus rule. Condense to the three most consequential items; move the rest to a "parking lot" note only if the user asks.
- Adding unsolicited productivity advice — phrases like "you should also consider...", "this would be a good time to...", or "don't forget to..." are not part of the briefing schema. Omit them.
- Proposing time blocks without asking about energy level — skips Instructions step 3. Energy level affects block duration; always ask before allocating focus blocks.
- Producing a blank or error output when a source folder is absent — Calendar/, Tasks/, or People/ folder missing must result in a partial brief with a noted missing-source line, never an error message and never an empty section.
Example
Vault state (illustrative):
- Calendar/: 3 entries — 9:00 team standup, 14:00 1:1 with manager, 16:30 dentist
- Tasks/: 5 entries — Q2 report draft (overdue), expense report (due today), read onboarding doc, reply to client email, update roadmap slide
- People/: 2 entries — Alex (waiting on Q2 report since Monday), Sarah (asked for expense form last week)
User answers the three intention questions:
- Energy: medium
- Priority-one: finish Q2 report draft for Alex
- Protect: the 10:00–12:00 block from meetings
Output:
Intention: Today is about clearing the two things Alex and Sarah are waiting on so the afternoon is actually mine.
Priorities:
- Q2 report draft — Alex is blocked since Monday
- Expense report — due today, Sarah needs the form
- Reply to client email — low urgency but quick win
Time blocks:
| Time | Activity | Priority | |------|----------|----------| | 9:00 | Team standup | — | | 10:00–12:00 | Q2 report draft | Priority 1 (Protect) | | 12:00 | Expense report + client reply | Priority 2 + 3 | | 14:00 | 1:1 with manager | — | | 16:30 | Dentist | — |
Protect: 10:00–12:00 — Q2 draft block. No meetings, no Slack, phone on silent.
Writing-profile integration
Daily briefings are typically under 200 words. The writing-profile applies selectively:
- Intention line: the user's voice is most present here. Always consult
context/writing-profile.mdfor tone, pet peeves, and anti-AI guidance — even though the line is short. - Priorities, Time blocks, Protect: schematic and terse. Do NOT apply writing-profile tone to priority bullets or table cells; neutrality is correct here.
Example prompts
- "Good morning — what does my day look like?"
- "What's on my plate today? Check my calendar and tasks."
- "Give me a quick briefing before I start work."
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: jmlozano1990
- Source: jmlozano1990/Cowork-Starter-Kit
- License: MIT
- Homepage: https://github.com/jmlozano1990/Cowork-Starter-Kit/releases/latest
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.