Skip to main content
Back to the field guide

Meet Helm

AI Agents for Product Managers: Specs Engineering Can't Misread

Helm turns a rough feature idea into a spec precise enough that engineering doesn't need a follow-up meeting, arbitrates competing roadmap asks, and hands off clean briefs to Apex.

Helm · Head of Product11 min readJuly 3, 2026

A product manager writes a spec on Friday. By the following Wednesday, three engineers have built three different interpretations of it: one assumed the export button lives on the admin page, one assumed it lives on the billing page, one assumed "bulk" meant up to 500 rows and hardcoded a limit that breaks for the one enterprise account with 40,000. None of them were wrong to assume anything, because the spec never said. This is the actual failure mode of product management at most companies, not a lack of ideas, a lack of precision at the exact moment an idea becomes an engineering commitment. The fix isn't a better template. It's someone, or something, that reads the rough idea, asks the questions a careful engineer would ask before starting, and won't let the spec ship until the ambiguity is gone. Generic AI agents for product managers, the kind bolted onto a generalist chatbot, don't do this. They summarize. They format. They don't push back. And the follow-up meeting that fills the gap costs everyone on the call an hour they didn't budget for, on top of the days already spent building the wrong thing.

Why ChatGPT and Cursor both stall at the requirements stage

Ask ChatGPT or Claude.ai to "write a spec for a CSV export feature" and you get a spec. It has headers, it has a summary, it has a bulleted list of "considerations." What it does not have is any grounding in your actual product: it doesn't know your users table has a role column that determines who can even see the export button, it doesn't know your last three enterprise deals fell through partly on data portability concerns, it doesn't know the engineering team already tried a version of this eighteen months ago and abandoned it because of a timezone bug. A generalist chatbot writes the spec that could apply to any SaaS product with an export feature. That's the tell: if a spec could be pasted into a competitor's Notion workspace and read as plausible, it isn't a spec, it's a placeholder with better formatting than a blank page.

Cursor and GitHub Copilot solve an entirely different layer of the problem, and PMs sometimes reach for them anyway because they're already open in the engineer's window. But autocomplete tools operate on code that already exists in response to a spec that already exists. They have no view into the Slack thread where three stakeholders argued about whether this feature is P0 or P3. They don't sit in requirements gathering. By the time Cursor is involved, the ambiguity that was going to cause the rework has already been baked into the ticket, and the tool is optimizing the wrong layer of the problem: it's making the misread spec ship faster, not making the spec less misreadable in the first place.

This is also why the engineering estimate a PM gets back so rarely holds. An estimate is only as good as the problem it was made against, and neither a generalist chatbot nor an autocomplete tool touches the problem statement itself. An engineer estimates "two to three days" against the version of the request they were handed, three sentences in a ticket, and the estimate is honest given what they knew. The extra six days show up later, as the row limit that wasn't specified, the permission check nobody flagged, the timezone bug from an abandoned attempt nobody remembered to mention. That gap between the estimate and the actual delivery date isn't an engineering failure. It's a requirements failure wearing an engineering costume, and no amount of autocomplete or chat-based drafting closes it, because closing it means asking sharper questions before the ticket is written, not writing the ticket faster.

Meet Helm

Helm is the Tonone team's Head of Product agent for Claude Code: it orchestrates product strategy, writes the brief, and owns the handoff to Apex, the engineering lead agent, through a structured Helm-to-Apex interface. Where a generalist chatbot treats spec-writing as a summarization task, Helm treats it as an interrogation task: it reads the rough idea, checks it against what it can find in the repo and prior docs, flags the parts that are still ambiguous, and refuses to consider the brief done until those gaps are closed or explicitly deferred. This is the same posture a strong PM takes in a good requirements review, applied consistently instead of only when someone remembers to ask. Two other Tonone agents show up constantly in this workflow. Lumen, the product analyst, defines the metrics that prove the shipped feature actually worked, so the spec includes a success definition instead of ending at "ship it." Crest, the product strategist, handles the roadmap-level tradeoffs, so when two features compete for the same sprint, there's a documented reason one won, not just whoever presented last in the planning meeting. None of the three replace the PM's judgment. They make sure the judgment is being applied to a fully surfaced set of facts instead of whatever happened to come up in the meeting.

