Outcome.
Primitives
  • Product and technology Know which bets are working.
  • Portfolio office The portfolio, without the quarterly rebuild.
  • Finance What the AI bill bought.
  • Engineering Point the agents at the gap.
AgentsPricingChangelog
Log inRead my company
  • Primitives
  • For
    • Product and technology
    • Portfolio office
    • Finance
    • Engineering
  • Agents
  • Pricing
  • Changelog
  • Log in
Changelog

What shipped, in the words it shipped with.

OutcomeFactory runs its own loop on itself. Every change lands with a sentence saying what it does, and this is the list of those sentences, newest first.

22 October 2026
  • The trace page and "Suggest a plan" run roster agents, so nothing on the page needs eve#614
21 October 2026
  • The image rebuilds whenever any edition caller changes#612
  • A dedicated image builds, boots as its edition, and refuses to start half-configured#611
  • A dedicated instance is the same image under a record#610
  • Every name with a person behind it opens their card#609
  • A person has a card, each name is drawn once, and Kestrel's sessions have people#608
  • A room may stand for a team it is not#607
20 October 2026
  • A login may be nobody here: leavers stop asking, one press, undoable#606
  • An unnamed login is one chip that asks, with a dot saying a link is wanted#605
  • A GitHub login is named where it is seen, and in one place for everyone#604
  • A work page lists the sessions that built it, and a ticket key links to its ticket#603
  • A Work page row wears the coding agent's own mark, as its card does#602
  • A room's work says what belongs there and what is its team's elsewhere#599
  • A work card names the person, wears the agent's own mark, and opens where you point#601
  • A room places work by the ticket in its branch or title, never its description#600
  • A room holds the work that names its tickets, and the sessions on their branches#598
  • A room shows its team's work once somebody says which login is whose#597
19 October 2026
  • The priority list's fold rule is pinned, and its button says it is folded#596
  • A factor's label drops a duplicate column's (2)#595
  • The priority list quotes the source's own prioritisation fields#594
  • The portfolio's tiles drill down, and unsized work folds away#593
  • The demand chart fits the demand, and the portfolio lists its timing conflicts#592
  • The portfolio draws its demand, its heat and what it has cost#591
  • A portfolio is prioritised by dragging, and the line says what fits#590
  • An import report says what is missing, not what is there#589
  • Sample people stand in for an org graph, and say so#588
  • A file-imported portfolio reads its own day and its own change or run#587
15 October 2026
  • The Kestrel demo bills Devin, in ACUs#586
13 October 2026
  • A room's spend is AI and people, added#584
  • Kestrel's rooms are full: Insurance, a 149-person Everyday Money, sessions on PRs, and capacity plans#583
  • The site shows the product running, not a picture of it#582
  • Devin is a runner, and a watch may be read rather than streamed#581
