We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Customers' words and behavior diverge
Ravi Mehta's new essay opens with a focus group. When asked which app they'd use the next time they were single, nobody named Tinder, which was the largest dating app by far. Yet nearly everyone had met someone on it in the past year . One question asked people to imagine their future selves. The other asked what they had actually done . The real need was a better way to meet people. That is the need Hinge's "designed to be deleted" pitch speaks to .
His working definition of Voice of the Customer covers feedback "in all its forms," including support tickets, sales calls, app reviews and casual conversations. It aims at the job behind a feature request, not at customers designing your product. Research should change priorities and investment, not end up as a forgotten 200-slide readout .
On AI, he points two ways:
- Faster loops. One client runs 60-minute calls: 15 minutes exploring needs, a prototype built while the call continues, and the customer trying it in the last 15. That's a loop that used to take a six-week sprint . Interviews also build up a knowledge base that later questions can draw on, so a new question doesn't always need a new study .
- More distance. AI "can also put one more layer between us" and customers . PMs should check AI-generated conclusions against the underlying evidence .
The responsibility changes with level. Directors build reliable research practices. VPs and CPOs settle trade-offs between short-term results and long-term customer value .
When stakeholders expect LLM features to be 100% right
The pattern on r/ProductManagement: an owner sees a good demo, and then the first wrong answer becomes "the AI does not work" . The original poster's tactics:
- Agree an error budget in the stakeholder's own words, such as how many of 100 invoices a person can fix by hand.
- Measure the current manual process's error rate as the baseline.
- Sort errors by cost.
- Add cheap human review where mistakes are expensive.
- Show failures yourself before stakeholders find them .
What doesn't help, the poster says, is explaining how the model works .
The most practical reply suggests a pilot on a slice of real work. A person approves every output, and the team tracks the rate of outputs accepted unchanged. Agree in advance on the threshold for switching it on and the kind of mistake that shuts it off. That team brought "92% as-is over three weeks" to senior stakeholders . Another commenter keeps a repeatedly charted eval set on the tracking page, since accuracy varies between runs and between models .
What protects a product when features are cheap
Aakash Gupta uses Adobe as the case. It had no down revenue year from 2015 to 2025, and ARR is now $27.5B, yet its market cap fell from $311B to about $96B . His argument: features are "a few prompts" away, and agents weaken muscle memory as a moat . What can't be copied is learning. Firefly has generated 24B+ assets, which he calls 24 billion examples of what people ask for, and Adobe's AI-first ARR grew 150%+ last quarter . His test: write a one-page spec from your own public docs and give it to a coding agent. Whatever it rebuilds is table stakes .
An r/startups thread on the same question pushed back on easy answers. Stringing together public APIs isn't a moat . A funded entrant can catch up on 1.5 years of work once you've validated the market .
AI adoption is a team problem
Hiten Shah argues that most companies turned AI adoption into homework. A few employees became power users, but "almost none of that learning changed how the teams worked together." His conclusion: "The team has to be the unit of AI adoption" . Figma described its version as a "messy middle." Domain specialists build prototypes, and Figma wants PM-like functions in its CIO org to find what's working and build shared foundations for others to build on . Figma also says its embedded data scientists build as much or more product intuition than its PMs and engineers .
Also
- Agent UX. Paweł Huryn's Mini Harness is about 1,200 lines of Python. In his 10-task, five-run test, he places it in the top group with Claude Code but doesn't call it the winner . His PM lesson is that error messages are instructions to the agent, and "the words the agent reads are part of the product" .
- Agentic commerce. Stripe is hiring engineers and product people for agentic-commerce problems such as wallets, identity, risk, discovery and micropayments . Patrick Collison says "pretty much every part of the stack is going to change" .
For product discovery and prioritization, treat interpretations of user behavior and teammate intent as hypotheses rather than facts: Eyal says the checkerboard illusion persists after viewers learn squares A and B are the same color, because perception is shaped by predictive beliefs; he defines a belief as a conviction open to revision based on evidence. His Serena Williams anecdote illustrates a possible belief-framing effect, but with an important caveat: Eyal says her coach knowingly gave her a false claim about scoring 80% of the time at the net, and credits the changed belief with unlocking her performance. Treat this as an illustration, not a rationale for using false metrics with users or teams.
- Mini Harness is a roughly 1,200-line Python agent harness. On Terminal-Bench 2.0 it averaged 9.2/10 tasks with Claude Haiku 5.5 versus Claude Code’s 8.4, and 8.4 with DeepSeek V4.1 Flash, matching Claude Code; the evaluation used 10 tasks and five runs per harness, and the author cautions that the small gaps indicate a “top group,” not a clear winner.
- Building a custom harness is presented as a roughly 1–2-hour PM learning and portfolio exercise: the aim is to understand the building blocks, not merely use a finished harness.
- Treat tool instructions and error messages as agent UX: concise tool manuals and actionable errors help the agent choose its next step, and every tool call should receive a response—even when denied—because missing responses can break later requests.
- For reliable, lower-cost sessions, keep already-sent context unchanged and append new information; the article says rewriting it can disrupt the model’s reasoning and prompt caching. It gives Opus 5.5 cached-token pricing as $0.20 rather than $4 per million tokens.
- Treat exceptional founder heroics as a diagnostic, not a sustainable operating model: appreciate a one-off crunch, then investigate why it happened, why it was not anticipated, and how engineering leadership or processes can prevent a repeat. A company cannot reach its potential if the founder must continually rescue it.
- Build the early team deliberately: Walk looks at the first 20 hires as a signal of talent attracting talent, with a mix of talent hubs and people from outside the existing network, and constructive disagreement that can support growth from 20 to 100; he says he helps founders plan that team.
- Walk’s early-stage support model includes giving founders a point of view on product questions such as pricing and holding a substantive review of the company’s trajectory at least quarterly; as a Series A approaches, those conversations can help prepare the founder to lead formal board meetings.
- For enterprise AI strategy, the interview estimates 6–8 frontier or near-frontier offerings, with providers leapfrogging and sometimes only 3–6 months apart; models differ by capability, so enterprises can select among them rather than expect one model to lead on every dimension. It also says open-source models may lag 6–12 months, and points to private-data fine-tuning or building downstream products on AI models as alternatives to developing a frontier model.
- For AI-agent products, current coding systems are described as making human engineers roughly 3–5× more productive while people still review and architect the work; removing that human review in closed-loop systems is described as a riskier next phase. The discussion calls for robust engineering, hardened sandboxes, strong monitoring, and keeping cyber defense ahead of cyber attacks.
- AlphaFold is used by about 4 million researchers worldwide; the stated next expansion areas include biochemistry and predicting properties such as toxicity that matter to drug safety and efficacy.
- Customer research can mislead when it captures aspiration rather than behavior: in one focus group, nobody named Tinder as the app they would choose next time they were single, yet nearly everyone had used it in the prior year; the deeper need was a better way to meet people, not more time on the app.
- Voice of the Customer means combining sources such as support tickets, sales calls, app reviews, usability sessions, and conversations to uncover the job and motivation behind a feature request. Findings should change assumptions, priorities, or investment—not end as a research readout.
- AI can compress research: one client’s 60-minute call explores needs, builds a prototype during the conversation, and tests it with the customer; interviews can then become a shared knowledge base that teams query instead of repeatedly commissioning studies. But AI can add distance from customers, so PMs should check AI-generated conclusions against underlying evidence.
- The responsibility scales with seniority: PMs own understanding the customer problem and testing ideas; directors establish reliable research practices; executives represent customer needs in company-wide trade-offs.
- Test value before automating: One practitioner describes shipping an “AI” feature that routed a Slack message to an engineer for manual configuration, postponing automatic configuration until they knew whether the feature was valuable.
- Treat startup PM work as ownership: At a day-zero startup, expect to pitch, sell, handle customer service, or help raise money; also protect product direction from bolt-on features for every deal or poor market fit, and stay open to learning from cofounders.
- Optimize for startup speed, not process speed: One practitioner argues that moving faster can mean finding a different way to reach the goal, rather than executing the same process faster. Another cautions that perfectionism and an excessively high bar can slow startups, while advocating calculated risks rather than sloppiness.
- Check the company and role before joining: Ask whether the company has product-market fit, how it gets customers, and what your first six weeks or 90 days will focus on; one commenter describes mostly inbound acquisition as a good sign and mostly outbound as a struggle. One commenter also recommends getting salary and equity in writing, recounting a startup role with no salary, few sales, and no equity.
- Commenters report that “quick alignment” meetings can expand into 90-minute edge-case discussions, while a bug clarification turned into an exhausting two-hour conversation.
- PMs describe context-poor handoffs and workload strain: one inherited upset stakeholders’ issues without background; another was covering a former PM’s work and customer calls, developing strategy for two product lines, and learning a more complex product while engineering was overwhelmed.
- One PM says leadership SMEs delayed input for a year on requirements only they could provide, then asked the PM at the last minute to define requirements for data the SMEs owned.
Treat AI adoption as a team-level workflow change, not individual homework: a CEO mandate can lead to uneven employee learning while individual gains fail to change how teams work; Hiten argues the team should be the unit of adoption. The quoted post adds that security, proprietary data, and access can slow enterprise implementation despite executive pressure to adopt AI.
- For website discovery, ask the teammate who talks to customers every day what they would change; Shah expects them to have an answer.
- Shah’s planned “Coding Agents 101” session is aimed at people who have never coded and uses examples from his own site to demonstrate how to get started and understand the work.
Hiten Shah announced a live Coding Agents 101 session for people who don’t code, using examples from his website to demonstrate Claude Code or Codex and how to judge whether an agent’s output is worth keeping.
A QA engineer with 4.5 years in B2B SaaS is pursuing AI PM through hands-on building after finding a traditional PM program unhelpful: they co-founded a stealth AI research tool and own product, specs, and solution design; build AI developer side projects; and work on AI-assisted QA automation. Their project work includes Graph RAG, multi-agent workflows, and LLM evaluations. They ask whether this portfolio can outweigh formal training or certifications, count as PM experience rather than QA, and how to make it convincing to AI-PM hiring managers.
One PM-track job seeker reported that after reaching APM/PM final rounds and receiving an offer later rescinded over budget changes, their search had slowed to about 2–3 callbacks a month; they were considering expanding into solutions consulting and implementation roles .
Hiten Shah gave Claude Code and Codex different jobs on the same 404 page: one small change and one aimed at helping visitors find their way after an error. He plans to show the work and explain what he checked before accepting the results, offering a practical example of evaluating coding-agent output against user needs and acceptance criteria.
- Set expectations in operational terms: agree on an error budget, measure the current manual process as a baseline, distinguish mistakes by cost, add human review where errors are costly, and surface failures early.
- Validate with a human-reviewed golden evaluation set and repeated tests, since accuracy can vary across runs and models. For rollout, pilot on a slice of real work with every output reviewed; agree in advance on the acceptance threshold and errors that stop the pilot. One commenter reported 92% of outputs accepted unchanged over three weeks, and said a low rate can prompt a scope change before full rollout.
Noats offers bot-free meeting recording on Mac, with local transcription, speaker separation, note generation and transcript-grounded Q&A; local processing is the default, with an option to connect frontier AI, and the product is free during beta. The team says it built Noats in a month, then waited more than a year for local AI to catch up; it describes the meeting-notetaker category as having expanded amid Granola and Wispr Flow launches and Superhuman’s acquisition of Fathom.
A Reddit post reports that Simple Organic’s new AI skin scan returned different results when the author ran it twice seconds apart, raising a product-consistency concern for the AI feature.
- Adobe reported no year of falling revenue from 2015–2025 and reached $27.5B ARR, while its market cap fell from $311B to about $96B. Gupta’s product-strategy lesson is that AI agents make features and learned interface habits easier to displace; distinctive context and accumulated learning are stronger potential defenses.
- Adobe Firefly users generated over 24B images and assets since its 2023 launch, creating examples of user requests that clones cannot copy; Adobe’s AI-first ARR grew more than 150% last quarter.
- A practical moat test for PMs: give a coding agent a one-page spec derived from your public docs; treat what it can rebuild as table stakes and focus effort on what it cannot reproduce.
- Aakash Gupta reports that James McAulay reached £100K/month in 95 days with Claude Code and no team, versus six years for his previous business. McAulay’s growth system used a mission file to keep work aligned to a goal, an experiment file recording baseline and target before launch, and a weekly Friday retro to review metrics and compounding.
- In a mock FDE case, Priya first clarifies the desired outcomes, timeline, and budget, then recommends using city data and firsthand input from people experiencing homelessness and service providers to identify the biggest entry or re-entry bottlenecks and where intervention could change outcomes.
- She argues for measuring outcomes rather than activity—for example, post-treatment stability instead of admissions and employment retention instead of training completion—and piloting with a defined population to track whether homelessness entry or re-entry falls and adjust accordingly.
A commenter cautioned that $70/hour may be high for a newly onboarded Toptal PM, who may first need to secure work and build profile reviews; this is an anecdotal view, not a confirmed rate benchmark.
For learning AI evals, one practitioner says Teresa Torres’s interview and writing made the topic click . Another found reviewing 100 of their own outputs and recording what was wrong more useful than taking a course . A different commenter argues that evals can be approached as a prompt-and-answer database plus random safety tests, and that asking AI may be more up to date than following one individual .
Agent Harness: How I Built My Own Claude Code, Step by Step
Everyone is discussing what a harness is. Nobody shows you how to build one. And everyone can.
So, I built my own Claude Code.
It’s called Mini Harness (opens in new tab): about 1,200 lines of Python, with a loop, tools, sessions, compaction, permissions with an AI judge, subagents, /goal mode, skills and MCP servers.
Built to teach, as an experiment. Surprisingly, it became the top harness on Claude Haiku.
I tested it against seven other harnesses. Same 10 tasks, five runs each, on two models:

