Skip to content

Commit a68da53

Browse files
committed
README trim + push exposition into docs/
Top-level README is now grep-friendly: hero paragraph + install + concrete quickstart (init + three dispatch modes) + doc pointers + command reference + development + links. Cut prose exposition. New docs: - docs/pipeline.md — discovery / implementation / validation - docs/research-interests.md — three interest-creation flavors Extended: - docs/method-targeted-runs.md — team-scale patterns section (bulk-install, cross-fork paper coordination, retry-under-provider)
1 parent 3a93de3 commit a68da53

4 files changed

Lines changed: 172 additions & 94 deletions

File tree

README.md

Lines changed: 13 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# Remyx AI CLI
22

3-
Automate paper-to-PR delivery for the teams building on top of your code. Install [Outrider](https://github.com/remyxai/outrider) on a GitHub repo, and Remyx handles the loop end-to-end: **discovers** newly-published arXiv methods matching your team's work, **implements** them as draft PRs wired into your existing call sites, and **validates** each draft against the paper's reference implementation before it lands.
4-
5-
The CLI is your control surface for the whole loop.
3+
Install [Outrider](https://github.com/remyxai/outrider) on a repo, and Remyx handles the loop end-to-end: **discovers** newly-published arXiv methods matching your team's work, **implements** them as draft PRs, and **validates** each against the paper's reference before it lands.
64

75
## Install
86

@@ -13,113 +11,34 @@ export REMYXAI_API_KEY=<your-key> # from engine.remyx.ai/account
1311

1412
## Quickstart
1513

16-
**Install Outrider on your repo.** One command; Remyx handles the workflow, secrets, and first run server-side (no local git touched):
14+
Install Outrider on a reposerver-side, no local git touched:
1715

1816
```bash
1917
remyxai outrider init --repo your-org/your-repo --auto-interest
2018
```
2119

22-
`--auto-interest` extracts a Research Interest from your repo's commit history + README. It's what Outrider matches new arXiv papers against.
23-
24-
**Three ways to trigger a run after init.** Each is a different level of specificity — pick by how much you want to override Remyx's own ranking:
20+
Trigger a run — three modes of specificity:
2521

2622
```bash
27-
# 1. Default: let Remyx pick the best implementable paper from your interest's
28-
# ranked pool. Outrider's audit augments via agentic refine-queries;
29-
# Claude Code selects the top match against your codebase's actual call sites.
23+
# 1. default — Remyx picks from the ranked pool; Outrider's audit augments via agentic search
3024
remyxai outrider trigger --repo your-org/your-repo
3125

32-
# 2. --search-method: override the ranker with a free-text query.
33-
# Remyx searches its catalog and Outrider implements the top hit.
34-
# Use when you know the method family but not the specific paper.
26+
# 2. --search-method — override the pool with a free-text query, implement the top hit
3527
remyxai outrider trigger --repo your-org/your-repo \
3628
--search-method "riemannian preconditioning LoRA optimizer"
3729

38-
# 3. --pin-arxiv: implement THIS specific paper. Bypasses ranking entirely.
39-
# Use for reproducible re-runs, retries, or when you already know the arxiv id.
30+
# 3. --pin-arxiv — exact paper, bypasses selection entirely
4031
remyxai outrider trigger --repo your-org/your-repo --pin-arxiv 2402.02347v3
4132
```
4233

43-
## How the pipeline scales
44-
45-
Systematizing paper adoption across a team is usually a coordination problem, not a technical one — someone spots the paper, someone else evaluates fit, someone else implements, someone else reviews. Remyx + Outrider collapses that chain into a single automated pipeline that your team gates rather than staffs.
46-
47-
**Discovery.** Every day, Remyx ranks the latest arXiv against your Research Interests (extracted from your codebase, curated per-team, or written by hand). See what surfaced:
48-
49-
```bash
50-
remyxai papers digest # grouped by interest
51-
remyxai papers list --interest "My Project" -n 5 # flat view, top 5
52-
```
53-
54-
For an interest, Outrider runs an audit pass that agentically explores your codebase, refines the recommendation pool via targeted searches for under-represented themes, and picks the paper most directly implementable against real call sites. Nothing gets drafted against imagined structure.
55-
56-
**Implementation.** Once a paper is selected, Outrider clones the target repo and invokes Claude Code with a scoped brief: implement the paper's core contribution as a draft PR, wired into an existing call site, honoring your repo's contribution conventions (extracted from recent merged PRs). If the paper can't be cleanly scaffolded — no natural integration point, or too large a scope for one PR — Outrider opens a design-discussion Issue instead. The routing decision is measurement-based, not aspirational.
57-
58-
**Validation.** Before a PR lands as ready-for-review, three passes run automatically:
59-
60-
- **Fidelity audit** — clones the paper's reference implementation and diffs the draft against it, flagging any invented algorithms, wrong schemas, or missing components the paper actually requires. This is what catches plausibility-optimized fabrications before they reach a human reviewer.
61-
- **Convention pass** — folds the PR body and code layout to your target repo's contribution conventions (PR-body scaffold, AI-disclosure, docstring style, test co-location patterns), extracted from recent merged PRs.
62-
- **Test gate** — runs lint + targeted tests on the touched files; drops the Draft state only if lint passes and tests execute cleanly.
63-
64-
Each pass writes its findings to the run's Actions Summary — you inspect one panel to see the drafting, verification, and refinement decisions for every recommendation.
65-
66-
## Team-scale patterns
67-
68-
**Bulk-install across an org's repos.** Install Outrider once across every active repo, each with an auto-extracted interest:
69-
70-
```bash
71-
remyxai outrider init --bulk-repos repos.tsv --mode review
72-
```
73-
74-
`repos.tsv` is a two-column file (`owner/name<TAB>interest-uuid-or-empty`); rows with an empty interest column trigger `--auto-interest`. See [docs/install-paths.md](docs/install-paths.md) for the full bulk flow.
75-
76-
**Coordinate a specific paper across multiple frameworks.** Same paper, different codebases, one dispatch loop:
77-
78-
```bash
79-
for repo in your-org/framework-a your-org/framework-b your-org/framework-c; do
80-
remyxai outrider trigger --repo "$repo" --pin-arxiv 2402.02347v3
81-
done
82-
```
83-
84-
Fidelity's cross-fork consistency check catches drift: if the same paper's core algorithm ends up implemented three different ways across three drafts, that's a signal about the codebase, not the paper.
85-
86-
**Route the model provider per dispatch.** Different backends for different cost/quality tradeoffs:
34+
## Documentation
8735

88-
```bash
89-
remyxai outrider trigger --repo your-org/your-repo \
90-
--pin-arxiv 2402.02347v3 --provider zai --model glm-5.2
91-
```
92-
93-
See [`docs/method-targeted-runs.md`](docs/method-targeted-runs.md) for the full discover-then-trigger workflow (including `remyxai search query` to surface candidate methods before pinning).
94-
95-
## Research Interests
96-
97-
An interest is a natural-language description of what your team tracks. Three ways to create one:
98-
99-
```bash
100-
# From free-form context (or a HuggingFace/GitHub URL, expanded server-side)
101-
remyxai interests create --name "LLM Efficiency" \
102-
--context "Quantization, speculative decoding, KV cache compression"
103-
104-
# From a GitHub repo — extracts themes, architecture, and commit history
105-
remyxai interests from-repo https://github.com/your-org/your-repo --wait
106-
107-
# From a project's experiments (all, or a curated subset via -e/--include-experiment)
108-
remyxai interests from-project "Spatial VQA" --wait
109-
```
110-
111-
Every create command kicks off a first recommendation pass automatically. Use `--wait` to block until picks are ready.
112-
113-
## Credentials
114-
115-
You set up two things once:
116-
117-
1. **`REMYXAI_API_KEY`** in your shell (from [engine.remyx.ai/account](https://engine.remyx.ai/account)) — authorizes the CLI.
118-
2. **A model provider** connected on the [Integrations page](https://engine.remyx.ai/integrations) — Claude Code today, more providers coming soon. Outrider calls the model at runtime with this.
119-
120-
During provisioning, the Remyx GitHub App creates the target repo's secrets for you (a scoped `REMYX_API_KEY` and the provider's key) — no manual `gh secret set` steps. If the App isn't installed on the target yet, the CLI surfaces the install link.
121-
122-
For the no-App `setup-local` path (uses your own `gh`), see [docs/install-paths.md](docs/install-paths.md).
36+
| Topic | Doc |
37+
|---|---|
38+
| Pipeline: discovery → implementation → validation | [docs/pipeline.md](docs/pipeline.md) |
39+
| Method-targeted runs + team-scale patterns | [docs/method-targeted-runs.md](docs/method-targeted-runs.md) |
40+
| Research Interests: three ways to create one | [docs/research-interests.md](docs/research-interests.md) |
41+
| Install paths, credentials, bulk-install | [docs/install-paths.md](docs/install-paths.md) |
12342

12443
## Command reference
12544

docs/method-targeted-runs.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,3 +163,44 @@ remyxai outrider trigger \
163163
```
164164

165165
The CLI rejects values below 60 seconds at the command boundary. The action itself parses the input as an integer; non-integer values fail fast at the workflow's `INPUT_CLAUDE_TIMEOUT` parser.
166+
167+
168+
## Team-scale patterns
169+
170+
### Bulk-install across an org's repos
171+
172+
Install Outrider once across every active repo, each with an auto-extracted interest:
173+
174+
```bash
175+
remyxai outrider init --bulk-repos repos.tsv --mode review
176+
```
177+
178+
`repos.tsv` is a two-column file (`owner/name<TAB>interest-uuid-or-empty`); rows with an empty interest column trigger `--auto-interest`. See [install-paths.md](install-paths.md) for the full bulk flow.
179+
180+
### Coordinate a specific paper across multiple frameworks
181+
182+
Same paper, different codebases, one dispatch loop:
183+
184+
```bash
185+
for repo in your-org/framework-a your-org/framework-b your-org/framework-c; do
186+
remyxai outrider trigger --repo "$repo" --pin-arxiv 2402.02347v3
187+
done
188+
```
189+
190+
Fidelity's cross-fork consistency check catches drift: if the same paper's core algorithm ends up implemented three different ways across three drafts, that's a signal about the codebase, not the paper.
191+
192+
### Retry a run under a different provider
193+
194+
If a run timed out under GLM (which tends to run 1.1–2.7× slower than Anthropic on the same paper), retry it under Anthropic:
195+
196+
```bash
197+
# First attempt hit the wall-clock ceiling under GLM
198+
remyxai outrider trigger --repo owner/name --pin-arxiv 2402.02347v3 \
199+
--provider zai --claude-timeout 1500
200+
201+
# Retry under Anthropic at the default timeout
202+
remyxai outrider trigger --repo owner/name --pin-arxiv 2402.02347v3 \
203+
--provider anthropic
204+
```
205+
206+
`--pin-arxiv` guarantees reproducibility across retries — the second attempt implements the same paper the first one targeted, so the comparison isolates the provider/backend variable.

docs/pipeline.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
type: reference
3+
description: How Remyx + Outrider automates the paper-adoption pipeline — discovery, implementation, validation.
4+
tags: [outrider, pipeline, discovery, implementation, validation]
5+
---
6+
7+
# Pipeline: discovery → implementation → validation
8+
9+
Systematizing paper adoption across a team is usually a coordination problem, not a technical one — someone spots the paper, someone else evaluates fit, someone else implements, someone else reviews. Remyx + Outrider collapses that chain into a single automated pipeline that your team gates rather than staffs.
10+
11+
## Discovery
12+
13+
Every day, Remyx ranks the latest arXiv against your Research Interests (extracted from your codebase, curated per-team, or written by hand):
14+
15+
```bash
16+
remyxai papers digest # grouped by interest
17+
remyxai papers list --interest "My Project" -n 5 # flat view, top 5
18+
```
19+
20+
When Outrider fires on a repo, it runs an **audit pass** that agentically explores the codebase, refines the recommendation pool via targeted searches for under-represented themes, and picks the paper most directly implementable against real call sites. Nothing gets drafted against imagined structure.
21+
22+
## Implementation
23+
24+
Once a paper is selected, Outrider clones the target repo and invokes Claude Code with a scoped brief: implement the paper's core contribution as a draft PR, wired into an existing call site, honoring your repo's contribution conventions (extracted from recent merged PRs).
25+
26+
If the paper can't be cleanly scaffolded — no natural integration point, or too large a scope for one PR — Outrider opens a design-discussion Issue instead. The routing decision is **measurement-based**, not aspirational: the coding agent must find a real call site before drafting a PR.
27+
28+
## Validation
29+
30+
Before a PR lands as ready-for-review, three passes run automatically:
31+
32+
- **Fidelity audit** — clones the paper's reference implementation and diffs the draft against it, flagging any invented algorithms, wrong schemas, or missing components the paper actually requires. This is what catches plausibility-optimized fabrications before they reach a human reviewer.
33+
- **Convention pass** — folds the PR body and code layout to your target repo's contribution conventions (PR-body scaffold, AI-disclosure, docstring style, test co-location patterns), extracted from recent merged PRs.
34+
- **Test gate** — runs lint + targeted tests on the touched files; drops the Draft state only if lint passes and tests execute cleanly.
35+
36+
Each pass writes its findings to the run's Actions Summary — you inspect one panel to see the drafting, verification, and refinement decisions for every recommendation.
37+
38+
## Where teams sit in the loop
39+
40+
You gate rather than staff:
41+
42+
- **Configure** — set up an interest that reflects what your team tracks (via `interests from-repo` for codebase-anchored, or `interests create` for hand-curated)
43+
- **Review** — Outrider files Draft PRs and design Issues; you review, request changes, or merge
44+
- **Steer** — dispatch ad-hoc runs on specific papers via `--pin-arxiv` or `--search-method` when you have a specific target in mind (see [method-targeted-runs.md](method-targeted-runs.md))
45+
46+
The automation catches the discovery gap (papers you'd have missed) and the fabrication gap (implementations that look plausible but aren't). Your review time stays focused on architecture, scope, and merge-readiness.

docs/research-interests.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
type: reference
3+
description: Three ways to create a Research Interest — free-form context, from a repo, or from a project.
4+
tags: [interests, cli, research-profile]
5+
---
6+
7+
# Research Interests
8+
9+
A Research Interest is a natural-language description of what your team tracks. The recommendation pipeline matches new arXiv papers (and other sources) to it. Every create command kicks off a first recommendation pass automatically — add `--wait` to block until picks are ready, or `--no-refresh` to skip.
10+
11+
## From free-form context
12+
13+
```bash
14+
remyxai interests create \
15+
--name "LLM Efficiency" \
16+
--context "Quantization, speculative decoding, KV cache compression"
17+
```
18+
19+
`--context` also accepts a HuggingFace or GitHub URL, which the server expands into context.
20+
21+
## From a GitHub repo
22+
23+
`remyxai interests from-repo <github-url>` analyzes the repo, generates a profile of the project (themes, architecture, history), and uses it as the interest's context:
24+
25+
```bash
26+
remyxai interests from-repo https://github.com/your-org/your-repo \
27+
--name "My Project" --daily-count 3 --automate review --wait
28+
```
29+
30+
- `--automate {none|review|auto}` — paper-PR automation on the repo:
31+
- `none` (default) — just create the interest
32+
- `review` — open a setup PR to review
33+
- `auto` — set it up automatically
34+
35+
For the full repo setup (bulk-install, credentials, secrets), see [install-paths.md](install-paths.md).
36+
37+
## From a project
38+
39+
`remyxai interests from-project <name-or-uuid>` builds the interest's context from a Remyx project's experiments:
40+
41+
```bash
42+
# Track all experiments on the project
43+
remyxai interests from-project "Spatial VQA" --wait
44+
45+
# Or curate a subset, and pin the context
46+
remyxai interests from-project <uuid> -e "baseline-run" -e "dpo-v2" --no-auto-update
47+
```
48+
49+
- `-e/--include-experiment` — track a specific experiment (repeatable); omit to track all
50+
- `--no-auto-update` — pin the context instead of refreshing as new experiments land
51+
52+
## Managing interests
53+
54+
```bash
55+
remyxai interests list # show all your interests
56+
remyxai interests get <name-or-uuid> # show one interest's details
57+
remyxai interests update <id> --context ... # edit fields
58+
remyxai interests toggle <id> # flip active/inactive
59+
remyxai interests delete <id> # remove
60+
```
61+
62+
An inactive interest is excluded from the daily digest until toggled back on. Deleting an interest also removes all its recommendations.
63+
64+
## What the context body looks like
65+
66+
Interests are prompt-anchor artifacts — the recommendation pipeline consumes the context as natural-language framing for the ranker. Good interest contexts:
67+
68+
- Name specific method families ("Quantization, speculative decoding, KV cache compression"), not broad domains ("LLMs")
69+
- Include the codebase's shape when relevant ("This is a training library; algorithm-add papers implementing new optimizers are the primary target")
70+
- Explicitly scope out adjacent-but-off-domain areas ("Not interested in general-purpose agent frameworks; only LoRA / PEFT optimizer methods")
71+
72+
`interests from-repo` produces a reasonable context automatically for most repos. Hand-editing via `interests update --context ...` afterward tightens the ranker's picks when the auto-extract is too broad or catches the wrong theme.

0 commit comments

Comments
 (0)