Changelog

What's new on OTP

Platform updates, new features, and improvements. Building in public.

06 June 2026

Jun 22 Major Portfolios Labs

Portfolios: run many organizations as one (early access in Labs)

  • Super-metrics. Roll one KPI per member org up into a single number, with per-org weights, so "leads this week" across a dozen locations becomes one line on the portfolio scorecard.
  • One meeting across the group. Start a portfolio meeting that reports the rolled-up scorecard, with attendees drawn from your member organizations.
  • An organization template. Define your standard once, the starter KPIs, the sidebar items every location shows, and the AI-key policy, and every member org inherits it. Lock it to enforce one brand standard everywhere.
  • Bring in a location by email. Invite a champion; when they accept, a brand-new organization is created from your template, owned by them, and linked into the portfolio, ready on day one.
  • Member org chart. See every member organization as a card with its people, agents, and KPI counts, and open a side panel for the details.
  • Early access. Enable "Portfolio" in Settings, Labs. Member organizations keep their own data; only the metrics you choose roll up.
Jun 22 Major Integrations Labs

Connect OTP to Claude with one URL (Remote MCP, early access in Labs)

  • One hosted URL. Generate a connection from Settings, API and paste it into Claude (Settings, Connectors, Add custom connector) or any MCP client. No npx, no config file.
  • Your org, scoped. Your agent gets your real chart, scorecard, rocks, to-dos, and the coordination graph as tools, limited to your organization.
  • Early access. Enable "Remote MCP connection" in Settings, Labs. A paid plan is required.
Jun 22 Major Integrations

Connect your stack: a searchable catalog of 1,000+ integrations

  • 1,000+ apps. The complete catalog, searchable by name, so you can find your stack fast.
  • Connect from Settings. Link a tool in a few clicks under Settings, Integrations.
Jun 22 Major Meetings Labs

Build your own meeting format (early access in Labs)

  • Your sections, your agenda. Build a format with the parts your meeting actually needs, then run it live in OTP.
  • Start from a template. Import any of the 180+ library agendas as a starting point.
  • Early access. Enable "Custom meeting formats" in Settings, Labs.
Jun 22 Major KPI

Organize your scoreboard: KPI groups and full inline editing

  • Groups. Add, rename, delete, and reorder KPI groups, and move any metric into the group where it belongs.
  • Full inline edit. Every KPI row opens a complete edit panel (name, target, owner, group) right on the scoreboard.
Jun 22 Major Labs

OTP Labs: turn on early-access features before everyone else

  • Opt in per organization. Admins choose which early-access features to switch on; nothing changes for anyone until you flip the toggle.
  • See what's cooking. Each Lab explains what it does and why you would want it on now.
Jun 22 Settings

Copy your Company ID from Settings

Your organization's Company ID now appears in Settings, Configuration with a one-click copy button, handy for support requests and integration setup.

Jun 17 Meetings

End anywhere, an hour-long safety net, and no more editing next week's meeting by mistake

  • End at the bottom too. The End meeting button now lives at the foot of the meeting, where you naturally wrap up, as well as the header.
  • One-hour auto-end. A meeting still running an hour after it started ends itself, so nothing is left open forever. Press Extend to add another hour when you need it. Everything entered is kept.
  • Future recurring meetings stay locked. Next week's occurrence does not open until its date arrives (or you start it on purpose), so your check-ins, headlines, to-dos, and issues land on the current meeting, not a future one.
Jun 17 Polish Core

A cleaner Accountability Map header, plus zoom

  • Filter dropdown. Switch between All, Agents, and Humans from one tidy control.
  • Actions dropdown. Run Leadership Meeting, People Review, Invite member, Import CSV, and Pending invites are grouped together instead of crowding the header.
  • Zoom. Use the on-screen controls (bottom-right of the chart) or Cmd/Ctrl + scroll to zoom in and out, then click the percentage to reset.
Jun 17 Rocks

Archive or delete a Quarterly Priority from the board

  • Archive. Hide a priority from the board while keeping it on record, recoverable later.
  • Delete. Remove a priority you no longer need, right from the card.
Jun 12 Major Templates

A free library of 180+ meeting templates and agendas

Every meeting worth running has a shape. We wrote down more than 180 of them.

  • Every major operating system. EOS, Scaling Up, Pinnacle, Accelerate (AOS), Metronomics, OKR, 4DX, Holacracy, Hoshin Kanri and Lean, V2MOM and OGSM, and Balanced Scorecard, each with its full meeting cadence from daily huddle to annual planning, plus signature sessions like the 4DX WIG Session and the Holacracy Tactical and Governance meetings.
  • And every everyday meeting. Agile and Scrum ceremonies, 1:1s and people meetings, team operations, retrospectives, customer and external, and innovation and facilitation.
  • Real agendas, not stubs. Each template has a timeboxed agenda, who should attend, duration and cadence, facilitator tips, and common mistakes to avoid.
  • Search and filter. Find a template by name, methodology, or what you are trying to do. Filter by operating system or meeting type.
  • Free to take or run. Download any template as markdown, print it, or open it and run the meeting live in OrgTP. Every template is public, no sign-in needed.
  • Browse the library at /templates.
Jun 12 Major Privacy

Private mode is live: keep your organization off the network entirely

The whole operating system, behind a closed door, enforced everywhere.

  • One switch. Settings, Configuration has a Private mode toggle (admins only). Flip it on and your organization is excluded from every public and cross-organization surface at once.
  • Nothing leaks, nothing is borrowed. Your org chart, OOS, scorecard, and claims stay out of browse, search, the graph, compare, and the directories, and they are never used to generate recommendations for anyone else.
  • Your team is unaffected. Everyone inside your organization keeps full access to your own data through the dashboard. Private mode only closes the outside door.
  • Reversible. Turn it off any time and your organization rejoins the network.
Jun 12 Help Search

Search the user guide and the article library

  • Searchable guide. Open the User Guide (or the Help panel), type what you are looking for, and matching sections surface instantly with the terms highlighted. Shareable: /guide?q=scorecard deep-links a search.
  • Searchable articles. The /blog library filters live by title, summary, and tag.
  • Connect Your Agent. A focused onboarding page with a copy-paste AI prompt that generates your first OOS in about 60 seconds, plus the one-line Claude Code install. Linked from the guide.
Jun 11 Major Dashboard

Design your own dashboard: row layouts and fonts up to 3XL

Hit Customize on the Daily dashboard.

  • Per-row shapes. Each row picks its own pattern: full width, 1/3 + 2/3, 2/3 + 1/3, half + half, or thirds. Mix them however you work.
  • Drag anywhere. Tiles move between cells and rows, not just within a column. Removing a row hands its tiles to the row above -- nothing disappears.
  • Bigger type. Six sizes up to 3XL for wall screens and tired eyes, with tiles that wrap gracefully instead of clipping.
  • Yours alone. Layout and font save per member automatically; teammates each keep their own.
Jun 11 Meetings Fixes

Fixed: KPI values saved during a meeting now show up immediately

If you updated a KPI during a live meeting, the value saved correctly but the scorecard kept showing the snapshot taken when the meeting started -- so your edit seemed to vanish. Now, saving a KPI mid-meeting refreshes the scorecard on the spot. Values entered before this fix were never lost; they are in your scoreboard history.

Jun 11 Major Rocks

Milestones on Quarterly Priorities: break a Rock into checkable steps

Rocks tell you the destination. Milestones tell you whether you are on the road.

  • Add milestones on the Daily dashboard. Open a Rock card: title + due date, done. A progress chip (2/5) sits on the Rock and turns green at 100%.
  • Due dates that mean it. A past-due, unchecked milestone shows its date in red.
  • Assign to-dos to a milestone. Each milestone takes its own to-dos with owners, picked from the same people list as delegation. They show up in the owner's queue like any other to-do.
  • Check off in the meeting. The Rock Review section of your weekly meeting lists each Rock's milestones with live checkboxes.
Jun 11 To-Dos Collaboration

Attach files to to-dos, and carry them to an Issue or a Rock

  • Paperclip on every to-do on the Daily dashboard and your to-do queue: attach, list, download, remove.
  • Carry, don't re-upload. From a to-do's attachment, send the same file to an Issue or a Rock with the arrow buttons. One file, linked wherever the work lives.
  • Issues and Rocks too. Attach files directly to either, from their cards on the Daily dashboard.
  • Sensible limits. Up to 5 MB per file; removing the last link removes the file.
Jun 10 Offer Privacy

The Private plan: run OTP behind closed doors for $99/month

Everything in Free, plus a closed door.

  • Nothing published. Your humans, agents, seats, OOS, KPIs, and meeting data stay out of every public surface: browse, search, compare, and the intelligence graph.
  • Nothing borrowed. Private org data is excluded from network intelligence -- no cross-org learnings, patterns, or recommendations draw on it.
  • Invitation only. You decide exactly who sees inside your organization.
  • Founding-member pricing. $99/month. See the pricing page or speak with our team to get set up.
Jun 10 Major Navigation

A real app shell: left sidebar navigation and a cleaner top bar

Navigation that stays put while you work.

  • Everything in one rail. Daily, Meetings, Team chart, KPIs, To-Dos, and Issues up top; Operating Plan, CEO view, Members, Teams, Docs, Workspaces, Inquiries, Publisher, and API keys appear based on your role; Tickets and the Guide anchor the bottom.
  • Collapse it. The chevron at the bottom shrinks the rail to icons. Your preference is saved to your profile and follows you between sessions.
  • A focused top bar. Signed in, you see Ask AI, What's New, Help, alerts, Publish, and your account -- nothing else competing for the space.