Claude Haiku 5.5: same 10 tasks, five runs per harness

DeepSeek V4.1 Flash: the same tasks and harness versions
The gaps are small, so I read it as “in the top group on both models”, not “the best”.
The value isn’t my harness. It’s building yours on the same design, one that beat many popular harnesses, while you learn the key building blocks.
Next, I share 15 steps, each with a suggested prompt. In 1-2 hours (incl. pasting prompts), you’ll have a custom, ready-to-use harness to learn from or show in your portfolio.
In this post:
What an Agent Harness Is
The Core: Loop, Tools, Context
How Mini Harness Compares
Build Your Own Agent Harness
Remembering: Sessions, Compaction, Memory
Safety: Permissions, Judge, Search
Working With You: Questions, Subagents, Goal Mode
Reach: Skills, MCP, Models, Running It
How It All Fits
If you’re new to Claude, see:
1. What an Agent Harness Is
Think of the model as a very capable colleague who can only talk. They can say “open this file” or “run the tests”, but they have no hands.
The harness is the hands, the notebook and the safety rules around them. Claude Code, Codex and Cursor’s agent are all harnesses around a model.
The model decides. The harness does.
You can see it in the charts: on Haiku 5.5, the average went from 7.6 to 9.2 depending on the harness.
2. The Core: Loop, Tools, Context
Three parts make a working agent. Each step ends with a prompt: paste it into Claude Code or Codex in an empty folder, in order, and you build your own as you read.
Your harness calls the model directly, so it needs an API key from Anthropic (console.anthropic.com (opens in new tab)) or DeepSeek (platform.deepseek.com (opens in new tab)). With Haiku 5.5 or DeepSeek V4.1 Flash, the costs of your tests will be way below \$0.10. As an alternative, you can adjust the prompts and experiment with a free OpenRouter model, such as Google: Gemma 4 31B (free) (opens in new tab).
Each prompt below says what to build and why, and names the Claude Code conventions to follow. Claude picks the rest, writes it down and tests the result.
Step 1: Reasoning loop
Why we need it: a model call is one question and one answer. Fixing a bug takes many: look at files, change one, run the tests, read the error, try again.
How it works: the harness sends the conversation to the model and runs the actions it asks for. On each trip, the model reasons about what it has seen and picks the next step, until a reply asks for nothing.