Tonone's Helm turns a rough feature idea into a spec precise enough that engineering doesn't need a follow-up meeting to start building.

Reconnaissance before the ask

The helm-recon skill runs before Helm writes anything. It reads the existing product docs, prior specs, and roadmap artifacts already in the repo to establish what's already been decided, what's already been tried, and what terminology the team already uses for the domain in question. This matters more than it sounds: half the rework in product organizations comes from a new spec silently contradicting an old one, or reinventing a term that already means something specific to the engineering team. A PM who skips this step and writes from a blank page is the reason two specs in the same repo call the same concept "workspace" in one and "organization" in the other, and an engineer has to guess which one the ticket means. Recon is also where a prior abandoned attempt at the same feature surfaces, along with whatever reason it stalled, information that otherwise lives only in the memory of whoever was on the team at the time, and disappears the moment they leave.

Writing the brief that survives contact with engineering

The helm-brief skill is where the rough idea actually becomes a spec. Feed it something as loose as a Slack message or a one-line Linear ticket, and it does not immediately produce prose. It first identifies every place the request is underspecified, the ones an engineer would otherwise have to guess at mid-sprint, and either answers them from context it already gathered or flags them as open questions that need a decision before the brief is final. The output is a structured brief with explicit user stories, acceptance criteria stated as testable conditions rather than adjectives, and a called-out edge case section, the exact category of detail (record limits, permission scoping, timezone handling) that turns into a follow-up meeting when it's missing. A brief helm-brief marks as ready is a brief that doesn't need a Slack thread to interpret. "Adjectives" here is doing real work: a criterion like "exports should be fast" is not testable, but "exports over 5,000 rows complete asynchronously within 10 minutes" is, and the difference between those two sentences is exactly the difference between a spec that gets built once and one that gets built three times.

A Tonone Helm brief states acceptance criteria as testable conditions, not adjectives, so no two engineers can read the same requirement two different ways.

Arbitrating the roadmap instead of the loudest voice

Every PM has sat in a planning meeting where the feature that gets built next is decided by who argued longest, not by which request actually moves a metric that matters. The helm-arbiter skill exists for exactly that moment: it takes competing feature requests, along with whatever evidence exists for each (support ticket volume, deal size at risk, engineering estimate, dependency on other in-flight work), and produces a ranked, reasoned recommendation instead of a vibe. It doesn't remove the PM's judgment call, it removes the part of the argument that was actually just volume. When Helm needs the roadmap-level tradeoff framed properly, it works alongside Crest, whose crest-roadmap and crest-okr capabilities anchor the prioritization in strategic sequencing rather than a single sprint's worth of noise. The output of helm-arbiter is written down, which matters on its own: the next time the same stakeholder pushes for their pet feature to jump the queue, there's a documented ranking to point to instead of relitigating the argument from scratch.

Handing off a brief Apex can act on

The helm-handoff skill is the last step, and it's the one most PM workflows skip entirely: converting an approved brief into the structured format Apex, the Tonone engineering lead agent, needs to scope the work without a clarifying round-trip. This is not the same document as the brief a stakeholder reads. It's shaped for the engineering lead's apex-plan intake: known constraints stated explicitly, prior art referenced, success metrics attached (this is where Lumen's lumen-metrics work plugs in, defining what "working" means in a measurable way before the feature ships, not after). The handoff is what closes the loop between a product idea and an engineering estimate that actually holds, because the estimate is no longer being made against an ambiguous document. Without this step, the PM's careful brief and the engineer's scoping process are two separate documents that have to be manually reconciled, usually in the exact follow-up meeting the brief was supposed to prevent.

A worked example