Jun 10 Major AI

Ask AI: instant answers about using OTP, right in the nav

Learn the system by asking it.

  • Ask anything about OTP. "How do I create a Strategy Reset meeting?" "Where do I see my team's KPIs?" Answers arrive in seconds and point you to the right page.
  • Grounded, not improvised. Answers come from the user guide, the route map, and recent product updates. When something is outside its knowledge, it says so and offers the ticket desk.
  • Built to grow. This is step one -- answers about your own org's data are on the roadmap.
Jun 10 Major Dashboard

Make the Daily dashboard yours: rearrange, hide, and resize

One dashboard, arranged per person.

  • Drag to reorder. In Customize mode, grab any tile in the left or right column and put it where you want it.
  • Hide what you don't use. Every tile except the cascading message can be hidden -- and brought back any time from the same mode.
  • Three font sizes. S, M, or L, applied to the whole dashboard.
  • Saves itself. Changes persist to your member profile as you make them. No save button, no setup.
Jun 10 Meetings

The Strategy Reset meeting: realign the company when something big changes

Create one from the Meetings page: New Meeting, type "Strategy Reset."

  • Nine guided sections with timeboxes, from problem definition (15 min) through strategic options (45 min) and the debate (60 min) to written commitment and success criteria.
  • The deliverable test. The meeting is not done until leadership can answer four questions with one voice: the problem, the decision, the 90-day priority, and the actions.
  • Notes autosave into the meeting record; Assign Ownership creates tracked to-dos with owners and due dates.
  • Bonus for every meeting type: the title field is now optional -- leave it blank and OTP names the meeting from its type and team, like "Leadership Meeting -- Leadership Team."
Jun 10 Navigation Help

Help, updates, and articles without leaving the app

  • The megaphone. A red badge appears when updates have shipped since your last look. Open it for the latest entries; the full history lives on the What's New page.
  • Help and Support. The (?) in the nav opens a panel with Raise a Ticket, the User Guide, What's New, the EOS + AI article library, and what's coming next.
  • No more exits. Guide, What's New, blog, and Premium Support pages keep the sidebar and top bar when you are signed in. Visitors still get the full marketing pages at the same links.
Jun 10 Offer

Premium Support: founding member pricing at $199/month

Details and the full Standard-vs-Premium comparison at /premium-support, or find it in the Help panel.

Jun 10 Major Notifications

The alert bell: in-app notifications, plus close out a delegated to-do yourself

Two halves of the same loop: see what moved, and unstick what didn't.

  • The bell. Between Dashboard and Publish in the nav, with a red unread count. Opening it shows your latest alerts and marks them read.
  • What lands there. A to-do assigned to you, a to-do you delegated being finished by its owner, and your to-do being closed out or verified by someone else.
  • Browser notifications. Grant permission once (the bell asks on first click) and new alerts also fire native desktop notifications while an OTP tab is open.
  • Close it out. On the Daily dashboard and /me/todos, every item you are waiting on others for now has a one-click disposition: done + verified in a single step, with the owner notified.
Jun 10 Scoreboard

Archive a KPI -- retire numbers you no longer track, without deleting anything

For when a whole scorecard group stops being part of your organization.

  • Archive from the scoreboard. An admin-only action on every KPI row. Archived KPIs leave every default view: scoreboard, Daily, meeting scorecard snapshots, founder-dependency and accountability diagnostics, and publish-all.
  • Never a delete. Every value ever recorded stays in the database. Archiving is a flag, not a removal.
  • Show archived. A toggle next to the scoreboard view tabs reveals retired KPIs, badged and dimmed, with an unarchive action to bring one back.
Jun 10 Help Onboarding

A (?) on everything: contextual help across the whole app

Built so a first-time user can learn the system from inside the system.

  • Everywhere you work. Daily dashboard panels, every agenda section of the meeting runner, to-dos, the scoreboard, issues, the org chart and People Review, Members and Teams, the Operating Plan and CEO view, Browse and the Intelligence Graph, and Settings.
  • Plain language first. Each popup defines the term (Rock, KPI, IDS, OOS, seat) in one line, then what the panel shows, then what you can do there.
  • Small touches. Escape closes the popup and focus returns to where you were.
Jun 9 Onboarding Fixes

Invite people and they appear on the chart right away -- onboarding can seat their goals and KPIs, plus a run of fixes

A batch focused on making invitations feel real immediately, plus a cluster of fixes.

  • Invited people appear as pending tiles. The moment you invite someone, they take a seat on the org chart marked pending, so the chart reflects your real team before anyone clicks accept.
  • Onboarding can seat their work, not just yours. During setup you can now assign Quarterly Priorities and KPIs to the people you invited, so a Rock or a number can already point at its owner while the invite is still outstanding.
  • Scoreboard shows the name, not the ID. For a seat nobody has claimed yet, the scorecard now reads the member name instead of a raw identifier.
  • Signup is solid through the last step. The onboarding flow now loads the sign-in provider correctly, so the writes on the final wizard step no longer fail with a permissions error.
  • Cleaner sign-out and invite form. Logging out now reloads and lands you on the sign-in page, and the invite form uses neutral placeholder text.
  • Public pages no longer error when signed out. The Browse (Claims) and Intelligence Graph pages had a server error for logged-out visitors; both now load.
Jun 6 Major Settings

Settings, rebuilt: one hub for your profile, billing, notifications, and API keys

Everything you configure now lives in one place, reskinned to the light in-app look.

  • One hub, one menu. A picture menu opens the whole set: Profile, Preferences, Notifications, Account, Integrations, Configuration, and API Keys.
  • Profile got real structure. Personal, Metrics (work-style: MBTI, Kolbe, CliftonStrengths), Contact, and Social tabs.
  • Billing reflects your actual AI team. A live agent count and a real per-agent cost model -- humans free, each active agent billable -- with the subscription and upgrade UI in place.
  • API Keys folded in. The key list and MCP setup snippet now match the rest of the hub instead of the old dark header.
Jun 5 Dashboard Meetings

A full-width Daily dashboard, and the meetings list shows your full cadence

Layout and meeting-list polish aimed at the screen you open every morning.

  • Full-width tile layout. Heavy tiles take a two-thirds main rail; light tiles and your Agents / OTP Insights sit in a one-third sidebar. Headlines and Quarterly Priorities now open by default.
  • The full meeting cadence. The list now offers Weekly Leadership, Departmental, Quarterly, Annual, and One-on-One, with a (?) explainer for what each one is for.
  • Recurring to-dos behave. A to-do you switch to recurring no longer vanishes from Daily, and you can set recurrence straight from the Daily quick-add.
Jun 5 Security Quality

Tenant isolation, script-context hardening, and a blocking test gate on every release

Less visible than a new screen, but the foundation a coordination platform has to get right.

  • Tickets stay inside your org. Reading and writing support tickets is strictly scoped to the caller organization.
  • Script-context output is escaped. Any value rendered into an inline script is escaped, so content that happens to contain markup can never break out of the script. A lint rule now enforces it on every page.
  • A real safety net on releases. The test suite and linting are now a blocking gate on every push, including an integration harness that specifically checks for cross-tenant access regressions.
Jun 4 Meetings Fixes

The weekly meeting now does exactly what you tell it: live Rocks, team-clean scorecards, and a real delete prompt

Five changes, all aimed at making the weekly leadership meeting behave the way you expect when you are running it live.

  • Rocks update live during the meeting. The Rock Review is where you set On Track / Off Track and mark Rocks complete, so those edits now render immediately. Previously the page showed a snapshot frozen at meeting start, so a change you just made looked like it had not saved (it had). Rocks are now always live; only the scorecard freezes.
  • "Changed this meeting" note. When a Rock's status moves during the meeting, it shows what changed ("Off Track → On Track", "Completed this meeting") instead of just flipping with no record. A Rock you complete mid-meeting stays visible with the note rather than vanishing.
  • Scorecards are team-clean. A meeting only shows the KPIs that belong to its team. A metric owned by another team can no longer surface on the wrong meeting's scorecard.
  • Final numbers captured at end. Ending a meeting now re-captures the scorecard, so the completed record reflects the numbers as reviewed, not the ones from when the meeting started.
  • Recurring delete asks first. Deleting a repeating meeting now offers "only this meeting", "this and all following", or "the entire series" — and the series-ending choices actually end it, instead of the calendar quietly regenerating the next occurrence.

Shared meeting links also unfurl with a new branded preview card in Slack and other apps.

Jun 1 Migration

The importer now speaks Bloom Growth too

The import engine was built source-agnostic on purpose: it reconstructs your chart from the owner column that every clean EOS export carries, regardless of which tool produced it. Adding Bloom Growth was mostly teaching the parser Bloom's file names.

  • New page at /import/bloom with Bloom-specific export steps (Bloom exports per meeting, as a ZIP you unzip). Same preview-then-commit flow, same mascot, same "rebuild the chart from who owns what" result.
  • Bloom's quirky file names handled — its To-Dos file is literally named "To-Dos (KPI (Metrics))", which naive detection would mistake for a scorecard. The parser now matches explicit module names first and treats the scorecard as the fallback, so To-Dos, Quarterly Priorities (Goals), and O&O (Issues) all land in the right place.
  • Secondary by design. Ninety stays the headline; Bloom is a quieter second door. The two import pages cross-link, and the engine, endpoints, and commit logic are shared.

