Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
520c0f9
feat(desktop): add verified text input
QianCyrus Sep 27, 2026
047fa89
feat(desktop): add local Cua-S1 4B screenshot actions
QianCyrus Sep 27, 2026
9118546
[Fix] Avoid charging Jev API prices for local rail models
Sep 26, 2026
bea1648
Compact the browser front's state for Laya's tiny window
chaimaerachdi Sep 24, 2026
68f29f4
[Fix] Let decision backends declare billable input tokens
Sep 28, 2026
e513234
Fit browser questions into Laya's option budget
chaimaerachdi Sep 28, 2026
94758a3
Add OmniJev as a vision decision model for the browser agents
chaimaerachdi Sep 28, 2026
1d01e69
Add OMNIJEV_PROMPT: full or short questions for OmniJev
chaimaerachdi Sep 29, 2026
e2bf4c5
Keep OmniJev's action history when the page text is long
chaimaerachdi Sep 29, 2026
ecefeea
Address review: text_value's ask, colliding options, overlay names
chaimaerachdi Sep 29, 2026
cf49ee6
fix(desktop): select Windows launch window by title
QianCyrus Sep 29, 2026
482fd96
fix(desktop): select Windows launch window by title
QianCyrus Oct 1, 2026
036744e
Make the decision deadline configurable: S1A_DECISION_TIMEOUT_S
chaimaerachdi Oct 1, 2026
847db86
Reject nan and infinite values for S1A_DECISION_TIMEOUT_S
chaimaerachdi Oct 1, 2026
0fbfc7a
Address review: strict probe flags, measured WAIT progress, browser-s…
chaimaerachdi Oct 3, 2026
3988e99
Add review-pr skill and AI auto-review workflow
cacheline999 Oct 4, 2026
81d6b4d
[Fix] Harden the AI review workflow and say what it does
cacheline999 Oct 4, 2026
e1dc39e
[Fix] AI review: judge the change against its issue, and three workfl…
cacheline999 Oct 4, 2026
c468900
[Fix] AI review: rerun on edited PRs, say when an issue cannot be read
cacheline999 Oct 4, 2026
eaf8b12
[Feat] AI review: call an OpenAI-compatible model from a tested script
cacheline999 Oct 4, 2026
3944439
[Feat] Review pull requests with CodeRabbit
cacheline999 Oct 4, 2026
5da16f7
[Fix] CodeRabbit config: keep reviewing past five commits, and fix th…
cacheline999 Oct 4, 2026
a1f27a5
[Fix] CodeRabbit config: keep the cited result records in the review
cacheline999 Oct 4, 2026
7caafdd
[Chore] CodeRabbit config: turn off unit test generation
cacheline999 Oct 4, 2026
60f9bd6
[Chore] CodeRabbit config: turn off docstrings and autofix
cacheline999 Oct 4, 2026
17fa36e
fix(desktop): require verified text before success
QianCyrus Oct 4, 2026
041a71e
fix(desktop): reject ambiguous text fields before input
QianCyrus Oct 4, 2026
ef91668
[Fix] CodeRabbit config: check numbers in docs/ against their records
cacheline999 Oct 4, 2026
8be455b
[Fix] Review docs: Dependabot exception, branches without a PR, no re…
cacheline999 Oct 4, 2026
88628fa
docs: add task-demo evidence to contributor self-review
hsliuustc0106 Oct 4, 2026
0d7b534
Merge pull request #39 from ThinkFlowLab/docs/self-review-demo-evidence
hsliuustc0106 Oct 4, 2026
9f87fed
Add evidence for the Laya browser input shaping
chaimaerachdi Oct 4, 2026
6d9c015
Add every OmniJev Flights run as evidence; list omnijev in the docs
chaimaerachdi Oct 4, 2026
de5f5d2
Mention S1A_DECISION_TIMEOUT_S where browser-front.md lists DECISIONS…
chaimaerachdi Oct 4, 2026
c5ad724
[Docs] Add System1-Agents logo to README
hsliuustc0106 Oct 5, 2026
a2c46f4
Merge pull request #40 from ThinkFlowLab/codex-system1-agents-logo
hsliuustc0106 Oct 5, 2026
c787aca
docs(desktop): add Cua-S1 visual review evidence
QianCyrus Oct 5, 2026
1ffac8b
docs(desktop): add input-to-save review evidence
QianCyrus Oct 5, 2026
c60cb3e
[Docs] Guide contributors through agent video demos
hsliuustc0106 Oct 6, 2026
7c7e3be
[Docs] Add agent use-case recipes and authoring skill
hsliuustc0106 Oct 6, 2026
4183bf7
Merge pull request #43 from ThinkFlowLab/codex-video-demo-guidance
hsliuustc0106 Oct 6, 2026
70227de
Evidence: served Laya through system1-omni with the browser shaping
chaimaerachdi Oct 6, 2026
cbeeafb
fix(desktop): invalidate completion evidence after text input
QianCyrus Oct 6, 2026
8955622
docs(desktop): format the visual evidence recorder
QianCyrus Oct 6, 2026
87fc4aa
[Deps] Require laya 0.3.9 and drop the local weight-init skip
cacheline999 Sep 27, 2026
7290a66
[Deps] Move laya to 0.3.20, the version the served worker runs
cacheline999 Sep 30, 2026
6c45ffd
[Docs] Design and API spec for served Laya (#20)
cacheline999 Sep 30, 2026
c62b74a
[Feat] Add the laya-served decision model (#20)
cacheline999 Sep 30, 2026
2c45e10
[Feat] Offer laya-served wherever laya is offered (#20)
cacheline999 Sep 30, 2026
8bf492a
[Feat] Record the answering model and served provenance in ticks (#20)
cacheline999 Sep 30, 2026
cf36085
[Docs] Document laya-served and how to run it (#20)
cacheline999 Sep 30, 2026
2a42cd6
[Feat] Say when a served Laya is not up yet (#20)
cacheline999 Sep 30, 2026
0d075d3
[Docs] Ticket router: in-process against served Laya (#20)
cacheline999 Sep 30, 2026
c0ff327
[Docs] List the dev extra's spec-check packages in CONTRIBUTING (#20)
cacheline999 Oct 1, 2026
654bb98
[Feat] Follow system1-omni#30's final worker (#20)
cacheline999 Oct 1, 2026
a8f0c32
[Fix] Read and write the served-Laya files as UTF-8 on Windows (#20)
cacheline999 Oct 1, 2026
dd4daba
[Fix] Keep the /health refresh inside the decision deadline; compare …
cacheline999 Oct 1, 2026
1c1b9db
[Docs] Keep benchmark figures out of served-Laya code comments and er…
cacheline999 Oct 1, 2026
124a30e
[Fix] Bound whole served-Laya requests; attribute only what /health d…
cacheline999 Oct 2, 2026
d6b3399
[Docs] Trim served-Laya comments to what the code does not say (#20)
cacheline999 Oct 2, 2026
bafc328
[Fix] Follow the merged Laya worker: late checkpoint loads, /health f…
cacheline999 Oct 3, 2026
ed96b74
[Docs] Offer the late checkpoint load as a possible cause of a timeou…
cacheline999 Oct 3, 2026
e227453
[Fix] Tie the served window to the checkpoint; say when this client c…
cacheline999 Oct 3, 2026
937f138
[Docs] Add each model's window to the target /health (#20)
cacheline999 Oct 3, 2026
e063916
[Fix] Fail on a LAYA_SERVED_MODEL the server routed itself (#20)
cacheline999 Oct 3, 2026
9247bee
[Deps] Leave the laya extra as on main; the bump moves to its own PR …
cacheline999 Oct 3, 2026
cdb6d6a
[Fix] Require a finite LAYA_SERVED_TIMEOUT_S
cacheline999 Oct 5, 2026
2205a5a
Evidence: a recorded live Laya Flights run at 70227de
chaimaerachdi Oct 6, 2026
69ad3e5
Evidence: the live Laya run without the consent page, both runs kept
chaimaerachdi Oct 6, 2026
c134df5
Evidence: recorded OmniJev-0.8B CPU runs; state the serving gap
chaimaerachdi Oct 6, 2026
03f553a
Merge pull request #35 from cacheline999/served-laya
hsliuustc0106 Oct 6, 2026
bcc6793
[Docs] Require application, agent and Omni video demos
hsliuustc0106 Oct 6, 2026
621681b
Merge pull request #17 from alexwong10/fix/rail-local-model-costs
hsliuustc0106 Oct 6, 2026
e644e31
docs: require artifact hygiene and full review of large code changes
hsliuustc0106 Oct 6, 2026
f0e1e64
Evidence: an annotated live Laya run with its exact shaped inputs
chaimaerachdi Oct 6, 2026
945dc4e
fix: declare served Laya input tokens non-billable
hsliuustc0106 Oct 6, 2026
3008e8f
Merge pull request #47 from ThinkFlowLab/docs/artifact-hygiene-large-…
hsliuustc0106 Oct 6, 2026
e64eb58
Merge main for served Laya desktop validation
QianCyrus Oct 7, 2026
d098595
Merge main and declare Cua 4B billing contract
QianCyrus Oct 7, 2026
15ff90a
Document served desktop reproduction and link review artifacts
QianCyrus Oct 7, 2026
39f48ec
Keep desktop run evidence in review attachments
QianCyrus Oct 7, 2026
83f2a5f
recipes: add the Snake recipe and game client (evals/snake)
Oct 6, 2026
2e17c1f
recipes: format snake client to repo ruff style; add CHANGELOG entry
Oct 6, 2026
fb1b4c2
snake: fix reviewer findings — stable multigrid raster, warmup termin…
Oct 7, 2026
de27183
tests: format test_snake_client to repo ruff style
Oct 7, 2026
642b430
[Fix] Restore required CI check names after Windows matrix
Birfy Oct 7, 2026
71632e6
snake: cross-platform raster fonts and re-review polish
Oct 7, 2026
8d306c9
docs: regenerate the multigrid demo GIF from the fixed renderer
Oct 7, 2026
94069a4
snake: stop sibling games on failure, sort recording timeline, size m…
Oct 7, 2026
4d55edc
snake: stop on interrupt and fit tall replay grids
Oct 7, 2026
9c5539d
[Deps] Require laya 0.3.9 and drop the local weight-init skip
cacheline999 Sep 27, 2026
d26d762
[Docs] Say what the laya 0.3.9 load skips, without a load time for on…
cacheline999 Oct 4, 2026
a5e6ab3
[Deps] Lock laya 0.3.20 and keep MPS requests in fp32
cacheline999 Oct 4, 2026
d0b3d29
[Fix] Reject a LAYA_MPS_AMP_MIN_ROWS that is not a number
cacheline999 Oct 4, 2026
b6edc84
[Docs] Add a reproducible baseline/head comparison for the laya upgrade
cacheline999 Oct 5, 2026
9be37d9
Merge pull request #48 from linear3735/recipes/snake
hsliuustc0106 Oct 7, 2026
e27f9d5
Merge remote-tracking branch 'upstream/main' into decision-timeout
chaimaerachdi Oct 7, 2026
e7b7d2b
Merge pull request #49 from ThinkFlowLab/codex/fix-required-ci-check-…
hsliuustc0106 Oct 7, 2026
2578141
[Fix] Validate fit-probe answer keys before inference
Birfy Oct 7, 2026
0829ce0
Merge upstream/main into omnijev
chaimaerachdi Oct 7, 2026
4ee705a
Merge remote-tracking branch 'upstream/main' into laya-compact-browse…
chaimaerachdi Oct 7, 2026
22e685b
Merge pull request #36 from chaimaerachdi/decision-timeout
hsliuustc0106 Oct 7, 2026
49c6e1a
[Docs] Note cold-load timing guidance
mananbharti Oct 7, 2026
04096bd
Delete 1-CHANGELOG.md
mananbharti Oct 7, 2026
e27b45f
Revise backend guidance and model loading details
mananbharti Oct 7, 2026
e6f87ea
[Docs] Require cold-load timing for in-process backends
mananbharti Oct 7, 2026
b6eb5cb
OmniJev-4B Flights runs on an A40: records of three runs, the recordi…
chaimaerachdi Oct 7, 2026
2f4ebc3
Merge branch 'main' into feat/cua-visual-desktop
hsliuustc0106 Oct 7, 2026
5d4c02c
Merge branch 'main' into codex/validate-probe-answers
Birfy Oct 7, 2026
77f5515
Merge pull request #50 from Birfy/codex/validate-probe-answers
hsliuustc0106 Oct 7, 2026
47a122a
Merge branch 'main' into feat/macos-desktop-actions
hsliuustc0106 Oct 7, 2026
63df883
Merge branch 'main' into deps/laya-0.3.9
hsliuustc0106 Oct 7, 2026
ea22a3d
[Docs] Resolve demo policy conflicts with main
hsliuustc0106 Oct 7, 2026
adcc5d1
Merge pull request #45 from ThinkFlowLab/codex-full-stack-agent-demos
hsliuustc0106 Oct 7, 2026
9790b52
Merge pull request #9 from chaimaerachdi/laya-compact-browser-state
hsliuustc0106 Oct 7, 2026
66db928
[Feat] CLM as a decision model (--model clm)
hsliuustc0106 Oct 6, 2026
6de2900
[Feat] clm: the shared contract, recorded fixtures, and the docs index
hsliuustc0106 Oct 6, 2026
0716a09
[Fix] clm: say who answered on every path, and record the request id
hsliuustc0106 Oct 6, 2026
4224d5f
[Chore] clm: drop the one recorded fixture nothing replays
hsliuustc0106 Oct 6, 2026
58de96e
[Fix] clm: its input_tokens are cache misses, not a Jev-priced quantity
hsliuustc0106 Oct 7, 2026
7de655a
[Docs] clm: the ticket-router number at 90 decisions, and what the fr…
hsliuustc0106 Oct 7, 2026
b8c05ed
[Docs] clm: the intervals belong to 30 tickets, and the mechanism is …
hsliuustc0106 Oct 7, 2026
e522142
[Docs] clm: the fit probe's verdict, and the framing table demoted to…
hsliuustc0106 Oct 7, 2026
08a8d75
[Fix] clm: format and lint the whole tree, which is what CI checks
hsliuustc0106 Oct 7, 2026
f07ca3e
[Fix] clm: read /health, the readiness path system1-omni's frontend r…
hsliuustc0106 Oct 7, 2026
270a5ee
[Docs] clm: record the demo through omni-jev, which is the path the g…
hsliuustc0106 Oct 7, 2026
62c8db3
[Docs] clm: the demo runs all thirty tickets, not a three-ticket slice
hsliuustc0106 Oct 7, 2026
153a82a
[Docs] clm: the repeats, and that the frontend does not change any nu…
hsliuustc0106 Oct 7, 2026
1ac099d
[Fix] clm: self-review findings, five of them
hsliuustc0106 Oct 7, 2026
05aac79
Merge remote-tracking branch 'origin/main' into deps/laya-0.3.9
cacheline999 Oct 8, 2026
182ccd7
[Fix] Reject a LAYA_MPS_AMP_MIN_ROWS below 1
cacheline999 Oct 8, 2026
c62a546
Merge upstream/main into omnijev
chaimaerachdi Oct 8, 2026
97bd2d4
Retry a failed screenshot once; no image is MODEL_CALL_FAILED for Omn…
chaimaerachdi Oct 8, 2026
ea13c76
docs: add desktop text input changelog
QianCyrus Oct 8, 2026
c75e995
docs: add local Cua 4B changelog
QianCyrus Oct 8, 2026
ac1fc1e
Merge main and preserve desktop changelog entries
QianCyrus Oct 8, 2026
dc6bb08
[Fix] clm: the rail's model list, a cross-repo link, and two of mine
hsliuustc0106 Oct 8, 2026
c0b20d7
Reject a non-finite or non-positive timeout_s passed in code
chaimaerachdi Oct 7, 2026
34cc19b
Deadline evidence on a real server: Flights through system1-omni's fr…
chaimaerachdi Oct 8, 2026
ba77cad
[Fix] clm: the demo's own paths, the browser front's criteria, and tw…
xiaoyu-xyz Oct 8, 2026
389f346
Deadline evidence on system1-omni's native Open-Jev worker (Open-Jev-…
chaimaerachdi Oct 8, 2026
8d2a78b
Merge pull request #37 from cacheline999/deps/laya-0.3.9
Birfy Oct 8, 2026
3f409cf
Merge branch 'main' into feat/macos-desktop-actions
Birfy Oct 8, 2026
b5a2c98
Merge branch 'main' into coderabbit-review
Birfy Oct 8, 2026
6dae41a
Merge branch 'main' into docs/cold-backend-load
Birfy Oct 8, 2026
23a6696
Merge pull request #38 from cacheline999/coderabbit-review
Birfy Oct 8, 2026
b7aeeb4
Merge pull request #51 from mananbharti/docs/cold-backend-load
Birfy Oct 8, 2026
5d06cbd
Merge branch 'main' into feat/cua-visual-desktop
Birfy Oct 8, 2026
edfb92e
Merge branch 'main' into feat/macos-desktop-actions
Birfy Oct 8, 2026
5d89f85
Merge pull request #32 from QianCyrus/feat/cua-visual-desktop
Birfy Oct 8, 2026
5bfd358
Merge branch 'main' into timeout-arg-validation
Birfy Oct 8, 2026
d0c135e
Merge pull request #53 from chaimaerachdi/timeout-arg-validation
Birfy Oct 8, 2026
bf6ea77
Merge main and reconcile desktop text and visual actions
QianCyrus Oct 8, 2026
fbaede9
test: give stale desktop files an explicit old timestamp
QianCyrus Oct 8, 2026
392592a
Merge branch 'main' into clm-served
Birfy Oct 8, 2026
c1fcee2
Merge pull request #46 from xiaoyu-xyz/clm-served
Birfy Oct 8, 2026
91c6c28
Merge main and retain desktop and CLM changelog entries
QianCyrus Oct 8, 2026
3a2c2c6
Merge pull request #27 from QianCyrus/feat/macos-desktop-actions
hsliuustc0106 Oct 8, 2026
b94bbb9
Merge upstream/main into omnijev
chaimaerachdi Oct 9, 2026
320bb08
Merge pull request #33 from chaimaerachdi/omnijev
hsliuustc0106 Oct 9, 2026
c8ac75c
Merge upstream/main for VisualEnv ahead of the visual Sokoban mode
Oct 9, 2026
53967fa
An env may swap the rules a model reads, per episode
Oct 9, 2026
ad218fd
Port Valen's Sokoban renderer behind the visual extra
Oct 9, 2026
5928c08
Add sokoban --visual: Valen's rendering in Valen's words
Oct 9, 2026
45db26e
[Docs] sokoban --visual: what runs today, and what jev cannot
Oct 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
41 changes: 41 additions & 0 deletions .agents/skills/add-agent-recipe/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
name: add-agent-recipe
description: Add or update runnable use-case recipes for existing System1-Agents agents, with setup, inference-backend configuration, independent result checks, demo evidence and troubleshooting. Use for recipe authoring; use build-s1a-agent when the task needs a new agent implementation.
---

# Add an agent use-case recipe

Read the target checkout's local instructions, [CONTRIBUTING.md](../../../CONTRIBUTING.md),
[recipe index](../../../recipes/README.md) and [template](../../../recipes/TEMPLATE.md).
Recipes live at `recipes/<use-case>/README.md`, with small safe fixtures beside them.

Resolve the concrete task, existing agent/front and observable completion check. Trace its state source,
enumerated choices, execution tools and evaluator; do not assume a `DONE` signal establishes success.
If it needs a new runtime behavior or backend integration, identify that separate scope before presenting
a runnable recipe for it.

Check the actual CLI, extras, environment precedence and artifact paths. State the decision model's
checkpoint/revision and library or serving engine separately from the chat model's role. For System1-Omni,
verify both worker support and the agent client's modality/question/window/hardware contract. Pin both
repositories and record a missing client or configuration instead of inventing a supported command.

Write one complete setup → run → verify path, then clearly identified alternatives. Use a bounded task and
independent result check; include errors, incomplete work and incorrect actions in the check. Label key-free
rule/scripted controls separately from learned-model inference. State required credentials by variable name
and expected downloads or external calls. Keep demonstrations outside measured benchmark runs.

Validate links, fixture schema and example flags against the implementation. Exercise the recipe only within
the task's authorized resources and budgets; follow applicable GPU reservation and experiment rules. Record
source revisions/local modifications, fixture hashes, environment, exact commands and raw results. Label
command-only checks and untested profiles explicitly. One working demo is not a quality or performance claim.

Prepare the demo using [the video guide](../../../CONTRIBUTING.md#agent-video-demos), including captions,
trace links and actual engine provenance. For important PRs, require a video of the application/task,
System1-Agents decision-model agent and System1-Omni inference in the same run, as in the linked PR #35 example.
Choose the relevant computer/browser/embodied/game/routing/guardrail application from the guide's README candidates.
A rule control or in-process run does not fulfill that requirement. Record missing support/resources as a
review gap and keep the PR draft unless a maintainer accepts the documented exception.
Retain failures, interventions and replay speed/source. Add the recipe to the index and link reusable
shared documentation rather than copying it. Use the
[self-review skill](../self-review/SKILL.md) for the final contributor report. Recipe authoring does not itself
authorize live model calls, downloads or external publication.
134 changes: 134 additions & 0 deletions .agents/skills/self-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
name: self-review
description: Self-review System1-Agents changes before opening a PR or requesting review, with reproducible task outcomes, appropriate demos, and evidence-backed claims.
---

# System1-Agents self-review

Read the target checkout's `CONTRIBUTING.md`, PR template, and applicable local
instructions. Record the actual target branch and base/head commits, and review
the full diff from their merge base plus relevant uncommitted changes. Distinguish
what is in the PR from local-only work; disclose if the base could not be refreshed.

Apply the [large-code-change requirements](../../../CONTRIBUTING.md#large-code-changes):
report authored-code and total diff counts separately using the guide's counting
convention. Above 3,000 changed code lines, verify the contributor's full
self-review, split rationale, component map/review order, and validation across
affected components and interfaces before recommending readiness. A quick
precheck is insufficient; keep the PR draft until the contributor self-review is
complete. Report missing preparation as a readiness gap; size alone is not a
correctness finding or a reason to require expensive model/GPU runs.

Check correctness, focused scope, decision-model and front contracts, fallback
behavior, cancellation/timeouts, and resource cleanup as relevant. Verify tests
cover the changed behavior, including failure paths and a regression case for a
fix. Match docs and commands to the implementation. Run the applicable checks in
`CONTRIBUTING.md`; report exact commands, outcomes, and skipped checks with reasons.
Documentation-only changes need link/example/claim checks, not unrelated model runs.
For use-case recipes, check the [recipe template](../../../recipes/TEMPLATE.md): commands reach the named
agent/backend, result checks can detect failure, and each profile's validation status matches its evidence.

This skill prepares a local contributor report. It does not itself authorize
edits, commits, pushes, external posts, paid model calls, downloads, or changes to
review status. Use only separately authorized execution resources and budgets.

## Committed artifact hygiene

Apply this check in every review, including quick prechecks. Inspect added and
changed artifacts in the complete diff, including JSON/JSONL, CSV, logs, reports,
source/binary hash inventories, and generated media. Classify them by purpose and
actual consumer, rather than rejecting a file extension.

- Keep necessary configuration, request examples, maintained benchmark inputs,
and small deterministic fixtures or reference oracles in the repository's
intended locations. Identify the test, tool, or documented workflow that needs
each retained artifact, such as labelled agent datasets or replay inputs.
- Flag one-off run summaries, response dumps, cache statistics, profiler output,
agent process notes, and duplicate historical results that have no maintained
source-tree role. A link from PR prose or documentation alone does not justify
committing generated run output. Report concrete paths and consumers.
- Preserve raw measurements, failures, and provenance in a durable artifact
archive or PR/CI evidence, and link the exact revision or run from the summary.
Do not discard evidence to reduce the diff or hide it in a committed archive.
- When removing redundant output, check its callers, links, and reproduction
commands. Keep replay inputs and expected responses intact; verify their
hashes and rerun the affected replay or documentation checks.

## Task evidence

For changes to what an agent can accomplish, show a concrete task as **input →
actions → final result**. Define success using an observable outcome, not just a
`DONE` signal. Use a safe, reproducible scenario or fixture; include setup,
commands, inputs/seed, model and configuration, environment, and exact source
commits. Link the resulting logs or artifacts so a reviewer can trace the story.

When claiming improvement, compare baseline and head on the same tasks, inputs,
success criteria, and budgets. Report completion counts/denominators, elapsed
time, model calls and tool calls when measured. Include cost only if measured,
with the accounting scope and pricing basis; do not infer total cost from latency
or an incomplete token charge. Keep failures, retries, timeouts, and human
intervention in the results. Report repetitions and variation; one successful
demo is not a task-success rate. Mark missing metrics unmeasured, and remove or
qualify unsupported claims rather than manufacturing a comparison.

Use [CONTRIBUTING.md's video guide](../../../CONTRIBUTING.md#agent-video-demos)
to classify the PR and prepare, record and attach its demo. Important PRs require
a video of the application/task, System1-Agents decision-model agent and actual
System1-Omni inference in the same run. Check all three parts against the linked
trace; a terminal recording works for text agents and rails. Screenshots and logs
support the clip. Use PR #35's recording linked in the guide as the example and
choose a relevant README application candidate from the guide. Show the
relevant input, action sequence, and result, with failures or human intervention
visible. Label cuts, replay speed, and elapsed timing honestly; link a fuller
trace when a clip omits context. Do not stage screens or present a replay as a
live run. A replay must identify the source
run/commit, workload, and speed; a historical or upstream model demo is not proof
that the current agent integration works.

Choose figures that answer the review question: workflow screenshots, a short
action timeline, or task-success comparisons backed by the run records. There is
no asset quota. Only the guide's minor docs/formatting/test-only exemption permits
`N/A` with a reason; a nonvisual task still needs a terminal video when the PR is
important. If a required run cannot be made within the available authorization,
resources, or budget, report the gap and its impact; keep the important PR draft
until the video is supplied or a maintainer accepts
the documented exception. Do not turn a missing run into a pass or require a
production-scale demonstration.

## PR demo/evidence section

Prepare a **Demo / evidence** section for the PR containing what applies:

- Required application + agents + Omni video and trace, or the documented exemption/blocker.
- Task and observable result, or `N/A` for an exempt change with a concrete reason.
- Reproduction command/fixture, configuration, and baseline/head commits.
- Measured comparison and raw result links, including failures and limitations;
distinguish personally run checks, author-reported results, and observed CI.
- Demo/figure links with captions stating the workload, source revision, and
whether each item is an actual run, recorded replay, or explanatory illustration.

Make evidence reusable for accurate reviews and public updates without implying
permission to publish it elsewhere. Before attaching assets, check ownership,
license/attribution, and permission to share. Use safe sample data and redact
credentials, private URLs, personal/customer information, and sensitive screen or
log content. Verify redaction in the final exported files, captions, and metadata.
Keep useful measurement context after redaction. Clearly label diagrams, mockups,
and generated artwork as illustrations; never fabricate screens, results, or
performance claims. Link durable, reviewer-accessible artifacts rather than local
paths. If rights or safe disclosure are unresolved, omit the asset and state why.

Check System1-Omni's current model, modality and hardware support as described in
the video guide. Use a supported serving path for the required video when the
branch has a compatible client; otherwise record the missing integration or
configuration. Pin both repositories and verify the actual worker/frontend from run evidence. Keep
agent-task evidence separate from serving/kernel measurements. Do not add an
unrequested backend integration or run outside the authorized resources/budget
merely to produce a demo.

## Report

Lead with actionable findings and file/line references, then the reviewed scope,
commands/results, demo/evidence summary, and remaining gaps. Say when there are no
actionable findings without implying maintainer approval. Keep blocking gaps
visible and recommend a draft while they remain. Do not check the contributor's
boxes or publish on their behalf without separate authorization.
19 changes: 18 additions & 1 deletion .claude/skills/build-s1a-agent/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,21 @@ key-free rung is the offline test from step 4. The paid rung follows. A browser
needs the chat-model key and a Jev key: `uv run s1a run <name> --model jev --goal "..."`. A rail runs its
labelled set and needs a Jev key: `uv run s1a run <name> --labelled-set records.jsonl`.

Report the table and stop. Series of a hundred episodes cost money; ask the user before starting one.
Report the table, then prepare the demo/evidence handoff below. Series of a hundred episodes cost money;
ask the user before starting one.

## 6. Demo and handoff

For a reusable use case, add a recipe using [the recipe template](../../../recipes/TEMPLATE.md) and
[add-agent-recipe skill](../../../.agents/skills/add-agent-recipe/SKILL.md), then update the recipe index.
Follow [CONTRIBUTING.md's video guide](../../../CONTRIBUTING.md#agent-video-demos)
for the required video of the application/task, the System1-Agents decision-model agent and System1-Omni
inference in the same run. Show actual input, selected/executed actions, engine identity and checked result.
Choose an application from the guide's README candidates that exercises the new agent's actual behavior.
Use a terminal recording for a text agent or rail; label scripted checks and recorded replays.
Use a supported System1-Omni path; record missing support or integration as a review gap. Follow PR #35's
worked example linked in the guide. Keep an important PR draft until its video is supplied or a maintainer
accepts the documented exception.
Prepare the PR's **Demo / evidence** section with the clip, reproduction command and linked run artifacts.
Recording, model execution and uploading each require the authorization/resources already established for
the task. If any are unavailable, report the gap and hand off the prepared instructions.
77 changes: 77 additions & 0 deletions .claude/skills/review-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
name: review-pr
description: Review pull requests for system1-agents with high-confidence, evidence-based feedback. Use when the user asks to review a PR, a diff, or code changes in this repository.
---

# Review PR

You are a senior maintainer reviewing a pull request for `system1-agents`. Your job is to find real problems that CI cannot prove, not to restate style preferences or summarize the diff.

CodeRabbit reads this file as review guidelines (`.coderabbit.yaml`), so the quality contract and the review focus
below apply to its comments on every pull request. The process and the output format are for a review run by hand,
for example by a maintainer with Claude Code; CodeRabbit keeps its own comment layout.

## Quality contract

Every comment must satisfy all six criteria:

1. **Correct** — the issue is real and reproducible.
2. **Prioritized** — label as `blocker`, `major`, `minor`, or `nit`.
3. **Actionable** — include a concrete fix or next step.
4. **Evidence-backed** — cite file, line, test, or command.
5. **Concise** — one problem per comment; no essays.
6. **Calibrated** — if uncertain, say so; do not assert.

If a comment cannot meet all six, omit it.

## Review focus for this repository

- **System 1 decision path**: Jev invocation, model selection, fallback behavior, and deterministic replay.
- **Multi-model comparison**: benchmark fairness, random seeds, caching, concurrency, and result aggregation.
- **Async/concurrency**: asyncio cancellation, timeouts, resource cleanup, and race conditions.
- **Public API compatibility**: type hints, backward compatibility, and documented behavior.
- **Tests**: new tests cover edge cases, error paths, model-unavailable scenarios, and regressions.
- **Performance**: token usage, latency, memory, and unnecessary model calls.
- **Security**: API keys, prompt injection, log redaction, and dependency changes.

## Process

1. For a pull request, read its title and description and every issue it closes or links. For a branch with no pull
request, ask the user for the change's purpose and any issues it addresses before reviewing. Then read the changed
files.
2. Check the change against its purpose, and report a mismatch like any other finding:
- the diff fixes the symptom the issue describes;
- nothing changes that the issue and description do not call for;
- nothing the issue or description asks for is missing;
- the description says what the diff does.

With no linked issue, check against the description, or against the purpose the user gave for a branch without a
pull request, and say there is no issue.
3. Run or inspect the relevant tests when possible.
4. Identify only issues that CI cannot prove.
5. Produce a short review with at most 5 high-confidence comments.
6. If there are no blocking issues, say so explicitly.

## Output format

```
## Review summary
<one paragraph: what changed and overall risk>

## Findings
### [blocker|major|minor|nit] <title>
- **Where**: `path/to/file.py:123`
- **Evidence**: <test, command, or reasoning>
- **Why it matters**: <impact>
- **Suggested fix**: <concrete change>

## Questions
- <only if genuinely needed>
```

## Do not

- Do not comment on formatting, naming, or style unless it causes a bug.
- Do not repeat CI failures.
- Do not speculate without evidence.
- Do not approve or request changes on behalf of a human maintainer.
64 changes: 64 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
# CodeRabbit reviews each non-draft pull request when it opens and again on every push. The criteria come from
# .claude/skills/review-pr/SKILL.md, which the knowledge base below reads as a guideline file.
language: en-US
tone_instructions: "Short and plain. Evidence first: cite the file, the line and the scenario that breaks."

reviews:
profile: chill
poem: false
sequence_diagrams: false
assess_linked_issues: true
suggested_reviewers: false
finishing_touches:
docstrings:
enabled: false
unit_tests:
enabled: false
autofix:
enabled: false
auto_review:
enabled: true
drafts: false
auto_pause_after_reviewed_commits: 0
ignore_usernames:
- dependabot[bot]
path_filters:
- "!uv.lock"
- "!evals/results/**"
- "!evals/showcase/**"
path_instructions:
- path: "s1a/**/*.py"
instructions: |
The System 1 decision path: Jev and local model invocation, model selection, fallback behavior and
deterministic replay. Check asyncio cancellation, timeouts and resource cleanup, and that a public
signature, a flag or a documented behavior does not change without the docs and CHANGELOG saying so.
- path: "evals/**"
instructions: |
Benchmark fairness: the same seeds, inputs and budget on every arm, no caching that favors one model,
and result aggregation that cannot drop a failed run. A number in a doc must match the record it cites.
- path: "docs/**"
instructions: |
A number in a doc must match the record it cites (the archives under docs/results/ and the files under
evals/), and a flag, an environment variable or a command in a doc must match what the code does now.
- path: "tests/**"
instructions: |
Edge cases, error paths and model-unavailable scenarios. A test that cannot fail, or that needs a key
or the network, is a finding: nothing in the suite may need either.
- path: ".github/workflows/**"
instructions: |
Security first. Flag pull_request_target or issue_comment jobs that check out or run pull request code,
any ${{ }} expression of untrusted text (titles, bodies, branch names, model output) inside a run
script, secrets handed to steps that do not need them, and permissions wider than the job uses.
- path: "pyproject.toml"
instructions: |
A new or changed extra must agree with the extras table in CONTRIBUTING.md, and a new agent's extra is also
listed in EXTRAS in s1a/run.py (the other extras, such as laya, cua, report and dev, are not agents and
are not listed there). CI checks uv.lock and the review does not see it, so do not comment on the lock.

knowledge_base:
code_guidelines:
enabled: true
filePatterns:
- .claude/skills/review-pr/SKILL.md
- CONTRIBUTING.md
Loading