Ovi’s Handbook

How Ovi joins your team, learns your product, does the QA work, and makes the release call.

What is FirstQA?

FirstQA is Ovi — an AI QA engineer for your product team. Ovi connects to the tools that hold your product knowledge, learns how the system is meant to behave, asks questions on tickets, reviews requested PRs, creates test cases, runs browser or API checks when configured, and delivers an evidence-backed GO/NO-GO decision in your existing tools.

How It Works

  1. Hire Ovi: Apply at firstqa.dev/early-access. Approved teams receive an invite — no card.
  2. Onboard Ovi: Connect the code, tickets, docs, team decisions, and test environment Ovi should understand.
  3. Let Ovi learn: Ovi builds a living product context and identifies the behaviors that matter most.
  4. Put Ovi to work: Request ticket or PR analysis, generate a prioritized test recipe, and run browser/API checks when configured.
  5. Get the call: Ovi returns evidence, risks, blockers, and a clear GO / NO-GO.

The Ovi approach: product atoms

Traditional test automation starts with scripts and selectors. Those scripts become brittle as the product changes, and they rarely explain why a behavior matters.

Ovi starts with the product’s behaviors. A product atom is a small, named, expected behavior—such as creating a tag, saving it, or filtering by it—that is grounded in your product context and verified with evidence.

Atoms can be composed into larger test scenarios and revisited when a pull request touches the same flow. That gives your team a living coverage map instead of a pile of disconnected one-off scripts.

Getting Started

FirstQA is currently invite-based early access. Apply here; the steps below are for invited teams.

GitHub App (PR Analysis + Test Execution)

  1. Connect GitHub: After your early-access invite, install FirstQA and choose the repositories Ovi can understand.
  2. Open a Pull Request: Create or update a PR in an enabled repository.
  3. Get Analysis: Comment /qa to receive bugs, risks, test scenarios, and a ship score.
  4. Run Tests: Comment /qa testrun to execute browser tests. Add -env=URL to target a specific environment.

Chrome Extension (Ticket Analysis)

  1. Install the Extension: Add the FirstQA Chrome Extension from your account dashboard.
  2. Open a Ticket: Navigate to any Linear or Jira ticket in your browser.
  3. Trigger Analysis: Ovi reviews the ticket — surfacing gaps, edge cases, risks, and QA questions before coding starts.

Commands

CommandWhereWhat it does
/qaPR commentRun full QA analysis on the PR
/qa testrunPR commentExecute automated browser tests from the latest analysis
/qa testrun -env=URLPR commentRun tests against a specific environment URL
/qa testrun -context "..."PR commentPass context (e.g. user type, auth state) to the test agent
/shortPR commentRun a shorter, faster analysis
qaYour terminalReview your local branch before you open a PR (CLI)

CLI — Review Before You Push

Run Ovi on your local branch before you open a PR. The qa command reviews exactly what changed and prints the same ship verdict, likely bugs, and test recipe right in your terminal — so you catch issues while the code is still fresh, not after review.

  1. Install: npx firstqa (one-off) or npm i -g firstqa to add the qa command permanently. Requires Node 18+ and git.
  2. Create an API key: in Settings → CLI & API Keys.
  3. Authenticate once: qa auth fqa_live_xxx (or set FIRSTQA_API_KEY).
  4. Review: from inside your repo, run qa.
CommandWhat it does
qaReview this branch's changes vs main/master
qa --stagedReview only staged changes
qa --base origin/devDiff against a specific base branch
qa --jsonMachine-readable output (for CI/tooling)
qa whoamiShow plan & monthly usage

CLI runs draw from your plan's monthly analysis allowance — the same pool as PR reviews.

MCP — In Your AI Editor

Run FirstQA inside your AI coding editor. Add the MCP server in your editor’s configuration, then ask the agent to “review my changes with FirstQA” and it runs the same review on your current git change, right in the conversation. Same engine and API key as the CLI.

  1. Create an API key: in Settings → CLI & API Keys (fqa_live_…).
  2. Add the server for your tool (below), then ask the agent to review your changes.

Generic MCP configuration

{ "mcpServers": { "firstqa": { "command": "npx", "args": ["-y", "firstqa-mcp"], "env": { "FIRSTQA_API_KEY": "fqa_live_YOURKEY" } } } }

The server exposes firstqa_review_changes and firstqa_usage. Runs draw from the same monthly allowance as PR reviews and the CLI.

PR Analysis

