How I AI: Ryan Nystrom's 3 Notion Workflows for Engineering Velocity
Notion's Ryan Nystrom shows us how he automates standups with custom agents, ships PRs from a single comment, and uses spec-first development to let AI handle the coding.
Claire Vo
Full episode
Watch or listen
Workflows from this episode
- Implement Features Using Spec-First Development and an AI Coding Agent
- From Notion Task to GitHub Pull Request in 20 Minutes with a Coding Agent
- Automate Daily Standup Preparation with a Custom Notion AI Agent
Episode outline
Notion engineering manager Ryan Nystrom has stopped treating meeting prep, implementation work, and feature specs as separate chores. In this episode of How I AI, he shows how his team automates standup preparation, turns a Notion task into a reviewed pull request in about 20 minutes, and builds features from version-controlled specifications that agents can implement and verify.
Ryan still writes code while managing a team of engineers, and AI has changed nearly every part of how he works. After more than a decade using roughly the same development setup, he now changes IDEs, terminals, and workflows constantly. Instead of feeling destabilizing, he says the pace has made engineering feel fresh again. He spends less time compiling updates and more time reviewing ideas, fixing bottlenecks, and experimenting.
The three workflows span different layers of engineering work: gathering context before a meeting, handing a scoped task to a background coding agent, and using a written specification as the source of truth for implementation and verification. None of them are fully autonomous systems. Each one narrows a repetitive loop that previously consumed human attention. See Implement Features Using Spec-First Development and an AI Coding Agent.
The pattern across all three workflows is the same. The agent gathers information or produces a draft implementation, then humans review the result at a clear checkpoint: a pre-read, a pull request, a preview build, or a verification run. Ryan’s team is optimizing for shorter feedback loops, not removing engineering judgment.
Turn standups into high-context working sessions
Ryan’s team runs daily standups for Project Afterburner, Notion’s effort to dramatically reduce CI time. The problem was not the meeting itself. It was the preparation work required to make the meeting useful. Someone had to gather metrics, scan Slack threads, review merged pull requests, summarize task updates, and reconstruct what changed since yesterday.
Instead of manually assembling that context, Ryan built a custom Notion AI agent called Hot Potato. Before the meeting starts, the agent prepares a structured pre-read so the team can spend the standup discussing decisions, risks, bugs, and discoveries instead of reciting status updates. See Automate Daily Standup Preparation with a Custom Notion AI Agent.
![A detailed view of a Notion project page titled 'Afterburner', showcasing its organizational structure including DRI, 'Building' stage, 'Developer Experience +1' team, 'Outcome' scope, and links to parent projects like 'Eng Ex: Developer Experience' and '[2x Dev Velocity]: Global Investments'.](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fng65ow1q%2Fproduction%2F8a94eb3c768986dd763f616785cf273aab8c74df-1920x1080.jpg%3Fw%3D1600%26auto%3Dformat&w=3840&q=75)
How the standup agent works
- Create the page: A recurring Notion automation generates a fresh meeting page from a template before each standup. The page starts blank except for the structure Ryan wants the agent to fill in.
- Trigger the agent: At 9 a.m., Hot Potato runs automatically and reviews activity from the previous 24 hours. Ryan explicitly instructs it to limit its search window so the meeting stays current instead of turning into a giant project digest.
- Gather context: The agent fans out across several systems in parallel to assemble the same information Ryan would normally gather by hand:
- Metrics: It pulls CI performance data from Honeycomb through a Model Context Protocol (MCP) connection so the meeting always starts with the latest build and test numbers.
- Communication: It scans the team’s Slack project channel for updates, feedback, open questions, and decisions that might otherwise stay buried in threads.
- Work: It checks the Notion task database for recently closed tickets and project changes tied to the Afterburner effort.
- Code: It reviews merged GitHub pull requests so implementation details and infrastructure changes appear alongside project discussion.
- History: It reads the previous meeting notes for continuity so unresolved questions and ongoing work do not disappear between standups.

