daily-report
Generates a comprehensive daily status report to help you prepare for the day.
Install
mkdir -p .claude/skills/daily-report && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/10461" && unzip -o skill.zip -d .claude/skills/daily-report && rm skill.zipInstalls to .claude/skills/daily-report
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Generates a comprehensive daily report covering ADO work items, Teams chats, calendar, email, local mind next-actions, and inbox notes. Run this each morning to get a scannable summary of everything you need to know to start your day. Use when user asks for "daily report", "morning briefing", or "what's on my plate today".Key capabilities
- →Fetch ADO work items
- →Summarize Teams chats
- →Review meeting schedules
- →Surface urgent emails
How it works
It aggregates data from ADO, Teams, and email to provide a unified view of the daily workload and next actions.
Inputs & outputs
When to use daily-report
- →Morning briefing
- →Daily status update
- →Reviewing work items
- →Checking meeting schedule
About this skill
Daily Report Skill
Purpose
Generate a terse, scannable daily report every morning that covers:
- Azure DevOps work item status (active, aging, state changes)
- Teams chat activity (monitored chats + direct mentions)
- Today's calendar and yesterday's meeting recaps
- Urgent and VIP emails + threads awaiting reply
- Local mind next-actions across all initiatives
- Inbox notes and active initiative listing
Required Configuration
This skill reads user-specific values from the user's global copilot instructions (~/.copilot/copilot-instructions.md). The following sections must be present:
Azure DevOps Defaults
- Organization — ADO org URL (e.g.,
https://dev.azure.com/myorg) - Project — ADO project name
- Area Path — Area path for work item queries (with
UNDERsemantics)
Teams Channels
A list of Teams group chats to monitor, each with:
- Chat Name — display name of the chat
- Thread ID — the
19:[email protected]identifier for reliable querying
VIP Contacts
A list of people whose communications should be surfaced with higher priority.
Fallback: If any required configuration section is missing, ask the user for the values and offer to add them to
~/.copilot/copilot-instructions.md.
How to Execute
Execute in 3 steps. ADO is fetched FIRST so that work item titles and IDs can be passed as context into the Teams and email queries for better correlation.
Step 1: Fetch ADO Context (run both in parallel, BEFORE other queries)
These queries establish what the user is actively working on. Their results (work item titles and IDs) will be injected into the Teams and email queries in Step 2.
IMPORTANT: Always use -o table for az boards query output. Do NOT use -o json — the CLI can produce malformed JSON when work item titles contain newlines or special characters.
Note: Substitute
{ADO_ORG},{ADO_PROJECT}, and{ADO_AREA_PATH}with the values from## Azure DevOps Defaultsin global copilot instructions.
Query 1a — ADO: Active + recently completed work items
az boards query --wiql "SELECT [System.Id], [System.Title], [System.State], [System.WorkItemType], [System.CreatedDate], [Microsoft.VSTS.Common.Priority], [Microsoft.VSTS.Common.StateChangeDate] FROM WorkItems WHERE [System.AssignedTo] = @Me AND ([System.State] NOT IN ('Closed', 'Removed', 'Done') OR ([System.State] IN ('Closed', 'Done') AND [Microsoft.VSTS.Common.ClosedDate] >= @Today - 30)) AND [System.AreaPath] UNDER '{ADO_AREA_PATH}' ORDER BY [Microsoft.VSTS.Common.Priority] ASC" --org "{ADO_ORG}" -p "{ADO_PROJECT}" -o table
Query 1b — ADO: State changes in last 24h
az boards query --wiql "SELECT [System.Id], [System.Title], [System.State], [System.ChangedDate], [System.ChangedBy] FROM WorkItems WHERE [System.AreaPath] UNDER '{ADO_AREA_PATH}' AND [System.ChangedDate] >= @Today - 1 ORDER BY [System.ChangedDate] DESC" --org "{ADO_ORG}" -p "{ADO_PROJECT}" -o table
After running these, extract the list of work item titles and IDs. Build a comma-separated summary string of your active work items, e.g.:
"#ID1 Title1, #ID2 Title2, #ID3 Title3, ..."
This becomes {WORK_ITEMS_CONTEXT} used in Step 2.
Step 2: Gather M365 Data (run ALL in parallel, using ADO context)
Invoke skill(workiq) before running any queries in this step. All M365 data must be retrieved using the WorkIQ CLI via that skill.
Correlation note: Work item IDs are injected into queries for context enrichment. Expect thematic correlation (WorkIQ connecting discussion topics to your work areas), not literal ID matches — people rarely cite ADO IDs in conversation. This is normal and the thematic matches are valuable.
Query 2a — Teams: Monitored chat rollups
For each chat listed in ## Teams Channels in global copilot instructions, run a query using this template:
workiq ask -q "Summarize messages sent since {YESTERDAY_DATE} in the Teams chat thread {THREAD_ID} (this is the '{CHAT_NAME}' group chat). For context, my current work items are: {WORK_ITEMS_CONTEXT}. Organize by: 1) Any mentions of me or my work items, 2) Open questions needing input, 3) Decisions made, 4) Action items assigned, 5) Announcements or knowledge sharing. Correlate any discussion topics to my work items where relevant. Include links to messages. Be concise. Bullet points only. No follow-up offers."
Where {YESTERDAY_DATE} is yesterday's date in YYYY-MM-DD format.
Timestamp fallback: If WorkIQ reports it cannot reliably scope messages to the requested time window, note the limitation in the report and include whatever summary WorkIQ was able to provide. Do not skip the section entirely.
Run all chat queries in parallel.
Query 2b — Teams: Direct mentions across all chats
workiq ask -q "Find any Teams messages sent since {YESTERDAY_DATE} where I was directly mentioned or tagged, across all chats and channels. List each with the chat name, who mentioned me, and what they said. Note if any relate to these work items: {WORK_ITEMS_CONTEXT}. Be concise. Bullet points only. No follow-up offers."
Query 2c — Calendar: Today's meetings
workiq ask -q "What meetings do I have today, {TODAY_DATE}? For each meeting, list the time, title, attendees, and any agenda or related context. Flag any scheduling conflicts. Note if any meetings relate to these work items: {WORK_ITEMS_CONTEXT}. Be concise. Bullet points only. No follow-up offers."
Query 2d — Calendar: Yesterday's meeting recaps
workiq ask -q "Summarize decisions and action items from meetings I attended yesterday, {YESTERDAY_DATE}. Use transcripts if available. Note if any relate to these work items: {WORK_ITEMS_CONTEXT}. Be concise. Bullet points only. No follow-up offers."
Query 2e — Email: Urgent/VIP emails
workiq ask -q "Find emails from the last 24 hours that are either marked high importance OR are from anyone listed in ## VIP Contacts in the user's global copilot instructions. Summarize each briefly and flag any that need my reply. Note if any relate to these work items: {WORK_ITEMS_CONTEXT}. Be concise. Bullet points only. No follow-up offers."
Query 2f — Email: Awaiting my reply
workiq ask -q "Find email threads from the last 48 hours where someone asked me a direct question or is waiting for my response. List sender, subject, and what they're waiting on. Be concise. Bullet points only. No follow-up offers."
Step 3: Gather Local Mind Data + Assemble Report
3a — Collect open next-actions from the mind
Each next-actions.md file uses ## Open / ## Done sections with - [ ] (open) and - [x] (done) checkboxes.
- Read
inbox/next-actions.mdfor untriaged actions - List folders under
initiatives/to discover active initiatives - For each initiative folder, read its
next-actions.mdfile (if the file doesn't exist, skip that initiative silently) - Extract only
- [ ](open) items — skip done items - Group open actions by source (inbox vs each initiative name)
Use parallel view calls to read all next-actions.md files at once for efficiency.
3b — Review inbox notes
- List the inbox folder
- You MUST read each markdown file's contents (excluding
next-actions.mdandREAD-THIS.md) using parallelviewcalls — do not just list filenames - For each file, extract any action items, deadlines, or tasks
- Summarize key items not already captured in next-actions
3c — List active initiatives
List initiative folder names from initiatives/ — names only, do not dive into contents.
3d — Assemble the report
Combine all results into the format below. Use bullet points. Be terse. Skip empty sections with "— Nothing to report". Present all times in Eastern Time (ET).
When processing WorkIQ responses: Extract only the data points (names, dates, subjects, decisions, action items). Discard conversational scaffolding, disclaimers, offers to do more, and "if you want I can..." suggestions. The report should contain facts, not WorkIQ's commentary.
═══════════════════════════════════════════
🌅 DAILY REPORT — {today's date}
═══════════════════════════════════════════
🔔 MENTIONS & DIRECT REQUESTS
{mentions from all chats, tagged items}
❓ OPEN QUESTIONS
{unresolved threads needing your input}
✅ DECISIONS MADE (last 24h)
{decisions from chats and meetings}
📌 ACTION ITEMS
{commitments by/to you from chats and meetings}
📅 TODAY'S MEETINGS
{time | title | key attendees | prep notes}
📝 YESTERDAY'S MEETING RECAPS
{decisions and action items from yesterday}
🚨 URGENT / VIP EMAILS
{high-priority emails and VIP sender emails}
📬 AWAITING YOUR REPLY
{email threads waiting on you}
📋 ACTIVE WORK ITEMS (ADO)
{#ID | Type | Title | State | Priority | Age in days}
✅ RECENTLY COMPLETED (last 30 days)
{#ID | Type | Title | Closed date}
🔥 AGING ITEMS (>14 days)
{work items activated >14 days ago still open}
🚦 ADO STATE CHANGES (last 24h)
{items that changed state, who changed them}
📓 NEXT ACTIONS (Mind)
Inbox:
{open items from inbox/next-actions.md}
[Initiative Name]:
{open items from initiative/next-actions.md}
(Omit sections with no open items)
📥 INBOX NOTES
{summary of untriaged inbox notes needing attention}
🚀 ACTIVE INITIATIVES
{initiative folder names}
💡 KNOWLEDGE DROPS
{useful tips, links, learnings shared in chats}
🎯 FOCUS RECOMMENDATIONS
{top 3 suggested priorities based on urgency, age, blockers, and meetings}
═══════════════════════════════════════════
Formatting Rules
- Terse and scannable — bullet points only, no prose paragraphs
- Include Teams message links where available
- For ADO items, format as:
#ID | Type | Title | State | P{priority} | {age}d - For meetings, format as:
HH:MM - HH:MM ET | Title | Key attendees - For emails, format as:
From: {sender} | Subject: {subject} | {action needed} - Empty sections: show
Content truncated.
When not to use it
- →Sending emails
- →Modifying work items
Prerequisites
Limitations
- →Read-only
- →Requires configuration in copilot-instructions.md
How it compares
It correlates discussion topics to active work items, providing thematic context rather than just raw data.
Compared to similar skills
daily-report side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| daily-report (this skill) | 0 | 5mo | No flags | Beginner |
| cto-engineering-metrics | 5 | 9mo | No flags | Advanced |
| summarize-activity | 6 | 6mo | Review | Beginner |
| conductor-status | 0 | 4mo | No flags | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by ianphil
View all by ianphil →You might also like
cto-engineering-metrics
rinaldofesta
Expert methodology for defining, tracking, and interpreting engineering performance metrics including DORA, team health, productivity, and executive reporting.
summarize-activity
alpinejs
Summarize recent GitHub activity — discussions, PRs, issues, events, traffic — into an actionable report so you can stay on top of the project without reading everything.
conductor-status
sickn33
Display project status, active tracks, and next actions
status
serithemage
Shows project progress, phase completion status, test coverage, and deployment info. Use when checking what has been implemented, what remains, or current operational state.
triage-meeting-prep
microsoft
Prepare weekly triage meeting summary for WinAppSDK Needs-Triage issues. Use when preparing for triage meetings, reviewing Needs-Triage issues, generating diff reports since last triage, summarizing new or updated issues, or creating action item recommendations. Triggers on requests involving triage
ble
mozilla
Run Base Load Engineer checks for the current day and produce a prioritized action list