Skip to content

Add action-items-todo skill - #293

Merged
Giorgio Ughini (GiorgioUghini) merged 4 commits into
microsoft:mainfrom
qmatteoq:add-action-items-todo
Aug 19, 2026
Merged

Add action-items-todo skill#293
Giorgio Ughini (GiorgioUghini) merged 4 commits into
microsoft:mainfrom
qmatteoq:add-action-items-todo

Conversation

@qmatteoq

@qmatteoq Matteo Pagani (qmatteoq) commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

What this adds

submissions/action-items-todo/, a Scout skill that watches Teams chats, meeting transcripts, and Outlook mail for things people have asked you to do, then files each one as a Microsoft To Do task with a due date, importance, owner tagging, and a link back to the source.

Why

Asks turn up in three different places, and the ones I lose are almost never the urgent ones. A "when you get a chance, could you look at this?" in a 1:1 chat carries no deadline and stops existing the moment it scrolls off screen.

The skill only captures asks made to you. It ignores promises you make to other people, which is a separate problem with different failure modes, and combining them in one list makes both harder to act on.

First-run setup

The skill hardcodes nothing about the person running it. On first use a wizard asks three questions, writes a config file, and creates the recurring automation:

  1. Which To Do list to write to. Existing lists are shown, and a new name creates the list.
  2. How often to scan: 15 minutes, 30 minutes, hourly, or every 2 hours.
  3. When to scan: around the clock, weekdays only, weekday working hours, or describe your own.

Capture rules

An action item is anything asking you to do, decide, respond, review, attend, prepare, or follow up. Urgency isn't part of the test, so tentative and far-future asks still count.

The ask has to be aimed at you. That means you're named, you're @mentioned, it arrived in a 1:1, or the conversation around it clearly puts the item on your plate. The skill skips generic group asks, FYIs, status updates and newsletters, and it never reads "this is your topic area" as ownership.

Titles come out in English whatever language the source was in. Owner tagging (Customer: / Workstream:) gets left off whenever the evidence is thin.

Validation

npm run check:submissions passes: 91 submissions, nothing written.

Checklist

  • One submission folder, one unpacked payload
  • SKILL.md frontmatter name matches the folder slug
  • Agent-facing description in SKILL.md, catalog description in metadata.json
  • README.md is human-facing only, no stray docs beside the payload
  • No personal paths, names, tenant identifiers or customer names in the bundled files

Captures action items directed at the user across Teams chats, meeting
transcripts, and Outlook mail, and files them as Microsoft To Do tasks
with a due date, importance, owner tagging, and a source link.

Includes a first-run setup wizard that asks for the To Do list, scan
frequency, and schedule, then creates the recurring automation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove rhetorical padding and hypothetical-reader framing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@qmatteoq
Matteo Pagani (qmatteoq) marked this pull request as ready for review August 19, 2026 12:15
Copilot AI lite review requested due to automatic review settings August 19, 2026 12:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Scout submission, action-items-todo, intended to scan Microsoft Teams chats, meeting transcripts, and Outlook email for action items directed at the user and capture them into Microsoft To Do with scheduling, dedupe state, and a strict automation output format.

Changes:

  • Added the action-items-todo skill definition (SKILL.md) including a first-run setup wizard and recurring automation procedure.
  • Added a human-facing README.md describing setup, capture rules, and privacy/requirements.
  • Added metadata.json to register the submission in the gallery with platforms/tags/author info.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
submissions/action-items-todo/SKILL.md Defines the Scout skill behavior, setup, scanning rules, and Microsoft To Do write procedure.
submissions/action-items-todo/README.md Human-facing documentation for what the skill does, setup flow, and operational notes.
submissions/action-items-todo/metadata.json Catalog metadata for the new submission (name/description/platforms/tags/author/version/dates).

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread submissions/action-items-todo/SKILL.md Outdated
Comment thread submissions/action-items-todo/SKILL.md
Comment thread submissions/action-items-todo/README.md Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 19, 2026 12:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Suppressed comments (2)

