The team-shaped app on the Kosmos engine โ one shared board per team, eight store-shaped pipelines, work with a name on it, and every member's AI seeing exactly what that member sees.
Kosmos is one brain per account, hard-isolated. Agora is one JSON doc that a whole team โ plus every member's AI connector โ reads and writes at the same moment. Everything below is a bug that simply cannot happen when you are the only person holding the list.
Each one was reproduced as a failing test first. Several of those tests still carry a control leg running the OLD code, asserted to keep failing โ so a green run can never be a test that quietly stopped reproducing the bug.
Ecommerce-first, shaped by what an online-store team actually does. Anything sitting in a section's stall stage for 7+ days wears a badge on its tile.
| Section | Pipeline | Stalls at |
|---|---|---|
| ๐ฏ Initiatives | Idea โ Scoped โ In Motion โ Review โ Shipped โ Live | Review ยท Shipped |
| ๐๏ธ Products & Drops | Idea โ Sourcing โ Listing โ Launch โ Selling | Sourcing ยท Listing |
| ๐ฃ Campaigns | Brief โ Planned โ Producing โ Review โ Live โ Results | Review |
| ๐ฌ Content | Idea โ Brief โ Producing โ Review โ Approved | Review |
| ๐ช Store Ops | Intake โ Next Up โ Doing โ Review โ Done | Review |
| ๐ Website Changes | Request โ Scoped โ Building โ Review โ Live | Review |
| ๐ช Events | Idea โ Planned โ Prep โ Live โ Wrapped | Prep |
| ๐ค Partners & Affiliates | Prospect โ Talking โ Terms โ Onboarding โ Active | Terms |
Tyler's call, 2026-07-24, now the rule for the whole suite. Agora is the reference implementation: the board enforced five capabilities correctly on the website while the connector enforced none of them, so someone's AI could read and write what their own screen hid.
boardCaps() is exported from lib/api.js and imported by lib/mcp.js โ the web door's own gates are built from it, so a rule change lands on both in the same commit.contributor, never admin. Writers work the raw doc; the view's arrays are frozen, so a missed repoint throws loudly instead of silently dropping a teammate's work.assign_work. What stays open to everyone: claiming a free task for yourself and putting your own back down. That is working, not delegating. The ๐ค picker offers a non-boss exactly those two choices instead of a roster they cannot use.One helper โ canAssign(current, next) inside boardCaps โ is the whole rule,
and both doors call it. Personal view preferences (like ๐ hiding a section from your own dashboard) stay writable by everyone;
house tunables are editor-and-up.
The board is one JSON document. Every change used to be read-it, edit-it, put-it-back straight against storage โ so two overlapping writes each took a copy and each put the whole thing back, and the slower one silently erased the faster one's work. With edge caching, "overlapping" could mean a minute apart. Nobody saw an error.
Ana ticks item 1. Ben ticks item 3, the same moment, on the same list. Ana's tick is gone โ and neither of them is told. This is the most ordinary thing two people can do to a shared list, and it was broken.
Agora had no way to delete a project at all until v0.12.0, because on a shared board deleting is not a private act. A project leaves every door the instant it's binned, stays fully restorable for 30 days, then purges for good along with its notes, to-dos, events and uploaded images.
A ๐ค toggle on every to-do, every working-list row and every rollup item; a ๐ฅ Crew row on the project itself. Names are stored with the work, so a plate renders without asking a directory anything.
A connector that offers a different set of PEOPLE than the person's own picker breaks the mirror rule just as surely as a missing gate โ it hands work to someone that person could not have chosen. It did, once. Now it can't: there is only one roster function.
Every account gets a private connector URL, and the suite-wide Appolis Connector opens the same room โ those two build identical options from one function, so a permission or roster change cannot land on one entrance and miss the other. The third is a read-only calendar token. It shares no code with them, but since v0.12.1 it answers to the same capability view, so your .ics feed carries exactly the work you can see. Getting that one wrong was invisible for months: a calendar refreshes on its own schedule, with nothing in the app to notice.
Three consecutive releases โ v0.10.0, v0.11.0, v0.11.1 โ are one overhaul: making a shared board tell the truth about who wrote what.
Live at agora.appolis.app on Cloudflare โ one Durable Object per board, storage as a write-through mirror, Appolis ID as the door. Eight sections, five capabilities, 28 connector tools, a 30-day Trash.
node test/run.js, green