<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Janne Lammi</title>
    <description>The latest articles on Forem by Janne Lammi (@pathmodeio).</description>
    <link>https://forem.com/pathmodeio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3913860%2F9272305a-dfa4-4d16-b788-d75f71911f66.png</url>
      <title>Forem: Janne Lammi</title>
      <link>https://forem.com/pathmodeio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pathmodeio"/>
    <language>en</language>
    <item>
      <title>Anthropic Just Made Specs Load-Bearing</title>
      <dc:creator>Janne Lammi</dc:creator>
      <pubDate>Wed, 06 May 2026 19:26:33 +0000</pubDate>
      <link>https://forem.com/pathmodeio/anthropic-just-made-specs-load-bearing-2k89</link>
      <guid>https://forem.com/pathmodeio/anthropic-just-made-specs-load-bearing-2k89</guid>
      <description>&lt;p&gt;Today Anthropic shipped &lt;a href="https://claude.com/blog/new-in-claude-managed-agents" rel="noopener noreferrer"&gt;Managed Agents&lt;/a&gt; — and inside it, a feature called &lt;strong&gt;Outcomes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Outcomes is small in scope and large in implication. The idea: when you dispatch an agent, you also define what success looks like. A separate grader evaluates the agent's output against those criteria and decides whether the work is done or needs another pass.&lt;/p&gt;

&lt;p&gt;Most of the coverage focused on the self-correction loop. The deeper story is what Outcomes &lt;em&gt;assumes&lt;/em&gt; — and what it quietly exposes.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Outcomes need testable success criteria
&lt;/h2&gt;

&lt;p&gt;A grader can't grade a vibe.&lt;/p&gt;

&lt;p&gt;For Outcomes to do anything useful, success has to be expressible in language that a separate model can evaluate without re-doing the work. That means specific, observable, decomposable. &lt;em&gt;"The form submits and shows a confirmation."&lt;/em&gt; &lt;em&gt;"No more than one network request per keystroke."&lt;/em&gt; &lt;em&gt;"Email arrives within 30 seconds and includes the order number."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is what verification has always looked like in good engineering. The difference is the audience. Until now, success criteria were a human courtesy — nice when the PM wrote them, fine when they didn't, because the developer would figure it out in review. With Outcomes, &lt;strong&gt;success criteria become the contract the agent is held to&lt;/strong&gt;. They stop being decoration and start being load-bearing.&lt;/p&gt;

&lt;p&gt;A vague Outcome doesn't fail loudly. It quietly accepts wrong work.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Most teams don't have them. They have tickets and Figmas.
&lt;/h2&gt;

&lt;p&gt;Walk into the average product org and ask to see the success criteria for the next five tickets in the sprint. You'll get one of three answers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;"It's in the Figma."&lt;/em&gt; (It isn't.)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;"The ACs are at the bottom of the Linear ticket."&lt;/em&gt; (Three bullets, all phrased as features.)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;"Talk to Sara, she knows what we're trying to do."&lt;/em&gt; (Sara is on PTO.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The intent of the work lives somewhere — in someone's head, in a Slack thread, in a comment on a design file. Almost never in a structured, retrievable, testable form.&lt;/p&gt;

&lt;p&gt;This was tolerable when humans did the building, because humans are excellent at filling in gaps. They ask follow-up questions. They reread the ticket three weeks later and figure it out. They notice when something feels wrong even if no one wrote down what right looks like.&lt;/p&gt;

&lt;p&gt;Agents don't do any of that. They execute against what they're given. Outcomes makes this concrete: the team that ships the clearer success criteria gets the better agent run. The team that doesn't ships nothing — or worse, ships something convincing but wrong.&lt;/p&gt;

&lt;p&gt;The bottleneck used to be writing code. The bottleneck is now &lt;strong&gt;knowing what good looks like, in writing, before the work starts&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. IntentSpec is what an Outcome looks like before it's machine-readable
&lt;/h2&gt;

&lt;p&gt;This is the part most teams underestimate.&lt;/p&gt;