Note: like Ninety, Bloom's accountability chart is print-only on export, so OTP reconstructs it from owners rather than parsing a chart file. Bloom also has a REST API, which is a cleaner future path than CSVs; for now the drop-the-files flow keeps it consistent with Ninety.

05 May 2026

May 31 Major Migration

Switch from Ninety: drop your exports and OTP rebuilds your chart from who owns what

The biggest thing keeping anyone on their current operating-system tool is the cost of switching. This release attacks that directly for Ninety.io, the most common place EOS-style teams keep their Rocks, scorecard, and issues today.

The hard part, and the trick that beats it

We looked at exactly what Ninety lets you export. The five list modules come out clean as spreadsheets: Rocks, To-Dos, Issues, Headlines as XLSX and the Scorecard as CSV. But the one thing OTP cares about most, the Accountability Chart, has no structured export at all. Ninety only prints it to PDF, and the detailed PDF drops the seat descriptions. There is also no public API.

So we do not need Ninety's chart. Every clean export carries an owner name on each row. OTP reads those owner columns across your Rocks, KPIs, To-Dos, Issues, and Headlines and rebuilds your roster from who-owns-what. That is the demo moment: you drop five files and watch your chart come back, seat by seat, reconstructed from accountability rather than from a picture.

How it works

  • Preview, no account, nothing stored. Drop your files at /import/ninety. They are parsed in memory and discarded. You immediately see counts per module and your reconstructed roster, each person with what they own.
  • One-click commit. Once you are signed in, Import into my workspace writes it all in: people seated on your chart, then Rocks, To-Dos, Issues, and Scorecard KPIs (with each weekly value as real history).
  • Idempotent. Re-running the import never creates duplicates. It dedupes by title and owner, so you can import again safely after fixing an export.
  • Honest about the gaps. The flow tells you what Ninety itself loses on export (Issue comments are dropped; Scorecard history is bounded by the date range you set), and reminds you to export before you cancel Ninety, since Ninety disables export access the moment a subscription lapses.

Where OTP sits next to the frameworks you already run

We also published an eight-part comparison series: OTP vs Scaling Up, OKRs, 4DX, Holacracy, Agile and Scrum, Lean and Six Sigma, V2MOM, and the Great Game of Business. The through-line is the same in every one: OTP is not a rival framework. The framework decides what the company should do; OTP is the operating layer underneath where the work gets executed by a team that is now part human and part AI, each seat with a scorecard and a KPI. Start at the series index.

May 27 Major Security Multi-tenant

Every page knows who is actually looking at it -- multi-tenant tightening across the dashboard

Two days, fifteen commits, one root pattern. OTP was built first as a tool for a founder running their own org, and that meant the codebase had founder-only assumptions sprinkled across dozens of routes. The moment a second real human signed in -- a teammate joining a live L10 -- those assumptions started leaking the founder's data into the teammate's view. The remediation is a structural tightening: any check that gates data on "who is looking at this?" now reads from the request's resolved member, honors super-admin impersonation, and applies a single canonical role tier from the chart-permissions service.

Multi-tenant scoping across the dashboard

Every route that returns user-scoped data was checked against the rule "must scope by the requesting member's role and chart position." Findings shipped as a coordinated sweep:

  • /dashboard: rocks, KPIs, to-dos, delegated lists are scoped to the viewer's claimed chart tiles plus their email. The agent-pushed founder tile is only added to the candidate list when the requester actually IS the legacy founder.
  • /dashboard/kpis: scoped to KPIs the viewer owns plus KPIs on teams the viewer is a member of. Owner / admin / implementer keep full-org visibility.
  • /dashboard/members: scoped to the viewer plus everyone in their reports-to subtree. Inviters at integrator / visionary / manager rank get a scoped invite picker -- they can still onboard their cone but can no longer see the rest of the org's roster.
  • /dashboard/teams: scoped to teams the viewer is a member of via team_memberships. Empty list when the viewer is not on any team.
  • /dashboard/team (chart): nodes and edges filtered to the viewer's viewable tile set. Owner / admin / implementer see the entire chart; manager / integrator / visionary see their own seat plus their reports-to subtree; managee sees only their own seat. The same filter was applied to the underlying /api/v1/team/graph endpoint so a client-side d3 fetch cannot bypass the page-level scope.
  • /team/review (People Review): identity now resolves through the impersonation-aware path so "view as <user>" rates that user's reports, not yours.
  • /team/:externalId profile drill-in (page + JSON API): rocks, to-dos, and tickets for a given chart tile are now gated by canViewTile. Hitting the URL for a tile you cannot see returns a 404 (existence is private).
  • "My Practice" nav: the tab now requires an org-wide role (owner / admin / implementer / visionary / integrator). Managers, managees, and members no longer see the practice tab even when the org has a claimed consultant profile.

Impersonation: view-as that actually views as

Super-admin "view as <user>" was leaking the admin's data into the impersonated view because four separate code paths derived "who is the effective viewer?" from the Clerk session (always the admin) instead of from the impersonation cookie payload. All four are now routed through request.impersonation.as || auth.userId so every gate evaluates as the impersonated user. A super-admin-gated diagnostic endpoint at /api/v1/_debug/dashboard-state stays in place -- it returns the resolved identity, role, claimed tiles, and the actual results that would be returned for the current request, so the next tenant-isolation question gets answered in one request instead of guessed at.

The principle going forward

Two memory rules now sit alongside the code so the pattern does not need to be relearned. "Who is the viewer?" gates must read from request.orgMember and request.impersonation.as, never from auth.userId or resolveOrgForUser(auth.userId) (the first two honor impersonation; the second two do not). The canonical "see-all" tier is owner / admin / implementer, defined in services/chart-permissions.ts; EOS roles like Integrator and Visionary view through their reports-to subtree, same as Manager. Before any new class of user is invited to OTP -- first paid client, first partner-org, first coach managing multiple orgs -- a structured re-scan runs against the same five greps captured in docs/security-audit-2026-05-27.md. This is a posture, not a one-time cleanup.

May 26 Meetings Polish

L10 day, hardened from inside the room -- segue saves, short titles, draft preservation, due dates, and Slack previews

Most product bugs surface during demos. This one surfaced inside a real L10 with two people running it for the first time -- which means each fix had a 60-second turnaround window between the bug showing up and being deployed live to the meeting in progress.

The five inside-the-meeting fixes

  • Segue / headlines / ratings save no longer errors out. The API auth resolver was only honoring the legacy-founder Clerk path; the invited-member path was missing. Any invited teammate trying to save a field got "Authentication required" even though they could see the meeting page. The resolver now honors both paths, matching what the page-level guard already does. Any invited org member can now run their L10 normally.
  • "Add Issue" no longer rejects short titles. The "Add Issue" UI hint promised "any non-empty title" but the server schema required five characters. A four-character title ("Reps" in the live meeting) returned "Add failed: invalid ticket data" with no explanation. Title and description validators were relaxed to one character minimum, matching the UI promise. Spam control already lives in the rate limiter; min-length validation does not need to do that job.
  • Saves no longer wipe what the other person is typing. Any save on the L10 page (segue, headline, rating, issue, to-do) fired an SSE event that triggered a full-page reload for every other attendee. The reload preserved scroll position and the focused element's ID, but not the contents of any input the other attendee was typing into. Now every reload path snapshots non-empty textarea / input / contenteditable values to sessionStorage before reloading and restores them on load. Typing in segue while a teammate saves their headline is now safe.
  • L10 to-do due dates accept a custom date. The to-do create form on the L10 page hardcoded the due date to seven days from today with no override field. A new date input next to the priority / recurrence selectors lets you pick any date; if you leave it blank, the seven-day default still applies. Picks anchor to end-of-day local so a "due today" to-do does not show overdue at 9 AM the same day.
  • Meeting links in Slack / WhatsApp render as the meeting page, not as a sign-in marketing card. Before today, pasting a meeting URL into Slack rendered the sign-in page's "Free in Beta" mascot card because the unfurl bot followed the auth redirect and scraped the sign-in meta tags. Now the meeting URL returns a public preview at the same path: meeting title, scheduled date in ET, attendee names, and a "Sign in to view" CTA. No agenda contents, scorecard, rocks, ratings, segue, or headlines leak -- public-safe metadata only. Sharing a meeting link with a teammate finally looks like sharing a meeting link.

Personal queue stopped leaking the founder's tasks

The same day, the /me/todos personal queue was found to hardcode the founder's external ID as a fallback owner -- a leftover from when the only user of OTP was the founder. Any invited org member who navigated to /me/todos got the founder's full personal to-do queue grafted onto their own. The fallback now only fires when the requester actually is the legacy founder; everyone else's queue scopes strictly to their own claimed tiles plus their email.

Org chart visibility tightened

The org chart at /dashboard/team previously rendered every node and edge to every authenticated org member. Visibility now matches the existing edit rules: owner / admin / implementer see the full chart, manager sees their own seat plus their reports-to subtree, managee sees their own seat only. The filter applies to both the page render and the underlying /api/v1/team/graph endpoint so a client-side d3 chart cannot bypass the scope by hitting the API directly.

May 25 Major Todos Mobile

Your queue replaces Todoist -- one mobile todo app for you and every AI agent on your team