- Build the pre-read: Ryan gives the agent a specific structure to follow so the output stays predictable and scannable during the meeting:
- CI speed
- Decisions
- Progress and changes
- Bugs and feedback
- Open questions and risks
- Notify the team: After generating the page, the agent posts a short Slack message linking to the pre-read. Ryan intentionally asks it to keep the message brief and slightly playful so the automation feels lightweight instead of corporate.
Ryan estimates the workflow saves about 20 minutes of preparation every day, but the bigger change is conversational quality. The team arrives with shared context already assembled, which means the meeting can focus on tradeoffs and problem solving. I point out that richer standups also surface quieter engineers more consistently because the system pulls work from the actual tools instead of relying on whoever is most comfortable speaking up.
Hand a scoped task to a background coding agent
Notion’s internal background-agent system, Boxy, lets engineers assign work to a coding agent directly from a Notion comment. Instead of copying prompts into a terminal, waiting beside a local environment, and manually wiring up tooling, Ryan can hand off a task from the same place the team already tracks work.
Ryan demonstrated the workflow with a small feature request from a friend: add a way to copy a direct link to a tab in Notion. Rather than dropping the request into a backlog for later, he turned the message into a scoped task immediately.
![A Notion task page detailing the 'Copy link in Tab block right-click menu' feature, showcasing task assignments, approval status, linked GitHub PRs (#204101 [TASK-328721]), and developer comments, including a git merge confirmation into 'origin/main'.](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fng65ow1q%2Fproduction%2Fc093c0fe6b132f13fa671d324de114b0f8fce495-1920x1080.jpg%3Fw%3D1600%26auto%3Dformat&w=3840&q=75)
From task description to reviewed pull request
- Write a clear task: Ryan described the feature in plain language, included a related hover-state bug, documented a deep-linking edge case, and attached a screenshot showing exactly where the new control should appear in the UI. The task was only a few short paragraphs, but it contained enough implementation detail to constrain the agent.
- Invoke the agent: In a comment on the task, he mentioned @Codex to start the workflow.
- Let Boxy run: The mention spins up a virtual machine with Codex, the codebase, and the required development tooling already configured. The agent reads the task description, comments, screenshots, and surrounding context before starting implementation.
- Review the result: About 20 minutes later, the agent responded with a GitHub pull request and a live preview environment. The pull request documented how it tested the feature and included screenshots from its own UI verification process, showing the new behavior working inside the app. You can follow the full implementation in From Notion Task to GitHub Pull Request in 20 Minutes with a Coding Agent. See From Notion Task to GitHub Pull Request in 20 Minutes with a Coding Agent.

Ryan still reviewed the code closely. When he found a line he did not understand, he asked the agent to explain it directly in the pull request. The agent clarified the reasoning, fixed remaining type errors, and updated the implementation. I note that this changes the emotional dynamic of code review. Engineers can ask blunt questions without worrying about social friction, and agents can repeatedly explain or revise without slowing the team down.
Use specs as the source of truth
For larger projects, Ryan’s team starts with behavior and verification before implementation. Instead of treating specs as disposable planning documents, they keep them version-controlled inside the repository and use them to drive the coding agent directly. Engineers spend more time defining architecture, constraints, and validation logic while the agent handles more of the implementation loop.
Ryan demonstrated the process using Ask Mode, a Notion AI feature that limits the system to read-only tools. The interesting part was not the feature itself. It was the workflow used to build it.
![A detailed GitHub pull request, '[TASK-328721] Add copy link action to tab item menu,' showing its description, associated documentation, and testing procedures. The screenshot also features a podcast host in the corner.](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fng65ow1q%2Fproduction%2Fe3f690ab629767d5cbc0961ecb0346d9cc010847-1920x1080.jpg%3Fw%3D1600%26auto%3Dformat&w=3840&q=75)
Building features from version-controlled specs
- Dictate the idea: Ryan started by talking through how Ask Mode should behave and used the transcript as raw material. He did not begin with code or formal requirements. He began with an explanation of intent, edge cases, and expected behavior.
- Generate the formal spec: He handed the transcript to Codex along with examples from the team’s existing spec library so the model could mirror the same format and level of detail.
"Here's our other like spec library. Learn the format, take my information, write a spec."
- Commit the spec: After revising the generated Markdown document, Ryan added ask_mode.md to the repository’s /agent-specs/ directory and pointed Codex at the file. The spec became the canonical description of how the feature should behave.
"Build it."
- Build and verify: The specification included a verification section describing how the feature should be tested. The agent used a custom CLI to run Notion AI, send prompts, toggle Ask Mode on and off, and compare actual behavior against the written requirements. Ryan’s team built these verification tools specifically so agents could evaluate functionality without constant human supervision.
- Keep the spec current: The initial implementation took a couple of hours to generate and review. After that, future changes started with updates to the spec itself rather than edits scattered across the codebase. Ryan likes that the repository now contains a readable history of how the feature evolved, not just a trail of implementation details buried in commits.
What is actually worth copying
Ryan’s workflows work because the boundaries are explicit. Hot Potato has defined data sources, clear permissions, and a fixed meeting structure. Boxy receives scoped tasks with screenshots and edge cases, then returns artifacts humans already know how to review: pull requests, previews, and test results. The spec-first workflow defines verification criteria before implementation starts.
The easiest place to start is not a giant autonomous system. It is a narrow loop with obvious inputs and outputs. Automate one recurring pre-read. Let an agent implement one small UI fix. Write one spec detailed enough that another engineer could build from it. Then inspect the output quality and cycle time before expanding the scope.
The strongest idea in this episode of How I AI is not that agents replace engineers. It is that engineering velocity increasingly depends on reducing waiting: waiting for meeting prep, waiting for CI, waiting for reviews, waiting for context gathering, waiting for implementation scaffolding. These workflows work best in teams with fast testing pipelines, disciplined review habits, and people who still want to stay close to the code. Human judgment remains essential around architecture, verification quality, and whether the generated work actually matches the intent behind the request.
Watch or listen
Sponsors
Thanks for supporting How I AI
Build your next product with ChatPRD
Turn an idea into a PRD, user stories, and a plan.


