Update V8 Version
openinterpreter/openinterpreter
Bumps the pinned v8 and rusty_v8 versions in Codex, validates the release-candidate path with the v8-canary check, and traces failures to upstream build changes.
Generate a proptest block for a named orderbook-rs matching-engine invariant.
$ npx skills add joaquinbejar/OrderBook-rs --skill proptest-invariant -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install joaquinbejar/OrderBook-rs proptest-invariant --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/joaquinbejar/OrderBook-rs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/proptest-invariant .claude/skills/proptest-invariant && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "proptest-invariant" agent skill from https://github.com/joaquinbejar/OrderBook-rs/tree/main/.agents/skills/proptest-invariant into .claude/skills/proptest-invariant/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proptest-invariant", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/joaquinbejar/OrderBook-rs/tree/main/.agents/skills/proptest-invariantType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add joaquinbejar/OrderBook-rs --skill proptest-invariant -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install joaquinbejar/OrderBook-rs proptest-invariant --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joaquinbejar/OrderBook-rs.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/proptest-invariant .agents/skills/proptest-invariant && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "proptest-invariant" agent skill from https://github.com/joaquinbejar/OrderBook-rs/tree/main/.agents/skills/proptest-invariant into .agents/skills/proptest-invariant/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proptest-invariant", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add joaquinbejar/OrderBook-rs --skill proptest-invariant -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install joaquinbejar/OrderBook-rs proptest-invariant --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joaquinbejar/OrderBook-rs.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/proptest-invariant .cursor/skills/proptest-invariant && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "proptest-invariant" agent skill from https://github.com/joaquinbejar/OrderBook-rs/tree/main/.agents/skills/proptest-invariant into .cursor/skills/proptest-invariant/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proptest-invariant", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/joaquinbejar/OrderBook-rs.git --path .agents/skills/proptest-invariant--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add joaquinbejar/OrderBook-rs --skill proptest-invariant -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install joaquinbejar/OrderBook-rs proptest-invariant --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joaquinbejar/OrderBook-rs.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/proptest-invariant .gemini/skills/proptest-invariant && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "proptest-invariant" agent skill from https://github.com/joaquinbejar/OrderBook-rs/tree/main/.agents/skills/proptest-invariant into .gemini/skills/proptest-invariant/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proptest-invariant", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install joaquinbejar/OrderBook-rs proptest-invariantInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add joaquinbejar/OrderBook-rs --skill proptest-invariant -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/joaquinbejar/OrderBook-rs.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/proptest-invariant .github/skills/proptest-invariant && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "proptest-invariant" agent skill from https://github.com/joaquinbejar/OrderBook-rs/tree/main/.agents/skills/proptest-invariant into .github/skills/proptest-invariant/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proptest-invariant", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add joaquinbejar/OrderBook-rs --skill proptest-invariant -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install joaquinbejar/OrderBook-rs proptest-invariant --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joaquinbejar/OrderBook-rs.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/proptest-invariant .opencode/skills/proptest-invariant && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "proptest-invariant" agent skill from https://github.com/joaquinbejar/OrderBook-rs/tree/main/.agents/skills/proptest-invariant into .opencode/skills/proptest-invariant/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proptest-invariant", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
proptest-invariantGenerate a proptest block for a named orderbook-rs matching-engine invariant.
Proptest Invariant is an agent skill from joaquinbejar/OrderBook-rs. Generate a proptest block for a named orderbook-rs matching-engine invariant. Use when adding coverage for invariants like "sum of resting quantity conserved", "maker.price == trade.price", "no trades with equal maker and taker under STP", "replay byte-identical via the sequencer", "price-time priority never violated", "no orders at zero quantity", or "snapshot restore round-trips". Generates strategies that go through the validated pricelevel newtypes (Price, Quantity, Id, Side, TimeInForce) and drives…
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Rust. The repository describes itself as: A high-performance, thread-safe limit order book implementation written in Rust. This project provides a comprehensive order matching engine designed for low-latency trading… The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 54df8eb. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditGrepGlobBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
cargorgFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Proptest Invariant loads about 2.8k tokens when it runs. Until then it costs about 173 tokens; SKILL.md has 796 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Grep, Glob, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from joaquinbejar/OrderBook-rs at commit 54df8eb, republished under its MIT licence (© joaquinbejar). 796 words, ~2,751 tokens.
.claude/skills/proptest-invariant/SKILL.md (or your agent's skills folder).Generates a proptest block that targets a specific orderbook-rs matching-engine
invariant. The harness drives OrderBook<T> with a randomly generated, valid input
stream and asserts the invariant on the resulting state and emitted events.
<invariant>", "proptest <invariant>", "add a proptest that
<property holds>".| Name | Shape |
|---|---|
qty_conserved | sum of resting qty on each side invariant under non-matching ops |
no_zero_qty_levels | no resting order with Quantity::ZERO, no level with total qty zero |
trade_has_one_maker_taker | every TradeEvent has 1 maker + 1 taker, maker.price == trade.price |
price_time_priority | fills consume older orders first within a price level |
stp_never_self_fills | no TradeEvent where maker and taker share the same owner id |
replay_snapshots_match | sequencer replay produces snapshots_match == true |
bbo_matches_book | PriceLevelCache top-of-book reflects the actual best bid/ask |
fees_per_fill_sum | total fee across fills equals sum of per-fill fees, no rounding drift |
snapshot_restore_roundtrip | restore_from_snapshot_package reproduces equivalent state |
If the user asks for something not on this list, ask them to name which invariant and
where it lives in the public README or lib.rs; then add a row to the table in the same
commit as the test.
tests/unit/props_<invariant>.rs (one file per invariant
group). They are driven via the public OrderBook<T> API only — no crate-internal
imports.tests/unit/common/strategies.rs.src/orderbook/tests/props_<invariant>.rs gated by #[cfg(test)].Prefer the integration-test location when the public API covers the invariant; proptest
integration tests run under cargo nextest run --test props_<invariant> in isolation,
which makes shrink failures easier to reproduce.
Reusable generator for a sequence of valid operations. Biased to produce crossings often enough to exercise matching, not uniformly random.
// tests/unit/common/strategies.rs
use orderbook_rs::prelude::*;
use proptest::prelude::*;
use proptest::collection::vec;
/// Small, deterministic set of owner ids. Keeping the pool small makes STP / self-cross
/// exercise frequently on short streams.
const OWNER_POOL: [u64; 4] = [1, 2, 3, 4];
/// Operation generated by the strategy. Keep this enum local to the test crate so it
/// does not get re-exported by accident.
#[derive(Clone, Debug)]
pub enum Op {
Submit {
id: Id,
owner: u64,
side: Side,
price: Price,
qty: Quantity,
tif: TimeInForce,
},
CancelById(Id),
MassCancelBySide(Side),
}
pub fn op_stream(len_range: std::ops::Range<usize>) -> impl Strategy<Value = Vec<Op>> {
vec(op(), len_range)
}
fn op() -> impl Strategy<Value = Op> {
prop_oneof![
7 => submit(),
2 => cancel(),
1 => mass_cancel(),
]
}
fn submit() -> impl Strategy<Value = Op> {
(
any::<u64>().prop_map(Id::from_u64),
any::<usize>().prop_map(|i| OWNER_POOL[i % OWNER_POOL.len()]),
any::<Side>(),
// Tight price band forces crossings. A wide uniform range produces a flat empty
// book that never exercises matching.
(99u64..=101).prop_map(|t| Price::from_u64(t)),
(1u64..=100).prop_map(|q| Quantity::from_u64(q)),
tif_any(),
)
.prop_map(|(id, owner, side, price, qty, tif)| Op::Submit {
id, owner, side, price, qty, tif,
})
}
fn cancel() -> impl Strategy<Value = Op> {
any::<u64>().prop_map(|v| Op::CancelById(Id::from_u64(v)))
}
fn mass_cancel() -> impl Strategy<Value = Op> {
prop_oneof![
Just(Op::MassCancelBySide(Side::Buy)),
Just(Op::MassCancelBySide(Side::Sell)),
]
}
fn tif_any() -> impl Strategy<Value = TimeInForce> {
prop_oneof![
Just(TimeInForce::Gtc),
Just(TimeInForce::Ioc),
Just(TimeInForce::Fok),
Just(TimeInForce::PostOnly),
]
}Key points:
prop_oneof![7 => …, 2 => …]) matter. Uniform random rarely exercises
cancels or STP paths in a short run.Price,
Quantity) — invalid inputs belong in their own test.Example for qty_conserved (replace <OrderBookCtor> with the exact constructor used in
the project, typically OrderBook::<()>::new("TEST") or a preset builder):
// tests/unit/props_qty_conserved.rs
mod common;
use common::strategies::{op_stream, Op};
use orderbook_rs::prelude::*;
use proptest::prelude::*;
fn apply(book: &OrderBook<()>, op: &Op) {
match op {
Op::Submit { id, owner, side, price, qty, tif } => {
let _ = book.submit_limit(*id, *owner, *side, *price, *qty, *tif);
}
Op::CancelById(id) => {
let _ = book.cancel(*id);
}
Op::MassCancelBySide(side) => {
let _ = book.mass_cancel_by_side(*side);
}
}
}
fn bid_qty_sum(book: &OrderBook<()>) -> u64 {
book.iter_levels(Side::Buy)
.map(|lvl| lvl.total_quantity().as_u64())
.sum()
}
fn ask_qty_sum(book: &OrderBook<()>) -> u64 {
book.iter_levels(Side::Sell)
.map(|lvl| lvl.total_quantity().as_u64())
.sum()
}
proptest! {
#![proptest_config(ProptestConfig {
cases: 256,
max_shrink_iters: 50_000,
..ProptestConfig::default()
})]
#[test]
fn qty_conserved_across_snapshot(stream in op_stream(1..200)) {
let book = OrderBook::<()>::new("TEST");
for op in &stream { apply(&book, op); }
let bid_before = bid_qty_sum(&book);
let ask_before = ask_qty_sum(&book);
// Non-matching op: snapshot must not change resting qty.
let _snap = book.snapshot();
prop_assert_eq!(bid_qty_sum(&book), bid_before);
prop_assert_eq!(ask_qty_sum(&book), ask_before);
}
}Adjust OrderBook::<()>::new("TEST") to whichever constructor form the project actually
exposes at the time the skill runs; verify with
rg -n 'impl<.*> OrderBook' src/orderbook/book.rs.
trade_has_one_maker_taker — register a TradeListener, collect TradeEvents into
a Vec, then assert each has distinct maker_order_id / taker_order_id and that
trade.price == maker_resting_price (snapshot the maker price before the fill).stp_never_self_fills — configure the book with one of the active STP modes, then
filter the trade-event vec for maker.owner == taker.owner; assert it is empty for
every mode under test.price_time_priority — assert that within each price level, the order with the
earlier TimestampMs fills first. Walk the trade vec by price level and compare
maker timestamps.replay_snapshots_match — run the sequencer with the in-memory journal, replay
into a fresh book, call snapshots_match(&live, &replayed) and assert true. The
sequencer's snapshots_match is already the canonical oracle; the proptest just widens
coverage beyond the fixed streams in tests/unit/.bbo_matches_book — after applying the stream, compare
book.best_bid() / book.best_ask() against the first element of
book.iter_levels(side).fees_per_fill_sum — configure a FeeSchedule, sum per-fill fee_paid values from
every TradeEvent, compare to the TradeResult aggregate — assert exact equality
(integer fee model).snapshot_restore_roundtrip — let pkg = book.snapshot_package(); → build a fresh
book → restored.restore_from_snapshot_package(pkg) → assert structural equality of
price levels, cache, STP mode, fee schedule.cases: 256 by default. Bump to 1024+ for a nightly / release job, not for the default
cargo nextest run.max_shrink_iters: 50_000 — matching bugs often need aggressive shrinking to reach a
minimal failing stream; the proptest default of 1024 is too low.proptest writes failing inputs to proptest-regressions/. Commit
that directory — it's the first line of defense against regressions of the same shape.cargo nextest run --test props_<invariant> (or
cargo test --test props_<invariant> -- --nocapture if nextest is unavailable).TimeInForce mix missing
PostOnly.test(orderbook): proptest for <invariant>.repricing.rs (pegged / trailing-stop) must be gated:
#[cfg(feature = "special_orders")] on the test function and matching CI job.feature = "nats" and
mark them #[ignore] by default; they are integration tests against a running server.journal feature only adds
the file-backed journal (the in-memory journal is always available).© joaquinbejar, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/proptest-invariant of joaquinbejar/OrderBook-rs.
Open the folder on GitHubat commit 54df8eb
Proptest Invariant next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Proptest Invariant this skilljoaquinbejar/OrderBook-rs | 543 | — | ~2.8k | Automated safety check: Notes | MIT | |
| Update V8 Versionopeninterpreter/openinterpreter | 69k | 2 repos | ~845 | Automated safety check: Pass | Apache-2.0 | |
| Firecrawl Page Scrape Integrationfirecrawl/firecrawl | 190k | 1 repos | ~944 | Automated safety check: Pass | ISC | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 42k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Rust TDD Workflowrtk-ai/rtk | 83k | — | ~753 | Automated safety check: Notes | Apache-2.0 | |
| OpenLogi macOS Permissions TriageAprilNEA/OpenLogi | 23k | — | ~2.5k | Automated safety check: Notes | Apache-2.0 |
openinterpreter/openinterpreter
Bumps the pinned v8 and rusty_v8 versions in Codex, validates the release-candidate path with the v8-canary check, and traces failures to upstream build changes.
firecrawl/firecrawl
Adds Firecrawl's /scrape endpoint to application code to pull markdown, HTML, links, screenshots or structured data from a single known URL.
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
rtk-ai/rtk
Enforces red-green-refactor for Rust work, with idiomatic test patterns, a naming convention and a pre-commit gate of cargo fmt, clippy and test.
AprilNEA/OpenLogi
Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.
farm-fe/farm
Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook.
joaquinbejar/OrderBook-rs
Add or update an orderbook-rs hot-path latency benchmark that reports p50 / p99 / p99.9 / p99.99 via hdrhistogram, not the criterion default mean.
joaquinbejar/OrderBook-rs
Autonomously implement every roadmap issue end-to-end (PR → Copilot review → respond → green CI → merge → roadmap update) until done
Works with
Generate a proptest block for a named orderbook-rs matching-engine invariant. Proptest Invariant is an agent skill from joaquinbejar/OrderBook-rs. Generate a proptest block for a named orderbook-rs matching-engine invariant.
Proptest Invariant fits situations like: adding coverage for invariants like sum of resting quantity conserved; maker.price == trade.price; no trades with equal maker and taker under STP; replay byte-identical via the sequencer.
Run `npx skills add joaquinbejar/OrderBook-rs --skill proptest-invariant -a claude-code`. Or copy the skill folder (.agents/skills/proptest-invariant in joaquinbejar/OrderBook-rs) into .claude/skills/proptest-invariant in your project. Claude Code loads it when a task matches its description.
Run `npx skills add joaquinbejar/OrderBook-rs --skill proptest-invariant -a codex`. Or copy the skill folder (.agents/skills/proptest-invariant in joaquinbejar/OrderBook-rs) into .agents/skills/proptest-invariant in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add joaquinbejar/OrderBook-rs --skill proptest-invariant -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/proptest-invariant, .gemini/skills/proptest-invariant, .github/skills/proptest-invariant and .opencode/skills/proptest-invariant in your project.
Going by SKILL.md and its folder, Proptest Invariant needs the command-line tools its instructions call (cargo and rg). Its frontmatter pre-approves these tools: Read, Write, Edit, Grep, Glob, Bash.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Proptest Invariant is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Proptest Invariant: Update V8 Version (openinterpreter/openinterpreter, 69k stars), Firecrawl Page Scrape Integration (firecrawl/firecrawl, 190k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars) and Rust TDD Workflow (rtk-ai/rtk, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
joaquinbejar (a GitHub user) maintains it in joaquinbejar/OrderBook-rs, which has 543 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 5, 2026.
Source: joaquinbejar/OrderBook-rs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.