Foundry Differential Tests
aviggiano/security
Create Foundry differential tests comparing production Solidity contracts against an independent reference model.
Internal — for Boundless team members only. An agent skill from boundless-xyz/boundless.
$ npx skills add boundless-xyz/boundless --skill ops-query -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install boundless-xyz/boundless ops-query --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/boundless-xyz/boundless.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ops-query .claude/skills/ops-query && 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 "ops-query" agent skill from https://github.com/boundless-xyz/boundless/tree/main/.claude/skills/ops-query into .claude/skills/ops-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-query", 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/boundless-xyz/boundless/tree/main/.claude/skills/ops-queryType 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 boundless-xyz/boundless --skill ops-query -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install boundless-xyz/boundless ops-query --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/boundless-xyz/boundless.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/ops-query .agents/skills/ops-query && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ops-query" agent skill from https://github.com/boundless-xyz/boundless/tree/main/.claude/skills/ops-query into .agents/skills/ops-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-query", 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 boundless-xyz/boundless --skill ops-query -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install boundless-xyz/boundless ops-query --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/boundless-xyz/boundless.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/ops-query .cursor/skills/ops-query && 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 "ops-query" agent skill from https://github.com/boundless-xyz/boundless/tree/main/.claude/skills/ops-query into .cursor/skills/ops-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-query", 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/boundless-xyz/boundless.git --path .claude/skills/ops-query--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 boundless-xyz/boundless --skill ops-query -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install boundless-xyz/boundless ops-query --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/boundless-xyz/boundless.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/ops-query .gemini/skills/ops-query && 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 "ops-query" agent skill from https://github.com/boundless-xyz/boundless/tree/main/.claude/skills/ops-query into .gemini/skills/ops-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-query", 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 boundless-xyz/boundless ops-queryInstalls 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 boundless-xyz/boundless --skill ops-query -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/boundless-xyz/boundless.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/ops-query .github/skills/ops-query && 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 "ops-query" agent skill from https://github.com/boundless-xyz/boundless/tree/main/.claude/skills/ops-query into .github/skills/ops-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-query", 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 boundless-xyz/boundless --skill ops-query -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install boundless-xyz/boundless ops-query --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/boundless-xyz/boundless.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/ops-query .opencode/skills/ops-query && 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 "ops-query" agent skill from https://github.com/boundless-xyz/boundless/tree/main/.claude/skills/ops-query into .opencode/skills/ops-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-query", 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.
ops-queryInternal — for Boundless team members only. An agent skill from boundless-xyz/boundless.
Ops Query is an agent skill from boundless-xyz/boundless. Internal — for Boundless team members only. Cross-reference Boundless indexer API data, broker telemetry, and service logs to investigate production and staging operational issues. Use when the user wants to understand why slashings happened on prod/staging, diagnose prover or service failures in deployed environments, correlate market events with broker behavior, investigate fulfillment rate drops, look at prover/service logs, or perform any analysis that requires combining on-chain indexer data with off-chain…
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/customer-expired-requests.md`, `references/fulfillment-rate-drops.md` and `references/investigations.md`).
It sits in Development, covering Smart contracts and Root cause analysis. The repository describes itself as: Monorepo for Boundless, the universal ZK protocol. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 93e971a. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
awsFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use aws, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
INDEXER_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ops Query loads about 3.3k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 202 tokens; SKILL.md has 1,352 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 found no risky patterns in SKILL.md.
Automated 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 boundless-xyz/boundless at commit 93e971a, republished under its Apache-2.0 licence (© boundless-xyz). 1,352 words, ~3,259 tokens.
.claude/skills/ops-query/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Combine on-chain indexer data, off-chain broker telemetry, and CloudWatch service logs to investigate operational issues and find insights.
Set up the data sources needed for the investigation. Not all sources are needed for every query -- use the ones relevant to the task.
Read network_secrets.toml from the repo root. If it exists, it contains credentials for all environments (indexer API keys, telemetry DB URLs/passwords, AWS creds). Also read network_address_labels.json (same directory) for labelling addresses -- it is plain JSON ({"0xaddr": "label", ...}). If network_secrets.toml is not present, recommend the user create it -- instructions and credentials are in the Boundless runbook. If network_address_labels.json is not present, recommend the user create it -- the canonical address mapping is in the Boundless runbook.
Read and follow the ops-indexer-query skill at .claude/skills/ops-indexer-query/SKILL.md to set up indexer access (MARKET_INDEXER_URL, ZKC_INDEXER_URL, optional INDEXER_API_KEY, and the indexer_get helper function).
Read and follow the ops-telemetry-query skill at .claude/skills/ops-telemetry-query/SKILL.md to set up Redshift access (REDSHIFT_URL). Before writing any telemetry SQL, read crates/boundless-market/src/telemetry.rs for exact column names and enum values.
Read and follow the ops-logs-query skill at .claude/skills/ops-logs-query/SKILL.md to set up CloudWatch log access (AWS credentials, log group discovery). Use when the investigation benefits from raw service logs -- especially for our own operated provers, or for other services like indexer, order stream, slasher, etc.
Ask the user which network they want to investigate (determines which market indexer + ZKC indexer to use).
| Source | What it knows | Join fields |
|---|---|---|
| Market Indexer | On-chain request lifecycle: submitted, locked, fulfilled, slashed, expired. Pricing, collateral, tx hashes, timestamps. | request_id, request_digest, prover/requestor addresses |
| Telemetry (Redshift) | Broker-side operational data: evaluation decisions, skip reasons, proving durations, error codes, queue depths, estimated vs actual proving times. | request_id, request_digest, broker_address, order_id |
| CloudWatch Logs | Raw service logs for provers we operate (and other infra services). Detailed error messages, stack traces, runtime behavior. | request_id, request_digest, timestamps |
The key join between indexer and telemetry is request_id and request_digest. The indexer's lock_prover_address or fulfill_prover_address corresponds to telemetry's broker_address. Logs can be correlated by searching for the same request_id or request_digest within the relevant time window.
Telemetry is opt-in -- not all brokers send telemetry. If a prover address has no telemetry data, note this to the user. CloudWatch logs are only available for services we operate.
All investigations follow the same pattern:
Rate limit all sources:
sleep 1 between requests, sleep 2 between pagination pages.LIMIT on exploratory queries.sleep 1 between paginated log queries.Before starting any work, check if the user's question matches a pre-built investigation. These are tested playbooks with the right queries, presentation format, and step-by-step instructions. Using them produces consistent, comprehensive results. Each lives in its own file under references/:
| Investigation | File | When to use |
|---|---|---|
| Market Summary | references/market-summary.md | "How's the market?" / "give me a summary" / overview of health, prover activity, failures, skips |
| Slashing Reasons | references/slashing-reasons.md | Prover was slashed -- find out why |
| Fulfillment Rate Drops | references/fulfillment-rate-drops.md | Market or prover fulfillment rate declined, success rate alarms |
| Prover Performance | references/prover-performance.md | Deep dive into a specific prover's operational health |
| Request Lifecycle | references/request-lifecycle.md | Trace a specific request end-to-end across all data sources |
| Customer Expired Requests | references/customer-expired-requests.md | Customer's requests are expiring -- investigate why provers skip or fail to fulfill them |
If the user's question clearly maps to one of these, read the corresponding file and follow it step by step. If it doesn't fit any pre-built investigation, fall back to the general Investigation Workflow above and build a custom investigation.
When investigating RDS/Aurora issues (storage, CPU, connections, etc.), never assume the DB identifier reflects the actual instance role. Instance identifiers containing reader or writer may be mislabeled -- the name is set at creation time and does not update if Aurora promotes/demotes instances.
Always determine the actual role by querying the instance metadata:
aws rds describe-db-instances \
--query 'DBInstances[?contains(DBInstanceIdentifier, `prod-8453-indexer`)].{id: DBInstanceIdentifier, role: DBInstanceArn}' \
--output tableOr more directly, check the cluster's member list with roles:
aws rds describe-db-clusters \
--db-cluster-identifier "CLUSTER_ID" \
--query 'DBClusters[0].DBClusterMembers[].{id: DBInstanceIdentifier, isWriter: IsClusterWriter}' \
--output tableUse IsClusterWriter: true/false as the source of truth. When reporting findings, always state the actual role alongside the identifier, e.g. "instance *-reader-v19 (actual role: writer)".
Always show the full address when displaying broker/prover addresses. Do not truncate to 0x8305...04b5. If a label exists in network_address_labels.json, show both: 0x83052f16a84e6f2cec4bf3beda45c40c800904b5 (BP1).
Provers we operate are labeled with a BP prefix in network_address_labels.json (e.g. BP1, BP2, BPNightlyAWS). When investigating any issue, always highlight what our provers are doing -- did they skip the order, did they fail, did they drop it, what error codes are they hitting? This should be called out explicitly in every investigation, even when the issue is not specifically about our provers.
When showing prover activity, pivot telemetry outcomes into columns so each prover is one row. Include fulfilled, failures, and skips as separate columns. By default summary tables should cover the top 5 provers by volume plus all provers we operate (from address labels).
After the summary table, include two separate breakdown sections:
Failure breakdown: For each prover, show a per-prover table of outcome, error_code, summarized error_reason, and count. Group by error pattern, not by individual request.
Skip breakdown: Same structure — per-prover table of skip_code, example reason, and count, sorted by count descending.
Drop breakdown: Same structure — per-prover table of commitment_skip_code, reason, and count, sorted by count descending.
Alerts always match on error codes (e.g. [B-PRO-501]), not on string patterns. Seeing a string like ProvingFailed in a log message does NOT mean it counts toward the proving-failed metric or alert. Only entries with the corresponding error code (e.g. [B-PRO-501]) are counted. When investigating alert triggers or counting occurrences for a specific alert, always filter by the error code, not by keyword/string matching.
commitment_skip_code for specifics.Cancelled as a failure in summary tables — show it as a separate column.When a prover locks an order but fails to fulfill it before the lock expires, the order becomes available for secondary fulfillment by any other prover in the network. The secondary fulfiller earns the slash collateral as a reward. In telemetry, secondary fulfillments are identified by fulfillment_type = 'FulfillAfterLockExpire' (in both evaluations and completions). In the indexer, a secondary fulfillment shows as fulfill_prover_address differing from lock_prover_address, and market aggregates include total_secondary_fulfillments.
When investigating expired or slashed requests, always check whether secondary fulfillment was attempted -- especially by our BP provers. Did they see the opportunity? Did they skip it, and why? Did they attempt it but fail?
© boundless-xyz, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (references) in .claude/skills/ops-query of boundless-xyz/boundless.
Open the folder on GitHubat commit 93e971a
Ops Query 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 |
|---|---|---|---|---|---|---|
| Ops Query this skillboundless-xyz/boundless | 193 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Foundry Differential Testsaviggiano/security | 144 | — | ~613 | Automated safety check: Pass | MIT | |
| Code Design Rationale Investigatorcursor/plugins | 10k | 9 repos | ~2.6k | Automated safety check: Pass | None | |
| OpenLogi macOS Permissions TriageAprilNEA/OpenLogi | 23k | — | ~2.5k | Automated safety check: Notes | Apache-2.0 | |
| Bug Finder for daisyUIsaadeghi/daisyui | 43k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Root Cause Debugginggarrytan/gstack | 136k | — | ~1.4k | Automated safety check: Pass | MIT |
aviggiano/security
Create Foundry differential tests comparing production Solidity contracts against an independent reference model.
cursor/plugins
Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.
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.
saadeghi/daisyui
Investigates suspected bugs in the daisyUI monorepo through read-only analysis, then writes a decision-ready fix plan in tmp/bugs without changing any product code.
garrytan/gstack
Investigates bugs, errors and stack traces in phases and requires a root-cause hypothesis to be confirmed before any fix is written.
apache/shardingsphere
Review Apache ShardingSphere or user-authorized downstream pull requests and PR discussions from public or authorized repository evidence.
boundless-xyz/boundless
How to use the Boundless CLI — the primary interface for the Boundless ZK proof marketplace.
boundless-xyz/boundless
Internal — for Boundless team members only. An agent skill from boundless-xyz/boundless.
boundless-xyz/boundless
Start and interact with the Boundless localnet (docker compose-based local development network).
boundless-xyz/boundless
Internal — for Boundless team members only. An agent skill from boundless-xyz/boundless.
boundless-xyz/boundless
Internal — for Boundless team members only. An agent skill from boundless-xyz/boundless.
boundless-xyz/boundless
Internal — for Boundless team members only. An agent skill from boundless-xyz/boundless.
Categories
Internal — for Boundless team members only. An agent skill from boundless-xyz/boundless. Ops Query is an agent skill from boundless-xyz/boundless. Internal — for Boundless team members only.
Ops Query fits situations like: the user wants to understand why slashings happened on prod/staging; diagnose prover; service failures in deployed environments; correlate market events with broker behavior.
Run `npx skills add boundless-xyz/boundless --skill ops-query -a claude-code`. Or copy the skill folder (.claude/skills/ops-query in boundless-xyz/boundless) into .claude/skills/ops-query in your project. Claude Code loads it when a task matches its description.
Run `npx skills add boundless-xyz/boundless --skill ops-query -a codex`. Or copy the skill folder (.claude/skills/ops-query in boundless-xyz/boundless) into .agents/skills/ops-query 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 boundless-xyz/boundless --skill ops-query -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ops-query, .gemini/skills/ops-query, .github/skills/ops-query and .opencode/skills/ops-query in your project.
Going by SKILL.md and its folder, Ops Query needs the command-line tools its instructions call (aws) and credentials named INDEXER_API_KEY. Our summary lists: Docker; A credential in INDEXER_API_KEY.
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 no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ops Query is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Ops Query: Foundry Differential Tests (aviggiano/security, 144 stars), Code Design Rationale Investigator (cursor/plugins, 10k stars), OpenLogi macOS Permissions Triage (AprilNEA/OpenLogi, 23k stars) and Bug Finder for daisyUI (saadeghi/daisyui, 43k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
boundless-xyz (a GitHub organization) maintains it in boundless-xyz/boundless, which has 193 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on August 26, 2026.
Source: boundless-xyz/boundless on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.