Inspiration
Every developer starts the day the same way: opening GitHub, scanning notifications, checking which PRs are stuck, which CI runs failed, and who is waiting on a review. It's a small chore that burns focus before real work begins. We wanted that morning triage to feel like having a chief of staff: ask one question out loud, hear what matters, and clear it without touching a browser.
Standup Chief of Staff is an Alexa+ experience for developers. You ask, "What's blocking me today?" and get a 30-second spoken briefing. Then you act by voice: "Nudge Priya on that review." "Snooze issue 42 until Friday."
What it does
get_blockerspulls your open PRs, review requests, and assigned issues, scores them, and returns a ranked spoken briefing.summarize_prexplains what a PR changes, its risk level, and what is blocking the merge.nudge_reviewerdrafts a polite, specific reminder and sends it only after you confirm.snooze_issuehides an item until a date you choose ("tomorrow", "Friday", "next week").
Every action that changes something uses two-phase confirmation. The assistant reads back what it is about to do and waits for a "yes". Nothing is written to GitHub unless live writes are explicitly enabled.
How we built it
The project is a TypeScript monorepo with two parts:
- MCP server (Node.js, Express,
@modelcontextprotocol/sdk): exposes the four tools over Streamable HTTP. GitHub data comes from REST/GraphQL through a provider abstraction, with a bundled mock provider so the whole demo runs offline. - Alexa+ simulator (React, Vite, Tailwind): a real MCP client with push-to-talk voice input (Web Speech API), spoken replies (speech synthesis), a briefing view, a confirmation modal, and a live event log that shows the actual MCP traffic.
AI/ML: a deterministic scoring model first ranks items by signals such as failing CI, review staleness, changes requested, merge conflicts, and blocker labels. Then Amazon Bedrock (Converse API with Amazon Nova) re-ranks the top items and writes the spoken briefing and the nudge drafts. Model output is validated with Zod and retried once on bad JSON. If Bedrock is unavailable, a deterministic fallback keeps the product working and the UI shows a "degraded" badge.
The codebase was scaffolded and generated with an autonomous AI coding tool (Anti-Gravity) from a detailed specification, then reviewed, tested, and tuned by us during the hackathon.
Challenges we ran into
- [Describe a real one, e.g. making the voice flow feel natural: handling vague references like "that review" by tracking conversation context.]
- [Describe a real one, e.g. getting Bedrock to return strict JSON reliably, which led to schema validation, a repair retry, and the fallback path.]
- [Describe a real one, e.g. making the demo robust offline with fixtures that stay realistic, using relative timestamps.]
What we learned
- Voice interfaces need confirmation and clear spoken summaries more than they need more features.
- Combining deterministic scoring with an LLM gives rankings that are both explainable and natural to listen to.
- MCP is a clean way to give an assistant real tools, and building against it made the simulator and server easy to test independently.
Honest scope notes
The Alexa+ side is a simulator acting as an MCP client, not a published skill on a physical device. The demo runs against bundled sample GitHub data by default; live GitHub and live Bedrock are supported through environment variables. [Update this if you actually tested live mode.]
What's next
- Register the MCP server with real Alexa+ once access allows
- Slack and calendar signals in the briefing
- A per-user "standup mode" that adapts priorities to your team's habits
Built With
- alexa+
- amazonbedrock
- amazonnova
- awssdk
- exprerss
- githubgraphqiapi
- githubrestapi
- mcp
- node.js
- react
- tailwindcss
- typescript
- vite
- vitest
- webspeechapi
- zod
Log in or sign up for Devpost to join the conversation.