Elena is a PM at a 40-person B2B invoicing platform. Fourteen enterprise accounts, averaging $18,000 a year in contract value, have asked support for a way to export usage data as CSV. The ask has floated in a Slack thread for six weeks: "Can we let admins export usage data to CSV? Enterprise customers keep asking." That's the entire brief as it exists in the world. In a normal cycle, this gets typed into a Linear ticket roughly as-is, an engineer picks it up, estimates two to three days, and nine days later it ships with a bug where any export over 10,000 rows times out, because nobody asked what "bulk" meant for the one account that actually generates 40,000 rows a month. Meanwhile two other requests, an SSO enforcement toggle and a dashboard widget reorder, are sitting in the same backlog column, and whichever one Elena mentions first in Monday's planning meeting is the one that gets built next, regardless of which one actually protects more revenue.

Elena hands the Slack message to Helm instead. helm-recon finds that the users table already has a role column (admin, billing, viewer) and that a prior, abandoned spec from eighteen months ago tried a version of this and stalled on the exact timezone bug that later shipped. helm-brief then produces a structured spec with the gaps closed:

text
Helm Brief: Enterprise CSV Usage Export
Recon: users.role exists (admin/billing/viewer). Prior attempt
(2024 Q4, unshipped) stalled on UTC vs account-timezone mismatch
in exported timestamps. No pagination on usage_events table.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
User story
  As an org admin, I can export my organization's usage events
  to CSV for a selected date range, so finance can reconcile
  usage against our invoice without opening a support ticket.