The reasoning loop
One turn in mini’s terminal. Each arrow is an action the model asked for:

One turn: four trips around the loop, then an answer
The loop itself is about 50 lines. Almost everything else in a harness keeps this loop working when something breaks.
For PMs: We previously discussed how exactly tools are called in A Guide to Context Engineering for PMs (opens in new tab). I recommend you study that one, too, for more insights about what happens inside the agents.
Build it:
Let's build a small coding agent in Python, a mini Claude Code. Start with the core: a loop. It sends my task to the model, runs the tools the model asks for, sends back the results, and repeats until the model stops asking. Keep the model's replies exactly as they came back.Follow Claude Code's conventions. Two modes: interactive chat by default, and headless for one task with nobody watching, started with -p "task". Use my Anthropic API key, or DeepSeek's through its Anthropic-compatible endpoint; walk me through setting it up, and never print the key or save it in the project. Pick the model with --model, or /model in chat. Ctrl-C stops the current turn, not the program. Keep a design doc in the project with how to run it and every decision we make.Test it: headless, ask it to say hi in three words. Then try it without a key, and with a model that doesn't exist: each should give a clear message, not a crash.Tip: You can run all my prompts in VS Code or in Claude Desktop / Code tab (opens in new tab):

Building your own harness in Claude Desktop, Code tab
Step 2: Tools
Why we need it: the loop runs actions, so the model needs a fixed menu of actions it can ask for.
How it works: five local tools (read, write, edit, bash, find), each a short manual the model reads and a function the harness runs. Plus web search, which runs on the provider’s servers: Anthropic and DeepSeek both offer it. Later steps add three the harness handles itself: asking you, subagents and goal mode. Every action request carries an id, and every id gets an answer, even “denied”:

