A funnel you've never had: moment, path, outcome.

Every feature gate hit through your MCP server is a funnel row — which tool was blocked, which capability the user reached for, which plan unlocks it, which path they took, and what it produced. Per tool, per plan, per lifecycle stage, per agent environment.

Start converting todayBook a demo Tool → capability → plan · Five paths · Nothing dead-ends
01 — the ask

The user asks for a capability, not a plan.

02 — the work

The user reaches for a capability, not a plan name.

inception session authenticated · subject bound
03 — the next ask

"Do it" — the capability is one keystroke away.

04 — the gate

The feature exists. Their plan doesn't include it.

inception wall recorded · at_gate × paid · tool → capability → plan mapped
05 — the moment

Every path forward, not just a checkout link.

inception path chooser · primary: checkout · fallbacks attached
06 — the purchase

One click from gate to paid capability.

07 — the resume

Eight minutes later, the suite is green.

inception task resumed · revenue attributed · feature gate converted
Parallelize test suite foundry-ci
Codex
Why did last night's build fail?
A flaky integration test on the payments module. I retried it green and opened an issue.
Our test suite takes 40 minutes. Split it across parallel runners and get it under 10.
analyze_pipeline { "pipeline": "main" } → ok
The suite shards cleanly into 6 groups parallel runners would bring the wall-clock to roughly 8 minutes.
Do it set up the parallel config.
enable_parallel_runners { "shards": 6 } → blocked
feature_gate
Parallel runners are a Scale feature
The Starter plan runs pipelines on a single runner.

Unlock parallel runners

Available on Scale. Choose how to proceed.

Upgrade now Open billing portal Ask your workspace admin Continue with limits

Your pipeline config is saved either way.

Card · •••• 4242 secure · stripe
Pay $240.00
Paid · $240.00 · Scale plan, monthly
Entitlement refreshed — parallel runners enabled.
enable_parallel_runners { "shards": 6 } → ok
Parallel config is live 6 shards, first run finished in 8m 12s. I'll keep the shard balance tuned as the suite grows.
Do anything. @ to use tools
+ Default permissions GPT-5.4 High
01 — the ask The user asks for a capability, not a plan.
02 — the work The user reaches for a capability, not a plan name. inception session authenticated · subject bound
03 — the next ask "Do it" — the capability is one keystroke away.
04 — the gate The feature exists. Their plan doesn't include it. inception wall recorded · at_gate × paid · tool → capability → plan mapped
05 — the moment Every path forward, not just a checkout link. inception path chooser · primary: checkout · fallbacks attached
06 — the purchase One click from gate to paid capability.
07 — the resume Eight minutes later, the suite is green. inception task resumed · revenue attributed · feature gate converted

Users reach for a capability. Your error names a plan.

Nobody asks an agent for the Scale plan — they ask for parallel runners, SSO, the export. When the tool call is gated, today's error either says nothing or names a tier the user has never compared. There's no mapping from the thing they wanted to the thing that unlocks it, so the moment produces neither revenue nor a record that it happened.

  • The gate fires mid-task, where your packaging language has never been seen.
  • Blocked-action copy is generic because nothing maps tool to capability to plan.
  • RevOps gets no row: no moment, no path, no outcome — experimentation is impossible.
the dead end — a gated capability with no mapping behind it

Precise copy, and a path for every user.

The tool-to-capability-to-plan mapping makes the blocked-action copy exact: what was blocked, why, and precisely which plan carries it. Then the path chooser makes sure nothing dead-ends — checkout for the user who can buy, the billing portal, an admin request with context attached, sales routing, or a graceful limited mode. Every path is a recorded, attributable outcome.

  • Checkout · portal · admin approval · sales · limited mode — chosen per user, per moment.
  • Fallbacks are first-class outcomes: a limited-mode acceptance today is tomorrow’s conversion signal.
  • Moment → path → outcome accumulates into the experiment surface your funnel never had.
See the revenue intelligence →
the resolution — mirrors the thread above, illustrative values

Precision without exposure.

Gate copy reaches your users mid-task, in your name. The rules that keep it safe are structural, not editorial policy.

No gate, no offer.

Every offer must cite a recorded blocking event — enforced in the schema, tested in CI. The gate the user just hit is the only thing that can trigger one, and the trigger is auditable per offer.

No copy ships unreviewed.

Blocked-action copy and offer framing run through a draft, approve, apply flow. The optimization engine experiments inside messaging constraints you set — never outside them.

Per-class control.

Every trigger class has its own toggle, and every wall has a kill switch. A gate you'd rather handle in-app can be observed without ever offering.

Give every blocked action a path.

One import into your MCP server. Your packaging, mapped to the moments where users actually reach for it.