@apex-inc/mcp-server 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/resources.js +22 -20
- package/dist/resources.js.map +1 -1
- package/dist/tools.d.ts +283 -3
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +357 -16
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
- package/skills/apex-experimentation/SKILL.md +24 -0
package/package.json
CHANGED
|
@@ -114,7 +114,31 @@ Match Apex UI terminology in user-facing copy: e.g. **Adaptive traffic allocatio
|
|
|
114
114
|
- Changing variant implementation mid-flight without versioning (invalidates analysis).
|
|
115
115
|
- Only using p-values without effect size or business context.
|
|
116
116
|
|
|
117
|
+
## Prove incrementality — "is our growth real?"
|
|
118
|
+
|
|
119
|
+
A winning experiment proves variant B beat variant A. It does NOT prove Apex beat *doing nothing* — maybe that growth would have happened anyway. The **global holdout** answers that: a persistent slice of users Apex leaves completely alone (journeys suppressed, experiments forced to control). The lift of everyone else vs that do-nothing cohort, per goal, is the number a CFO can't argue with.
|
|
120
|
+
|
|
121
|
+
Recipe:
|
|
122
|
+
|
|
123
|
+
1. **Confirm the holdout is on.** Settings → Journeys → "Global holdout (measurement)" (default 5%). It governs journeys AND experiments — one cohort proves your whole Apex footprint.
|
|
124
|
+
2. **Read the proof.** Call `get_growth_reality({ days })` (or `apex.getGrowthReality()` / `GET /api/growth/reality`). Each goal returns lift vs holdout + a 95% CI + `isDecisive`.
|
|
125
|
+
3. **Respect the honest states.** `isDecisive: false` means "still collecting" — report it as directional, never as proof. Counting is forward-only from when the holdout went live; there is no backfill.
|
|
126
|
+
4. **Reconcile credit.** Realized revenue credit is measured, significance-gated, net of refunds, and excludes guardrail-blocked experiments. Don't quote a raw point-estimate projection as "attributed revenue" — quote the holdout-gated number.
|
|
127
|
+
|
|
128
|
+
When a user asks "did Apex actually work?" or "is this growth real?", reach for `get_growth_reality`, not a per-experiment p-value.
|
|
129
|
+
|
|
130
|
+
## Editing an experiment (fix a draft; fork after data)
|
|
131
|
+
|
|
132
|
+
Editability is gated by lifecycle, keyed to DATA:
|
|
133
|
+
|
|
134
|
+
- **Draft, no exposures yet:** fully editable. Use `update_experiment({ experimentId, ... })` to fix a mislabeled surface, rename, or correct the hypothesis/metric/guardrail. This is where typo and surface fixes belong.
|
|
135
|
+
- **Running, or any exposures recorded:** the pre-registration (hypothesis, metric, guardrails) and bucketing (surface, variants) FREEZE. `update_experiment` returns `experiment_locked` with the reason — that's intentional, so results stay valid. Do not fight it.
|
|
136
|
+
- **After freeze:** call `fork_experiment({ experimentId })`. It duplicates the design into a fresh draft (no data carries over, lineage recorded), which you then edit and activate.
|
|
137
|
+
|
|
138
|
+
Surface specifically: `create_experiment` auto-detects mobile vs web from the workspace's data sources; if a Capacitor app got mislabeled `web`, fix it on the draft with `update_experiment({ experimentId, surface: "mobile" })` before the first exposure, or fork if it's already running.
|
|
139
|
+
|
|
117
140
|
## Related
|
|
118
141
|
|
|
119
142
|
- Growth tracking and identity: see **apex-growth-tracking** skill (`@apex-inc/mcp-server` / `@apex-inc/sdk`).
|
|
120
143
|
- Full methodology (beliefs, calibration): use MCP resources `apex://beliefs`, `apex://calibration`, and tools `create_belief`, `record_outcome`.
|
|
144
|
+
- Global holdout + the four-way measurement: `/docs/concepts/global-holdout`.
|