Skip to content

Commit 994e443

Browse files
dveltonCopilot
andauthored
Add roundup plugin: self-configuring status briefing generator (#1157)
* Add roundup plugin: self-configuring status briefing generator Adds a new plugin with two skills: - roundup-setup: Interactive onboarding that learns the user's communication style from examples, discovers available data sources, and builds audience profiles. Writes a persistent config to ~/.config/roundup/config.md. - roundup: Generates draft status briefings on demand by pulling from configured sources (GitHub, M365, Slack, Google Workspace, etc.) and synthesizing in the user's learned style for any defined audience. Platform-agnostic by design -- adapts to whatever MCP tools are available in the user's environment rather than assuming specific integrations. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address PR review comments - Fix 'use roundup' help text to clarify multi-audience behavior instead of referencing a nonexistent 'default audience' - Split bundled 'who do you report to + who is on your team' into two separate ask_user questions per the one-question-at-a-time rule - Specify ~/Desktop as explicit save path with fallback prompt when directory doesn't exist - Tables in README verified as correct markdown (single | delimiters) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Improve example-pasting UX in setup flow - Make 'paste the whole thing right here' explicit so users aren't unsure about what/how much to paste - Confirm receipt more clearly ('grabbed all of that') - Reframe second example prompt to explain why a second helps - Cap follow-up asks at two so it doesn't feel nagging - Note that messy formatting is fine Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Reinforce that more examples = better output Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 886e7a8 commit 994e443

8 files changed

Lines changed: 700 additions & 0 deletions

File tree

.github/plugin/marketplace.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,12 @@
435435
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in Python using the official SDK with FastMCP. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance.",
436436
"version": "1.0.0"
437437
},
438+
{
439+
"name": "roundup",
440+
"source": "roundup",
441+
"description": "Self-configuring status briefing generator. Learns your communication style from examples, discovers your data sources, and produces draft updates for any audience on demand.",
442+
"version": "1.0.0"
443+
},
438444
{
439445
"name": "ruby-mcp-development",
440446
"source": "ruby-mcp-development",

docs/README.plugins.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
6666
| [power-platform-mcp-connector-development](../plugins/power-platform-mcp-connector-development/README.md) | Complete toolkit for developing Power Platform custom connectors with Model Context Protocol integration for Microsoft Copilot Studio | 3 items | power-platform, mcp, copilot-studio, custom-connector, json-rpc |
6767
| [project-planning](../plugins/project-planning/README.md) | Tools and guidance for software project planning, feature breakdown, epic management, implementation planning, and task organization for development teams. | 15 items | planning, project-management, epic, feature, implementation, task, architecture, technical-spike |
6868
| [python-mcp-development](../plugins/python-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Python using the official SDK with FastMCP. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | python, mcp, model-context-protocol, fastmcp, server-development |
69+
| [roundup](../plugins/roundup/README.md) | Self-configuring status briefing generator. Learns your communication style from examples, discovers your data sources, and produces draft updates for any audience on demand. | 2 items | status-updates, briefings, management, productivity, communication, synthesis, roundup, copilot-cli |
6970
| [ruby-mcp-development](../plugins/ruby-mcp-development/README.md) | Complete toolkit for building Model Context Protocol servers in Ruby using the official MCP Ruby SDK gem with Rails integration support. | 2 items | ruby, mcp, model-context-protocol, server-development, sdk, rails, gem |
7071
| [rug-agentic-workflow](../plugins/rug-agentic-workflow/README.md) | Three-agent workflow for orchestrated software delivery with an orchestrator plus implementation and QA subagents. | 3 items | agentic-workflow, orchestration, subagents, software-engineering, qa |
7172
| [rust-mcp-development](../plugins/rust-mcp-development/README.md) | Build high-performance Model Context Protocol servers in Rust using the official rmcp SDK with async/await, procedural macros, and type-safe implementations. | 2 items | rust, mcp, model-context-protocol, server-development, sdk, tokio, async, macros, rmcp |

docs/README.skills.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,8 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to
228228
| [repo-story-time](../skills/repo-story-time/SKILL.md) | Generate a comprehensive repository summary and narrative story from commit history | None |
229229
| [review-and-refactor](../skills/review-and-refactor/SKILL.md) | Review and refactor code in your project according to defined instructions | None |
230230
| [reviewing-oracle-to-postgres-migration](../skills/reviewing-oracle-to-postgres-migration/SKILL.md) | Identifies Oracle-to-PostgreSQL migration risks by cross-referencing code against known behavioral differences (empty strings, refcursors, type coercion, sorting, timestamps, concurrent transactions, etc.). Use when planning a database migration, reviewing migration artifacts, or validating that integration tests cover Oracle/PostgreSQL differences. | `references/REFERENCE.md`<br />`references/empty-strings-handling.md`<br />`references/no-data-found-exceptions.md`<br />`references/oracle-parentheses-from-clause.md`<br />`references/oracle-to-postgres-sorting.md`<br />`references/oracle-to-postgres-timestamp-timezone.md`<br />`references/oracle-to-postgres-to-char-numeric.md`<br />`references/oracle-to-postgres-type-coercion.md`<br />`references/postgres-concurrent-transactions.md`<br />`references/postgres-refcursor-handling.md` |
231+
| [roundup](../skills/roundup/SKILL.md) | Generate personalized status briefings on demand. Pulls from your configured data sources (GitHub, email, Teams, Slack, and more), synthesizes across them, and drafts updates in your own communication style for any audience you define. | None |
232+
| [roundup-setup](../skills/roundup-setup/SKILL.md) | Interactive onboarding that learns your communication style, audiences, and data sources to configure personalized status briefings. Paste in examples of updates you already write, answer a few questions, and roundup calibrates itself to your workflow. | `references/config-template.md` |
231233
| [ruby-mcp-server-generator](../skills/ruby-mcp-server-generator/SKILL.md) | Generate a complete Model Context Protocol server project in Ruby using the official MCP Ruby SDK gem. | None |
232234
| [rust-mcp-server-generator](../skills/rust-mcp-server-generator/SKILL.md) | Generate a complete Rust Model Context Protocol server project with tools, prompts, resources, and tests using the official rmcp SDK | None |
233235
| [sandbox-npm-install](../skills/sandbox-npm-install/SKILL.md) | Install npm packages in a Docker sandbox environment. Use this skill whenever you need to install, reinstall, or update node_modules inside a container where the workspace is mounted via virtiofs. Native binaries (esbuild, lightningcss, rollup) crash on virtiofs, so packages must be installed on the local ext4 filesystem and symlinked back. | `scripts/install.sh` |
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "roundup",
3+
"description": "Self-configuring status briefing generator. Learns your communication style from examples, discovers your data sources, and produces draft updates for any audience on demand.",
4+
"version": "1.0.0",
5+
"author": {
6+
"name": "Awesome Copilot Community"
7+
},
8+
"repository": "https://github.com/github/awesome-copilot",
9+
"license": "MIT",
10+
"keywords": [
11+
"status-updates",
12+
"briefings",
13+
"management",
14+
"productivity",
15+
"communication",
16+
"synthesis",
17+
"roundup",
18+
"copilot-cli"
19+
],
20+
"skills": [
21+
"./skills/roundup-setup/",
22+
"./skills/roundup/"
23+
]
24+
}

plugins/roundup/README.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Roundup
2+
3+
Status briefing generator that learns how you communicate.
4+
5+
Roundup watches your work across GitHub, email, Teams, Slack, and other tools, then drafts status updates and briefings in your own voice for any audience you define.
6+
7+
## The Problem
8+
9+
Managers and team leads spend hours each week assembling status updates from scattered sources: scanning PR activity in GitHub, reading email threads for decisions, checking Teams or Slack for context, then rewriting all of it for different audiences at different levels of detail.
10+
11+
The data to write these updates already exists. The work is in gathering it and packaging it. Roundup automates the gathering and drafting. You provide quality control and hit send.
12+
13+
## How It Works
14+
15+
**First time (5 minutes):** Run the setup skill. It asks about your role, your audiences, and where your team's work happens. Then you paste in an example or two of updates you've already written. From those examples, it learns your format, tone, structure, and what you include vs. skip.
16+
17+
**Every time after:** Tell roundup which audience you're writing for. It pulls fresh data from your configured sources, synthesizes across them, and drafts a briefing matching your style.
18+
19+
## Installation
20+
21+
```bash
22+
copilot plugin install roundup@awesome-copilot
23+
```
24+
25+
## Getting Started
26+
27+
### First-Time Setup
28+
29+
```
30+
use roundup-setup
31+
```
32+
33+
The setup flow walks you through:
34+
- Describing your role and team
35+
- Pasting in example updates you've already written
36+
- Defining your audiences (leadership, team, partners, etc.) and what each one cares about
37+
- Identifying where your team's work and conversations happen
38+
39+
### Generating a Briefing
40+
41+
```
42+
use roundup
43+
```
44+
45+
Or be more specific:
46+
47+
```
48+
use roundup -- generate a leadership briefing covering this past week
49+
```
50+
51+
```
52+
use roundup -- draft a team update since Monday
53+
```
54+
55+
## What's Included
56+
57+
| Skill | What It Does |
58+
|-------|-------------|
59+
| `roundup-setup` | Interactive onboarding that learns your style, audiences, and data sources |
60+
| `roundup` | Generates draft briefings from your config on demand |
61+
62+
## What It Can Pull From
63+
64+
Roundup adapts to whatever tools are available in your environment:
65+
66+
| Source | What It Looks For |
67+
|--------|-------------------|
68+
| GitHub | PRs, issues, commits, review activity across your configured repos |
69+
| M365 / WorkIQ | Email threads, Teams messages, calendar events, shared docs |
70+
| Slack | Channel messages, threads, announcements |
71+
| Google Workspace | Gmail, Calendar, Drive activity |
72+
73+
During setup, roundup discovers which of these you have access to and configures itself accordingly. If you add new tools later, re-run setup to include them.
74+
75+
No API keys or additional setup required beyond what's already configured in your Copilot CLI environment.
76+
77+
## What Makes It Different
78+
79+
**It learns from your examples.** Rather than forcing you into a template, roundup analyzes how you actually write and replicates that style. Your briefings sound like you wrote them.
80+
81+
**It works with whatever you have.** GitHub only? Fine. Full M365 suite? Great. Mix of Slack and Google? Works too. The setup flow discovers your environment and adapts.
82+
83+
**Multiple audiences, one setup.** Define different audience profiles with different detail levels and formats. Same underlying data, different output for each.
84+
85+
**Your config is a readable file.** Everything roundup learned lives in `~/.config/roundup/config.md` -- plain markdown you can open, read, and hand-edit anytime. No opaque settings or hidden state.
86+
87+
## Reconfiguring
88+
89+
To start setup over from scratch:
90+
91+
```
92+
use roundup-setup
93+
```
94+
95+
It will ask before overwriting your existing config.
96+
97+
To make small adjustments, just open `~/.config/roundup/config.md` in any text editor. The file is written in plain English and organized by section. Your changes are respected on the next run.
98+
99+
## License
100+
101+
MIT

0 commit comments

Comments
 (0)