When you request a review, Ovi analyzes the diff and produces:

  • Bug Detection — functional bugs, logic errors, data flow issues, race conditions
  • Risk Assessment — edge cases, state transitions, missing error handling
  • UI/UX Review — user-visible issues, confusing flows, inconsistent behavior
  • Ship Score — Go/No-Go recommendation with blockers and non-blockers separated
  • Test Recipe — prioritized scenarios with exact steps and expected results

Ticket Analysis

Ovi reviews Linear and Jira tickets before development starts — catching gaps and edge cases at the cheapest possible moment.

  • QA Questions — clarifying questions a senior QA would ask the PM or designer
  • Edge Cases — scenarios not covered in the ticket description
  • Risk Flags — areas that are likely to cause bugs based on the requirements
  • Pre-dev Test Scenarios — acceptance criteria written as testable scenarios

Trigger via /qa in a Linear or Jira comment, or use the Chrome Extension on any ticket page. For Linear, Settings can enable automatic analysis when a ticket enters selected QA states. FirstQA suggests likely states from your connected teams, and you can enter names manually.

Browser Testing

Comment /qa testrun on a PR and Ovi launches an AI agent in a real cloud Chromium browser to execute test scenarios. Automatic Linear ticket analysis and browser execution are controlled separately in Settings.

  • Real browser — cloud Chromium via Browserbase, no local setup needed
  • Screenshots — captured at every step for evidence
  • Pass/Fail report — posted back as a PR comment with blocker vs. non-blocker distinction
  • Auth support — cookie injection via -context or configured credentials

Speed: Browser test execution takes 5–15 minutes depending on the number of scenarios.

Evidence-backed reports

FirstQA returns prioritized scenarios, browser evidence when a staging environment is configured, and a clear Go / No-Go recommendation. It does not currently export standalone test-spec files.

Ship Score

Every PR analysis ends with a Go/No-Go recommendation. Ovi separates blockers (must fix before merging) from non-blockers (can ship, address later) so you never hold up a release for minor issues.

🚀 GO — Ship It

No blockers found. Ready for production.

⚠️ GO — Ship with Caution

Non-blockers only. Safe to ship — monitor after.

🚦 NO-GO — Fix Blockers First

One or more blockers that could significantly impact users. Fix before merging.

Staging URL & Test Authentication

First, set your Staging URL in Settings → Staging & Test Execution — that's the environment Ovi runs browser tests against. It's required for /qa testrun; without it, Ovi has nowhere to run.

If your app requires login, you have three ways to give Ovi access:

Option A: Context flag (per run)

/qa testrun -env=https://staging.myapp.com -context "logged in as trial user"

Ovi will use this context to understand the expected auth state and attempt login autonomously.

Option B: Cookie injection

/qa testrun -env=https://staging.myapp.com -context cookie:session_id=abc123;auth_token=xyz

Extract cookies from your browser's DevTools (Application → Cookies) while logged in, then pass them directly.

Option C: Configured credentials (dashboard)

Add a test account email and password in Settings → Staging & Test Execution (stored encrypted). Ovi will sign in automatically on every run — the simplest option if you have a stable test login.

Integrations

IntegrationWhat it doesStatus
GitHubPR webhooks, /qa comments, Check Runs, and requested reviewsLive
LinearTicket analysis via webhooks and Chrome ExtensionLive
JiraTicket analysis via Atlassian ConnectBeta
BrowserbaseCloud Chromium for browser test execution with session replayLive

FAQ

How does Ovi analyze my PR?
Ovi reads the PR diff, changed file contents, and commit history. It uses AI to identify functional bugs, logic errors, edge cases, UI/UX risks, and missing error handling — then generates a prioritized test recipe and Go/No-Go recommendation.
How does browser test execution work?
When you comment /qa testrun, Ovi launches an AI agent in a cloud Chromium browser. The agent autonomously navigates your app, executes each test scenario, captures screenshots, and records the session. Results are posted back as a PR comment with pass/fail status and screenshot links.
How fast are the results?
PR analysis: 30–90 seconds depending on PR size.
Browser test execution: 5–15 minutes depending on the number of scenarios.
Is my code stored or shared?
FirstQA has read-only access to your repositories. Code-derived product knowledge and analysis results may be stored for continuity; raw repository files are fetched only for authorized analysis. All data is transmitted over HTTPS/TLS.
Do I need to change my CI/CD setup?
No. Ovi works entirely through GitHub App webhooks and PR comments. There are no CI changes, no new config files, and no pipeline modifications required.
What if we already have unit or integration tests?
Ovi complements your existing tests. It catches what unit and integration tests miss — UX edge cases, requirement gaps, and flows that break in a real browser under real conditions.

Need Help?

Ready to hire Ovi?

Apply for early access, then onboard Ovi in under 10 minutes once you’re invited.

Apply for early access See the setup flow