Shipeasy

Measurement plans

When a change needs instrumentation it can't do itself, the assistant writes a measurement plan and files measure_plan tickets for an agent to implement.

Production readyOn this page · 4 min readUpdated · June 19, 2026Works with · In-dashboard assistant · ops:work

The assistant can create flags, configs, and metrics directly. What it can't do from a chat is edit your codebase — wire the SDK, fire the right track() call, add the event. A measurement plan bridges that gap: the assistant designs the full measurement, creates the parts it can, and files the rest as tickets for an agent to implement.

What it produces

When you ask the assistant to "measure whether X works", it produces a plan that typically contains:

A success metric

Created directly via exp_create_metric — the event, aggregation, and any guardrails.

The resources it can build

The experiment or flag, as confirmation cards you approve.

Instrumentation tickets

The code changes it can't make itself — "fire purchase on checkout success", "wrap the CTA in getExperiment" — filed as measure_plan tickets.

suggest_plan
PlanMeasure checkout funnel
1
Create metric checkout_conversion_rate⚡ Instant
count_users(checkout_completed) / count_users(checkout_started)
2
Create experiment new-checkout-flow⚡ Instant
control 50% · variant 50% · goal ↑ checkout_conversion_rate
3
Instrument checkout_completed⚒ Ship run
Emit on the order-confirmation screen.
1 code edit → filed to your ship crew · 2 instant
Created 2 resources; filed measure-plan ticket #42 for 1 item to implement.
After Approve: the instant resources are created and the ship steps become a measure_plan ticket for your crew — receipt fed back to the chat.

How the tickets get implemented

A measure_plan ticket lands in the same operational queue as bugs and feature requests. From there:

  • A developer picks it up, or
  • ops:work (the unattended agent loop) implements it as an atomic diff, or
  • An external coding agent via the MCP server handles it.
Why a ticket and not a direct edit

The in-dashboard assistant has no repo access — it can't open a PR. Filing a precise instrumentation ticket is its substitute for implementation: it specifies exactly what to fire and where, so whoever (or whatever) picks it up has an unambiguous spec.

The website assistant

The same mechanism powers the marketing-site assistant: a visitor describes what they want to measure, and instead of hand-waving, it files an implementation-ready measure_plan so an agent can wire it up once they connect a repo.

Was this page helpful?
✎ Edit this page

On this page