12 October 2026
  • A room's spend weighs a session by its whole life, so the tile and the page agree#579
  • A room's goals are all on its map, and the views lose a blank row#575
  • A goal may be judged by the sum of the numbers watched beside it#576
  • A room's spend follows its work, not its repositories#577
  • A sparkline's hover card stays inside the column#578
  • A goal's page names the goals above it once#573
  • A room's links live on its Overview#574
  • A reading filed in error may be withdrawn, and the trail keeps it#572
  • A person row draws the human's face, not the row's#568
  • An admin may remove a signal whose verdict was the mistake#570
  • A room's Shipped tile and its Work page count the same thing#571
  • Nothing under a room's name reads the company#569
  • A room opens on what moved, and what is next#563
  • A room keeps its decisions and its links#566
  • Kestrel's rooms are fed: repositories and projects attached, sessions standing somewhere#567
  • A room says what it costs and who works there#565
  • A watched number may be kept by hand, an assistant may keep it, and a month's total is stale on the month's terms#562
  • The inline-subquery guard sees exists and in, not only (select#559
  • A room has a Work page: its weeks, its work under cuts, and the sessions that built it#564
  • A goal is not judged before it started#560
  • A goal id a caller sends is found under its org before a trace run names it#558
  • A room says where you are on every page, with a way out#561
  • A room draws its own goal as a north star, and its other goals beneath it#557
  • A room's top goals are read with a join, not an ambiguous subquery#556
  • Where work starts may be read for one room#554
  • A room may keep a goal of its own, and an unlinked goal lands where we chose#553
  • Analytics knows our own people from a customer's, and nothing more about either#555
11 October 2026
  • A period's reading is dated at its end, and a stored age is a date#551
  • Home says where your attention went, and suggests what to do about it#552
  • A leadership summary can be shared, and Slack only carries the one the server wrote#550
  • A goal drafted in a room returns to the room, which lists what your plans will place there#548
  • A room may be called something other than its source calls it#549
  • The composer stops spending height it has nothing to put in#547
  • A room keeps proposing: its work is read again whenever something lands#546
  • Plan reads a room: its own work, its own goals, and a goal it proposes lands there#545
  • A later choice of owner withdraws a handover parked for somebody who has not signed in#544
  • A room draws its own activity band: decisions take the brand ramp, volume a grey one#543
  • Work reads in GitHub's colours, and a room's rows open, preview and sort by time#542
  • A room names its sources: a repository's work, its sessions, and a feedback connection land there#534
  • The Forge app's icons are files this deployment serves#501
  • The portfolio on one page, and a press that hands the write-up to Claude, ChatGPT or Copilot#541
  • A scenario is a plan, and OutcomeFactory computes what it would do#540
  • A portfolio is read here and written up anywhere#539
  • A plan says yes, no or not yet, by name#538
  • Supply is what the org graph confirms, as it records it#537
  • Capacity is read, never typed, and it never judges a goal#535
  • Jira says what is planned, in the file import's words#536
  • A tenant may wear TeamForm's frame, and the frame reaches nothing a page draws#533
10 October 2026
  • An import may make goals when a person ticks it, a file's parent link is a link, and suggestions accept in one press#531
  • A demo may be filled around a company's own goals#532
8 October 2026
  • Spreadsheet work import, parts 3 and 4: the import screens, and types as suggested goals#530
  • Spreadsheet work import, part 2: file sources, the one commit, and import_work over MCP#529
  • Spreadsheet work import, part 1: the engine, reader, Jira preset, re-import planner and data-quality report#528
  • Dependency vulnerabilities fixed#527
7 October 2026
  • A goal's chart says where its readings are heading, and colours nothing#526
  • The share no work reaches opens onto the AI sessions behind it, and you can say what yours was for#524
  • Kestrel ships at a bank's scale: fifty-five engineers, a steady stream of pull requests#525
  • Every source in the measure picker wears its system's mark#522
  • Pay arrives as pools from a program the customer runs, and Kestrel carries the whole chain#521
  • Send to be built says it sends new work, not the row above it#523
  • People's time is priced from pull requests, at rates an owner sets#520
  • Kestrel's estate: 28 connected systems behind the demo, and a year of what they read#519
  • Dependency vulnerabilities fixed#518
1 October 2026
  • The empty box may offer a goal, and says what it came from#515
  • A PostHog bucket still running is not a reading#514
  • A session whose pull request settled is not drawn as one that opened nothing#516
  • Next stays on the composer's row, and the Plan foot says less#512
  • A piece of work has a page, and every row in flight opens it#511
  • The empty composer asks about what you hold#513
  • A group whose goal was withdrawn is drawn as what no goal fits#510
  • Every item is drawn on its own row, beside why it points where it does#509
  • Every item is read on its own words, and a group is what its items agree on#504
  • A click away saves an edit, or says what it is missing#507
  • A hovered link is already the page, and a goal-to-goal click lands at once#508
  • Plan mode looks the same in every box that offers it#506
  • Small type beside a big figure, and beside a button, sits on one baseline#505
30 September 2026
  • A room is made, not implied, and its row takes you into it#503
  • Design system, part 1: one menu, one segmented control, one select, and fewer words#502
  • A sample goal can be edited, and stays a sample#500
  • A goal is not judged at its start, and setup asks whether the company runs OKRs#494
  • An area's page lists the work done there, and a repository is placed by where its work was filed#499
  • A dragged group lands on the goal under the pointer, and picking it up moves nothing#498
  • Each unit of work is filed where it touched, never where it lives#497
  • The goal tree judges goals as the plan leaves them#496
  • When no goal fits, the mapper proposes a few, and they reach back to the work#495
  • A goal written down after its work began is offered a start, not a link#493
  • The goal tree sits beside a plan's groups, and groups are dragged onto goals#492
  • White: one sidebar, clean whites, and a benchmark path with no dead ends#490
  • The mapper offers the goal work served#491
  • A room shows who is in it, wears its tile beside its name, and its controls fit on one line#487
  • A goal is offered a group when any of its work can serve it#489
  • Web search runs inside the Anthropic call, not through a gateway vendor#481
  • The chief of staff can suggest a change to a goal's measure, and never re-suggests a title#485
  • A suggested reply sends itself, history floats over the chat, and Plan mode looks like Plan#482
  • The measure picker renders each source as it answers#486
  • Add measure has its own door, and a supporting number opens its chart#488
29 September 2026
  • The mapper learns from corrections, and three agreeing answers offer a rule#484
  • Groups of work are reviewed on the plan page, and Plan starts a mapping#483
  • Commit writes a group of links and a rule, and a goal-less rule comes back at ninety days#480
  • The work mapper groups the work reaching no goal and suggests a goal for each#478
  • Connect measure lands at once, and a source's catalogue is asked for once#467
  • A rule may say "not linked, keeps us safe", and every link records its mode#479
  • Plan mode drafts goal changes, and the plan page commits them#477
  • A confirmed share is posted with the goal#476
  • One plan object holds every plan, and a plan writes nothing#474
  • A plan's goal changes, and the writers they commit through#475
  • Work is mapped a group at a time: an agent plans, a person commits#471
  • Work reaching no goal is cut into groups before any model sees it#473
  • A goal can earn its share after it was written#472
  • A goal that has not started takes no share yet#470
  • A goal starts, a line is drawn, and a period is a lens#469
  • Conversations leave the rail: Ask is the one door to the chief of staff#468
  • Add Sentry error monitoring#466
  • The chat panel is a conversation with the chief of staff, and it breaks out to a page#465
  • A plan for unlinked work: an agent proposes by group, a person commits#457
  • A chief of staff works in a session, with the team it briefs and the people you bring in#463
28 September 2026
  • The Kestrel demo carries its AI bill#462
  • Add to Slack: one app, a workspace per company#461
  • Upgrade eve from 0.31.3 to 0.67.2#460
  • The phone's bar is the mark, search and the queue; the mark opens the sidebar#455
  • Land on Home, and a room is in the address#458
  • A merge made yesterday stays made, and two systems' records of you are linked#456
25 September 2026
  • Members says when each person was last active#422
  • One search for people: folded across systems, members and not-yet-joined together#445
  • Slack has a card on Integrations, and a setup page that fills in the manifest#449
  • A goal's comments open from the pill beside its title#454
  • The company page shows the north star's comments#452
  • The leadership summary draws its charts and says each fact once#453
  • The north star's owner chip on /company is the goal page's: a face, and a way to hand it on#451
  • The callback guard accepts consumeConsent, which is consumeState with the binding#450
  • Where work starts is a measure, and its page is Usage#448
  • A goal page with one of everything: status and owner beside the title, and no separate details panel#446
  • A comment that is too short says so under the box, not on an error page#441
  • A chart is named, never drawn; and /design draws the design system#443
  • Home's In flight rail reads what In flight reads, the merge card shows both records, and Off track filters#442
  • Continue in opens toward the room it has#447
  • Escape closes an inline editor wherever focus has gone#440
  • A login you said is yours lives in the account menu, and Cursor is a mark once it has a row#439
  • The Goals page reads as a tree: Create beside the count, Import on its own page, History folded#438
  • The AI tools wear their makers' marks#437
  • A form's ids are found under the tenant, and a redirect goes through isLocalPath#436
  • MCP consent holds when prompt is sent twice#431
  • A GitHub installation binds only to the tenant that proved it can reach it#430
  • An Atlassian reconnect lands on its own connection, and a parked sign-in can be removed#429
  • Ask answers in a sentence and ends in what to press#435
  • Connector links, tool errors and Slack clicks are checked before they are trusted#434
  • Public doors count in the shared table, and unverified bodies are read bounded#432
  • Nothing but our own preamble can address the runner#433
  • A room's tile wears a hue somebody chose, and its own letters#417
  • Only a read follows a redirect off its origin#428
  • Dependency vulnerabilities fixed#398
  • An Atlassian connection may read names only, and narrowing clears what it already stored#427
  • Work reaching no goal groups by the Jira epic it cites, before the repository#426
  • A brief says how much open pipeline stands behind the accounts that raised it#419
  • Work reaching no goal sits below the goals, grouped by the area it most likely belongs to#424
  • Where the pressure is: a ranked board, not a scatter#423
  • Sources are marks that say how fresh they are, states are colour, and the serif is Newsreader#420
  • Topics with no area are offered a Buying journey, and a suggested place in it#418
  • A pull request says what its AI spend came to, and so do its goal and the company#421
  • A ladder grows at the bottom, after setup#407
  • A brief is decided once, and the first answer is evidence for a goal we have#413
  • One re-import at a time, and a run in flight reads as one#415
  • A login is yours when you say so, and a row on In flight can wait a week#416
  • Signals opens on four doors and a map of where the pressure is#414
  • Re-import reads every pull request, and the two long presses run in the background#411
  • Signals reads by area: one brief per area, with its goal, its breadth, and what landed#412
  • Whoever was on the call can check the area a matcher gave its topic#410
  • A customer owed an answer is an inbox case, not a section on Signals#406
  • In flight shows the work OutcomeFactory did not send, against the goal it reaches#405
  • Signals opens on what you hold, and everyone else's queue is a row each#409
  • A follow-up a customer asked us for is its own stance, not an ask#408
  • A card says what the customer did, and the heading counts the queue#403
  • A team's areas reach its members, as a cut of their own and never as held#402
  • Cursor's spend knows its pull request#404
  • Signals is the word again, because it is broader than feedback#399
  • The mark and the company name share one centre line, and Needs you has room#400
  • Spend follows the push#401
24 September 2026
  • A date format you pick stays picked#395
  • Headings take their spacing classes#397
  • The rooms rail's mark gets room to breathe above Needs you#394
  • Speak plainly: every screen in words a new user already owns#396
  • The TeamForm half of the goals pull, and five corrections to the contract it reads#336
  • The first reader reads what the company wrote down, and believes only what it can quote#382
  • A connection is read the moment it is made, and the work proposes the goals#377
  • A model's "serves nothing" is a proposal, not an answer#374
  • Add Canopy connector for bi-directional work integration#338
  • A router is shadowed before it routes#388
  • Binding a measure takes its unit, and a different unit is a restatement#386
  • Kestrel's invented people leave with the tenant, and a re-seed skips them#385
  • A Marketplace app that is a surface, not a second product#326
  • Search, create and feedback open in one frame, in one spot#393
  • A sentence is sans, and the rooms rail has an edge#392
  • A report is handed to your own AI tool by id, never by number#371
  • The folded sidebar keeps the room's menu, Routing joins the foot, and Create has one door#391
  • Spend knows its pull request#375
  • Ask's tools hand back plain JSON, so reading the why stops failing#390
  • The room's title is the room's menu, and Overview leads its nav#389
  • Every page has the same header, and the verbs left the rail#387
  • Ask is a column you summon, drawn as the Direction draws it#384
  • Land on the queue, in the Direction's D1 shape#383
  • One button#358
  • Escape closes Ask from anywhere, and a click lands somewhere at once#380
  • A starter is a proposal, never a set of goals that arrives already covered#379
  • A quotient is a measure, headcount is a reading, and a team under five reads nothing#381
  • Three more bills are readings, and each is read with its own key#378
  • A work source may also count: GitHub delivery flow as measures#376
23 September 2026
  • Outcome in Slack: a check-in form, /goal, weekly channel digests, and notification controls#367
  • An AI client gets what it was granted, and leaves a trail#363
  • Rooms are places you enter from a rail, and Routing has a door#373
  • The page is an inset panel, and light is the ground#368
  • Ask's widen control is an icon#372
  • Pay is averaged before it reaches us#369
  • A date is the reader's, and a number is grouped by hand#360
  • Ask: a question to the agent from anywhere in the app#362
  • A rung is judged by its key results, and a key result is called what the tenant calls it#361
  • The inbox offers only the kinds that have cases in them#365
  • A cost is inferred, and no rate can be solved for#366
  • An icon is a name, not a character#359
  • A label is a word, not a shout#357
  • A leadership summary says it is still going#356
  • A key result read from a document keeps its numbers#348
  • An objective is judged by its key results#347
  • A steward may make a call, beside the computed health and never in place of it#344
  • Three frictions from running a goal-setting benchmark by hand#343
  • Seven sizes, and the smallest is 12px#355
  • A leadership summary says only what the record holds#353
  • A discussion hangs off an account#349
  • A person may file a reading through an agent, and it is still theirs#350
  • The site's pricing: per steward, with Goals and Loop#354
  • A hand-kept number is asked for on a rhythm decided once#351
  • A first run leads with the paste, and a new goal is not scolded#352
  • A check-in is one act, and it says where the number should be#346
  • The plan reads as a dashboard, and the table leaves as a file#345
22 September 2026
  • A connector is asked for, briefed, approved, and offered to its pilots#340
  • A pull request says what it serves, and the product finally reads it#342
  • A status line says the state and stops#341
  • Read from the start reads#339
18 September 2026
  • A refused spine is amended, not discarded#337
  • The key field names nobody, and the page says where to point it#335
  • Goals, pulled back into TeamForm: the contract and the door#333
17 September 2026
  • A photograph beats a picture we cannot vouch for#332
  • Photo handles come from the directory, and a face may be matched by address#331
  • A member's face comes from the company's directory too#330
  • The button that imports a directory goes and gets the faces too#329
  • A face the company already has, and whose picture wins#328
  • The org graph without ours in front of it, and shelves for the sources#327
16 September 2026
  • A key is not a person, and the count of people said it was#325
  • A reading is one point, and a cadence is what made that matter#323
  • The band counts what a machine did, and keeps it grey#324
  • A row that says what is waiting, and the words behind it on a press#322
  • A watched number has a shape, and it is grey#321
15 September 2026
  • A run that says why must not be overwritten by the wire#320
14 September 2026
  • Dependency vulnerabilities fixed#319
  • The box that asks is the whole card, and what is waiting on you sits under it#318
13 September 2026
  • A day per cell, and the tenant's own hue on it#317
12 September 2026
  • The product follows a person into a room#316
  • A room is where a leader works, and the switcher it replaces is gone#315
  • A scope names roots, and a node draws all of its children#314
11 September 2026
  • A figure above the trail, and nothing on it is green#313
  • A source we host is still a connector, and the tenant is whoever's token verifies#312
  • A case may be put off, and only by its reader#310
  • A seat's usage is not a bill, and the card says whose week it saw#311
  • A bill can be read back, and a refusal says why#309
  • A judge is worth the calls that held, not the calls they made#308
  • A bill is a reading, and an admin key only reads#307
  • A spine cut off mid-sentence is not a spine that broke the rules#306
  • Whether work moved the number is scored when it falls due, and the scoring cannot flatter anybody#305
  • A swallowed error is a hang, so the streaming passes throw again#300
  • A model call that dies must still say so#302
  • A session you can leave#301
10 September 2026
  • The front door is the site, and the wall is one wall#298
  • A bank a quarter in: the Kestrel demo spine#299
  • An idle colleague is still breathing#297
  • An agent has a face, and the face is a pebble in its own stone#296
9 September 2026
  • An account is owed against a reading#295
  • A drop proposes a re-hang; the reason is still typed#294
  • The number asks, not the calendar#293
  • Paste a quarter's plan, get a proposal you can argue with#292
  • One goal per screen, for the room#291
  • The spine as a grid, cut by the states worth asking about#290
  • The sentence is restated where it is read, and a row says how old its number is#289
28 August 2026
  • The browser draws the calendar glyph, so it must be told the ground#288
  • The margin of a record names its speakers the same way its header does#287
  • A badge sits beside the mark, not inside it#286
  • An agent is a pattern, and motion means tokens are being spent#285
  • An answer ends on the act, and the choice is data#284
  • The pulse is where the work is, and it says how long#283
27 August 2026
  • An accept continues the thread it was made in#282
  • A thread is named by its goal, not by the agent that ran#280
  • The small shape is the large one, and which way means over a fortnight#281
  • In flight counts conversations, not runs#279
  • A refusal is a question somebody has not been asked yet#278
  • An argument is not cut to fit the sidebar it was first read in#277
  • A thread holds the swarm, and a reply may hand off#276
  • A thread reads as a transcript, and a reply waits its turn#275
  • The chart draws at the size, and the time, it says it does#274
  • A numbered box on the axis is a key, and a key needs a legend#273
  • A thread reads as the conversation it was#272
  • One conveyor, one count#271
  • A steer continues the thread, and the copy stops explaining#270
  • A title is a heading, so it is the question and not the argument#269
  • An agent at work on an item is said on the item#268
  • A face is the one thing an account photo can honestly supply#267
  • An accept is a door, and a run is a thread#266
  • A queue that names one item lands you on that item#265
  • The migration that did not take, again, with the reason#264
  • A cursor belongs to the source, not to the row#262
  • A run may pause, and only forward#263
  • The register had a page and no row in its own index#242
  • A queue that says it is everybody's says it is nobody's#261
  • A shape error may not discard the research#260
  • Research argues; a person answers#259
  • A dismissal is a sentence, so the box it is typed in fits the card#258
  • A run ends where it was watched#257
  • One row, one run#256
  • A custom source is declared, not coded#255
  • A roster is staffed by arithmetic#254
26 August 2026
  • Two strengths of suggestion, and a field you can see before you click it#253
  • A reading you can point at, on an axis that says when#252
  • A consequence is what will happen, not what it is called#251
  • A goal is finished when it hangs somewhere, and the measure can wait#250
  • A target has a date, so the readings can be drawn against it#249
  • Four doors at every width, because the desk has the same day#248
  • The read is the offered path, and the card asks one thing at a time#247
  • Work that already exists can be pointed at its initiative#246
25 August 2026
  • A role is somebody's to change, and a membership somebody's to end#231
24 August 2026
  • Deals of one type, and the cuts nobody asked for stay absent#245
  • A past worked out afterwards is not a past anybody watched#244
  • Who was in the room from our side#243
  • Attio knows what the pipeline is worth, not what it was worth#241
  • A confidence nothing writes, and a blob larger than the judgement#240
  • The form said there was no gap, and the button sent it anyway#239
  • A decision had nowhere to be, so now it has a page#238
  • A title you must type looked like one already written#237
  • A signal card said how many and never when#236
  • A date is written the way its reader writes one#235
  • A field with an answer already should say so#234
  • A panel that names an exit should be able to reach it#233
  • Not now was a verdict, so the thumb kept the lighter instrument#232
23 August 2026
  • Work's share of a goal is scored, so the bar can stop saying "no evidence yet"#230
  • What a customer may model, and the four things we refuse#229
Outcome.
  • Primitives
  • Agents
  • Method
  • Moments
  • Pricing
  • Changelog
  • Security
  • Product and technology
  • Portfolio office
  • Finance
  • Engineering
OutcomeFactory · built by TeamForm
Outcome.

Enter your email address to read OutcomeFactory.

Invited addresses get instant access

Already have a workspace? Log in