new-objective
Skill1.1k starsChanged 13 days agoApache-2.0View on GitHub
Implement a new objective for jolt-eval
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 7 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Use the request, spec, and repository context to identify the measurement and objective kind.
- Very specific: line 16
Follow existing patterns exactly — study lloc.rs (static analysis) and binding.rs (performance) as models.
- Distinctive: line 17
Always run clippy and tests before reporting success.
- Very specific: line 35
Read jolt-eval/src/objective/mod.rs to understand the current enums and dispatch methods.
- Very specific: line 36
Read jolt-eval/src/objective/objective_fn/mod.rs to understand objective function registration.
- Distinctive: line 37
Read an existing objective for reference:
- Distinctive: line 44
Create the objective file following the full template for the objective kind (both in this skill's directory):
- Very specific: line 74
Add a pub use line in jolt-eval/src/objective/mod.rs:
- Distinctive: line 83
Import the const key:
- Very specific: line 88
Add a const ObjectiveFunction:
- Very specific: line 97
Add it to ObjectiveFunction::all().
- Distinctive: line 112
Run these commands (all must pass):
- Distinctive: line 131
If any step fails, fix the issue and re-run.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<Purpose>
Implement a new objective for the jolt-eval optimization framework. An objective is a measurable quantity that the AI optimizer tries to minimize — either a static analysis metric or a performance benchmark.This skill handles all the boilerplate: creating the objective struct, implementing the Objective trait, registering it in the appropriate enum, creating a const key, adding an ObjectiveFunction, creating a Criterion benchmark, and running sync_targets.sh.
</Purpose>
<Execution_Policy>
- The user must provide an objective name (lowercase with underscores, e.g.
cyclomatic_complexity). - Use the request, spec, and repository context to identify the measurement and objective kind; ask only for missing requirements.
- Follow existing patterns exactly — study lloc.rs (static analysis) and binding.rs (performance) as models.
- Always run clippy and tests before reporting success. </Execution_Policy>
<Steps>Phase 1: Gather Requirements
- Validate the argument
{{ARGUMENTS}}: must be a valid Rust identifier (lowercase alphanumeric + underscores). Reject otherwise. - Gather these requirements from existing context; ask the user only for missing information:
- What is being measured? (becomes the
description()) - Is this a static analysis objective or a performance objective?
- Static analysis: computes a metric by analyzing source code (e.g. lines of code, complexity). Overrides
collect_measurement(), usesSetup = (). - Performance: computes a metric by running/profiling some computation (e.g. wall-clock time, max RSS). Overrides
setup()andrun().
- Static analysis: computes a metric by analyzing source code (e.g. lines of code, complexity). Overrides
- What are the units? (e.g. "lines", "s", "bugs")
- What files/directories does this objective measure? (used for
diff_paths()scoping)
- What is being measured? (becomes the
Phase 2: Explore Context
- Read
jolt-eval/src/objective/mod.rsto understand the current enums and dispatch methods. - Read
jolt-eval/src/objective/objective_fn/mod.rsto understand objective function registration. - Read an existing objective for reference:
- Static analysis:
jolt-eval/src/objective/code_quality/lloc.rs - Performance:
jolt-eval/src/objective/performance/binding.rs
- Static analysis:
- Explore the modular crates that own the measured functionality.
Phase 3: Implement
Create the objective file following the full template for the objective kind (both in this skill's directory):
- Static analysis:
jolt-eval/src/objective/code_quality/<objective_name>.rs— followreferences/static-analysis.md - Performance:
jolt-eval/src/objective/performance/<objective_name>.rs— followreferences/performance.md(includes Criterion setup/run guidelines)
Phase 4: Register in Enums
4a. Add module declaration
Edit the appropriate mod.rs:
- Static analysis:
jolt-eval/src/objective/code_quality/mod.rs— addpub mod <objective_name>; - Performance:
jolt-eval/src/objective/performance/mod.rs— addpub mod <objective_name>;
4b. Add enum variant and dispatch
Edit jolt-eval/src/objective/mod.rs:
For static analysis, add to StaticAnalysisObjective:
- New variant in the enum
- Entry in
all()with thetarget_dirfield - Match arm in every dispatch method:
name(),description(),collect_measurement(),collect_measurement_in(),units()
For performance, add to PerformanceObjective:
- New variant in the enum
- Entry in
all() - Match arm in every dispatch method:
name(),units(),description() - Match arm in
diff_paths()— return the appropriate path slice
4c. Add const re-export
Add a pub use line in jolt-eval/src/objective/mod.rs:
pub use <submodule>::<objective_name>::<UPPER_NAME>;Phase 5: Add Objective Function
Edit jolt-eval/src/objective/objective_fn/mod.rs:
- Import the const key:
use super::{..., <UPPER_NAME>}; - Add a const
ObjectiveFunction:pub const MINIMIZE_<UPPER_NAME>: ObjectiveFunction = ObjectiveFunction { name: "minimize_<objective_name>", inputs: &[<UPPER_NAME>], evaluate: |m, _| m.get(&<UPPER_NAME>).copied().unwrap_or(f64::INFINITY), }; - Add it to
ObjectiveFunction::all().
Phase 6: Create Criterion Benchmark (performance objectives only)
Performance objectives are measured via Criterion — without the bench file, the optimization harness can't measure them. Create jolt-eval/benches/<objective_name>.rs:
use jolt_eval::objective::performance::<objective_name>::<Name>Objective;
jolt_eval::bench_objective!(<Name>Objective);Then run ./jolt-eval/sync_targets.sh to update Cargo.toml with the new [[bench]] entry.
Phase 7: Validate
Run these commands (all must pass):
# Format
cargo fmt -q
# Lint
cargo clippy -p jolt-eval -q --all-targets -- -D warnings
# Run tests
cargo nextest run -p jolt-eval --cargo-quiet
# For static analysis objectives, verify the measurement works
cargo run -p jolt-eval --bin measure-objectives -- --objective <objective_name>
# For performance objectives, verify the benchmark compiles
cargo bench -p jolt-eval --bench <objective_name> -- --testIf any step fails, fix the issue and re-run.
</Steps>Task: Implement a new objective for jolt-eval. {{ARGUMENTS}}
Trending
More talk lately.about the whole repository
Who's talking about a16z/jolt
- coset-io/zkp-academy“[2024.4.23-2024.5.21] Lasso & Jolt 学习小组”GitHub · Apr 27, 2024 · 2 reactions
- LayerZero-Labs/akita“perf(verifier): batch verifier dot products through jolt-field row kernels”GitHub · Oct 6, 2026
- sudosubin/agents.nix“agent-skills.github.a16z.jolt: 1.1.1-unstable-2026-09-02 → 1.1.1-unstable-2026-09-25”GitHub · Oct 3, 2026
- LayerZero-Labs/jolt“chore(akita): bump dependency to e2c49ed”GitHub · Oct 2, 2026
- jruizaranguren/best-of-digital-identity“Add privacy-preserving identity category”GitHub · Sep 30, 2026
The biggest 5 of 33 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 33
Talked about on GitHub (33 times).
On GitHub · 33
- Apr 27, 2024[2024.4.23-2024.5.21] Lasso & Jolt 学习小组 — coset-io/zkp-academy2 reactions · 1 comment
- Oct 6, 2026perf(verifier): batch verifier dot products through jolt-field row kernels — LayerZero-Labs/akita0 reactions · 15 comments
- Oct 3, 2026agent-skills.github.a16z.jolt: 1.1.1-unstable-2026-09-02 → 1.1.1-unstable-2026-09-25 — sudosubin/agents.nix0 reactions
- Oct 2, 2026chore(akita): bump dependency to e2c49ed — LayerZero-Labs/jolt0 reactions · 3 comments
- Sep 30, 2026Add privacy-preserving identity category — jruizaranguren/best-of-digital-identity0 reactions
28 more on GitHub
- Sep 30, 2026build: jolt as public git deps at a16z/jolt feat/inline-extension-external — 0xAndoroid/jeth0 reactions
- Sep 24, 2026agent-skills.github.a16z.jolt: init at 1.1.1-unstable-2026-09-02 — sudosubin/agents.nix0 reactions
- Aug 10, 2026Feat/jolt prover akita — LayerZero-Labs/jolt0 reactions · 1 comment
- Jul 31, 2026feat: port the demo to the modular prover on Akita (non-zk) — 0xAndoroid/jolt-wasm-prover0 reactions · 1 comment
- Jul 23, 2026Feat/jolt legacy prover akita integration — LayerZero-Labs/jolt0 reactions
- Jul 22, 2026[arXiv] zkML ONNX inference-proof harness — Jolt Atlas: Verifiable Inference via Lookup Arguments in Zero Knowledge — mnemonik-dev/nightly-research0 reactions
- May 21, 2026docs: document precommitted polynomial reductions — LayerZero-Labs/jolt0 reactions · 2 comments
- May 21, 2026feat: integrate bytecode and program image reductions — LayerZero-Labs/jolt0 reactions · 2 comments
- May 21, 2026feat: add committed bytecode foundation — LayerZero-Labs/jolt0 reactions · 2 comments
- May 21, 2026refactor: add precommitted polynomial reductions — LayerZero-Labs/jolt0 reactions · 2 comments
- May 21, 2026refactor: split stage 6 sumchecks — LayerZero-Labs/jolt0 reactions · 2 comments
- Apr 15, 2026build(deps): bump jolt-sdk from `b10e80a` to `3d5e431` — gg-archive/ruma-zk0 reactions
- Feb 3, 2026Implement Jolt Keccak-256 benchmark — ethereum/csp-benchmarkssays it tested it0 reactions
- Feb 3, 2026Implement Jolt ECDSA benchmark — ethereum/csp-benchmarkssays it tested it0 reactions
- Nov 11, 2025fix: correct calculation of max_log_n in VerifierSetup — markosg04/dory0 reactions
- Aug 15, 2025Update Jolt to v0.3.0-alpha — eth-act/ere0 reactions
- Aug 4, 2025Wire up PCS to jolt-prover — ICME-Lab/jolt-atlas0 reactions · 1 comment
- Aug 2, 2025Implement output proof — ICME-Lab/zkml-jolt0 reactions
- Mar 22, 2025no rust-toolchain-aarch64-unknown-linux-gnu.tar.gz release version — a16z/rust0 reactions · 1 comment
- Mar 21, 2025Implement `CanonicalSerialize` and `CanonicalDeserialize` for signed integers — a16z/arkworks-algebra0 reactions
- Mar 5, 2025Trait solver taking >10s to finish in auto complete — rust-lang/rust-analyzer0 reactions · 2 comments
- Feb 28, 2025Add Jolt zkVM Support to ProofLab — ProofLabDev/prooflab-rs0 reactions
- Feb 25, 2025chore: fix typos — a16z/helios0 reactions
- Jan 15, 2025Benchmark ICICLE and `arkmsm` — piotr-roslaniec/wasm-multiexp-benchsays it tested it0 reactions
- Nov 22, 2024chore: Update toolchain to nightly-2024-09-30 — a16z/rust0 reactions
- Jun 26, 2024Optimize polynomial batching computation — microsoft/Nova0 reactions · 1 comment
- May 27, 2024Summary from our mail threads — mab-xyz/verifiable-client-diversity0 reactions
- May 15, 2024List of Existing ZkVMs — vacp2p/zk-explorations0 reactions
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- luk-s12/legion★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository9 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- analyze-specSkill
- ci-code-reviewSkill
- comment-policySkill
- implement-specSkill
- new-invariantSkill
- new-specSkill
- test-policySkill
- update-docsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

