plugins/ruflo-browser/skills/browser-record/SKILL.md
Primitive on which every other browser skill composes. Opens a named browser session, allocates an RVF container for it, and binds every action to a ruvector trajectory step. You do not run a browser session in this plugin without invoking this skill (or one that wraps it).
browser-extract, browser-form-fill, browser-test) will compose.SID="$(date +%Y%m%d-%H%M%S)-${TASK_SLUG:-record}"
npx -y [email protected] rvf create "$SID.rvf" --kind browser-session
npx -y [email protected] hooks trajectory-begin --session-id "$SID" --task "$1"
mcp__claude-flow__browser_open with the URL.browser_snapshot for the accessibility tree, browser_screenshot for a baseline image.npx -y [email protected] hooks trajectory-step \
--session-id "$SID" --action click --args '{"selector":"#login"}' --result ok
npx -y [email protected] hooks trajectory-end --session-id "$SID" --verdict pass
npx -y [email protected] rvf compact "$SID.rvf"
browser-sessions:
npx -y @claude-flow/cli@latest memory store --namespace browser-sessions \
--key "$SID" --value "{rvf_id:$SID,host:...,task:...,verdict:pass}"
browser_session_record MCP tool ships (ADR-0001 §7), this skill drives the lifecycle from inside its own bash steps. Do not call mcp__claude-flow__browser_open directly without these wrappers.<YYYYMMDD-HHMMSS>-<task-slug>. Downstream /ruflo-browser ls parses this.--with-dom is expensive (full HTML dump per nav). Off by default.browser-record is a primitive; redaction is the responsibility of skills that read content (browser-extract, browser-test).