Problem Statement
Teams meeting recordings land in OneDrive but the associated VTT transcripts sit unused — raw subtitle files that are hard to read, search, or act on. There is no automated pipeline to turn these transcripts into structured, useful meeting notes and distribute them to the team. Users must manually download VTTs, reformat them, and share summaries, which rarely happens.
Solution
A dedicated Humr agent that polls OneDrive for new Teams meeting recordings on a cron schedule, downloads the VTT transcript, processes it into structured markdown meeting notes (with metadata, attendees, summary, and clean speaker attribution), and posts the result to Slack. The agent uses the existing process-transcript skill (bundled) for VTT parsing and enrichment, and accesses OneDrive via a Microsoft Graph MCP server.
User Stories
- As a team member, I want meeting transcripts automatically converted into readable notes so that I don't have to manually process VTT files.
- As a team member, I want meeting notes posted to Slack so that I can quickly catch up on meetings I missed.
- As a platform operator, I want to deploy this as a standard Humr agent template so that any user can enable transcript processing for their OneDrive.
Implementation Decisions
Agent template
A new agent template at packages/agents/onedrive-transcript/ following the same pattern as google-workspace. Bundles the process-transcript skill (including scripts/parse-vtt.py) and pre-installs uv for running the Python parser. CLAUDE.md contains agent instructions for the polling-process-post workflow.
OneDrive access
Phase 0 uses a community Microsoft Graph MCP server (e.g., microsoft-mcp) configured in the schedule's mcpServers field. Credentials flow through OneCLI with a new Microsoft Graph OAuth configuration. Phase 1 replaces the MCP server with a dedicated CLI tool (e.g., Microsoft's mgc) for more reliable, scriptable access.
Polling and scheduling
Cron-based polling every 30 minutes via Humr's existing controller scheduler. The schedule uses sessionMode: continuous so the agent maintains context across runs. The task prompt instructs Claude to list the OneDrive recordings folder, identify unprocessed VTTs, download and process them, and post results to Slack.
State tracking
The agent maintains a state/processed.json file in its persistent workspace containing the last 5 processed OneDrive file IDs and timestamps. Each run, Claude reads this file, skips already-processed files, and appends new entries. Capping at 5 entries keeps the file small while covering race conditions and overlapping runs.
Output
Processed meeting notes are posted to Slack. Box upload is out of scope for this PRD and will be defined separately.
Helm integration
A new Helm template (onedrive-transcript-template.yaml) gated by onedriveTranscriptTemplate.enabled in values.yaml, consistent with existing template patterns.
Future considerations
- Box upload: Separate PRD for uploading processed notes to a Box folder as an alternative or complement to Slack.
- Skill marketplace: Currently skills are bundled per-agent. A skill marketplace would allow reusable skills across agent templates, eliminating the need for per-agent bundling.
Problem Statement
Teams meeting recordings land in OneDrive but the associated VTT transcripts sit unused — raw subtitle files that are hard to read, search, or act on. There is no automated pipeline to turn these transcripts into structured, useful meeting notes and distribute them to the team. Users must manually download VTTs, reformat them, and share summaries, which rarely happens.
Solution
A dedicated Humr agent that polls OneDrive for new Teams meeting recordings on a cron schedule, downloads the VTT transcript, processes it into structured markdown meeting notes (with metadata, attendees, summary, and clean speaker attribution), and posts the result to Slack. The agent uses the existing
process-transcriptskill (bundled) for VTT parsing and enrichment, and accesses OneDrive via a Microsoft Graph MCP server.User Stories
Implementation Decisions
Agent template
A new agent template at
packages/agents/onedrive-transcript/following the same pattern asgoogle-workspace. Bundles theprocess-transcriptskill (includingscripts/parse-vtt.py) and pre-installsuvfor running the Python parser. CLAUDE.md contains agent instructions for the polling-process-post workflow.OneDrive access
Phase 0 uses a community Microsoft Graph MCP server (e.g.,
microsoft-mcp) configured in the schedule'smcpServersfield. Credentials flow through OneCLI with a new Microsoft Graph OAuth configuration. Phase 1 replaces the MCP server with a dedicated CLI tool (e.g., Microsoft'smgc) for more reliable, scriptable access.Polling and scheduling
Cron-based polling every 30 minutes via Humr's existing controller scheduler. The schedule uses
sessionMode: continuousso the agent maintains context across runs. The task prompt instructs Claude to list the OneDrive recordings folder, identify unprocessed VTTs, download and process them, and post results to Slack.State tracking
The agent maintains a
state/processed.jsonfile in its persistent workspace containing the last 5 processed OneDrive file IDs and timestamps. Each run, Claude reads this file, skips already-processed files, and appends new entries. Capping at 5 entries keeps the file small while covering race conditions and overlapping runs.Output
Processed meeting notes are posted to Slack. Box upload is out of scope for this PRD and will be defined separately.
Helm integration
A new Helm template (
onedrive-transcript-template.yaml) gated byonedriveTranscriptTemplate.enabledin values.yaml, consistent with existing template patterns.Future considerations