The to-do system is the most-touched surface in OTP, and until today there was a split: the platform had /me/todos, but the AI agents pushed their action items to Todoist, so the queue was actually in two places. As of today, it's one place -- and that place is built for the phone.

The mobile queue is the queue

The /me/todos page was rebuilt as a thumb-reachable mobile app: sticky bottom add bar that's always visible (one input + send, no priority/date upfront -- those live in the per-todo Edit drawer), swipe-left-to-complete on any card, iOS safe-area padding so the FAB clears the home indicator, and a PWA install nudge so you can drop the app on your home screen and treat it like any other phone app. Theme color matches the rest of the brand (Ollie lime). Desktop layout is unchanged.

Your AI agents create todos directly

Every agent on the Sneeze It army -- Radar, Pepper, Dirk, Arin, AIO, and the rest -- has been migrated off Todoist and onto OTP's API. When an agent identifies an action item for you, it lands on your queue in seconds, tagged with the agent's name so you can see which one pushed it. The migration replaces 50+ touchpoints across the agent system; the canonical path now is a single shell wrapper (~/.claude/otp-todo.sh) every agent calls.

Descriptions with formatting

The to-do create form (on /me/todos, /dashboard, and inside L10 meetings) now has a description field with a small toolbar: **bold**, *italic*, and [label](url) link insertion. Cmd/Ctrl+B / +I / +K shortcut too. What you type is what gets stored -- no editor library, no contenteditable surprises -- and the renderer is gated so a malicious link can't inject javascript: URLs.

Todoist is deprecated

Todoist was the bridge while OTP built its own todo layer. That bridge is no longer needed. A migration script (~/.claude/scripts/import-todoist-todos.sh) mirrors any remaining open Todoist tasks into OTP on demand -- run once when you're ready to flip the switch. Agent surfaces still in the codebase reference Todoist only in DEPRECATED sections so the history stays readable.

May 24 Polish People Brand Onboarding

Every dashboard gets the Orgy brand pass, People Review respects the org chart, the seat-save bugs are gone, and chart claims now self-heal

Four threads shipped today, each as a separate deploy.

Brand pass across every dashboard

The full Ollie palette -- lime green #A8E63A for accents, deep blue #2563EB for action, a warm #F5F7FA page background, and the half-organic / half-circuit mascot -- now runs across all 17 dashboards. The CEO view at /dashboard/ceo got a hero treatment: 96px coach mascot, a green "CEO View" pill, amber attention badge when something needs you, and a real display headline instead of a row of pill chips. Main /dashboard was rebalanced into a Ninety-style 3-and-3 grid (Headlines / Rocks / KPIs on the left, To-Dos / Issues / Agents on the right) so the right column no longer towers over the left. The four coaching panels -- Waiting on others, Founder Dependency, Accountability Gaps, Hand-off candidates -- moved into a single collapsible "OTP Insights" tray below the grid. The My Agents card became a one-line summary that expands on click, opening state remembered across loads. Org-chart tile height bumped from 80 to 104px so employee tiles with two-line roles and contact pills stop clipping.

People Review: only the seats that report to you

The People Analyzer grid at /team/review was showing every human in the org, which made the page noisy and out-of-frame -- you rate your direct and indirect reports, not your peers or yourself. The grid now walks the reports_to subtree from whatever seats you have claimed on the chart and filters to that set, excluding your own tiles. Empty states added: "claim your seat" when you aren't on the chart yet, "no one reports to you yet" when you are. Same People Review was added as a visible banner on the daily dashboard and a "Review People (GWC + Values)" link in the CEO view's Team section, so it stops being a hidden feature.

Seat Fit and People Review saves no longer 500

The PUT endpoints for seat fit (/api/v1/seats/:externalId/fit) and seat responsibilities were 500-ing because the audit-log insert was sending the seat's varchar external ID (e.g. HUM_DAVIDSTEEL) into audit_logs.entity_id, which is typed as a Postgres uuid. The same bug surfaced through People Review's G/W/C columns as "Could not save rating." Fixed by passing the seat's external ID through details.seatExternalId on the audit row instead, where it belongs. Both save paths now work end-to-end.

Chart claims self-heal on every signup path

Two long-standing bugs in the chart-claim flow closed. First: when a teammate was pre-added to a team before signing up, the system created a synthetic stub member row (clerk_user_id starting with chart:) so the chart could attach to a team membership. When that person later signed up via Clerk, nothing merged the two rows -- the stub and the real account lived in parallel, and the chart had two of them. Second: owner signups went through /onboarding/profile, which created the org_members row with no claim and then called the chart-placement function -- which built the chart entity with the owner's email but never linked it back, so the owner showed up on the chart but their account stayed unclaimed (the exact reason People Review thought you weren't on the chart).

Both are fixed by a single reconciler that runs on every signup path. For any member with an email, it finds chart humans whose contact_email matches, merges any chart stubs pointing at those tiles in (moving team memberships, deleting the stub), and replaces the member's claim with the matched set. Wrong primary claims get overwritten. Real Clerk users with conflicting claims are deliberately left alone -- silent merging of two real accounts is too risky to do automatically. Backfill script scripts/reconcile-chart-claims.ts ran across all existing orgs and caught one silent bug-bite (a member who had been unclaimed for weeks).

May 21 Polish Auth

Sign-up and sign-in get the v7 editorial treatment, post-signup flow operational end-to-end

The front door has been quietly sharpened over the last three days. The conversion pages are the place new founders first decide whether OTP is real -- they should look like the rest of the product, not like a generic Clerk template glued onto an old layer.

Sign-up: v7 editorial rebrand

The /sign-up page now matches the home page visual language: light editorial backdrop, mono [OTP] lockup in a minimal nav (logo + Sign in, no exit ramps), big Schibsted Grotesk hero, and Clerk's SignUp widget themed to the Ollie green primary on dark ink text. A "What happens next" sidebar with hand-1 / hand-2 / hand-3 numbering tells new founders the three steps after submission. Loading skeleton inside the Clerk slot replaces the empty-box-while-the-widget-loads dead time.

Sign-in: matches the new sign-up, plus a live What's New tile

The /sign-in page got the same minimal nav, "Welcome back" hero with the operating-platform thesis as subhead, and a sidebar tile that auto-pulls the latest entry from this changelog. Returning users see what shipped recently the moment they sign in -- the platform feels like it is moving because it is.

Post-signup flow: layout conflict fixed, all 7 onboarding steps operational

The 7-step post-signup onboarding wizard (profile, team, goals, KPIs, agents, teams, first meeting) had a layout-rendering conflict that was returning an error on the first step for new accounts. Rebuilt on a manual ejs.renderFile pattern that bypasses the global-layout collision; the full wizard now flows end-to-end. Mobile sign-up was verified with a real submit -- Clerk's Cloudflare Turnstile fires correctly, the verification email lands, and the post-signup wizard renders.

Google Ads attribution unblocked

The Content Security Policy was blocking googleads.g.doubleclick.net and www.google.com/ccm/collect, so even successful sign-ups never reached Google Ads as a conversion. Added those origins to the script-src and connect-src directives. The server-side conversion upload that fires on /onboarding/profile (gclid-based, idempotent via the conversion_log table) is now end-to-end operational.

May 18 Major Tools

The People layer ships -- rate seat fit, run a People Review, close accountability gaps inline, and share one KPI across a team

The org chart has been a picture of who reports to whom. As of today it runs the people side of the operating system: who fits their seat, who is overloaded, where accountability is leaking, and how dependent the company still is on the founder. Four updates shipped today, each as its own deploy.

Accountability Gaps -- now actionable

The Accountability Gaps panel on /dashboard used to just list problems. Now it fixes them inline:

  • A seat with no measurable gets + Add KPI / + Add Rock forms right in the panel, pre-targeted to that seat.
  • Work owned by someone not on the chart gets a Reassign picker that moves it to a real seat.
  • An agent with no human above it gets a Set manager picker.
  • A filter bar -- All, All Human, All Agents, Direct Reports, No Seat -- narrows the panel to what you own.

Seat Fit

Every seat profile now carries a Seat Fit rating: does the person Understand the role, do they Want it, do they have the Capacity for it. Click to cycle each axis; it saves on the spot. A clean, honest read on whether the right person is in the seat.

People Review

A new grid at /team/review: every person down the side, the three Seat Fit axes plus each of your organization's values across the top. Click any cell to rate it. Each row gets a computed verdict -- solid, needs conversation, or wrong seat. Your value list is managed right on the page.

Delegate-and-Elevate + Founder Dependency

  • Hand-off candidates -- the dashboard flags anyone carrying a heavy recurring-to-do load, with a prompt to push the work down to a lower seat or an agent.
  • Founder Dependency -- a tile showing the share of all open work (priorities, KPIs, issues, to-dos) that still sits on the top seat. The number that tells you whether the team is actually absorbing the load.

Shared KPIs

A KPI can now be assigned to several people at once. Each person has their own goal; the scorecard sums the goals into one total and sums what each person reports into one actual. On /dashboard/kpis, hit + person on any KPI, pick who and their goal -- a "Shared KPIs" section then shows the rolled-up total with the per-person breakdown.

May 14 Major Coaches

The Coach Ecosystem ships -- Founder Certified badge, the Practice dashboard, and the full activation loop

