run-user-interview — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited run-user-interview (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
list_workspaces() → pick the workspacelist_projects(workspace_id) → pick the project the interview is aboutcreate_interview(workspace_id, project_id, name, target_url, research_brief?)name — short, descriptive (e.g. "Onboarding clarity — week 1")target_url — the live page participants should land onresearch_brief — 1–3 paragraphs of context (what you're trying to learn, decisions it will inform)add_interview_section(interview_id, title, intro_script?)add_interview_item(section_id, type, prompt_text, expected_evidence?)type: "question" — open-ended prompt the participant answers in their own wordstype: "task" — instruction the participant performs in the browser ("Sign up for a free account")expected_evidence — optional note about what a successful answer looks likeadd_interview_participant(interview_id, …):actor_id (use list_actors to find one — useful when you've already shaped the persona via create-actor-panel)persona_spec with name, bio, and 3–5 traitslaunch_interview(interview_id) → returns a trigger run ID; interview flips to runningget_interview(interview_id) → shows status of every participant (pending / running / completed / failed)get_interview_participant(participant_id) → full transcript with interviewer turns, participant turns, and tool actions (clicks, navigations, screenshots)get_interview_report(interview_id) → { summary, themes, recommendations, per_question_rollup }get_interview_participant, call regenerate_interview_report(interview_id) to re-synthesise from the latest transcripts# 1. Set up
list_workspaces()
list_projects(workspace_id="…")
# 2. Create
create_interview(
workspace_id="…",
project_id="…",
name="Pricing page comprehension",
target_url="https://acme.com/pricing",
research_brief="Validate the new tiered pricing page. Looking for confusion between Pro and Team tiers, and whether the value props land for first-time visitors."
)
# → returns { id: "interview-…" }
# 3. Guide
add_interview_section(interview_id, title="First impressions")
add_interview_item(section_id, type="task", prompt_text="Open the pricing page and tell me what you think this product does.")
add_interview_item(section_id, type="question", prompt_text="Which plan would you pick and why?")
add_interview_section(interview_id, title="Tier comparison")
add_interview_item(section_id, type="task", prompt_text="Find the difference between Pro and Team and describe it in your own words.")
# 4. Participants
add_interview_participant(interview_id, actor_id="emma-first-time-saas-user")
add_interview_participant(interview_id, persona_spec={
name: "Priya Shah",
bio: "Engineering manager at a 40-person startup evaluating tools for her team.",
traits: ["budget-conscious", "values team features", "compares 3 tools before deciding"]
})
# 5. Launch
launch_interview(interview_id)
# 6. Read
get_interview(interview_id) # progress
get_interview_participant(p_id) # individual transcripts
get_interview_report(interview_id) # synthesised themes + recommendationstask puts the participant in the browser; the transcript captures what they actually did. Use question items for reactions and "why" after a task.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.