submissions/action-items-todo/SKILL.md:49

  • SETUP step 2 hard-depends on PowerShell (Get-TimeZone), which is not guaranteed to exist in Scout and also doesn’t reliably return an IANA time zone on Windows. Since this skill targets Scout (cross-OS), the time zone should be obtained via a cross-platform runtime API (or by asking the user as a fallback) and stored as an IANA name.
2. Read the machine time zone (PowerShell Get-TimeZone) and store the IANA name.

submissions/action-items-todo/README.md:60

  • README uses the Windows-only %USERPROFILE% path. Since this skill targets Scout (cross-OS), the documentation should describe a home-relative path (e.g., ~/.scout/...) and explicitly note that ~ must be resolved via the runtime rather than shell-specific variables (see similar guidance in submissions/work-brief/SKILL.md).
Configuration and dedupe state live in `%USERPROFILE%\.scout\action-items-todo\`. Delete that folder to reset the skill completely.

Get-TimeZone returns a Windows zone ID (e.g. 'W. Europe Standard Time'),
not an IANA name, so SETUP now reads the zone via
Intl.DateTimeFormat().resolvedOptions().timeZone and warns against the
PowerShell call.

Config and state paths are described relative to the user's home
directory instead of %USERPROFILE%, in SKILL.md as well as the README.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 19, 2026 12:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Suppressed comments (4)

submissions/action-items-todo/SKILL.md:95

  • The SCAN procedure hardcodes meeting/transcript tool names, but in Scout some calendar/meeting/transcript and Teams-post tool names can vary by build. Without an explicit “resolve from live tool list or fail clearly” rule, this skill may break in environments where these tool names differ.
Sources, all three every run:
(a) TEAMS CHATS — workiq_list_chats, then workiq_list_chat_messages on candidates.
(b) MEETING TRANSCRIPTS — workiq_list_meetings for meetings that ended inside the window, then workiq_list_meeting_transcripts and workiq_get_meeting_transcript. Transcripts for a recurring series come back out of order: filter transcripts[] by createdDateTime to the target meeting date, never take transcripts[0].
(c) OUTLOOK MAIL — workiq_list_emails on the Inbox for the window.

submissions/action-items-todo/SKILL.md:147

  • STATE says to keep only the last 500 seen entries, but the write procedure only appends and never trims. Over time this can grow the state file without bound and slow down dedupe (and make the JSON more error-prone).
4. Append the item to state.seen.
5. After all items, set state.last_scan = now and write STATE atomically. Write STATE even on a run with no items, so the window advances.

submissions/action-items-todo/SKILL.md:50

  • SETUP step 2 currently suggests shelling out to node -p ... to read the time zone. On Scout you can’t assume the underlying shell (cmd/PowerShell/sh) or that node is on PATH, and this is exactly the kind of shell dependency the repo guidance warns against. Prefer using the runtime API directly (or asking the user) rather than relying on a shell command example.

This issue also appears on line 91 of the same file.

2. Read the machine time zone as an IANA name with a cross-platform runtime API: Intl.DateTimeFormat().resolvedOptions().timeZone, e.g. `node -p "Intl.DateTimeFormat().resolvedOptions().timeZone"`. Do NOT use PowerShell Get-TimeZone: on Windows it returns a Windows zone ID such as "W. Europe Standard Time", which is not an IANA name and will not match the format the rest of the skill expects. If the lookup fails, ask the user for their IANA zone rather than guessing.

submissions/action-items-todo/SKILL.md:63

  • The “Working hours only, weekdays” option claims “8am–6pm”, but the cron schedules below use hour range 8-17 (latest run is before 6pm). Either adjust the description or the cron mapping so users aren’t misled about the scan window.

This issue also appears on line 146 of the same file.

     - "Working hours only, weekdays" (desc: 8am-6pm in your local time zone) -> "workhours"

@GiorgioUghini
Giorgio Ughini (GiorgioUghini) merged commit 0bb3472 into microsoft:main Aug 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants