skills/free-roam-testing/SKILL.md
Use this skill to run a discovery loop that explores a running app the way a curious or chaotic human would — randomized, unscripted paths, weird inputs, edge interactions — to surface NEW bugs, broken flows, confusing UX, and slow spots, then file them as deduplicated tickets. Invoke it when the user says "free roam", "explore the app", "monkey test", "find issues I don't know about", "exploratory testing", "use it like a real user", "discovery loop", "surface new bugs", or wants an agent to poke around an app autonomously and report what's broken. This is the producer half of the loop architecture — it feeds tickets to the execution loop. NOT for scripted regression tests (that's the tester agent's verification gate). Always respects a never-touch list and a blast-radius boundary before mutating anything.
npx skillsauth add b-open-io/prompts free-roam-testingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scripted tests check what you already thought to check. Free roam finds what you didn't. This skill drives the actual running app along randomized, human-like paths to surface new issues, then files them as deduplicated tickets that an execution worker works systematically. It is the discovery worker of a software factory — the producer half of the worker architecture in Skill(bopen-tools:software-factory) (loop and worker are used interchangeably there).
The value comes from unpredictability: a real user clicks the wrong thing, pastes an emoji into a number field, hits back mid-submit, opens two tabs, and abandons a checkout. Reproduce that texture and you find the bugs that scripted suites never touch.
Free roam is randomized, so it is only safe inside a known blast-radius boundary. Establish these before the first click:
software-factory/references/blast-radius.md). Ask the project for app-specific additions.If you cannot confirm a boundary, ask — do not roam against prod with unknown blast radius.
read open tickets → pick an entry point → roam (randomized) →
observe & capture anomaly → dedup vs open tickets → file NEW ticket → repeat
software-factory/references/state-backends.md). You need them to dedup; refiling a known issue every pass is the #1 way discovery loops waste money.Drive the real app with agent-browser / chrome-cdp / webapp-testing (or the CLI for a CLI app). Inject entropy deliberately — vary by run so you don't retread the same path:
<script>), SQL-ish strings, wrong types, leading/trailing whitespace, paste-bombs, boundary numbers (0, -1, MAX_INT).There is no Math.random() to lean on — generate variety from the persona + an explicit "do something you haven't tried yet this session" instruction, and track visited paths in scratch state.
For each issue, record enough for a cold-start agent to reproduce:
read_console_messages), failed network requests (read_network_requests), and the URL/state.Skill(bopen-tools:linear-planning) for Linear.discovery, severity).Free roam has no natural "done", so bound it explicitly:
You are the producer. You do not fix what you find — you file it. The execution loop (Skill(superpowers:subagent-driven-development) / Skill(bopen-tools:wave-coordinator)) consumes the tickets and works them systematically with a verification gate. Keeping discovery and execution separate is the point: one surfaces breadth, the other resolves depth.
references/entropy-techniques.md — persona scripts, input-fuzz payloads, and path-variation tactics.tools
This skill should be used when a Claude Code session needs to keep working after Anthropic usage runs out, or when the user asks to run the Claude Code harness on GPT-5.6 Sol. Trigger phrases include "my Anthropic usage ran out", "I'm out of Claude usage", "usage limit reached, what now", "keep working on another model", "run Claude Code on GPT-5.6 Sol", "use GPT-5.6 Sol as the model", "set up claudex", "claudex isn't working", "route the harness through CLIProxyAPI", or "bill against my ChatGPT/Codex subscription". It stands up a local proxy so the Claude Code CLI runs on OpenAI's Codex backend as an escape hatch, and diagnoses that setup when it drifts. macOS + Homebrew.
testing
This skill should be used when the user asks to "open Visual Wayfinder", "answer a Wayfinder ticket visually", "turn this decision into a configurator", "show Wayfinder choices as a dashboard", "prototype the Wayfinder questionnaire", or wants interactive choice cards, tradeoff controls, rankings, ranges, toggles, and consequence previews for one active Wayfinder decision. It wraps the Wayfinder skill and JSON Render; it never replaces the tracker or resolves more than the active decision.
development
This skill should be used when the user asks to "make a visual proposal", "write this up so I can share it", "present these options visually", "diagram the trade-offs", "turn this plan into something reviewable", or requests a shareable design pitch, architecture proposal, RFC, options comparison, or visual roadmap for work that has not been built. It produces one self-contained, theme-aware HTML page led by grounded diagrams. Use visual-review instead for completed code changes; do not use this skill for internal task tracking.
tools
This skill should be used when the user asks to "add plugin settings", "make a plugin configurable", "store per-project plugin configuration", "use settings.local.json", "create a plugin state file", "expose skill settings in Agent Master", or "add a skill interface". Distinguishes official Claude Code settings from project-owned configuration and documents bOpen Agent Master skill interface discovery.