Automatic selection
Outrider reviews available candidates and repository context, then chooses whether a change is ready to implement.Pinned change
Use the documented input or command to request a specific method or research item.Prepared example
Studio’s Quickstart can start from a prepared implementation branch. This demonstrates the review-and-refine workflow and can finish faster than an implementation from scratch.Outcomes
A run may produce a draft PR, Issue, branch, or a decision not to publish. Use the GitHub Actions log to inspect the outcome and checks.Exact inputs
The tables below define each supported run mode and its configuration.Ways to trigger a run
Four ways to say what Outrider should implement. The harness downstream (guardrails, tests, license scan, PR body) is the same for all of them; only where the “why” comes from differs.skipped_pin_arxiv_unresolvable if neither resolves). An explicit pin or search also bypasses the don’t-re-recommend throttle, so you can re-run a paper that already has an open artifact. The full flag list is in the CLI reference.
Run from a design brief
mode: brief is the paper-less path. The brief you pass as lead-content is the spec: no ranking, no selection pass, no paper preflight, and no refinement chain. The run clones the repo, writes the brief into the agent’s spec bundle, implements it, runs the same post-session gates as a paper run (path policy, integration check, stub density, self-review, canary, secret scan), and opens a draft PR whose body carries the brief under Design brief instead of a paper attribution. GitHub, Hugging Face, and dataset links in the brief are license-scanned (the first five) and the result lands in the PR’s License section.
remyxai outrider trigger --brief is shorthand for --mode brief with the brief as the lead content. @path reads the brief from a file. It can’t be combined with --pin-arxiv, --search-method, --lead-content or --lead-content-file; it can be combined with --start-from-ref to build the brief on top of an existing branch, and with --publish branch to review the output before anything opens. If the installed workflow predates the mode and lead-content inputs, the CLI refuses rather than silently running a paper pass; re-provision with remyxai outrider init --repo owner/name --force. Brief mode is the one mode that runs without an interest-id; when one is configured it is read only for repo context.
In the action directly:
How it works
A run has two stages. The Remyx engine ranks a candidate pool server-side, then Outrider checks candidates against a clone of your repo and decides what to open. Ranking. The pool is ranked from three inputs: your interest’s context, your team’s shipping history (extracted from the merge log), and a learned preference model. Candidates that match the direction your team has shipped rank above topically similar ones. Validation and decision. A high relevance score does not mean a candidate is implementable; the top-ranked paper often has no call site in your repo. A selection pass checks each candidate against the codebase (code search and file reads) and picks the most implementable; if none fit, the run skips. Filters that do not call the model run first, so a run that cannot produce a useful result exits before any LLM cost. Each run ends in one of three outcomes: a draft PR, an Issue, or a skip.
Draft PR
The candidate integrates into an existing call site and passes the validators (tests, stub density, reachability). Outrider opens a draft PR with code and tests.
Discussion Issue
The candidate is relevant but not directly implementable (no call site, too many stubs, or unreachable code). Outrider opens an Issue with the attempted diff.
Skip
No candidate cleared the confidence, dedup, or fit gates. No artifact is created; the run records a status.
Refinement-pass chain
Whenchain is true (the default), opening a draft PR isn’t the end of the run. Outrider keeps going in the same run and walks the draft through three phases before it asks for review:
1
Fidelity
Diffs the draft against the paper’s reference implementation and emits a coverage matrix: what the diff covers, what it defers, and where it deviates from the source. When no public reference exists, it anchors the audit against the arXiv abstract instead; that’s lower precision and the PR body says so.
2
Convention
Rewrites the PR body to the repo’s canonical PR template, folds Outrider’s own scaffolding into a collapsible Discovery context block, and applies contributor conventions learned from recent merged PRs. Runs
ruff auto-fix and force-pushes the result as the bot.3
Test
Runs lint plus a focused
pytest on the touched files. On a pass it flips the draft to ready-for-review; on failure the PR stays a draft, labelled outrider:test-failed, for you to take over.mode: issue-convention folds an Issue body to the repo’s ISSUE_TEMPLATE shape.
Set chain: false to stop after the first draft: Outrider opens the PR exactly as it first wrote it and runs none of the phases above. That’s the cheaper recommend-only mode.
Labels
The chain records its progress as labels on the PR, which is also how a separate-workflow chain is triggered.Run the chain from separate workflows
Instead of the inline chain, you can drive each phase from apull_request: labeled workflow with pr-number from the event payload. This is how a phase is re-run against an existing PR.
Run outcomes
Every run ends in astatus in the Action log and the status output. Statuses marked red make the workflow step exit non-zero; everything else, including Issues and skips, is a legitimate green outcome.
Recommend mode
Brief mode, branch mode, smoke, weekly summary
Chain phases
These appear in thechain_*_status outputs of an inline run, or as the run status when a phase runs standalone. The pre-PR gate’s verdict (pre_pr_fidelity_clean / pre_pr_fidelity_advisory / pre_pr_fidelity_needs_judgment / pre_pr_fidelity_skipped_* / pre_pr_fidelity_failed_*) is recorded in the run summary and telemetry rather than as an output; a blocking verdict surfaces as skipped_fidelity_fabrication* above.
The same tables, kept in step with the action, are in the action repo’s
docs/configuration.md.
Anatomy of an Outrider PR
As first opened, a PR body is built in a fixed order so you know where to look:- Tests and self-review: what the integration covers, what it left out, and the self-review’s verdict on reachability.
- License & code availability: the paper’s reference code and any repos, models or datasets the implementation drew on, with their SPDX ids and a flag when one is copyleft, non-commercial, or missing.
- An italic Implements [paper] line linking the arXiv id. A brief-mode PR says it was drafted from a design brief instead, lists the Issues the brief referenced, and carries the brief itself in a collapsed Design brief block.
- Discovery context, a collapsed
<details>block with Outrider’s scaffolding: the research interest, which agent implemented it, the selection reasoning, and the suggested experiment. Absent on a brief-mode PR, since there was no discovery. - A footer naming the Remyx orchestrator that opened it.
- Review before landing, appended only when the diff touched a risky surface; lists the files.
Co-Authored-By: remyx-ai[bot] trailer, kept last through every rewrite, so attribution survives a squash-merge.
Relevance scores and confidence lines are not in the body; they live in the run telemetry and the agent report.
Reviewing it
Treat it like a first-pass proposal from a teammate:- Read the self-review and the coverage matrix in the PR body: what the integration covers, what it deferred, and where it deviates from the source.
- Run the diff and tests locally; the action runs
pytestplus an integration check, but your full suite is the real bar. - Decide: merge, push follow-ups, or close. Your call feeds the agent’s Direction either way, and the Inbox card clears itself when GitHub records the merge or close.
@remyx-ai validate on it (Validate).