Gate 1 mockups · Taskmaster · September 17, 2026
On the September 16 dev call Seth asked for a "Task List": the mini version of Project Management that ships in the $500 tier, on the same schema, with a private list, items you share by tagging a name, and group lists. Jon reframed it as an AI assistant that runs the list for you, Seth said that was the better idea and named it Taskmaster. These are three genuinely different ways to build that, on its own page, with chat and voice, each on the live chrome and each seeded with the same morning. After MJ's review the direction is one integrated set, the Band-Aid off: the home you can hear and talk to, and Taskmaster in To Do's place as the one list, with the conversation beside it. Open the home first, or read on.
MJ leaned to option 1 with parts of option 3, then asked for the Band-Aid off: one integrated feature set, full width, with the list on the left and the conversation on the right. The sidebar item after Dashboard is now Taskmaster. Bella speaks it.
The 6200 home as it is today, full width, with three changes: the rundown sentence is written from your list as well as the platform, "Hear it" plays it in Bella's voice, and "Talk to it" slides the conversation in from the right so the rooms stay where they are. The Team room reads your list live, and its Taskmaster door is a real link.
Open the homeTo Do's becomes Taskmaster, the sidebar item after Dashboard. The list takes the width it needs: tabs for Everything (today's feed, with its Today, This week, This month windows), My list, Shared with me, and the group lists; Simple, Board, Calendar, and Table views; a "Waiting on someone" group with the next nudge under each row. The conversation is a tall panel on the right that never covers the rows.
Open TaskmasterThe earlier step, the pick, was conversation-first; MJ's review moved the list to the left and the conversation to the right, and dropped the bottom dock that hid the rows. The three options further down are the round that led here. Navigation between the two pages is real: the sidebar, the pinned strip, the Team room, and the logo.
Three more concept pages, built on the same engine and the same morning. The push came from a Slack mobile clip: the owner blitzes his unread with "Catch Up", one card at a time, and every thread hides an action item nobody tracked. These translate that mechanic into Taskmaster, and show how it lives inside the Rippler chat pop-out. Talk to each one; the switch at the bottom tags what the backend serves today.
MJ went with Taskmaster for the sidebar and the page. The brainstorm stays open: the Name switcher in the bar at the bottom of any page re-labels the sidebar item, the page header, the conversation, and the Team room in place, so a candidate can be read in context. Bella's clips still say "Taskmaster" in two tour lines.
| Name | The angle |
|---|---|
| Taskmaster | Seth's name from the call. A job title, like Digital Receptionist and Estimator. |
| Rippler | No second name. The assistant you already have in the top bar, now with your list. To Do's stays the page name. |
| Foreman | Contractor-native. The one who says what's next and chases the crew. Risk: the customer's real foreman is in the same conversation. |
| Dispatch | Hands out the work and follows up. Everyone in field service knows the word, and "tell Dispatch" reads well out loud. |
| RippleDesk | What's on my desk. The surface is the desk; the assistant keeps it clear. Sits beside RipplePad. |
| RippleRunner | It runs your list and your processes. Short and active. |
| RippleNext | The question people actually ask it: what's next? |
| Punch | The punch list, the list every contractor already keeps. Risk: in the trade it means the closeout list, not the daily one. |
Two things to hold the name to. It has to be said out loud in a truck ("tell Dispatch...", "ask Foreman..."), and it should not fight Rippler in the top bar. A job title sits beside Digital Receptionist and Estimator; a Ripple-family name sits beside RipplePad. The one-name option is Rippler itself, with To Do's as the page and no assistant name at all.
Four more calls from MJ's review, each switchable in place so it is judged in context rather than in a list.
Drawer or centered window, honestly: a drawer keeps the list in view and lets you open five records in a row without losing your place, which is how a to-do list gets used. A centered window is better when the record is the job: a long form, an approval with a signature. Taskmaster's record is short and you skim several, so the drawer wins. Keep the centered window for the approval and booking records that come in from the feed, where the full form matters. The "Detail" switch in the bar flips between the two so you can feel the difference.
The mark is drawn to sit beside RipplePad. RipplePad is "The Rip", a ripped page rippling out, under "Scribble to done." Taskmaster's marks are the same hand: a task done, rippling out. The Wake is the lead, a bold check with a wake of ripples; the Rip-Check is the literal sibling. Pick one on the mark page and every page wears it.
The short version of the transcript, so the mocks can be checked against the ask rather than against memory.
| The ask | Who, when | Where it is in the mocks |
|---|---|---|
| Call it "Task List", not the PM feature. Same schema as Project Management. No onboarding, no migration. | Seth, 15:26 and 16:32 | Every row in every option is a tasks row. Open any row: the record shows the real column behind each field. A PM task assigned to you sits on your list without being copied. |
| A per-user private list. Today you only see what is assigned to you. | Seth, 16:32 | "My list" in all three. The one schema change is letting a task exist without a project. |
| Tag a person and it shows up on both lists. | Seth, 17:50 | "Share it with Luis" by voice or text, or the tag button on a row. The record's "Shared with" line. |
| Group lists, like a Marketing list, with members. | Seth, 18:58 | Marketing and Shop & trucks tabs. "Start a Safety list with Tyler" makes one. |
| A mini Trello. "Rip off Trello but use our same data schema." | Seth and Matt, 18:58 | Option 2's Simple list and Board view. Nothing exhaustive. |
| An AI assistant called Taskmaster, one of the AI employees, an executive assistant that tracks anything you give it and works it through a pipeline. | Jon, 20:16. Seth: "much better idea than what I had", 21:59 | The conversation in all three. Option 3 is Jon's pipeline, literally. |
| Many views of one data structure: list, table, calendar, Gantt. | Jon and Matt, 21:59 to 23:09 | Option 2's Simple, Board, Calendar, Table switch. Same rows, no backend. |
| Import an existing task list by CSV. | Seth, 23:09 | Not in the mocks. Gated in the table below; Jon's importer is the backend Seth named. |
| Chat plus voice, its own page. | MJ, this morning | The mic on every composer uses the browser's own speech recognition in Chrome. Bella, the Academy voice, speaks the replies and the walkthrough. |
Two people, same list. If a design works for both, it works.
Runs a $3.5 million company and started using QuickBooks this year. Remembers things in the truck, between jobs, and loses half of them by the time he gets back. He will talk to it. He will not learn a board.
Lives in the list. Types faster than she talks. Wants to see everything on one screen, hand things to people, and know who has not done what. She will use the views.
The honest starting point in v3, from the code, not from memory.
| Piece | Today | The gap |
|---|---|---|
| To Do's page (Home) | One unified feed: PM tasks, comment to-dos, drawing pins, approvals, social, support, bookings, meetings. Today, This Week, This Month. | Adding a to-do there requires choosing a Project. There is no list that is just yours. |
| PM › My Tasks | Your project tasks by project, a week strip, reschedule and reassign, mark done. | Only tasks with a project. One owner per task. Nothing to share with a second person. |
| Ask Rippler (top bar and hub) | Reads the workspace, proposes a write, waits for your confirm, then does it. Already knows create_task and update_task. | No share, no lists, no nudges, no daily pass. Text only. |
| Voice | The Digital Receptionist talks on the phone, through Twilio. | Nothing in the web app listens or speaks. |
| Groups | project_groups are Gantt groupings inside a project. Chat rooms have members. | No list a set of people share. |
The lists the owner and the office manager already have on their phones, and where each falls short for a five-person shop.
| Tools | What they do well | Where they fall short |
|---|---|---|
| Trello the board everyone knows | Cards in columns, drag to move, share a board, a few automations. Nothing to learn. | Knows nothing about your business. A card called "Meridian quote" cannot tell you the quote went quiet twelve days ago. |
| Todoist, Microsoft To Do, Google Tasks, Apple Reminders personal lists | Type "call Luis tomorrow at 8" and the date parses. Shared lists. Siri and Alexa add items by voice. | Your list and the company's projects are two different worlds. Nobody chases the person you shared with. |
| ClickUp, Asana, monday work management | Every view of the same data: list, board, calendar, Gantt, table. AI summaries. | Too much for a five-person shop, and the reason the full PM feature needs onboarding in the first place. |
| Motion, Reclaim AI schedulers | Put your tasks on your calendar automatically and re-plan when things slip. | Calendar-first and desk-first. No crew, no customer, no truck. |
The gap nobody fills: an assistant that sits inside the contractor's own data. It can say "Luis hasn't opened it" and "Meridian hasn't answered your $31,000 quote" because the list, the projects, the people, and the quotes are the same tables. That is the slice all three options own.
Same morning, same chrome, same engine, three different pages. Open each one and talk to it. The switch at the bottom of every option tags each piece with what the backend serves today.
Every piece in the mocks, traced to the table, route, or agent tool behind it. "Live today" means the route exists and the agent or page already calls it.
| Piece | Used in | Verdict | What is behind it |
|---|---|---|---|
| The Everything tab with Today, This week, This month | Home, To Do's | Live today | It is today's To Do's feed, unchanged: the same sources and windows, rendered as rows on the same list. |
| Talking from the home page | Home | Live today | The dock is the Ask Rippler agent session on the home route; the propose-and-confirm loop already exists. Only the UI is new. |
| The home rundown written from your list as well as the platform | Home | Partial | The home's sentence templates already write the platform half from the attention feed; the list half needs the my-tasks feed folded into the same template module. Half a day. |
| Project tasks assigned to you, on your list without a copy | All | Live today | GET /api/pm/my-tasks returns them; tasks.project_id is the link back. |
| Add by sentence, move the date, mark done, reopen | All | Live today | POST /api/pm/tasks, PUT /api/pm/tasks/:id, and the move_task write My Tasks already uses. The Ask Rippler agent proposes create_task and update_task and waits for the confirm at /api/pm/agent/ask-ripple/confirm. |
| The people picker for tagging | All | Live today | GET /api/team?fields=picker, the same call the To Do's page uses to reassign. |
| Board, Calendar, Table views | 2 | Live today | Same rows grouped client-side by status and due_at. No backend. |
| An item with no project: "My list" | All | Partial | tasks.project_id is NOT NULL. One migration: allow null and add list_id. The alternative, a hidden per-person project row, keeps every PM query working but pollutes Projects. |
| Share an item so it is on both lists | All | Partial | One owner_team_member_id per row today. Needs task_shares(task_id, team_member_id, opened_at) and a JOIN in the my-tasks query. opened_at is what lets it say "Luis hasn't opened it". |
| Group lists with members | All | Partial | Needs task_lists and task_list_members. chat_room_members is the nearest pattern in the schema; project_groups is the wrong thing, it groups Gantt rows inside one project. |
| The morning rundown | 1, 3 | Partial | Wave 1 writes it from templates over the my-tasks feed, the way the home cockpit writes its summary line. A Rippler-written version is a later differentiator: read-only, capped cost, falls back to the templates. |
| "Text Luis" nudges | All | Partial | POST /dashboard/sms/send exists with the opt-out check. The agent needs a send tool and something that watches for the reply. |
| Listening: the mic | All | Partial | Nothing in the web app today. Chrome's Web Speech API turns speech into text with no backend and works on https, which is what the mocks use. Safari and Firefox are partial, so typing always stays. The receptionist's Twilio voice is phone-side and does not apply. Jon's Claude or Grok voice through the platform's MCP is the Wave 2 path. |
| Speaking: Bella's voice | All | Partial | The prototype plays clips rendered once with the Academy's Bella voice (ElevenLabs hpp4J3VqNfWAUOO0d1Us, eleven_multilingual_v2), so the key never reaches the browser. The real build adds one worker route that streams the reply text through ElevenLabs, with the key in Credential Manager locally and a Worker secret in production, metered per character. Dynamic replies in the mock fall back to a short generic clip. |
| Processes: "every Friday remind Tyler to..." | 3 | Gated | Needs a task_processes table and a runner (a cron trigger or Workflows). Nothing like it exists. |
| Import an existing list by CSV | All | Gated | /api/pm/imports is schedule-only today. Jon's estimator importer is the backend Seth named for it; a task-list import type is its own issue. |
| Taskmaster's own daily pass (flagging late items, adding the quiet quote) | All | Gated | Needs a scheduled job with the agent's read tools and a place to write its notes. The stale-quote example needs the Estimator's quote status, which the attention feed already exposes. |
The conversation is the page both people can use: the owner talks to it from the truck, the office manager flips to the rows, and the rail keeps the lists one click away. The three pipeline pieces are what make it an employee rather than a text box: it reports what it did overnight, it shows who is holding what up and what it will do about it, and it turns repeat asks into a process. Today's To Do's feed is kept whole as the Everything tab, so nothing users rely on disappears, and the home's rundown becomes the same sentence in both places.
Honest cost. Frontend: the To Do's route rebuilt as this page (two modes, the feed as a tab), the home's rundown and dock, the record drawer, the tag picker, the mic behind a feature flag, and a play button for Bella. About six dev days, desktop QA included. Backend: one migration (nullable project_id plus list_id, task_shares, task_lists and members), the my-tasks query, two agent tools (share_task, create_list), the list half of the rundown template, and one route that streams reply text through ElevenLabs. About four dev days.
What ships dark. Text nudges, "hasn't opened it", processes, CSV import, and the daily pass. Each renders as silence or a greyed line, never as a fake result.
Not a Rippler replacement. Taskmaster is the same agent with more tools, a page of its own, and Bella's voice. One assistant, one confirm loop, one audit trail; the top-bar pill is the way in from every other page.
Sample data, illustrative only, seeded with real gaps (a call 8 days late, a shared item nobody opened, a group item with no owner). Run locally with node mockups/taskmaster/_serve.mjs then open http://127.0.0.1:4340/. Add ?sim=1 to any option to force the simulated microphone, or ?clean=1 to hide the review bar. Bella's clips come from node mockups/taskmaster/_voice.mjs, which reads the ElevenLabs key from Credential Manager and writes voice.js. Built on the live v3 shell, Ubuntu type, and the June 2026 DataRipple tokens.