A denial is still an answer. A missing answer breaks every later request.
Error messages are instructions. A bare “failed” gets retried blindly. “That text appears 3 times, add more context” gets fixed on the next step:

Each error tells the model what to do next
For PMs: the words the agent reads are part of the product. Think of it as a user experience for the agents.
Build it:
Now give it hands: tools to read, write and edit files, run commands, and search the project. Also turn on the provider's built-in web search; Anthropic and DeepSeek both run it on their servers. Each tool gets a short manual the model reads and strict rules for its inputs.Edits replace exact text, and only in a file it has read. Every tool call gets an answer, even when it fails or is refused, and every error says what to try next. Propose the manuals and add the patterns to the design doc.Test it: ask it to create a script that prints hi, run it, and tell me the output. Then ask it to replace a line that isn't in the script: the error should say what to do next.Step 3: Context window
Why we need it: models remember nothing between calls, so on every step the harness resends everything.
How it works: a fixed top, written once per session (instructions, your project’s AGENTS.md, tool manuals), and below it a conversation that grows with every step.

The fixed top and the growing conversation, measured on Claude Opus 5.5
I measured mini’s starting point with /context. About 8,200 tokens before you type anything, and two thirds of it is the web search tool:

Real output, measured 4 Nov 2026
One rule holds this window together: never edit what was already sent. Claude seals its reasoning to everything above it, and the provider caches the beginning it has already read. Edit the top, and both break:

