Fizz Convert
pashov/skills
Convert English-language properties in PROPERTIES.md (produced by the Fizz skill) into Solidity assertions inside the existing fuzz harness, then flip their checkboxes.
Optimize Scalus/Cardano smart contracts for execution budget (CPU steps and memory).
$ npx skills add scalus3/scalus --skill optimize-contract -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scalus3/scalus optimize-contract --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/scalus3/scalus.git skills-src && mkdir -p .claude/skills && cp -r skills-src/scalus-skills/skills/optimize-contract .claude/skills/optimize-contract && 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 "optimize-contract" agent skill from https://github.com/scalus3/scalus/tree/master/scalus-skills/skills/optimize-contract into .claude/skills/optimize-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimize-contract", 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/scalus3/scalus/tree/master/scalus-skills/skills/optimize-contractType 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 scalus3/scalus --skill optimize-contract -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scalus3/scalus optimize-contract --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scalus3/scalus.git skills-src && mkdir -p .agents/skills && cp -r skills-src/scalus-skills/skills/optimize-contract .agents/skills/optimize-contract && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "optimize-contract" agent skill from https://github.com/scalus3/scalus/tree/master/scalus-skills/skills/optimize-contract into .agents/skills/optimize-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimize-contract", 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 scalus3/scalus --skill optimize-contract -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scalus3/scalus optimize-contract --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scalus3/scalus.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/scalus-skills/skills/optimize-contract .cursor/skills/optimize-contract && 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 "optimize-contract" agent skill from https://github.com/scalus3/scalus/tree/master/scalus-skills/skills/optimize-contract into .cursor/skills/optimize-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimize-contract", 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/scalus3/scalus.git --path scalus-skills/skills/optimize-contract--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 scalus3/scalus --skill optimize-contract -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scalus3/scalus optimize-contract --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scalus3/scalus.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/scalus-skills/skills/optimize-contract .gemini/skills/optimize-contract && 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 "optimize-contract" agent skill from https://github.com/scalus3/scalus/tree/master/scalus-skills/skills/optimize-contract into .gemini/skills/optimize-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimize-contract", 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 scalus3/scalus optimize-contractInstalls 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 scalus3/scalus --skill optimize-contract -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/scalus3/scalus.git skills-src && mkdir -p .github/skills && cp -r skills-src/scalus-skills/skills/optimize-contract .github/skills/optimize-contract && 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 "optimize-contract" agent skill from https://github.com/scalus3/scalus/tree/master/scalus-skills/skills/optimize-contract into .github/skills/optimize-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimize-contract", 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 scalus3/scalus --skill optimize-contract -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install scalus3/scalus optimize-contract --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scalus3/scalus.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/scalus-skills/skills/optimize-contract .opencode/skills/optimize-contract && 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 "optimize-contract" agent skill from https://github.com/scalus3/scalus/tree/master/scalus-skills/skills/optimize-contract into .opencode/skills/optimize-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimize-contract", 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.
optimize-contractOptimize Scalus/Cardano smart contracts for execution budget (CPU steps and memory).
Optimize Contract is an agent skill from scalus3/scalus. Optimize Scalus/Cardano smart contracts for execution budget (CPU steps and memory). Analyzes @Compile annotated validators for performance issues — expensive patterns, unnecessary allocations, redundant traversals, missed short-circuits. Provides concrete Scalus rewrites with budget impact estimates. Use when reviewing on-chain code performance or when /optimize-contract is invoked. Requires explicit path argument.
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/patterns.md`).
It sits in Backend & APIs, covering Smart contracts. The repository describes itself as: Scalus - Smart contracts & dApps Development Platform for Cardano. The licence is Apache-2.0.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 073969c. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are scala).
From 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.
Optimize Contract loads about 3.6k tokens when it runs, and up to ~8.7k if it reads all its reference files. Until then it costs about 109 tokens; SKILL.md has 1,287 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 scalus3/scalus at commit 073969c, republished under its Apache-2.0 licence (© scalus3). 1,287 words, ~3,623 tokens.
.claude/skills/optimize-contract/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Analyze Scalus/Cardano smart contracts for execution budget optimization opportunities.
assertBudgetEquals or assertBudgetWithin) on representative inputs — simple case, worst case, and typical case.EvalTestDsl budget assertions to find which code paths dominate the budget.Find on-chain code by searching for:
@Compile annotationValidator, DataParameterizedValidator, or ParameterizedValidatorPlutusV3.compile(), PlutusV2.compile(), or PlutusV1.compile()Search patterns:
grep -rn "@Compile" --include="*.scala" <path>
grep -rn "extends Validator" --include="*.scala" <path>
grep -rn "extends DataParameterizedValidator" --include="*.scala" <path>@Compile annotated code in specified pathsbtn quick or specific test to confirm budget improvementFor detailed patterns with Scalus code examples, see references/patterns.md.
| ID | Pattern | Problem | Fix |
|---|---|---|---|
| O001 | Multiple list traversals | Separate filter then map then length | Combine into single foldLeft |
| O002 | foldRight on lists | Not tail-recursive, builds thunks | Use foldLeft with reverse if order matters |
| O003 | list.flatten | O(n*m) via nested foldRight + ++ | Accumulate with foldLeft and prepend |
| O004 | list.distinct | O(n^2) — foldLeft with exists | Use SortedMap or deduplicate at source |
| O005 | list :+ elem (append) | O(n) per append | Use elem +: list (prepend) and reverse once |
| O006 | Reconstructing Value | Full Value maintains invariants expensively | Use SortedMap or PairList directly when possible |
| O007 | AssocMap anywhere | get scans to hit-or-end; union is O(n*m) (get per left key, exists per right key) | Use SortedMap: get stops early via Ord, union is one linear merge |
| O008 | list.map(f).filter(p) | Two traversals, intermediate list | Single foldLeft combining map + filter |
| O009 | list.length == 0 / map.size == 0 | O(n) traversal; SortedMap.size is O(n) although inline | Use isEmpty on List, SortedMap, AssocMap: one nullList, O(1) |
| O010 | AssocMap.fromList on large input | O(n^2) dedup | Pre-sort and use SortedMap.fromStrictlyAscendingList |
| ID | Pattern | Problem | Fix |
|---|---|---|---|
| O011 | Expensive checks before cheap ones | Wasted budget on failing txs | Put cheapest/most-likely-to-fail checks first |
| O012 | Late require for invalid input | Work done before validation | Fail fast — validate inputs at the top |
| O013 | Linear condition chains | Average n/2 evaluations for n conditions | Structure as binary decision tree |
| O014 | No short-circuit in &&/` | ` | |
| O015 | list.exists after construction | Building list just to search it | Inline the search into the fold that builds the data |
| ID | Pattern | Problem | Fix |
|---|---|---|---|
| O016 | === on a BigInt/ByteString behind a type variable | Lowers to equalsData, not equalsInteger/equalsByteString: 1 761 779 vs 832 313 cpu, 2.1x (measured) | Make the key type concrete at the comparison site (a BigInt-keyed or ByteString-keyed helper, not a generic K) |
| O017 | Constructing tuples/records to return | Allocation + destructuring overhead | Use continuation-passing or accumulator parameters |
| O018 | List[(A, B)] map operations | ~12 builtins per element | Use PairList — ~4 builtins per element via fstPair/sndPair |
| O019 | Pattern matching for Data access | Constructs intermediate Scala objects | Use Data builtins directly when structure is known |
| O020 | Hand-written equalsData(a.toData, b.toData) or a.toData == b.toData | Buys nothing: for every Data-backed type === already lowers to equalsData; both spellings pin to 901 mem / 1 653 665 cpu on a Value (measured) | Derive Eq and write a === b; never compare TxInfo-scale structures whole |
| ID | Pattern | Problem | Fix |
|---|---|---|---|
| O021 | pow(2, n) | Generic exponentiation loop | Use exp2(n) — single builtin via byte shift |
| O022 | Manual log2 via division loop | O(log n) divisions | Use log2(n) — single builtin via integerToByteString |
| O023 | Recomputing same expression | Duplicated subexpressions | Use let bindings; V3 optimizer has CSE but don't rely on it |
| O024 | generateErrorTraces = true in prod | Trace strings bloat script and budget | Set generateErrorTraces = false for production builds |
| O025 | Complex pure computations on-chain | Expensive on-chain work | Move computation off-chain, pass result as redeemer, verify on-chain |
| ID | Pattern | Problem | Fix |
|---|---|---|---|
| O031 | out.datum.inlineOrFail[T](msg) === expected | Decodes, then compares field-wise: 461 lovelace | out.hasInlineDatum(expected): one equalsData on the wrapped datum, 286 lovelace. Use inlineOrFail only to read fields |
| O032 | xs.exists(_ === x) | exists is find(p).isDefined: allocates an Option for a Boolean; a fixed per-call tax of 326 483 cpu (miss) / 564 996 cpu (hit) on V3 | xs.contains(x): an intrinsic, no Option, no Eq closure. For a non-equality predicate use forall or a hand fold, not exists |
| O033 | xs.filter(p).length | 2 traversals plus k mkCons; filter is a non-tail foldRight; no pass fuses them | xs.count(p): one tail-recursive foldLeft, no allocation |
| O034 | filter(p).length === BigInt(1) then .head, or count(p) === BigInt(1) | 2 passes (or 1 pass plus a second scan for the element); the guard and the lookup are separate | xs.findUniqueOrFail(p, msg): one pass, returns the element, fails on 0 or 2+. Against count(p) === BigInt(1) on inputs: fee 3 175 vs 3 307 (3 inputs), 6 289 vs 6 804 (10 inputs) |
| ID | Pattern | Problem | Fix |
|---|---|---|---|
| O026 | Small recursive helpers | Call overhead per recursion | Unroll first 1-2 iterations for common small cases |
| O027 | Non-tail-recursive numeric loops | Stack growth | Rewrite with accumulator parameter |
| O028 | Redundant FromData/ToData conversions | Serialization round-trips | Keep data in Data form between operations |
| O029 | list.reverse.foldLeft | Extra O(n) reverse pass | Use foldRight if list is small, or build in correct order |
| O030 | Building closures in inner loops | Allocation per iteration | Lift closure outside loop if captures don't change |
The most impactful optimization: move work off-chain.
Instead of computing a result on-chain, have the off-chain code compute it and pass it as a redeemer field. The validator only checks correctness.
// Expensive: compute on-chain
val sqrtResult = radicand.sqRoot
// Cheap: verify pre-computed result
val sqrtResult = redeemer.sqrtValue
require(sqrtResult * sqrtResult <= radicand)
require((sqrtResult + 1) * (sqrtResult + 1) > radicand)Put cheapest and most-likely-to-fail validations first. Every require that fails
early saves the budget of all subsequent code.
// Good: cheap check first
require(isSignedBy(txInfo, admin), "not admin")
require(expensiveValueCheck(txInfo), "value mismatch")
// Bad: expensive check first
require(expensiveValueCheck(txInfo), "value mismatch")
require(isSignedBy(txInfo, admin), "not admin")Never traverse a list twice when once will do. Combine filter + map + count into a single fold.
// Bad: three traversals
val filtered = items.filter(_.isValid)
val mapped = filtered.map(_.amount)
val total = mapped.foldLeft(BigInt(0))(_ + _)
// Good: single traversal
val total = items.foldLeft(BigInt(0)) { (acc, item) =>
if item.isValid then acc + item.amount else acc
}PairList uses raw UPLC pair builtins (~4 ops/element) vs List[(A, B)] (~12 ops/element).
// Expensive
map.toList.map { case (k, v) => (k, f(v)) }
// Cheap — 3x fewer builtins
map.toPairList.mapValues(f)===, and Keep Key Types ConcreteFor every Data-backed type a === b already lowers to one equalsData builtin. Hand-written
equalsData(a.toData, b.toData) or a.toData == b.toData produces identical UPLC (measured:
both pin to 901 mem / 1 653 665 cpu on a Value). The cost that is real: === on a BigInt
or ByteString behind a type variable emits equalsData instead of equalsInteger /
equalsByteString, 1 761 779 vs 832 313 cpu (2.1x, measured).
// Same UPLC, worse to read: do not write this
require(equalsData(toData(outputDatum), toData(inputDatum)))
// Write this (derive Eq on the datum type)
require(outputDatum === inputDatum)
// Generic key: equalsData on every step, 2.1x slower
def lookup[K: Eq](key: K, entries: List[(K, BigInt)]): Option[BigInt] =
entries.find(_._1 === key).map(_._2)
// Concrete key: equalsInteger
def lookup(key: BigInt, entries: List[(BigInt, BigInt)]): Option[BigInt] =
entries.find(_._1 === key).map(_._2)For a continuing datum, compare without decoding: out.hasInlineDatum(expected) costs 286
lovelace against 461 for out.datum.inlineOrFail[T](msg) === expected (measured, O031).
The ledger guarantees: inputs are sorted by TxOutRef, values are ordered by policy ID,
outputs never contain negative quantities, minted values exclude ADA.
Align your algorithms with these invariants instead of re-validating them.
If you check membership in the same set multiple times, build a decision closure once.
// Bad: O(n) per check
require(signatories.exists(_ === admin1))
require(signatories.exists(_ === admin2))
// Better: single traversal, check both
val (hasAdmin1, hasAdmin2) = signatories.foldLeft((false, false)) { case ((a1, a2), sig) =>
(a1 || sig === admin1, a2 || sig === admin2)
}
require(hasAdmin1 && hasAdmin2)log2 and exp2 use integerToByteString/shiftByteString — much cheaper
than iterative computation.
// Cheap
val bits = x.log2
val powerOf2 = n.exp2
// Expensive
val bits = manualLog2Loop(x)
val powerOf2 = pow(BigInt(2), n)// V3 lowering, no error traces, UPLC optimizer on
private given Options = Options.releaseUse EvalTestDsl for precise budget measurement:
import scalus.testing.dsl.EvalTestDsl.*
// Exact budget match — catches regressions AND improvements
eval(compiled)
.onVM(PlutusV3.makePlutusV3VM())
.expectSuccess()
.assertBudgetEquals(memory = 129528, steps = 37_067868)
// Upper bound — for tests where budget fluctuates slightly between builds
eval(compiled)
.onVM(PlutusV3.makePlutusV3VM())
.expectSuccess()
.assertBudgetWithin(memory = 140000, steps = 40_000000)Format convention: Always use named parameters and _ at million boundary:
ExUnits(memory = 129528, steps = 37_067868)
Use clickable file_path:line_number format for all code locations.
### [IMPACT] ID: Optimization Name
**Location:** `full/path/to/File.scala:LINE`
**Estimated savings:** ~X% memory, ~Y% steps (or: high/medium/low)
**Current code** (`full/path/to/File.scala:LINE-LINE`):
```scala
// actual code from fileOptimized code:
// proposed optimizationRationale: Why this is faster and what budget cost it avoids.
### Summary Table
| ID | Impact | Location | Pattern | Est. Savings |
|---|---|---|---|---|
| O-01 | High | path/File.scala:123 | Multiple traversals → single fold | ~30% steps |
| O-02 | Medium | path/File.scala:87 | inlineOrFail === x → hasInlineDatum(x) | 286 vs 461 lovelace |
| O-03 | Low | path/File.scala:200 | Unroll small recursion | ~2% steps |
Current budget: ExUnits(memory = X, steps = Y) Estimated budget after optimization: ExUnits(memory = X', steps = Y')
## Interactive Workflow
For each finding:
1. Display issue with location and proposed optimization
2. Prompt: "Apply optimization? [y/n/s/d]"
- y: Apply change, re-run budget test
- n: Skip, log as "declined"
- s: Skip without logging
- d: Show detailed budget breakdown
3. After all findings: run `sbtn quick` to verify correctness
4. Generate summary report with actual budget deltas (before/after)
## Reference
For detailed optimization patterns with Scalus code examples, see:
- `references/patterns.md` — Full pattern catalog with before/after code and budget estimates© scalus3, 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 1 other file (references) in scalus-skills/skills/optimize-contract of scalus3/scalus.
Open the folder on GitHubat commit 073969c
Optimize Contract 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 |
|---|---|---|---|---|---|---|
| Optimize Contract this skillscalus3/scalus | 105 | — | ~3.6k | Automated safety check: Pass | Apache-2.0 | |
| Fizz Convertpashov/skills | 1.2k | 2 repos | ~3.7k | Automated safety check: Pass | MIT | |
| Solana Devsolana-foundation/solana-dev-skill | 571 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Feynman Auditor0xiehnnkta/nemesis-auditor | 244 | 1 repos | ~11k | Automated safety check: Pass | MIT | |
| Smart Contract Auditgreatpie/smart-contract-audit-skill | 101 | — | ~1.1k | Automated safety check: Pass | None | |
| RadarAuditware/radar | 154 | — | ~2.1k | Automated safety check: Pass | GPL-3.0 |
pashov/skills
Convert English-language properties in PROPERTIES.md (produced by the Fizz skill) into Solidity assertions inside the existing fuzz harness, then flip their checkboxes.
solana-foundation/solana-dev-skill
A skill your agent uses when user asks to "build a Solana dapp", "write an Anchor program", "create a token", "debug Solana errors", "set up wallet connection", "test my Solana program", "fuzz my…
0xiehnnkta/nemesis-auditor
Deep business logic bug finder using the Feynman technique. An agent skill from 0xiehnnkta/nemesis-auditor.
greatpie/smart-contract-audit-skill
Script-backed, out-of-box auditing workflow for Solidity/EVM repositories based on EVMbench detect/patch/exploit methodology.
Auditware/radar
Use radar for smart contract security analysis, AST generation, and detection template development.
Gabson0x/bountyforge
Security audit of Solidity code while you develop. An agent skill from Gabson0x/bountyforge.
scalus3/scalus
Security review for Scalus/Cardano smart contracts. An agent skill from scalus3/scalus.
scalus3/scalus
Guide for developing Scalus smart contracts. An agent skill from scalus3/scalus.
scalus3/scalus
Guide for testing Scalus smart contracts. An agent skill from scalus3/scalus.
scalus3/scalus
A skill your agent uses when developing or testing Scalus smart contracts with the local Emulator and TxBuilder.
scalus3/scalus
A skill your agent uses when writing or changing a Pretty typeclass instance (paiges Doc DSL) in scalus-core, for example in scalus/utils/Pretty.scala or the cardano/ledger types.
Categories
Optimize Scalus/Cardano smart contracts for execution budget (CPU steps and memory). Optimize Contract is an agent skill from scalus3/scalus. Optimize Scalus/Cardano smart contracts for execution budget (CPU steps and memory).
Optimize Contract fits situations like: reviewing on-chain code performance; /optimize-contract is invoked.
Run `npx skills add scalus3/scalus --skill optimize-contract -a claude-code`. Or copy the skill folder (scalus-skills/skills/optimize-contract in scalus3/scalus) into .claude/skills/optimize-contract in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scalus3/scalus --skill optimize-contract -a codex`. Or copy the skill folder (scalus-skills/skills/optimize-contract in scalus3/scalus) into .agents/skills/optimize-contract 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 scalus3/scalus --skill optimize-contract -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/optimize-contract, .gemini/skills/optimize-contract, .github/skills/optimize-contract and .opencode/skills/optimize-contract in your project.
SKILL.md names no scripts, command-line tools or credentials: Optimize Contract is instructions for the agent only.
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.
Optimize Contract 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.6k tokens (SKILL.md is roughly 14k 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 5.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Optimize Contract: Fizz Convert (pashov/skills, 1.2k stars), Solana Dev (solana-foundation/solana-dev-skill, 571 stars), Feynman Auditor (0xiehnnkta/nemesis-auditor, 244 stars) and Smart Contract Audit (greatpie/smart-contract-audit-skill, 101 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
scalus3 (a GitHub organization) maintains it in scalus3/scalus, which has 105 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 6, 2026.
Source: scalus3/scalus on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.