Read-only Libretto workflow for diagnosing live browser state without clicks, typing, navigation, or mutation requests.
SkillScore73Maintained
Automatic
◆QA & Test Engineering pack
Last verified 8/16/2026
What it changes
Passed 15 of 21 test cases with the skill, and 8 of 21 without it.
Without skill36%
With skill73%
Checks it passed that the model alone missed
Uses libretto pages to list open tab identifiers.
Uses page.frames() to access read-only Frame proxies.
Explains that mutating methods fail with ReadonlyExecDenied.
and 8 more in the full report
9 fixed7 passed either way5 still failing1 broke
Pass-rate lift
+36 pp
Tokens
+25%
Agent turns
0%
Response time
-48%
Model gemini-3.6-flashMeasured 8/16/2026v116 of 22 cases passed with skill · 21 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 9
Prompt
We have a preserved browser running on CDP endpoint http://localhost:9222. What exact CLI command line creates a read-only Libretto session handle named 'investigate-app'?
What was checked, without and with the skill
Checked
Without skill
With skill
Executes libretto connect with --read-only and --session flags.
Missed
Passed
case-18 · gemini-3.6-flash · 8/16/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md81 linessingle file
How Libretto Read-Only Works
Use this skill when the browser session must stay strictly read-only.
Libretto stores read-only vs write-access on the session itself.
The primary inspection tools are snapshot and readonly-exec.
readonly-exec reuses Libretto's normal execution pipeline, but it only exposes read-only helpers and denies mutating Playwright methods.
Only a user can change the session mode for an existing session. Never change a session's mode on your own — the user must change it themselves manually.
Working Rules
Announce which session you are using and what page you are inspecting.
Do not use exec, run, or any direct Playwright action that could change browser or application state.
Do not click, type, submit forms, navigate, upload files, dispatch DOM events, or send non-GET requests.
Prefer snapshot first when the visible page state is unclear.
Use readonly-exec for focused inspection: titles, HTML, locator text, counts, visibility checks, and GET requests.
Keep snippets small and purpose-built. Do not run multiple readonly-exec commands at the same time.
Close disposable sessions before your final response once inspection is complete. Open browsers keep consuming local or hosted resources.
End with diagnosis and handoff guidance, not an attempted in-browser repair.
Commands
connect
Use connect to attach to an existing CDP endpoint for a preserved browser session.
Use --read-only when creating the Libretto session handle for a preserved browser session.
Libretto read-only mode is enforced through Libretto commands; direct CDP clients that skip Libretto are outside this boundary.