&lt;p&gt;An Outcome — the JSON object you hand to the grader — isn't where the work happens. It's the output of the work. The work happens upstream, when someone sits with a real piece of user friction and decides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the actual &lt;strong&gt;objective&lt;/strong&gt;? (Not the feature. The change in user behavior.)&lt;/li&gt;
&lt;li&gt;What &lt;strong&gt;outcomes&lt;/strong&gt; would prove this worked? (Observable, decomposable, testable.)&lt;/li&gt;
&lt;li&gt;What &lt;strong&gt;edge cases&lt;/strong&gt; must hold? (The boring failure modes that ship bugs.)&lt;/li&gt;
&lt;li&gt;What &lt;strong&gt;constraints&lt;/strong&gt; can't be violated? (Invariants that don't show up in a happy path.)&lt;/li&gt;
&lt;li&gt;What &lt;strong&gt;evidence&lt;/strong&gt; grounds these decisions? (Tickets, interviews, telemetry — not vibes.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's a spec. Specifically, it's an &lt;a href="https://pathmode.io/playbook/anatomy-of-agent-ready-spec" rel="noopener noreferrer"&gt;agent-ready spec&lt;/a&gt;. When the spec is good, exporting it to an Outcome is a translation step. When the spec is missing, no amount of grader sophistication can rescue the run.&lt;/p&gt;

&lt;p&gt;We've been calling this artifact an &lt;strong&gt;IntentSpec&lt;/strong&gt;. The name doesn't matter. What matters is that the artifact exists, persists, and stays anchored to the evidence that justified it.&lt;/p&gt;




&lt;h2&gt;
  
  
  What this means for your team
&lt;/h2&gt;

&lt;p&gt;Outcomes makes the spec the load-bearing artifact in agentic delivery. That's a one-sentence reframe with three uncomfortable consequences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The cost of vague tickets just went up.&lt;/strong&gt; Before, vague tickets cost a clarification meeting. Now they cost an agent run that completes successfully and produces the wrong thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Spec quality becomes a measurable input.&lt;/strong&gt; When the grader rejects the work, you don't have a model problem — you have a specification problem. That's a much faster feedback loop than waiting for QA to find the bug.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specs need to live somewhere persistent.&lt;/strong&gt; Not in a Figma comment. Not at the bottom of a Linear ticket. Not in Sara's head. Somewhere the agent — and the next agent, and the next teammate — can read tomorrow and know what done means.&lt;/p&gt;

&lt;p&gt;Anthropic just made specs the contract. The teams that already write them well are about to look extremely smart. The teams that don't are about to find out, expensively, what an agent does with ambiguity.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://pathmode.io/blog/anthropic-just-made-specs-load-bearing" rel="noopener noreferrer"&gt;pathmode.io&lt;/a&gt;. Pathmode is the intent engineering platform — we help product teams write specs that agents can actually execute against.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ai</category>
      <category>anthropic</category>
      <category>agents</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The Three-Person Team</title>
      <dc:creator>Janne Lammi</dc:creator>
      <pubDate>Tue, 05 May 2026 11:44:14 +0000</pubDate>
      <link>https://forem.com/pathmodeio/the-three-person-team-2h0j</link>
      <guid>https://forem.com/pathmodeio/the-three-person-team-2h0j</guid>
      <description>&lt;p&gt;For most of my career, building software meant coordinating people who weren't in the same room, on the same artifact, or even on the same week of work. Specs went one place, designs went another, code came later. We built whole categories of tools to manage the gaps between them.&lt;/p&gt;

&lt;p&gt;I've been thinking about what happens when those gaps close.&lt;/p&gt;

&lt;p&gt;The old math made sense for a long time. Implementation was expensive and slow, so it paid to specialize and hand off. A team of twelve was reasonable, because no single person could hold the full picture, and the work itself took long enough to justify the coordination overhead.&lt;/p&gt;

&lt;p&gt;That math is changing, and the shape of the team is changing with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three lenses, one loop
&lt;/h2&gt;

&lt;p&gt;When AI absorbs &lt;a href="https://pathmode.io/blog/disappearing-middle" rel="noopener noreferrer"&gt;the middle of the work&lt;/a&gt; — the actual writing of code — a team stops scaling by adding hands. &lt;strong&gt;It scales by adding clearer judgment.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The shape that keeps showing up, when I look at the teams that seem to be working best, is small. Maybe three people. The number matters less than the lenses they bring:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;design lens&lt;/strong&gt; — someone holding user reality. They notice the friction, and carry the taste.&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;engineering lens&lt;/strong&gt; — someone holding system reality. They know what's possible, what's fragile, and what needs to scale.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;product lens&lt;/strong&gt; — someone holding business reality. They know the bet, the constraint, and the why.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't really job titles. They're responsibilities for kinds of judgment a team can't outsource to an agent. Everyone on a small team prototypes, talks to users, reads analytics. But each person owns one form of reality, and the team doesn't ship until those three forms agree.&lt;/p&gt;

&lt;p&gt;You can see the shift starting to land in hiring. Job listings now ask for designers "comfortable operating without a defined brief," who can "prototype in code and present to stakeholders in the same afternoon," who "ship without waiting for research." Those aren't the traditional expectations of a senior designer. They describe someone carrying a lens on a small, AI-native team. The market is beginning to hire for shape of capability, not years of experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  One product, one surface
&lt;/h2&gt;

&lt;p&gt;The harder shift to defend, if you've spent years building inside a larger org, is what happens to handoffs.&lt;/p&gt;

&lt;p&gt;Handoffs used to be reasonable. PMs wrote specs because engineers couldn't read minds. Designers built Figma files because engineers couldn't ship without pixels. Tickets existed because the work was sliced across roles before it was sliced across time.&lt;/p&gt;

&lt;p&gt;What's happening on small AI-native teams is different. They work the same product, against the same artifact, at the same time. The product person isn't writing a doc the engineer will read next sprint. They're editing a living spec that the designer and engineer are also editing, while an agent prototypes against it in the background.&lt;/p&gt;

&lt;p&gt;Async work doesn't disappear. Deep work, time zones, review, reflection — those still matter. &lt;strong&gt;What disappears is the handoff as the default operating model.&lt;/strong&gt; The artifact passed between people stops being a Jira ticket and becomes something more like a shared intent: live, current, executable.&lt;/p&gt;

&lt;p&gt;There's no handoff because there's no gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  The unit of work moves upstream
&lt;/h2&gt;

&lt;p&gt;When implementation gets cheap, the bottleneck doesn't disappear. It moves.&lt;/p&gt;

&lt;p&gt;The old unit was the pull request. The new unit, more and more, is the &lt;a href="https://pathmode.io/blog/spec-is-the-product" rel="noopener noreferrer"&gt;spec&lt;/a&gt;. Teams that work this way converge on intent before they touch code, because that's where the leverage is. Five minutes of clearer intent saves an hour of regenerated code.&lt;/p&gt;

&lt;p&gt;I think this is what makes the trio possible at all. Without a shared, structured definition of what's being built and why, three people pulling in three directions aren't a team. They're three threads of work an agent ships at speed.&lt;/p&gt;

&lt;p&gt;A concrete example. A churned customer says onboarding felt "empty" after they signed up. The product lens frames the business risk: activation is stalling. The design lens names the experiential gap: the user has no obvious next action. The engineering lens surfaces the system constraint: setup state is fragmented across three services. The spec they write isn't "add an onboarding checklist." It's something closer to: &lt;em&gt;make the first meaningful project action obvious within two minutes of signup, without introducing a parallel setup flow.&lt;/em&gt; That sentence is the unit of work. The agent builds against it, and the team verifies against it.&lt;/p&gt;

&lt;p&gt;The substrate the team works on isn't a Notion doc, or a Figma file, or a backlog. It's the intent itself: versioned, structured, traceable back to the friction that justified it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evidence instead of phases
&lt;/h2&gt;

&lt;p&gt;The other thing that changes is when discovery happens.&lt;/p&gt;

&lt;p&gt;The teams I grew up in ran discovery in phases. A research sprint, then a planning sprint, then implementation. The customer sat somewhere upstream of the work, separated from the build by weeks of process and a slide deck nobody read twice.&lt;/p&gt;

&lt;p&gt;A small AI-native team doesn't really do phases. Friction signals (support tickets, session recordings, sales calls, churned-user interviews) flow into the same surface where specs live. Evidence stops being something a PM presents and starts being the substrate the team builds against.&lt;/p&gt;

&lt;p&gt;When friction enters the system, the team sees it. When a spec exists, it points back to the friction that justified it. When an agent ships a feature, the team can ask the boring, important question: did the friction actually decrease?&lt;/p&gt;

&lt;p&gt;This is the loop that bigger teams used to break through specialization. Smaller teams don't have to break it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Judgment is what's left
&lt;/h2&gt;

&lt;p&gt;I'm wary of writing anything that sounds like "X is the only thing that matters." Lots of things still matter — distribution, customer trust, proprietary data, domain depth, the brand you've built over years.&lt;/p&gt;

&lt;p&gt;But on top of all of that, when the cost of building drops, judgment becomes the new differentiator. The ability to look at a hundred possible features and pick the one that actually matters. The ability to look at five prototypes and feel which one is right. The ability to kill an idea your agent could ship in an afternoon, because it's the wrong idea.&lt;/p&gt;

&lt;p&gt;Velocity used to separate teams, but now velocity is becoming a commodity. What's left is the judgment behind what's being built, and the ability to articulate that judgment clearly enough that another person, or an agent, can act on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this falls apart
&lt;/h2&gt;

&lt;p&gt;The honest version of this argument has a limit.&lt;/p&gt;

&lt;p&gt;The three-lens team works when the problem space fits in three heads. It doesn't work as well for deep platform work, for regulated domains, for systems where a wrong intent has catastrophic consequences. A small team probably shouldn't be alone behind a hospital records system or a payments backbone. There's still a strong case for specialization where the cost of being wrong is high.&lt;/p&gt;

&lt;p&gt;But for the layer of software most teams actually build — applications, products, internal tools, features — this shape is already starting to show up. Not everywhere. In the teams I'm watching most closely, it already is the operating model.&lt;/p&gt;




&lt;p&gt;A small group, one product, one shared surface. Handoffs replaced by something closer to a shared intent that everyone — and every agent — can see.&lt;/p&gt;

&lt;p&gt;I don't think AI-native teams are getting smaller because companies want fewer people. I think they're getting smaller because the core work has shifted, from coordinating execution to shaping what's being built. The team of the next decade isn't a smaller version of the one you have today. It's a different shape.&lt;/p&gt;

&lt;p&gt;The headcount drop is the symptom. The change in shape is the point.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>leadership</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
