diff --git a/public/images/docs/error-feed/guides/fix-tab-empty-state-annotated.png b/public/images/docs/error-feed/guides/fix-tab-empty-state-annotated.png
new file mode 100644
index 000000000..a01581e5c
Binary files /dev/null and b/public/images/docs/error-feed/guides/fix-tab-empty-state-annotated.png differ
diff --git a/public/images/docs/error-feed/guides/overview-tab-annotated.png b/public/images/docs/error-feed/guides/overview-tab-annotated.png
new file mode 100644
index 000000000..39fb14714
Binary files /dev/null and b/public/images/docs/error-feed/guides/overview-tab-annotated.png differ
diff --git a/public/images/docs/error-feed/guides/turn-on-error-feed.png b/public/images/docs/error-feed/guides/turn-on-error-feed.png
new file mode 100644
index 000000000..18c572ca7
Binary files /dev/null and b/public/images/docs/error-feed/guides/turn-on-error-feed.png differ
diff --git a/public/images/docs/error-feed/troubleshooting/no-issues-in-the-feed.png b/public/images/docs/error-feed/troubleshooting/no-issues-in-the-feed.png
new file mode 100644
index 000000000..b77f52732
Binary files /dev/null and b/public/images/docs/error-feed/troubleshooting/no-issues-in-the-feed.png differ
diff --git a/public/images/docs/simulation/guides/edit-evals/run-evals-tab.png b/public/images/docs/simulation/guides/edit-evals/run-evals-tab.png
new file mode 100644
index 000000000..cafb7e9f4
Binary files /dev/null and b/public/images/docs/simulation/guides/edit-evals/run-evals-tab.png differ
diff --git a/public/images/docs/simulation/guides/evaluate-tool-calls/enable-tool-eval.png b/public/images/docs/simulation/guides/evaluate-tool-calls/enable-tool-eval.png
new file mode 100644
index 000000000..9f3d2ef26
Binary files /dev/null and b/public/images/docs/simulation/guides/evaluate-tool-calls/enable-tool-eval.png differ
diff --git a/public/images/docs/simulation/guides/explore-results/analytics-tab.png b/public/images/docs/simulation/guides/explore-results/analytics-tab.png
new file mode 100644
index 000000000..b143ef8b8
Binary files /dev/null and b/public/images/docs/simulation/guides/explore-results/analytics-tab.png differ
diff --git a/public/images/docs/simulation/guides/explore-results/call-log-details.png b/public/images/docs/simulation/guides/explore-results/call-log-details.png
new file mode 100644
index 000000000..cb057f032
Binary files /dev/null and b/public/images/docs/simulation/guides/explore-results/call-log-details.png differ
diff --git a/public/images/docs/simulation/guides/explore-results/results-page.png b/public/images/docs/simulation/guides/explore-results/results-page.png
new file mode 100644
index 000000000..c7ea50928
Binary files /dev/null and b/public/images/docs/simulation/guides/explore-results/results-page.png differ
diff --git a/public/images/docs/simulation/guides/optimization-runs/optimization-steps.png b/public/images/docs/simulation/guides/optimization-runs/optimization-steps.png
new file mode 100644
index 000000000..a6bb84f79
Binary files /dev/null and b/public/images/docs/simulation/guides/optimization-runs/optimization-steps.png differ
diff --git a/public/images/docs/simulation/guides/running-optimizations/optimize-drawer.png b/public/images/docs/simulation/guides/running-optimizations/optimize-drawer.png
new file mode 100644
index 000000000..45f38f50c
Binary files /dev/null and b/public/images/docs/simulation/guides/running-optimizations/optimize-drawer.png differ
diff --git a/src/pages/docs/error-feed/guides/run-root-cause-analysis.mdx b/src/pages/docs/error-feed/guides/run-root-cause-analysis.mdx
index 4591eea15..9bb6b29d5 100644
--- a/src/pages/docs/error-feed/guides/run-root-cause-analysis.mdx
+++ b/src/pages/docs/error-feed/guides/run-root-cause-analysis.mdx
@@ -9,10 +9,10 @@ The **Fix** tab is Error Feed's agentic root-cause chat thread, with a follow-up
Start from an issue's detail page, with the failure pattern already confirmed via [Investigate an issue](/docs/error-feed/guides/investigate-an-issue).
-From the issue's detail page, click into the Fix tab. If nothing has run yet it shows an empty state, **No analysis yet**, with a button labeled **Analyze this cluster**. You can also start it from the issue's headline card, whose button reads **Debug this cluster** before a run exists. Both start the same run, and each uses 1 credit, taken when the run starts and refunded if the run fails.
+From the issue's detail page, click into the Fix tab. If nothing has run yet it shows an empty state, **No analysis yet**, with a button labeled **Analyze this cluster**. You can also start it from the Cluster analysis card on the Overview tab, whose button reads **Debug this cluster** before a run exists. Both start the same run, and each uses 1 credit, taken when the run starts and refunded if the run fails.
-
-*The Fix tab's empty state, before any run has started*
+
+*The Fix tab before any run has started. **Re-run** sits in the headline card from the outset, so it isn't a sign that something already ran*
The run starts immediately and the tab keeps checking until it lands or fails, with a one-hour cut-off. The result arrives as a single written message in the thread: a root cause explaining what's going wrong, and a proposed fix for it, based on the calls Falcon sampled. To probe the reasoning further, type into the composer at the bottom (placeholder: **Ask Falcon a follow-up...**), and **Falcon is investigating...** shows while a reply streams in.
diff --git a/src/pages/docs/error-feed/guides/turn-on-error-feed.mdx b/src/pages/docs/error-feed/guides/turn-on-error-feed.mdx
index d421201af..db27ce4fd 100644
--- a/src/pages/docs/error-feed/guides/turn-on-error-feed.mdx
+++ b/src/pages/docs/error-feed/guides/turn-on-error-feed.mdx
@@ -12,9 +12,12 @@ Error Feed ships off. A project's scanner starts at a 0% sampling rate, so nothi
## Turn on scanning
-Open the Observe project you want issues for, then click the settings gear icon, tooltipped **Settings**, in the project header. A drawer titled **Configure Project** opens, carrying the project's settings including sampling.
+Open the Observe project you want issues for, then click the settings gear icon, tooltipped **Settings**, in the project header. A dialog titled **Configure Project** opens, carrying the project's name and its sampling rate.
-Find the sampling rate control in that drawer and raise it above 0. 100% is a safe default while you're trying it out; see [Choosing a rate](#choosing-a-rate) for the cost tradeoff once volume climbs. Click **Update** to apply it.
+**Sampling rate** is a slider running 0% to 100%, with the current value in a box beside it. Drag it above 0. 100% is a safe default while you're trying it out; see [Choosing a rate](#choosing-a-rate) for the cost tradeoff once volume climbs. Click **Update** to apply it.
+
+
+*The same dialog also deletes the project, so read the buttons before clicking*
Then wait before checking for results, because a new rate only reaches traces that arrive after you save it. Send your agent through a request, give scanning a moment, and go to **Error Feed** in the left sidebar. A row appearing in the list confirms scanning is live. An upgrade prompt instead of the Feed means the workspace lacks the Error Feed capability.
diff --git a/src/pages/docs/error-feed/troubleshooting/no-issues-in-the-feed.mdx b/src/pages/docs/error-feed/troubleshooting/no-issues-in-the-feed.mdx
index f6297c667..0fe0e80cb 100644
--- a/src/pages/docs/error-feed/troubleshooting/no-issues-in-the-feed.mdx
+++ b/src/pages/docs/error-feed/troubleshooting/no-issues-in-the-feed.mdx
@@ -50,7 +50,10 @@ Fix: wait at least 60 seconds after the trace lands before assuming scanning isn
The table's empty state tells you which situation you're actually in.
- If your filters exclude everything currently in the Feed, it shows **"No errors match your filters"** / **"Try adjusting your search or filter criteria."**
-- If there genuinely are no issues, it shows **"No errors - everything looks good!"** / **"Errors captured by Future AGI will appear here."**
+- If there genuinely are no issues, it shows **"No errors — everything looks good!"** / **"Errors captured by Future AGI will appear here."**
+
+
+*The unfiltered case: every filter still at its default, and the count beside the title reads 0*
Fix: if you're looking at the first message, clear or widen your [filters](/docs/error-feed/guides/triage-issues). The **Clear** control:
diff --git a/src/pages/docs/index.mdx b/src/pages/docs/index.mdx
index 7fb6500c6..c8f26b367 100644
--- a/src/pages/docs/index.mdx
+++ b/src/pages/docs/index.mdx
@@ -7,15 +7,9 @@ Future AGI is an end-to-end platform for building **reliable AI agents**. It bri
It's built for the whole team shipping AI (engineers, product managers, and domain experts working from one source of truth), and it works with the stack you already use. If you use it, we probably support it. You can start with a single line of code
-## The Learning Loop
-
-Every part of Future AGI feeds the next. You [**simulate**](/docs/simulation) an agent before launch, [**evaluate**](/docs/evaluation) its outputs against built-in and custom metrics, [**observe**](/docs/observe) real traffic once it's live, and [**optimize**](/docs/optimization) from what you learn, then the cycle repeats
-
-
-
-Because every product shares the same **traces, datasets, and scores**, the work compounds: a trace you capture becomes evaluation data, an evaluation result becomes an optimization signal, and a dataset feeds simulations and experiments alike. That shared spine is the mental model for everything below
-
-{/* TODO: embed the Future AGI overview video here once the URL is ready. */}
+
+*Thirteen evals on one run. Most read the whole conversation; prompt conformance also reads the system prompt*
**Enable tool call evaluation** doesn't live in this list, it's a checkbox at the bottom of this same panel. Turn it on or off from there and it saves straight onto the run. [Evaluate tool calls](/docs/simulation/guides/evaluate-tool-calls) covers what it scores.
diff --git a/src/pages/docs/simulation/guides/evaluate-tool-calls.mdx b/src/pages/docs/simulation/guides/evaluate-tool-calls.mdx
index 73230d180..f52de7a4c 100644
--- a/src/pages/docs/simulation/guides/evaluate-tool-calls.mdx
+++ b/src/pages/docs/simulation/guides/evaluate-tool-calls.mdx
@@ -9,6 +9,9 @@ Tool call evaluation scores the tool calls your agent made during a conversation
The switch lives on the **Select evaluations** step of the [simulation wizard](/docs/simulation/guides/create-simulation), labelled **Enable tool call evaluation**. It sits above the eval library, off by default, and turning it on doesn't count as one of the evals that step requires you to add. It's set once, when you create the run.
+
+*Switched on, with no evals added yet. The step still won't let you past until at least one is*
+
Flip it only for a run test whose agent actually calls tools during the scenarios you've attached. A scenario that never reaches a tool leaves nothing for it to evaluate.
+*One execution's Analytics tab. Context retention at 14% is the axis pulling the radar in*
+
+**Critical issues (How to solve it)** sits to the right of the radar. It names the failure patterns it found across this execution and gives numbered fixes for each, stamps when it last updated, and re-runs on **Refresh**. Generating it takes a few minutes, and it says so while it works. When it finds nothing it says that too: "Our analysis didn't find any clusters of similar failures. This may mean issues are rare, inconsistent, or below the current threshold." [Fix My Agent](/docs/simulation/guides/fix-my-agent) is where findings turn into an actual change.
+
+## Compare executions
+
+The run's own **Analytics** tab is the one you reach from the run without opening any execution, and it's where a regression shows up.
+
+Check the execution list before you read anything into it. **Executions (N)** in the header opens a searchable checklist of every attempt, all ticked by default, and the **Compare** panel labels the ones you keep as A, B, C and so on, with **A being the most recent**. Attempts that failed before scoring stay in that list and report 0%, so a column of zeros beside one healthy execution usually means those attempts never ran rather than that the agent scored nothing.
+
+Every eval then reports each execution's score in one block, so a number that moved between two attempts is visible without opening either. The per-eval cards and the percentile view follow underneath, this time layered across the executions you kept ticked. Only eval scores are compared here; latency, tokens and connection rates stay on each execution's own Performance Metrics panel.
## Dive deeper
@@ -43,6 +61,6 @@ Rerunning a call, from [Calls & transcripts](/docs/simulation/guides/explore-res
Every metric a call carries, field by field
+*One inbound voice call end to end: the recording, the transcript beside it, and what the call cost*
## Follow the transcript
-The transcript runs turn by turn, and each turn carries a speaker role. Three of them show up in the transcript you read: `USER` is the simulated persona's turn, `ASSISTANT` is your agent's, and `SYSTEM` is a turn that came from a system-level instruction rather than either side of the conversation.
+The transcript runs turn by turn, and each turn carries a speaker role. Three of them show up in the transcript you read: `USER` is the simulated [persona](/docs/simulation/concepts/personas)'s turn, `ASSISTANT` is your agent's, and `SYSTEM` is a turn that came from a system-level instruction rather than either side of the conversation.
If your agent calls tools mid-conversation, those turns exist too, under two further roles kept out of the transcript view: one holds the name of the tool that was called, the other the result it returned. They aren't something you'd otherwise see here; [Evaluate tool calls](/docs/simulation/guides/evaluate-tool-calls) covers scoring them directly.
diff --git a/src/pages/docs/simulation/guides/explore-results/index.mdx b/src/pages/docs/simulation/guides/explore-results/index.mdx
index 68e7652fd..666f2bffe 100644
--- a/src/pages/docs/simulation/guides/explore-results/index.mdx
+++ b/src/pages/docs/simulation/guides/explore-results/index.mdx
@@ -13,16 +13,8 @@ Under **Simulate** in the sidebar, **Run Simulation** lists every run in the wor
## The page at a glance
-
+*A finished chat execution. A voice one reads the same, with Call Details in place of Chat Details*
## The header
diff --git a/src/pages/docs/simulation/guides/optimization-runs.mdx b/src/pages/docs/simulation/guides/optimization-runs.mdx
index 8caabc375..c5af79cd7 100644
--- a/src/pages/docs/simulation/guides/optimization-runs.mdx
+++ b/src/pages/docs/simulation/guides/optimization-runs.mdx
@@ -5,16 +5,6 @@ description: "Track an optimization run through its steps and trials, and apply
An **optimization run** is what you get after [Fix My Agent](/docs/simulation/guides/fix-my-agent) points the search at a finished [run](/docs/simulation/concepts/runs-and-results), covered in [Running optimizations](/docs/simulation/guides/running-optimizations). This page covers reading one you've already started: its steps, its trials, the score behind each trial, and what to do with the one that wins.
-
+*Three trials matched the best score here, and the crown falls on the first of them* Open it to read its full prompt text, plus which [evals](/docs/evaluation) scored it and which [scenarios](/docs/simulation/concepts/scenarios) it ran against, the same ones your original run used.
## Apply the winning configuration
diff --git a/src/pages/docs/simulation/guides/running-optimizations.mdx b/src/pages/docs/simulation/guides/running-optimizations.mdx
index adc809843..b98175158 100644
--- a/src/pages/docs/simulation/guides/running-optimizations.mdx
+++ b/src/pages/docs/simulation/guides/running-optimizations.mdx
@@ -37,6 +37,9 @@ Below them, the parameter fields change with the algorithm:
Every algorithm ends on the same field, **Optimization Objective**, multiline: write in your own words what you want this run to fix or improve.
+
+*The objective is free text, so it's worth naming the specific failure rather than asking for better output*
+
## Start it
Click **Start Optimizing your agent** at the bottom of the drawer. A toast confirms it, "Optimization Created Successfully," and the run appears in the execution's **Optimization Runs** tab right away, moving from **pending** to **running** as it works through its trials.