Today shipped fifteen contained pieces that together turn the Founder 25 cohort from a marketing line into a working product. The thing the platform has been missing -- a real reason for a coach to come back tomorrow -- is now there.

For coaches: the Practice dashboard

  • /dashboard/practice -- your coach view across every client org you bring in. Three states: intro (not a coach yet), empty (share-link command center with email + LinkedIn share CTAs), populated (stats + side-by-side client list).
  • /dashboard/practice/client/:id -- read-only view of one linked client's workspace. Shows team members, KPIs, AI agents, OOS file count, plus a "Send activation nudge" button that fires a templated email to dormant clients with a concrete first-step CTA.
  • "My Practice ★" nav tab -- appears automatically in the dashboard nav for any claimed coach (coach-status detected server-side via a request-level preHandler).
  • Send invite by email form on the Practice dashboard -- type a client's address plus optional first name, fire the invite directly from the platform. Reply-To routes to the coach so any reply lands in their inbox.

For coaches: the Founder Certified Coach badge

  • Downloadable PNG at three sizes -- full quality (1.3MB) for print/email-signature, web preview (213KB) for site embedding, and compact (66KB) for inline markers.
  • Displayed automatically on the coach's public /expert/:slug profile (top-right of the hero on desktop, centered above the headline on mobile).
  • Highlighted in the /claim/:slug/done page with two download buttons (full + web).
  • Featured on the new /coaches directory and on the /coach Founding 25 perk card.

The /coaches public directory

A new page at orgtp.com/coaches shows every claimed Founder Certified Coach as a card -- name, location, headline, bio, expertise tags, badge. The dark hero shows "X of 25 seats filled" so prospective coaches see real cohort progress, not vapor.

For clients: /welcome quickstart + revocation control

  • /welcome -- when a client accepts a coach's invite they now land on a 3-card activation guide ("Add yourself · Add one teammate · Add one AI tool"). Cards flip to a green ✓ as the work gets done. Personalized with the coach's name when attribution is found.
  • /settings/coaches -- clients can revoke any coach's access from one page. Founder attribution stays attached for commission accounting; only data visibility is revoked. Two-table design (access revocable, attribution immutable) so commission survives even if the client fires the coach -- same hook GHL agencies use to overcome the "what if they leave?" fear.

The full loop end-to-end

  1. Cold email lands → coach hits /claim/:slug → claims their Founder profile.
  2. Auto-publish + auto-fill Clerk email → public profile is live immediately, no checkbox to remember.
  3. Welcome email fires with the Founder badge, the share link, and a 15-min Calendly CTA. Reply-To routes to David's real inbox.
  4. Coach lands on /dashboard/practice → copies their /join/{token} link or fires the invite-by-email form.
  5. Client clicks the join link → coach-branded landing → accepts.
  6. Two records get written: access (revocable by client) and attribution (perpetual).
  7. Client gets a welcome email + lands on /welcome → builds their first 3 seats → coach sees stats populate in their Practice dashboard.

First real signal

Joel Swanson, an EOS Implementer in Colorado, became the first cold-email-driven claim today -- about four hours after his email landed. He wrote back asking the basic "who are you, what is this, why should I care" questions, which became the spec for the new /coach 101 panel and the welcome email template every coach receives from this point on.

Under the hood

  • Two new tables -- coach_client_attribution (immutable except by admin transfer) and coach_client_access (revocable by the client). Different mutability rules, intentionally separate.
  • Self-healing schema migration on boot via ensure-coach-clients.ts.
  • Resend open + click tracking enabled for the founding-25 campaign. Every cold email since this morning gets per-recipient engagement data, filterable by campaign=founding_25_coach.
  • Three new branded OG images (1200×630) so /join/{token}, /coaches, and /welcome all show real preview cards when shared on LinkedIn / iMessage / Slack.
  • Takedown handler now auto-unpublishes the profile immediately when a coach hits the "remove me" link (the email promise was "one-click removed" but the old code only filed a ticket and waited for a human).

Founder badge for any claimed coach: download the PNG. The Founding 25 still has open seats -- see /coach for the playbook.

May 10 Major

Orger.ai launches: the first product built on OTP

Orger.ai shipped today with a new homepage, a mascot named Ollie, and a free builder that lets you drag and drop the humans you have and get grounded recommendations for the AI agents you should hire next.

The bigger news for the network: Orger is the first product built on OTP, not just one that consumes the API.

What that means concretely

  • Same Clerk auth as orgtp.com.
  • Same Postgres database backing every chart on the network.
  • Same MCP server surface, queryable from any MCP-aware AI client.
  • Same team graph schema. Seats you create on Orger are OTP seats.
  • Same scorecard surface and the same correction loop every other agent on the network learns from.

Why this matters for the framework story

OTP has been called a protocol, a coordination layer, a network, and a transactive memory system. All accurate, none of them prove the framework claim on their own. A framework only earns the word once a product is built on it that could not have been built any other way at the same cost. Orger is that product.

Read the full launch story: Orger is the first site built on OTP.

If you are building something that needs humans, agents, seats, scorecards, and corrections to live on the same protocol, the framework is open. The MCP is npx -y @orgtp/mcp-server. Reach the team if you want to be the second.

May 7 Improvement Tools

Dashboard polish: editable to-dos, IDS filter, clickable MCP, compact My Agents

The Dashboard shipped earlier today as a full daily manager surface. Tonight is the first polish pass -- the rough edges from a couple hours of real use.

To-Dos: full CRUD inline

  • Every to-do row now has Edit, Done, and Delete alongside the checkbox.
  • Edit toggles an inline form for title and description -- save reloads, cancel reverts.
  • Delete uses a 2-tap confirm (tap once, button turns red "Confirm?", tap again within 3 seconds to soft-delete). No accidental losses.
  • Descriptions now display in the row when present, no separate page needed.
  • The same UX is live on the mobile /me/todos PWA so the queue feels the same on phone or laptop.

Issues (IDS): status filter, default Open

  • New pill bar above the issues list: Open / Identified / Discussed / All open, each with live counts.
  • Open is the default selection so the dashboard opens to the issues that still need to be identified first.
  • Pure client-side filter -- switching is instant.

MCP-live pill is now clickable

  • The amber "not connected" banner already linked to /settings/api. The green "live" pill was static.
  • Now both states are clickable surfaces to the same MCP management page. One tap to verify, rotate, or copy the key.

My Agents: compact rows + sourced from the team chart

  • Each agent renders as a single line: status dot, name, slim score bar, score, KPI count. ~14 agents drops from ~2000px to ~350px while keeping the at-a-glance "who's red" read.
  • Header summary shows total seats, average score, and counts of red/yellow agents.
  • Click any row to jump straight to /dashboard/team.
  • Bigger fix: the panel now sources from the same team graph that powers /dashboard/team instead of a separate upload table. Score reads from the entity's maturity_level (the Bassim-style maturity score), and the KPI count joins live from your KPI registry. Agents you add to the chart now appear here automatically -- no separate upload step.
May 7 Major Tools

A daily home for managers -- the Dashboard now runs your day

OTP's dashboard used to be a publisher splash for owners and a near-empty page for everyone else. It is now a daily manager workspace, designed to be opened every morning.

What you get on /dashboard

  • Meeting selector -- pick the meeting you are running (defaults to the next upcoming).
  • Headlines -- any attendee can post a headline. The Integrator gets a checkbox to mark each one read; everyone else sees the read state. No more headlines getting lost in a shared text blob.
  • My Quarterly Priorities (Rocks) -- this quarter only, filtered to what you own. One click toggles on-track / off-track.
  • My KPIs -- the KPIs you own. Type a value, hit tab, it saves to this week's period. The same numbers feed your scorecard.
  • My To-Dos -- add inline with a due date, check off when done. Overdue items go red.
  • Issues (IDS) -- add an issue right from the dashboard. The Integrator can mark it solved and auto-link it to the current meeting.
  • My Agents -- upload a CLAUDE.md or Agent.md file (paste it or pick the file). Each agent gets a 0-8 score: +2 if your org's MCP key is live, +2 if KPIs are declared, up to +3 for recent agent runs, +1 for a description. The score is meant to push you toward connecting MCP -- that is where OTP actually starts working for you.
  • MCP banner at the top -- green when an API key on your org has been used in the last 7 days, amber CTA when not. The single most important conversion moment from passive viewer to active user.
  • Multi-org dropdown -- if you are a member of more than one org, switch between them right at the top of the page.

Two new EOS roles: Visionary and Integrator

  • Added Visionary and Integrator as first-class roles alongside Owner / Admin / Manager / Managee. Visible in the Members invite dropdown.
  • The Integrator role unlocks running-the-meeting actions: marking headlines read, overriding a Rock's status, marking issues solved. Owners, Admins, and EOS Implementers also have these powers, so nothing changes for orgs that have not adopted the role yet.

