Turn meeting decisions into shipped code — automatically.
Meeting → Code is a demonstrator showing how the GitHub Copilot SDK, Microsoft WorkIQ, and the GitHub platform work together to close the loop from a conversation in a meeting to running code in a repository.
Meeting → Code automates the path from meeting decisions to shipped code. It connects to Microsoft 365 via the WorkIQ MCP server to extract actionable requirements from any meeting, then uses the GitHub MCP server through the Copilot SDK to perform gap analysis against a target repository's codebase. Identified gaps become detailed GitHub Issues — complete with descriptions, acceptance criteria, and effort estimates — created via the GitHub CLI. The user reviews and selects which gaps to act on, then dispatches the Copilot coding agent (copilot-swe-agent) to autonomously implement changes and open pull requests. An optional deploy-and-validate stage uses Azure Developer CLI and Playwright to verify the implementation against the original requirements. The entire pipeline streams progress to the browser in real time via Server-Sent Events, with human oversight at every decision point.
📖 Full documentation: docs/README.md — problem→solution, prerequisites, setup, deployment, architecture diagram, and Responsible AI notes.
The app walks through a three-step pipeline, fully streamed to the browser in real time:
| Step | What happen | Powered by |
|---|---|---|
| 1. Extract | Retrieves notes/transcript from a Microsoft 365 meeting and extracts actionable requirements | WorkIQ MCP + Copilot SDK |
| 2. Analyze & Create | Compares each requirement against the target repo's codebase, identifies gaps, and creates GitHub Issues | GitHub MCP + Copilot SDK + gh CLI |
| 3. Assign & Ship | Assigns the Copilot coding agent (copilot-swe-agent) to each issue so it opens PRs automatically |
GitHub REST API |
flowchart LR
A["M365 Meeting\n(WorkIQ MCP)"] --> B["Gap Analysis\n(GitHub MCP +\nCopilot SDK)"]
B --> C["GitHub Issues\n(gh CLI)"]
C --> D["Copilot Coding Agent\n(REST API)\n— opens PRs —"]
meeting-2-code/
├── src/
│ ├── server.ts # Express server with SSE streaming endpoints
│ └── agents/
│ ├── session-helpers.ts # Copilot SDK session wrapper (auto-approve permissions)
│ ├── gap-analyzer.ts # Phase 1 & 2: WorkIQ meeting extraction + codebase gap analysis
│ ├── github-issues.ts # Phase 3: Issue creation via gh CLI
│ └── coding-agent.ts # Phase 4: Copilot agent assignment via GitHub REST API
├── public/
│ ├── index.html # Single-page app
│ ├── css/ # Modular CSS (source of truth)
│ │ ├── main.css # Entry point — @imports all partials
│ │ ├── base/ # Reset, tokens, ambient bg, responsive
│ │ ├── layout/ # Shell, header, hero, main content
│ │ ├── components/ # Buttons, tables, cards, toast, etc.
│ │ ├── agents/ # Agent identity badges & brand logos
│ │ └── flows/ # Meeting, QA, loop, slide-over views
│ ├── js/ # Frontend logic with SSE consumers
│ └── styles.css # ⚠️ Generated — do not edit (see below)
├── package.json
└── tsconfig.json
- GitHub Copilot SDK — Creates AI agent sessions that orchestrate tool calls via MCP servers. Used for meeting extraction (WorkIQ) and codebase gap analysis (GitHub MCP).
- Microsoft WorkIQ MCP — Model Context Protocol server that connects to Microsoft 365 data (calendars, meetings, transcripts).
- GitHub MCP — Remote MCP server for reading repository contents, searching code, and browsing file trees.
- GitHub CLI (
gh) — Used for issue creation and REST API calls for Copilot coding agent assignment. - Copilot Coding Agent — Autonomous agent (
copilot-swe-agent[bot]) that reads issues and opens pull requests with implementation code.
| Requirement | Details |
|---|---|
| Node.js | v22 or later |
| GitHub CLI | Authenticated — run gh auth login |
| GitHub Copilot | Active subscription with Copilot SDK access |
| Microsoft 365 | Account with WorkIQ access and a meeting titled "Contoso Industries Redesign" containing notes/transcript |
| Target repo | A GitHub repository to analyze (defaults to danielmeppiel/corporate-website) |
# Clone
git clone https://github.com/danielmeppiel/meeting-2-code.git
cd meeting-2-code
# Install dependencies
npm install
# Start the server
npm startOpen http://localhost:3000 in your browser.
Set environment variables before starting the server:
export TARGET_OWNER="your-github-username"
export TARGET_REPO="your-repo-name"
export TARGET_REPO_PATH="/path/to/local/clone" # only needed for local agent mode
npm start-
Click "Analyze Meeting" — The app creates a Copilot SDK session connected to the WorkIQ MCP server, retrieves the meeting, and extracts requirements. A second session connects to the GitHub MCP server and performs a gap analysis against the target repository for each requirement. Results stream to the UI in real time via Server-Sent Events.
-
Select gaps → "Create Issues" — For each selected gap, the app runs
gh issue createto open a detailed GitHub Issue with description, acceptance criteria, and effort estimate. -
Select issues → "Assign Copilot" — The app calls the GitHub REST API to assign
copilot-swe-agent[bot]to each issue. The coding agent then autonomously creates branches and opens pull requests.
# Watch mode (auto-restart on changes)
npm run dev
# Type-check
npm run buildStyles live in public/css/ as modular partials. In development, index.html loads css/main.css which uses native @import — no build step needed.
To regenerate the single-file public/styles.css bundle (for production or legacy use):
npm run css:buildNote:
public/styles.cssis.gitignored — always edit the partials inpublic/css/, never the generated bundle.