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_blockers pulls your open PRs, review requests, and assigned issues, scores them, and returns a ranked spoken briefing.
  • summarize_pr explains what a PR changes, its risk level, and what is blocking the merge.
  • nudge_reviewer drafts a polite, specific reminder and sends it only after you confirm.
  • snooze_issue hides 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
Share this project:

Updates

Submission history