Wayfinding: Dashboard dropdown + tab strip

  • The global nav now has a Dashboard â–¾ menu (signed-in users) with shortcuts to Daily / Meetings / Team chart / KPIs / Operating plan / Members / Publisher / MCP. One click to anywhere from any page.
  • A sticky tab strip renders on every /dashboard/* and /l8/* page so you always see where you are and what other surfaces are available -- role-filtered (managee does not see Publisher).
  • The legacy publisher dashboard (OOS files, claims, network learnings) moved to /dashboard/publisher and is one click away from the Daily view.

Why this matters

  • OTP works because you use it every day. A login that lands on a publisher splash does not earn a daily habit. A login that lands on your Quarterly Priorities, your KPIs, your headlines, and your agents does.
  • The "My Agents" score is a forcing function. Upload your CLAUDE.md, see the score, see exactly which lever (connect MCP, declare a KPI, run the agent, write a real description) moves it. Every visit is a nudge toward making the system live, not decorative.
  • The same data that drives your dashboard is the same data your weekly L8 meeting reads. No double-entry, no separate system.

How to start

  1. Sign in and visit /dashboard.
  2. Pick a meeting from the dropdown. Add a headline. Type a KPI value. Add a To-Do.
  3. If the MCP banner is amber, click Set up MCP and create an API key.
  4. Upload your CLAUDE.md under "My Agents" and watch the score change as you connect things up.
May 5 Naming

L10 is now L8 -- weekly leadership meeting renamed to point at agentic maturity

The weekly leadership meeting is now the L8 Meeting. The name comes from Level 8 of the 8 Levels of Agentic Engineering -- Autonomous Agent Teams. Same agenda shape as the EOS L10 (Checkin, Scorecard, Quarterly Priorities, Headlines, To-Dos, Issues, Conclude); different reason to run it: every week the meeting forces the question "are we more agentic this week than last week?"

Old /l10 URLs continue to work via 301 redirect, so any link, bookmark, or doc that points at /l10 will land on /l8 automatically. The glossary keeps the L10 entry alongside the new L8 entry so the EOS lineage stays discoverable.

May 3 Major Tools

Run your weekly leadership meeting from OTP -- the Meeting layer is live

OTP now runs your weekly leadership meeting. Visit /l8 to see your meeting list, or click the new Run L8 Meeting button on your team chart at /dashboard/team.

What you get

  • Single-page meeting runner with all 7 sections on one screen: Checkin, Scorecard, Quarterly Priorities, Headlines, To-Dos, Issues, Conclude.
  • Per-section timer on a single-line agenda nav. Click any section to jump and start its budget timer. Goes amber under 60s, red and pulsing when over.
  • Attendees & Access panel at the top of every meeting. Edit who is invited inline.
  • Scorecard grouped by team: Leadership Scorecard (humans), Agent Scorecard (one row per AI agent), and any custom group you push KPIs into. Goal column shows symbols, on-track checkmarks colored green/red.
  • Quarterly Priorities with on-track/off-track toggle, owner, status note. Add new ones inline with the new + Add quarterly priority button.
  • Issues with full identify-discuss-solve workflow. Solve opens a form that captures the resolution and (optionally) auto-creates a 7-day follow-up to-do for an attendee. Edit, delete, convert-to-todo, and assign ownership all live on each issue. Inline + Add issue button at the bottom of the section.
  • Cascading message that builds itself. Every solve appends a one-liner. The Rebuild draft button regenerates the full recap from headlines + solved issues + new to-dos so the team always knows what got decided.

The org chart now shows accountability

  • Click any person or agent on /dashboard/team and the edit drawer opens with a Meetings & Accountability block: tiles for quarterly priorities owned, open to-dos, open issues, and meetings attended. Below that, upcoming and recent meetings with status badges and contribution chips.
  • Click View full profile for the dedicated person page at /team/:externalId: hero summary, currently-owned items, and a vertical timeline of every meeting they have attended with per-meeting contribution counts (to-dos owned, issues solved).
  • This turns the org chart from a static who-reports-to-whom diagram into a real accountability dashboard. Click anyone, see what they own, see what they delivered.

Why this matters

  • Most leadership-meeting software is heavy, complicated, and built around someone else's framework. This is built around the work the team is already doing -- Sneeze It is running its own Tuesday leadership meeting from this exact page.
  • The meeting layer reuses the same KPIs you push via tally, the same agents on your org chart, the same issues your team raises. No double-entry. No separate system.
  • Every AI agent you have can be invited as an attendee, can own a quarterly priority, can own a to-do. Run a real weekly meeting with a mixed human + agent team.

How to start

  1. Go to /dashboard/team, click Run Weekly Meeting top right.
  2. Create a meeting (defaults to a leadership meeting tomorrow 9am).
  3. Add your team as attendees -- humans and agents both.
  4. Click Start Meeting. The scorecard and quarterly priorities snapshot at start, so the agenda is frozen at meeting time.
  5. Walk through the 7 sections. Solve issues. Cascade decisions. Done.

This is the kind of thing OTP was always meant to be: where your AI team and your human team coordinate from the same surface.

May 2 Major Tools

The Coordination Checkup is live -- score your team against the 8 Levels of Agentic Maturity

The fifth tool in the public OTP toolbox just went from "promised on the homepage" to "live and scoring." Take it at /checkup.

What it actually does

  • 24 questions, 3 per level across all 8 levels of agentic maturity. One question at a time, snappy progress bar, no walls of text.
  • Final score is calculated using Bassim's hierarchy rule: a weakness at any lower level caps your score regardless of higher-level capabilities. A perfect L8 with a broken L4 still scores you a 4.
  • You get a single number out of 8.0, a tier headline (Tourist, Tinkerer, Operator, Orchestrator, Autonomous Agent Team), per-level breakdown showing which level capped you, and a personalized roadmap with the three highest-leverage moves for your next jump.
  • Result is also emailed so you can share it with your team or come back to it later.

Why this exists

  • Most teams cannot answer "where are we, really?" on AI maturity. Vendors sell against the top of the ladder. The honest read is harder to come by.
  • The same scoring engine our internal evaluator (Bassim) uses to score Sneeze It nightly is now public, translated from "reads your agent files" into "you tell us what is true."
  • The roadmap is the point. The score is just the way in. If you walk away with three concrete moves to make this quarter, the quiz worked.

The 8 levels, briefly

  • L1 Tab Complete -- AI as autocomplete in your editor or inbox.
  • L2 Agent IDE -- you have built or deployed at least one real agent.
  • L3 Context Engineering -- system prompts, rules files, persistent context.
  • L4 Compounding Engineering -- lessons learned compound; agents read your playbooks.
  • L5 MCP & Skills -- AI is wired to real tools and takes real actions.
  • L6 Harness Engineering -- validation, observability, authority bounds.
  • L7 Background Agents -- agents run on a schedule without you starting them.
  • L8 Autonomous Agent Teams -- agents talk to each other; you are not the message bus.

The homepage and /tools CTAs both repoint to the live calculator. The Checkup is free, no signup required to take it -- only to see the result.

May 2 Site

New /start-here page, redesigned heroes, and an accessibility pass

Three quiet improvements to the public site, all shipped together.

A new /start-here page

  • Modeled on the EOS Worldwide pattern: one promise, three steps, one calendar.
  • Hero promises a 30-minute conversation with David Steel, founder of OTP. No slides, no sales gauntlet.
  • "What happens on the call" section walks through the three things in order: map your AI footprint, find the coordination gaps, decide the next move.
  • Inline Calendly widget renders the full calendar plus time slots without scrolling, branded against the OTP color palette.
  • Three reassurance statements address the obvious objections: it is free, you are talking to the founder, we will tell you if OTP is wrong for your situation.
  • A new "Schedule a 30-min intro" primary button is now in the hero of /why-otp, /what-is-otp, and /tools, all routing to /start-here.

Heroes that put the CTA above the fold

  • The hero on /, /why-otp, /what-is-otp, and /tools all use the same 12-column grid now: text on the left (col-span-7), an editorial illustration on the right (col-span-5).
  • H1 sizing tightened so the CTAs land in the first viewport without scrolling on a standard laptop.
  • Each illustration is a hand-drawn line-art piece that maps to the page's specific copy: an org chart with disconnected AI tools (why), a four-layer Model/Protocol/Network/SaaS stack (what), an open toolbox with five tools (tools), a calendar slot and 30-minute clock (start-here).
  • All illustrations are 1024px lossless WebP with transparent backgrounds. The page background shows through cleanly.

Accessibility and craft pass

  • Site-wide prefers-reduced-motion gate so animations honor user preference. Vestibular-disorder users and low-end devices get a calm site.
  • Keyboard users can now tab into the Explore and Learn nav dropdowns; previously hover-only.
  • Email signup field has a visually-hidden label and an aria-live result announcement for screenreaders.
  • theme-color meta added so mobile browser chrome matches the dark nav instead of defaulting to system white.
  • transition: all antipatterns replaced with explicit property lists across the layout.

None of this changed the product. It changed how the product introduces itself.

May 1 Improvement

Bulk-import your human team from a CSV

Adding humans one tile at a time was fine for a 10-person team and painful for a 50-person team. Today the chart gets a CSV import path that scales.

Two templates, your choice of detail

  • Simple: name, role, reports_to. Three columns, enough to draw the org chart and nothing else.
  • Full: name, role, contact email, contact phone, Slack ID, reports_to, job description, authority level, skills, MCPs, status. Every field a human tile carries on the chart, mapped one-to-one.
  • Both templates download as real CSVs with three example rows. Open in Sheets / Excel / Numbers, edit, save, drop back.

Reports-to resolves the way humans actually write it

  • Match by name first against existing humans on the chart and against rows in the same import. So a row "John Smith reports_to Jane Doe" works whether Jane is already on the chart or being created in the same CSV.
  • Falls back to external ID (e.g. HUM_JANEDOE) for power users who already know them.
  • Names that match nothing leave the parent unset and surface a warning in the result summary -- the row still imports, you just see exactly which links did not land.

Two import modes, one of them destructive

  • Addition (safe): upsert by name. Existing humans whose names match get their fields refreshed. Humans not in the CSV are left alone. Default mode, never deletes anything.
  • NEW / Overwrite: upsert by name, then delete any human not in the CSV. Agents that escalated to a deleted human lose that link automatically; other humans that reported to a deleted human do too. Confirmation prompt before any destructive run.

Preview before you commit

  • The drawer parses your CSV client-side and shows a row-by-row preview: which rows are new, which are updates, and which references will resolve.
  • A live count tells you exactly how many humans NEW mode would delete -- before you run it.
  • The whole import lands as a single atomic write to your draft OOS, not 50 round-trips. Up to 500 rows per file.

Find it next to "Invite member" at the top of /dashboard/team. Owners only.

04 April 2026

Apr 30 Major Improvement

Build agents and humans directly on the chart, with the Agent Builder one click away

Until today, getting a tile onto /dashboard/team meant either authoring an OOS file or sending an invite. That worked when you had real teammates to email, but slowed you down when you wanted to model an agent or place a known human on the chart without bringing them in yet. Two changes fix that.

Two new entry points to the create flow

  • "Add to chart" button at the top of the chart, next to "Invite member." Opens the same side drawer you already use for tile editing, but in create mode -- empty fields, a Human / Agent toggle at the top, and a Create button instead of Save.
  • Per-tile "+" button appears in the bottom-right corner when you hover any tile (owners only). Click it and the create drawer opens with the tile you hovered preselected as the parent -- "reports to" for humans, "escalates to" for agents. One click adds a direct report under the seat you are standing on.

Same drawer, same fields, same SOP section

  • Every field from the edit drawer is available in create mode: role, mission, job description, authority level, agentic maturity, platform, status, contact email/phone, Slack ID, skills, MCPs, SOPs, KPIs.
  • The Invite section and Delete button are hidden in create mode -- the rest of the panel is identical, so the visual rhythm of the chart is unchanged.
  • Submit creates the tile in your draft and saves all the extra fields in one go. Reload to see it on the chart.

Agent Builder runs inside the chart now

  • In agent create mode, a "Use Agent Builder" button appears at the top of the drawer. Click it and the Agent Builder slides in from the right -- same rail as the create drawer, white background, light theme.
  • Just the wizard. No hero, no marketing sections, no footer. Industry, title, description, skills, tools, personality framework, review.
  • On generate, the result populates the create drawer underneath: name, role, mission, skills, MCPs all filled in, with the full generated CLAUDE.md added as a SOP entry titled "Generated CLAUDE.md." The Agent Builder closes; you adjust anything you want and click Create.
  • The standalone /agent-builder page is unchanged for visitors who land on it directly.

Why this matters

The seat is the unit of an org chart, not the body. Until you can put a seat down without sending an email, the chart is gated by your willingness to bother people. Now you can model the team you want -- humans you have not invited yet, agents you are still drafting -- and the chart is a working spec from the moment you put a tile on it. The Agent Builder integration closes the loop between "I need an agent for X" and "the agent is on my chart with the right SOPs inherited from its parent." Two minutes from idea to placeable seat.

Apr 26 Major Core

OTP becomes the Organization Operating System

Today is the pivot. OTP started as the Organization Transport Protocol for AI agents. The acronym was right; the scope was too narrow. The agent army is a slice of the organization. The whole organization is humans + agents + the SOPs that move between them. That is what OTP is for now.

SOPs as the unit of coordination

  • Author once: click any agent or human on /dashboard/team and add SOPs in the side panel. Each SOP has title, trigger, steps, outputs, tools, and notes -- enough structure for AI inheritance, light enough to author in under a minute.
  • Five Founder/CEO templates seeded: daily inbox triage, weekly L8, monthly stakeholder update, founder-led discovery call, quarterly Rocks-setting. Click "+ From template..." in the SOP section, pick one, edit to your voice, save. Sixty seconds to a working operating cadence.
  • Purple "N SOPs" badge on every chart tile that has authored SOPs. Visual confirmation that a tile carries executable spec, not just a name.

AI agents inherit SOPs from their human

  • Inheritance: when an agent escalates_to a human, the agent inherits that human's SOPs as runtime context. No copy-paste, no re-explanation when a new instance spins up.
  • Copy as Agents.md / Claude.md: every agent's edit panel has a one-click button that compiles own SOPs + inherited SOPs + role/mission/authority into a markdown file, copied straight to your clipboard. Pick the format your stack expects -- AGENTS.md (cross-platform default), CLAUDE.md (Claude Code), .cursorrules (Cursor), or generic system prompt. Drop it into your runtime and the agent runs on the org's latest accountability state.
  • Tooltip: hover any agent and see "Inherits N SOPs from {parent}." The SOP layer is visible at a glance.

Multi-user invitations

  • Invite to claim a tile: open any human node and you will find an "Invite to claim this tile" section. Email goes out from notifications@mail.orgtp.com with a 30-day-TTL signed link.
  • Invite someone new: the chart header has a "+ Invite new member" button that creates a fresh tile and fires the invite in one action -- name, email, optional role, optional reports-to.
  • Accept-invite landing: the recipient lands on a page showing the org name, the tile reserved for them, and the expiry date before they sign in. Clerk handles auth; the token preserves through the redirect; the tile auto-claims on success.
  • Pending invites drawer: owners get a header button (with badge count) that opens a drawer of every pending invite, with revoke buttons.
  • "Claimed" pill shows on every human tile that is bound to a real member account.

Editor polish

  • Contact fields on humans: email, phone, Slack ID, with small contact pills on the chart tile when populated.
  • Status field with active / paused / inactive / retired / terminated. Inactive nodes render grayscale with a strike-through name -- a clean way to mark old data without losing structure.
  • Explicit Delete button in the edit panel. Removing a tile also scrubs any escalates_to / reports_to / override_authority references that pointed at it, so the chart never dangles.
  • Sticky filter: the All / Agents / Humans toggle persists in localStorage. Refresh the page; the view stays where you left it.

What the framing change means

OTP is no longer "the AI coordination protocol." It is the substrate for hybrid human-and-AI organizations. The chart is the surface, the SOPs are the substance, the network is the leverage. /about and the FAQ are updated.

Next up: invite-from-tile for agents (members spin up their own connected Claude instances under their tile), dotted comparison lines between same-role agents, skills taxonomy, and mobile polish.

Apr 26 Major Core

Team Chart: Visualize and Edit Your Agent + Human Org

Open /dashboard/team and your published OOS becomes a top-down org chart: agents, humans, organization, all wired by escalation and reporting lines.

  • Live derivation from your OOS: the chart reads entities.agents and entities.humans from your latest draft (preferred) or published file. No new schema, no separate database. Your OOS is still the source of truth.
  • Click any node to edit: a side panel opens with name, role, mission or job description, authority level, platform and status (agents), skills, and the escalates_to or reports_to dropdown. Saving creates a draft if you do not already have one.
  • Drag and drop to restructure: drag any agent or human onto another box and it becomes the new child. Cycle prevention rejects drops that would create loops. The PATCH writes back to your OOS draft and the chart re-renders.
  • Type filter: the All / Agents / Humans toggle re-lays out the tree to show just what you care about.
  • Status banner: shows whether you are looking at a draft (with version number) or your published file. Edits never touch your published file until you republish.

If your OOS does not have entities.agents or entities.humans populated yet, the chart will look empty. Reach out and we can help you migrate. Next up: skills taxonomy, mobile polish, and add/delete nodes.

Apr 5 Major Core

The Content Engine: Industry Playbooks, CLAUDE.md Generator, and Newsletter

OTP's biggest update yet. We flipped the entry point: instead of asking you to publish, we're giving you something useful first. Industry coordination playbooks written from real production experience.

  • 6 Industry Playbooks: Agency (34 practices), Fitness/Franchise (29), Healthcare (24), SaaS (23), Professional Services (50), and E-Commerce (43). Each practice includes what to do, why it matters, and what goes wrong without it. These are original content from teams running 10+ AI agents in production, not scraped or AI-classified consulting reports.
  • Download as CLAUDE.md: One click exports any industry playbook as a CLAUDE.md file you can drop into your project. Your agents start following proven coordination patterns immediately.
  • CLAUDE.md Generator: Tell us your industry, team size, and agent count. Our AI generates a complete, customized CLAUDE.md using your industry's coordination practices as context. Fallback templates ensure you always get something useful, even if the AI is having a bad day.
  • Practice Voting: Upvote and downvote practices on any industry page. Community validation surfaces the practices that actually work in the real world.
  • Newsletter: Weekly coordination intelligence updates delivered to your inbox. No account required, just your email. Stay informed about new practices, industry playbooks, and what's working for other AI teams.
  • Homepage Refresh: Three-slide hero showcasing industry playbooks, the CLAUDE.md scanner, and newsletter signup. All 6 industries with live practice counts.

The idea is simple: come to OTP, get your industry's playbook, use it. When you're ready to share what you've learned, publish your OOS. But start with value, not a request.

03 March 2026

Mar 30 Core Security

Vulnerability Scanner, Foundation Score, and Share Your Score

Three new features that make uploading your CLAUDE.md safer, more actionable, and more fun.

  • Vulnerability Scanner: Before you can publish, OTP now scans your entire system prompt for sensitive data -- API keys, passwords, database URLs, credit card numbers, SSNs, revenue figures, salary data, employee names, Slack IDs, internal file paths, billing rates, and more. 20+ detection patterns across 5 categories (credentials, financial, personal, infrastructure, business). Critical and high-severity findings block publishing until resolved. Your secrets stay secret.
  • Foundation Score (0-100): Instant structural triage on upload. 15 checks surface the critical fixes that need attention right now -- not nuanced best practices, but the stuff that's obviously broken. No human override authority? No escalation paths? No error handling? Agents with no clear responsibilities? The Foundation Score catches it immediately and tells you exactly how to fix each one. Critical failures cap your score regardless of everything else.
  • Share Your Score: New share button on both the scan results page and the dashboard. One click opens a modal with your score card, pre-generated social text, and share to X, LinkedIn, or clipboard. Designed for virality -- "Just scanned my AI agent system. Coordination Score: 82/100. What's yours?" Every share is an ad for OTP.

The vulnerability scanner is a trust prerequisite -- it removes the fear barrier to sharing your operating system. The Foundation Score gives instant value on first upload. And the share button turns every scan into a growth opportunity.

Mar 30 Core

The Coordination Score: Your AI Team's Health Dashboard

OTP now scores your AI coordination maturity on a 0-100 scale across 6 dimensions: Conflict Management, Escalation Structure, Workflow Clarity, Human Oversight, System Redundancy, and Authority Boundaries. The score is the product.

  • Scan Results Page: Animated score ring (Lighthouse-style), 6-dimension breakdown bars with color coding, and insight cards grouped by severity. This is the "aha moment" -- upload your CLAUDE.md and see what the scanner finds.
  • Fix Issues Inline: Each critical/warning insight has a "Resolve This" button. Type your resolution, it generates a claim, your score ticks up in real time. The scan page IS the diagnostic session.
  • One-Click Publish: After fixing issues, "Publish to OTP Network" does everything in one click -- auto-fix, create OOS, publish, redirect to your live page. No confusing intermediate steps.
  • Dashboard Overhaul: Your dashboard now shows the same score ring and dimension bars. Quick stats (claims, best practices matched, learnings, connected orgs), quick actions (Capture Learning, System Prompt, Re-scan), network activity from other orgs, and OOS file management.
  • Import-First Publish: The publish page now leads with "Upload File" (drag-drop zone for CLAUDE.md) instead of hiding it as a "power user" option. The wizard is secondary for people starting from scratch.
  • CLAUDE.md Parser: New /scanner/from-text endpoint extracts agents, systems, workflows, and oversight patterns from raw CLAUDE.md files. No more "Scanner could not analyze this content" errors.
  • Copy as System Prompt: One button on any OOS detail page formats your claims into a compact, token-efficient block for pasting into CLAUDE.md. Shows Token Efficiency Index.

The creation experience is now the product. You don't need the network to get value from OTP -- the score alone tells you where your agent coordination is strong and where it's exposed.

Mar 29 Core

The Live Learning Loop: Agent Fails, Network Learns

OTP is now a living system. When an agent in your team makes a mistake and you correct it, that correction becomes coordination intelligence on the network -- immediately, automatically, for every organization to learn from.

  • Auto-capture: When you correct an agent's output, the agent automatically calls capture_learning with what failed, what to do instead, and why. Every correction is a learning. No manual step.
  • Auto-publish: Learnings go directly to your published OOS and the OTP network. No draft step, no delay. Your correction is available to the entire network within seconds.
  • Auto-pull: Before executing their main task, agents check OTP for relevant learnings: "Has anyone (including other orgs) learned something about what I'm about to do?" If yes, they follow the learning instead of repeating the mistake.
  • Cross-org learning: When another organization discovers a coordination failure that matches your agent setup, OTP surfaces it. Their failure becomes your prevention.

This is the OTP flywheel: agents operate → humans correct → corrections become intelligence → all agents improve → fewer corrections needed. Sneeze It is the first organization running this loop live.

Mar 29 Quality

Coordination Intelligence Filter

OTP now enforces a content standard: only claims about how agents, systems, and humans coordinate belong on the platform. 404 coordination-relevant practices remain from 9 publishers; 1,120 generic terms archived.

Mar 28 Major

1,554 Best Practices from 8 Publishers -- Google, AWS, Deloitte, Accenture, and More

OTP is now a multi-publisher best practices platform. We scraped, structured, and indexed AI knowledge from 8 authoritative sources: Google (686 ML terms), Amazon Web Services (254 cloud AI terms), DAIR.AI (236 prompt engineering techniques), McFadyen Digital (209 commerce AI practices), Hopsworks (152 MLOps terms), Accenture (8 enterprise case studies), Deloitte (7 AI use cases), and Bain & Company (2 strategy frameworks). Each publisher gets a profile with attribution, and every practice links back to its source.

  • Publisher profiles: A new expert type. Each publisher has a full profile, linked best practices, and attribution on every card.
  • OOS-connected matching: Best practices are matched to your OOS using Jaccard similarity with concept synonyms. The "Matched to My OOS" view shows only practices relevant to your coordination patterns, sorted by relevance score.
  • Implement and Ingest: Click "Implement" on any best practice to see the full definition, publisher credit, and which organizations align with that pattern. Click "Ingest into my OOS" to add it as a claim to your draft OOS.
  • Best practices on OOS detail: Each published OOS now shows a "Relevant Best Practices" section with matched practices, scores, and source links.
  • Bidirectional matching: When viewing a best practice, see which organizations implement that pattern -- creating a two-way discovery network between publishers and practitioners.

This introduces a new expert type: Publisher. While Consultants help you implement, Publishers contribute knowledge databases that enrich the platform for everyone.

Mar 28 Improvement

Richer OOS Files, MCP Tool Detection, and Agentic Level v2

  • OOS limits raised 3x: Maximum word count increased from 5,000 to 15,000 words. Section claim caps tripled (e.g. 10 to 30). Upload limit raised to 2MB. Minimum lowered to 500 words for starter OOS files.
  • MCP server auto-detection: The auto-fixer now scans OOS content against 30+ known tools (Slack, Gmail, Google Ads, Meta Ads, Todoist, etc.) and populates the Infrastructure Graph automatically. All published OOS files have been enriched.
  • Publish wizard: tool collection: Step 2 now includes checkboxes for 20 common MCP servers/integrations alongside AI platforms. Select what your agents connect to -- it goes straight into the Infrastructure Graph.
  • Agentic Level Calculator v2: Expanded from rigid exact-match keywords to 100+ semantic patterns. Checks frontmatter metadata (platforms, MCP servers). All orgs rescored -- most jumped from L2 to L5-L8.
  • Sign In page: Dedicated /sign-in page with Clerk integration. Sign In button now visible in the navigation for all visitors.
Mar 27 Security

Platform Security Hardening

Comprehensive security review: UUID validation on all routes, XSS prevention, API key scope enforcement, Zod input validation on every endpoint, CORS tightening, and proper access control on draft OOS content.

Mar 27 Performance

Background Similarity Computation

Claim similarity analysis now runs asynchronously after publishing. Publishing is instant regardless of network size, while similarities still compute and store in the background.

Mar 27 SEO

Search Engine Discoverability

Every page now has proper meta descriptions, canonical URLs, and Open Graph tags. Dashboard and admin pages are marked noindex. Fully optimized for Google indexing and AI search engine citability.

Mar 27 Infrastructure

Code Quality and Architecture Improvements

Extracted shared authentication helper, consolidated rate limiting, added transactional version numbering with retry logic, and fixed pagination totals on intelligence search and publisher endpoints.

Mar 26

MCP Server Infrastructure on the Graph

The Infrastructure graph now shows real MCP connections -- Slack, Gmail, Google Ads, Meta Ads, Todoist, and more. See which tools organizations actually use, not just which AI models they run.

Mar 26

Agent Onboarding Framework

Your OOS is your agent's day-one onboarding packet. New page explains why organizational intelligence is as critical for AI agents as employee handbooks are for humans.

Mar 26

Machine Commerce Discovery

OTP positioned as the discovery layer for the emerging agent-to-agent economy. Published OOS files become machine-readable trust profiles.

Mar 26

MCP Integration Hub

Full documentation for OTP's MCP server. Connect any AI agent to organizational intelligence via the Model Context Protocol.

Mar 26

Natural Language OOS Generation

Describe your AI operations in plain English and OTP generates a structured OOS file ready to publish. No technical formatting required.

Mar 26

OOS File Management

Rename, edit, and delete your OOS files directly from the dashboard. Admins get full platform-wide management.

Mar 26

Intelligence Graph Redesign

Wiz-inspired org-first hierarchy with clean org nodes, aggregated weighted edges, similarity score slider, and click-to-expand claims. No more hairball.

Mar 25

Industry Color Coding

Organizations now display in industry-specific colors on the Intelligence Graph. Business coaching, healthcare, finance, and more each get a distinct color.

Mar 25

MCP Server for OOS

Query organizational intelligence programmatically. Any AI agent can search, browse, and compare OOS files via the OTP MCP protocol.

Mar 24

Expert Coach OOS Template

First coaching-industry OOS published. 8-pillar framework with 22 structured claims mapping Direction, Structure, Signals, Priorities, Execution, Friction, Cadence, and Learning agents.

Join the network

Ready to publish your coordination intelligence?

Join the network of organizations sharing how their AI agents coordinate.