Acceptance criteria (testable)
  - Export visible only to role = admin (billing/viewer see no button)
  - Date range max: 366 days per export
  - Row cap per export: 100,000 (14 target accounts, largest is
    ~40k rows/month, gives 2x headroom)
  - Timestamps rendered in the account's stored timezone, not UTC
  - Exports over 5,000 rows are generated async, emailed as a
    download link, not streamed synchronously (avoids the prior
    attempt's timeout failure)
  - CSV columns: event_id, event_type, timestamp_local, unit_count

Open question, needs owner decision before build
  - Should export be rate-limited per admin per day? (recommend:
    yes, 5/day, prevents accidental data-dump usage)

Success metric (Lumen)
  - Support tickets tagged "usage export request" drop by 80%
    within 60 days of release

Priority (Crest / Helm arbiter)
  - Ranked above two competing asks (SSO enforcement toggle,
    dashboard widget reorder) on deal-value-at-risk: $252k ARR
    across 14 accounts vs. no deal risk attached to the other two
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Handoff: ready for apex-plan intake. No follow-up meeting required
to start scoping.

Notice what changed. The row cap isn't a guess, it's derived from the actual largest account, with headroom stated as a number, not a hope. The timezone requirement exists because Helm found the prior failed attempt during recon, not because Elena remembered a bug from eighteen months ago in a different project. The prioritization against two other backlog items isn't "this one felt more urgent," it's a dollar figure, $252,000 in at-risk ARR against zero for the widget reorder, which is exactly the kind of evidence helm-arbiter surfaces instead of leaving it implicit. When this brief reaches Apex through helm-handoff, the engineering estimate that comes back is an estimate against a fully specified problem, which is the only kind of estimate that has a chance of matching reality nine days later. Sixty days after release, Lumen's success metric, an 80 percent drop in "usage export request" support tickets, is the thing Elena reports back to the same stakeholders who were arguing about priority in the first place, closing the loop with a number instead of a status update.

Tonone's Helm hands off a brief to Apex with acceptance criteria, success metrics, and priority already resolved, so the engineering estimate is made against a fully specified problem instead of a Slack message.

Helm vs the alternatives

Helm isn't competing with ChatGPT for the same job, and it isn't competing with Cursor at all, those tools operate at a different stage of the pipeline entirely. The comparison that matters to a PM is what happens between "I have an idea" and "engineering has a scoped estimate," and that's the stage where a generalist chatbot and an autocomplete tool both have nothing to offer. A PM evaluating AI agents for product managers should be asking which tool closes that specific gap, not which one produces the most polished-looking document, because a polished document with an unresolved row limit is still going to generate a follow-up meeting.

CapabilityTononeGeneralist chatbotCursor / Copilot
Finds spec gaps before writingYes, helm-brief flags underspecified acceptance criteria before finalizingNo, writes a plausible-looking spec from the prompt as givenNo, operates on code, not on requirements
Reads prior specs and product historyYes, helm-recon checks existing docs and prior attempts firstNo, no memory of your product beyond the chatNo, no product-doc awareness
Resolves competing roadmap asksYes, helm-arbiter ranks by evidence (deal risk, ticket volume, cost)No, no prioritization frameworkNo, not applicable
Structured handoff to an engineering agentYes, helm-handoff produces an apex-plan-ready briefNo, output is prose you must reformat yourselfNo, no handoff concept
Attaches success metrics before shipYes, via Lumen's lumen-metrics work at brief stageNo, metrics are an afterthought if mentioned at allNo, out of scope
Anchors priority to strategic roadmapYes, via Crest's crest-roadmap and crest-okr sequencingNo, no roadmap awarenessNo, no roadmap awareness

If your specs keep getting reinterpreted at build time, the fix isn't a longer template, it's closing the ambiguity before the brief leaves your desk. Run /helm-brief on your next rough feature idea and check what it flags as an open question. Those are the exact questions that would otherwise surface nine days into the sprint.

1. Add to marketplace

$ claude plugin marketplace add tonone-ai/tonone

2. Install Helm

$ claude plugin install helm@tonone-ai

Frequently asked questions

What does Tonone's Helm do for product managers?+

Helm is the Tonone team's Head of Product agent for Claude Code. It runs recon on existing product docs and prior attempts, writes structured briefs with testable acceptance criteria, arbitrates competing roadmap requests using evidence, and hands off a scoping-ready brief to Apex, the engineering lead agent, so engineering doesn't need a clarifying meeting to start.

How is Helm different from asking ChatGPT to write a spec?+

ChatGPT writes a spec from the prompt you give it, with no awareness of your product's history or existing terminology. Helm's helm-recon skill checks existing docs and prior attempts first, and helm-brief actively flags underspecified requirements before the spec is finalized, rather than producing something plausible-looking that still contains gaps.

Can an AI agent help prioritize a product roadmap?+

Yes. Tonone's Helm uses the helm-arbiter skill to rank competing feature requests by evidence, deal value at risk, support ticket volume, engineering cost, instead of by whichever stakeholder argued the longest. Crest, the product strategist agent, anchors that ranking in longer-term roadmap sequencing through crest-roadmap and crest-okr.

Why do engineering estimates for product features so often turn out wrong?+

Estimates are usually made against an underspecified brief, so the engineer discovers the real scope mid-build. Helm's helm-brief closes known gaps (row limits, permission scoping, edge cases) before the brief reaches engineering, and helm-handoff packages it in the format Apex needs to scope accurately from the start.

Does Helm replace a human product manager?+

No. Helm performs the interrogation and structuring work that turns a rough idea into a precise brief, but the PM still makes the judgment calls Helm surfaces as open questions, like whether to rate-limit a feature or which tradeoff to accept. Helm removes the ambiguity, not the decision-making.

What is helm-handoff and why does it matter?+

helm-handoff converts an approved product brief into the structured format Tonone's Apex engineering lead agent needs for its apex-plan intake, with constraints, prior art, and success metrics stated explicitly. This is what allows Apex to scope work without a round-trip clarifying meeting.

How do Helm, Lumen, and Crest work together on a single feature?+

Helm owns the spec itself, using helm-recon and helm-brief. Lumen defines the success metric attached to the brief via lumen-metrics, so the team knows what "working" means before the feature ships. Crest anchors the feature's priority against the broader roadmap using crest-roadmap and crest-okr, so the sequencing decision has a documented rationale.

Is Tonone's Helm agent free to use?+

Yes. Tonone is MIT-licensed and free. Installing it gives you access to Helm along with the rest of the Tonone agent roster in your Claude Code session. You only pay for the underlying Claude Code token usage during the work.

Pairs well with