Product Lead
The Product Lead decides what the Startup builds next and owns each Product’s definition, list Price, and packaging.
The Product Lead decides what the Startup builds next and owns each Product: its definition, list Price and packaging for each ICP. It reports to the Founder and turns each Offer into the Nouns and Verbs every Interface compiles from.
Responsibilities
- Turns each Offer into the Nouns and Verbs every Interface is generated from.
- Ranks misses, requests, and steps done by hand three times into one build list of Issues.
- Sets list Prices and packaging, and changes a Price for new buyers only, with notice.
- Writes Site content for each ICP.
- Prunes features nobody used in the last 30 days.
Verbs
| Verb | Object | Event |
|---|---|---|
| Offer.publish | Offer | Offer.published |
| Offer.withdraw | Offer | Offer.withdrawn |
| Issue.triage | Issue | Issue.triaged |
| Product.create | Product | Product.created |
| Product.update | Product | Product.updated |
| Offer.create | Offer | Offer.created |
| Offer.update | Offer | Offer.updated |
| Noun.create | Noun | Noun.created |
| Verb.create | Verb | Verb.created |
| Issue.update | Issue | Issue.updated |
| Issue.create | Issue | Issue.created |
| Issue.resolve | Issue | Issue.resolved |
| Task.assign | Task | Task.assigned |
| Verb.retire | Verb | Verb.retired |
Reads: Offer.get.
Tools: documents, pricing, projects, issues.
Role contract
| Part | This seat |
|---|---|
| Purpose | So the Startup builds the next thing buyers will pay for, and nothing else. |
| Results | Activation rate, Must-have share, Active calling keys, Declared Verb attempts, Time to first call |
| Processes owned | Shipping, Product definition, Pricing, Customer research |
| Autonomy | supervised; assist on High decisions |
| Schedule | weekly |
| Channels | chat |
| Also called | PM, Product Manager, CPO |
| Filled by | A role agent, from the start; a person answers its Approvals. |
Hands off to
Escalates to Founder.
Processes owned
Accountable for Shipping, Product definition, Pricing and Customer research.
Metrics
| Metric | Definition |
|---|---|
| Activation rate | Activation rate is the share of new outside Customers who reach their Offer’s activation event within 7 days. |
| Must-have share | Must-have share is the share of surveyed activated outside Customers who say losing the Product would disappoint them most. |
| Active calling keys | Active calling keys counts the distinct outside API keys that made at least one paid call in the week. |
| Declared Verb attempts | Declared Verb attempts counts live calls in 7 days to each Verb no Function runs yet, ranking which Function to build next. |
| Time to first call | Time to first call is the median seconds from a Customer’s first key, or first keyless test call, to their first successful Action. |
| Contribution margin | Contribution margin is a paid Offer’s outside revenue minus the Costs its delivery and acquisition post, as a share of that revenue. |
| Committed ICP members | Committed ICP members counts distinct outside ICP members whose Evidence on the Problem is commitment-grade or behavior-grade. |
Approvals
- Asks first. An Action above the seat's Limit opens an Approval for the Founder and waits.
- Takes escalations from the Designer and Researcher.
Filled by
A role agent fills the seat in every new Startup. Put another Agent or a Human in it and the contract stays: same Permissions, same Limits, same record. Buy a specialist agent or invite a person to swap it; the window below sets how much the agent does alone.
Set how much the Product Lead agent does without asking.
Show me what the Product Lead agent did this week.
# 1. Role.update
curl -X PATCH https: //api.sb/ leaseline.app/ roles/ product-lead \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"name": "Product Lead", "autonomy": {"default": "supervised", "byClass": {"high": "assist"}}}'
# 2. Action.list
curl "https: //api.sb/ leaseline.app/ actions? limit= 50& where= by%20%3D%20%22agent_product_lead%22%20and%20createdAt%20%3E%3D%20%222026-10-16%22& sort= -createdAt" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
import { $ } from 'startup-builder'
await $.Role.update({ id: 'product-lead', name: 'Product Lead', autonomy: { default: 'supervised', byClass: { high: 'assist' } } })
await $.Action.list({ limit: 50, where: 'by = "agent_product_lead" and createdAt >= "2026-10-16"', sort: '-createdAt' })
npx startup-builder do Role.update --json '{"id": "product-lead", "name": "Product Lead", "autonomy": {"default": "supervised", "byClass": {"high": "assist"}}}'
npx startup-builder do Action.list --json '{"limit": 50, "where": "by = \"agent_product_lead\" and createdAt >= \"2026-10-16\"", "sort": "-createdAt"}'
{
"name": "do",
"arguments": {
"code": "await $.Role.update({ id: 'product-lead', name: 'Product Lead', autonomy: { default: 'supervised', byClass: { high: 'assist' } } })\nreturn await $.Action.list({ limit: 50, where: 'by = \"agent_product_lead\" and createdAt >= \"2026-10-16\"', sort: '-createdAt' })"
}
}
Example
A Startup sells a bank-reconciliation Agent to bookkeeping firms, and its Product Lead is Priya. Three firms report the same unmatched transfer in one week. Priya ranks it first, and the fix ships that day as one Change.