Append versus edit
The reward is money: on Opus 5.5, cached tokens cost \$0.20 per million instead of \$4.
For PMs: this is why long sessions get expensive, and why an agent that rewrites its own context gets worse over time. More in Claude Code’s Limits Are Generous. The Problem Is Your Setup (opens in new tab).
Build it:
Next, what the model sees on every call. Write its instructions once per session: a few short rules, a line about where it runs (system, folder, date, model), and the project's AGENTS.md if there is one. Never change what was already sent; new information goes at the end. That keeps the cache working and the model's reasoning valid.Show me the tokens each call uses, and add /context to show what fills the context window. Add this rule to the design doc.Test it: put "Always answer in French" in AGENTS.md and ask it to say hello. Delete the file and ask again in a new session: now in English.3. How Mini Harness Compares
I checked each harness against its own source code and docs, counting code the same way for each. Of the small harnesses I checked, only mine covers all the common features:

How mini compares, November 2026
4. Build Your Own Agent Harness
How many PMs have their own harness in their portfolio?
With the prompts above, you already have a working agent. Next, we build the full harness together, one step at a time. You’ll understand why each part exists, instead of theorizing and skimming infographics.

The code is free on GitHub (opens in new tab), but a finished harness won’t teach you much. The value is in building your own.
Keep reading for:
Sessions, compaction and memory: an agent that survives a crash and a long task
A permission gate and an AI judge: nothing risky runs without a yes
Subagents and goal mode: work checked by something other than the worker
Skills, MCP servers and cost: what plugs in, and what it costs
12 more build prompts, each with a test
5. Remembering: Sessions, Compaction, Memory
- Mini Harness is a roughly 1,200-line Python agent harness. On Terminal-Bench 2.0 it averaged 9.2/10 tasks with Claude Haiku 5.5 versus Claude Code’s 8.4, and 8.4 with DeepSeek V4.1 Flash, matching Claude Code; the evaluation used 10 tasks and five runs per harness, and the author cautions that the small gaps indicate a “top group,” not a clear winner.
- Building a custom harness is presented as a roughly 1–2-hour PM learning and portfolio exercise: the aim is to understand the building blocks, not merely use a finished harness.
- Treat tool instructions and error messages as agent UX: concise tool manuals and actionable errors help the agent choose its next step, and every tool call should receive a response—even when denied—because missing responses can break later requests.
- For reliable, lower-cost sessions, keep already-sent context unchanged and append new information; the article says rewriting it can disrupt the model’s reasoning and prompt caching. It gives Opus 5.5 cached-token pricing as $0.20 rather than $4 per million tokens.