Agent skill

Find Contracts

by paiml in paiml/aprender

Find which provable-contracts YAML contracts a Hugging Face model needs, create missing contracts, generate Rust artifacts, and implement all stubs.

MITAuto-check passedAI & LLM Engineering

Install Find Contracts

skills CLI
$ npx skills add paiml/aprender --skill find-contracts -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install paiml/aprender find-contracts --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/paiml/aprender.git skills-src && mkdir -p .claude/skills && cp -r skills-src/crates/aprender-contracts-staging/.claude/skills/find-contracts .claude/skills/find-contracts && rm -rf skills-src

Use ~/.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/

Facts

Skill name
find-contracts
GitHub stars
127
Token cost
~3.5k tokens
SKILL.md length
964 words
Files
3 (incl. references)
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Find which provable-contracts YAML contracts a Hugging Face model needs, create missing contracts, generate Rust artifacts, and implement all stubs.

  • Works in 10 steps: Fetch the model config → Extract architecture fields → Map fields to required contracts → …
  • : find contracts
  • SKILL.md covers Procedure, Non-LLM architectures and Important: SATD Zero-Tolerance…
  • Calls rustc, curl and huggingface-cli; reaches huggingface.co

What it does

Find Contracts is an agent skill from paiml/aprender. Find which provable-contracts YAML contracts a Hugging Face model needs, create missing contracts, generate Rust artifacts, and implement all stubs. Triggers on: "find contracts", "contract coverage", "what contracts does X need", "which contracts for", HF model analysis, model contract gap analysis.

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/config-to-contract-mapping.md` and `references/known-architectures.md`).

It sits in AI & LLM Engineering, covering Model hubs and datasets. It works with Hugging Face and Rust. The repository describes itself as: Next Generation Machine Learning, Statistics and Deep Learning in PURE Rust. The licence is MIT.

When your agent uses it

  • : find contracts
  • Contract coverage
  • What contracts does X need
  • Which contracts for

Example prompts

  • “find contracts”
  • “contract coverage”
  • “what contracts does X need”
  • “/find-contracts”

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Fetch the model config
  2. Extract architecture fields
  3. Map fields to required contracts
  4. Check existing contracts
  5. Output gap analysis
  6. Create missing model-specific YAML contracts
  7. Generate Rust artifacts
  8. Implement all generated stubs
  9. Compile and verify
  10. Output final summary

What it can do on your machine

Read from SKILL.md and the folder at commit e0cb137. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • rustc
    • curl
    • huggingface-cli

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • huggingface.co

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Find Contracts loads about 3.5k tokens when it runs, and up to ~6.9k if it reads all its reference files. Until then it costs about 79 tokens; SKILL.md has 964 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.9k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from paiml/aprender at commit e0cb137, republished under its MIT licence (© paiml). 964 words, ~3,536 tokens.

Download SKILL.mdSave it as .claude/skills/find-contracts/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
find-contracts
description
Find which provable-contracts YAML contracts a Hugging Face model needs, create missing contracts, generate Rust artifacts, and implement all stubs. Triggers on: "find contracts", "contract coverage", "what contracts does X need", "which contracts for", HF model analysis, model contract gap analysis.
argument-hint
[huggingface-org/model-name]

Find Contracts for a Hugging Face Model

Full pipeline: analyze a Hugging Face model's config.json, determine required contracts, create missing YAML contracts, generate Rust artifacts, and implement all stubs to completion (zero-tolerance: no unimplemented!() or SATD markers).

Procedure

Step 1: Fetch the model config

Fetch the config using curl:

bash
curl -sL "https://huggingface.co/$ARGUMENTS/resolve/main/config.json"

Error handling:

  • 404: Report "Model not found: $ARGUMENTS — check the org/model-name spelling"
  • 401/403: Report "Model is gated or private — you may need huggingface-cli login or request access at https://huggingface.co/$ARGUMENTS"
  • Non-JSON response: Report "Unexpected response — this may not be a valid HF model repo"

Parse the JSON and proceed to field extraction.

Step 2: Extract architecture fields

Extract these fields from config.json (use null for missing fields):

FieldPurpose
model_typeArchitecture family
architecturesModel class list
hidden_act / activation_functionActivation function
hidden_sizeModel dimension
intermediate_sizeFFN inner dimension
num_attention_headsQuery head count
num_key_value_headsKV head count (GQA if != num_attention_heads)
num_hidden_layersLayer count
vocab_sizeVocabulary size
rope_thetaRoPE base frequency
rope_scalingRoPE scaling config
partial_rotary_factorPartial RoPE (Phi-style)
rms_norm_epsRMSNorm epsilon (implies RMSNorm)
layer_norm_eps / layer_norm_epsilonLayerNorm epsilon (implies LayerNorm)
sliding_windowSliding window attention size
tie_word_embeddingsTied input/output embeddings
qk_layernorm / qk_normQK normalization
attn_logit_softcappingAttention logit capping (Gemma2)
multi_queryMulti-query attention (Falcon)
parallel_attnParallel attention (Falcon)
use_alibi / alibiALiBi position encoding
ssm_cfg / d_state / d_convSSM/Mamba fields
Step 3: Map fields to required contracts

Use the mapping in config-to-contract-mapping.md.

Three categories:

A) Universal contracts — every transformer LLM needs these 13:

  • model-config-algebra-v1
  • softmax-kernel-v1
  • matmul-kernel-v1
  • linear-projection-v1
  • embedding-lookup-v1
  • embedding-algebra-v1
  • tensor-shape-flow-v1
  • cross-entropy-kernel-v1
  • inference-pipeline-v1
  • attention-kernel-v1
  • attention-scaling-v1
  • kv-cache-sizing-v1
  • kv-cache-equivalence-v1

B) Conditional contracts — triggered by specific config values. See the full mapping table in config-to-contract-mapping.md.

Key rules:

  • hidden_act=silu → silu-kernel-v1 + swiglu-kernel-v1 (most SiLU models use SwiGLU FFN)
  • hidden_act contains gelu → gelu-kernel-v1
  • rms_norm_eps present → rmsnorm-kernel-v1
  • layer_norm_eps present → layernorm-kernel-v1
  • rope_theta present → rope-kernel-v1
  • rope_scaling not null → rope-extrapolation-v1
  • partial_rotary_factor present → rope-kernel-v1 + absolute-position-v1
  • num_key_value_heads != num_attention_heads → gqa-kernel-v1
  • sliding_window set → sliding-window-attention-v1
  • qk_layernorm or qk_norm true → qk-norm-v1
  • attn_logit_softcapping set → attention-scaling-v1 (already universal, but note capping variant)
  • tie_word_embeddings true → tied-embeddings-v1
  • use_alibi or alibi true → alibi-kernel-v1
  • SSM fields present → ssm-kernel-v1
  • GatedDeltaNet architecture → gated-delta-net-v1 + hybrid-layer-dispatch-v1 + conv1d-kernel-v1

See known-architectures.md for edge cases (Falcon multi_query, Phi partial_rotary_factor, Gemma2 softcapping, DeepSeek MLA, etc.).

C) Model-specific contracts — always check for these:

  • <model_type>-shapes-v1.yaml (e.g., qwen35-shapes-v1.yaml)
  • <model_type>-e2e-verification-v1.yaml (e.g., qwen35-e2e-verification-v1.yaml)

For the model name normalization: use model_type from config, lowercase, replace hyphens with nothing. Examples: llama, qwen2, mistral, phi, gemma2, falcon.

Step 4: Check existing contracts

Glob contracts/*.yaml in the project root to get the list of all existing contracts. Compare against the required set from Step 3.

Step 5: Output gap analysis

Format the output in four sections:

A) Model Config Summary
## Model: $ARGUMENTS
| Field                  | Value            |
|------------------------|------------------|
| model_type             | ...              |
| hidden_act             | ...              |
| hidden_size            | ...              |
| num_attention_heads    | ...              |
| num_key_value_heads    | ...              |
| num_hidden_layers      | ...              |
| rope_theta             | ...              |
| rope_scaling           | ...              |
| rms_norm_eps           | ...              |
| sliding_window         | ...              |
| tie_word_embeddings    | ...              |

Only include fields that are present (non-null).

B) Contract Coverage Matrix
## Contract Coverage

| Contract                    | Status   | Trigger                    |
|-----------------------------|----------|----------------------------|
| model-config-algebra-v1     | EXISTS   | universal                  |
| silu-kernel-v1              | EXISTS   | hidden_act=silu            |
| llama-shapes-v1             | MISSING  | model-specific             |
| ...                         | ...      | ...                        |

Status values: EXISTS, MISSING, N/A (not needed for this model).

C) Gap Statistics
## Coverage: 28/31 contracts (90.3%)
- Universal: 13/13
- Conditional: 12/14 (2 missing)
- Model-specific: 0/2 (2 missing)
D) Missing Contract Details

For each MISSING contract, output:

### MISSING: llama-shapes-v1.yaml

- **Suggested filename**: `contracts/llama-shapes-v1.yaml`
- **depends_on**: `model-config-algebra-v1`
- **Key equations**: Q/K/V projection shapes, FFN shapes for LLaMA-3.1-8B config
- **Source config fields**: hidden_size=4096, num_attention_heads=32, num_key_value_heads=8, intermediate_size=14336
- **Priority**: High (model-specific shape verification)
Step 6: Create missing model-specific YAML contracts

If any model-specific contracts are MISSING (<model>-shapes-v1.yaml or <model>-e2e-verification-v1.yaml), create them using the extracted config fields.

Use existing contracts as templates. Read a similar contract from contracts/ (e.g., qwen2-shapes-v1.yaml for a new shapes contract) and adapt:

  1. Replace config constants (hidden_size, num_attention_heads, etc.) with the target model's values from Step 2
  2. Recompute all derived values (d_k = hidden/n_heads, gqa_ratio, expansion_ratio, etc.)
  3. Adjust proof obligations, falsification tests, and kani harnesses for the new constants
  4. Write to contracts/<model>-shapes-v1.yaml and/or contracts/<model>-e2e-verification-v1.yaml

YAML structure (required sections):

yaml
metadata:
  version: "1.0.0"
  created: "<today>"
  author: "PAIML Engineering"
  description: "<model> concrete shape instantiation..."
  references: [...]
  depends_on: ["model-config-algebra-v1"]

equations:
  <name>:
    formula: "<equation with concrete values>"
    domain: "<model config description>"
    invariants: [...]

proof_obligations:
  - type: invariant|monotonicity|equivalence|bound|ordering|conservation
    property: "<human-readable name>"
    formal: "<math expression>"
    applies_to: all|simd

falsification_tests:
  - id: FALSIFY-<PREFIX>-NNN
    rule: "<obligation name>"
    prediction: "<expected result>"
    test: "<test method>"
    if_fails: "<what went wrong>"

kani_harnesses:
  - id: KANI-<PREFIX>-NNN
    obligation: <OBLIGATION-ID>
    property: "<description>"
    bound: N
    strategy: exhaustive|bounded_int
    solver: cadical  # optional
    harness: <function_name>

qa_gate:
  id: F-<PREFIX>-001
  name: "<Model> Contract"
  description: "..."
  checks: [...]
  pass_criteria: "All N falsification tests pass"
  falsification: "<example mutation>"

Skip this step for MISSING universal/conditional contracts — those are generic and must be authored manually by the team.

Step 7: Generate Rust artifacts

For each newly created model-specific YAML contract, generate Rust artifacts:

bash
pv generate contracts/<model>-shapes-v1.yaml -o generated
pv generate contracts/<model>-e2e-verification-v1.yaml -o generated

This produces 4 files per contract:

  • generated/<model>-shapes-v1_scaffold.rs — trait definition
  • generated/<model>-shapes-v1_kani.rs — Kani proof harnesses
  • generated/<model>-shapes-v1_probar.rs — property + falsification tests
  • generated/<model>-shapes-v1_book.md — documentation page
Show full SKILL.md (402 more words)Show less
Step 8: Implement all generated stubs

ZERO-TOLERANCE: Every unimplemented!(), todo!(), and SATD marker must be replaced with complete implementations. The pre-commit hook will reject any commit containing these markers.

For each generated .rs file:

Probar files (_probar.rs)
  1. Define model config constants at file top level (outside #[cfg(test)] module):

    rust
    #[allow(dead_code)]
    const HIDDEN: usize = <hidden_size>;
    const N_HEADS: usize = <num_attention_heads>;
    // ... all config constants from the YAML
  2. Replace every unimplemented!("Wire up: ...") with deterministic arithmetic:

    • Shape invariants: assert_eq!(N_HEADS * D_K, HIDDEN)
    • Divisibility: assert_eq!(N_HEADS % N_KV_HEADS, 0)
    • RoPE monotonicity: compute freq vector, assert freqs[i] > freqs[i+1]
    • Parameter count: sum all weight shapes, assert within expected range
    • Memory ordering: compute Q4K/Q6K/F16/F32, assert strict ordering
    • Throughput monotonicity: tok/s = bandwidth / model_bytes, assert monotonic
  3. Replace every unimplemented!("Implement falsification test for ..."):

    • Deterministic tests: assert literal constants match (e.g., 28 * 128 == 3584)
    • Parametric tests: sweep over multiple configs/values to stress the property
    • RoPE tests: sweep over multiple (base, d_k) pairs
Kani files (_kani.rs)
  1. Shape harnesses: use symbolic kani::any() with bounded assumptions:

    rust
    let n_h: usize = kani::any();
    kani::assume(n_h >= 1 && n_h <= 64);
    kani::assume(n_h % n_kv == 0);
    // ... verify algebraic properties hold for ALL valid configs
  2. Param count harnesses: use concrete model constants, verify total in expected range

  3. Quant ordering harnesses: use symbolic n, verify n*9 < n*13 < n*32 < n*64 (bits scaled by 2 to avoid floating point)

Scaffold files (_scaffold.rs)
  1. Add config constants after the trait definition
  2. Add a concrete struct (e.g., pub struct LlamaShapesVerifier;)
  3. Implement all trait methods with real computation writing results to output
Step 9: Compile and verify

Compile all generated files standalone to confirm no stubs remain:

bash
# Probar files — compile and run tests
for f in generated/<model>-*_probar.rs; do
    rustc --edition 2021 --test "$f" -o /tmp/test_bin && /tmp/test_bin
done

# Scaffold files — compile as library
for f in generated/<model>-*_scaffold.rs; do
    rustc --edition 2021 --crate-type lib "$f" -o /tmp/lib_bin
done

# Kani files — syntax check only (kani::any not available without cargo kani)
# These are verified when `cargo kani` is run separately

# Final scan — zero stubs remaining
grep -rnH 'unimplemented!\|todo!\|FIXME\|HACK\|XXX' generated/<model>-*.rs
# Expected: no output

All probar tests must pass. All scaffolds must compile with zero warnings.

Step 10: Output final summary

After implementation, output the final status:

## Pipeline Complete: $ARGUMENTS

### Contracts Created
- contracts/<model>-shapes-v1.yaml (NEW)
- contracts/<model>-e2e-verification-v1.yaml (NEW)

### Artifacts Generated & Implemented
| File | Tests | Status |
|------|-------|--------|
| <model>-shapes-v1_probar.rs | N property + N falsification | ALL PASS |
| <model>-e2e-verification-v1_probar.rs | N property + N falsification | ALL PASS |
| <model>-shapes-v1_kani.rs | N harnesses | COMPILES |
| <model>-e2e-verification-v1_kani.rs | N harnesses | COMPILES |
| <model>-shapes-v1_scaffold.rs | concrete impl | COMPILES |
| <model>-e2e-verification-v1_scaffold.rs | concrete impl | COMPILES |

### Coverage Update
- Before: X/Y contracts (Z%)
- After:  X/Y contracts (Z%)
- Stubs remaining: 0

Non-LLM architectures

If model_type indicates a non-LLM architecture (e.g., vit, clip, whisper, wav2vec2), report:

This model (model_type=vit) is not a decoder-only LLM. The contract mapping is designed for autoregressive language models. Some contracts (attention-kernel, matmul-kernel, etc.) may still apply but the universal set assumes causal decoding.

Still attempt the mapping but flag that coverage analysis may be incomplete.

Important: SATD Zero-Tolerance Policy

This skill MUST NOT leave any stub markers in generated code. The pre-commit hook enforces PMAT_MAX_SATD_COMMENTS=0 and scans all staged .rs files for:

  • unimplemented!() / todo!()
  • FIXME / HACK / XXX
  • TODO: Replace / Wire up:

If pv generate produces scaffolds with these markers, Steps 8-9 are mandatory before the skill is considered complete. Never stop at gap analysis alone.

© paiml, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in crates/aprender-contracts-staging/.claude/skills/find-contracts of paiml/aprender.

  • SKILL.md
  • references/config-to-contract-mapping.md
  • references/known-architectures.md

Open the folder on GitHubat commit e0cb137

Compare with similar skills

Find Contracts 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.

Find Contracts compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Find Contracts this skillpaiml/aprender127—~3.5kAutomated safety check: PassMIT
Hugging Face TokenizersOrchestra-Research/AI-Research-SKILLs13k6 repos~3.4kAutomated safety check: PassMIT
Add Modelguoqingbao/xinfer334—~4.2kAutomated safety check: NotesMIT
Check Modelguoqingbao/xinfer334—~3.8kAutomated safety check: PassMIT
Xybrid Initxybrid-ai/xybrid467—~3kAutomated safety check: PassApache-2.0
Test Modelguoqingbao/xinfer334—~2.6kAutomated safety check: PassMIT

Similar skills

  • Hugging Face Tokenizers

    Orchestra-Research/AI-Research-SKILLs

    Shows how to load, train and use fast Hugging Face tokenizers, with BPE, WordPiece and Unigram models, padding, truncation and alignment tracking.

    13k GitHub starsUsed in 6 repos~3.4k tokens
    AI & LLM EngineeringAuto-check passed
  • Add Model

    guoqingbao/xinfer

    Adapt and port new LLM model architectures to this xinfer project.

    334 GitHub stars~4.2k tokensUpdated 29 days ago
    AI & LLM EngineeringAuto-check: notes
  • Check Model

    guoqingbao/xinfer

    Check model compatibility with xinfer before loading. An agent skill from guoqingbao/xinfer.

    334 GitHub stars~3.8k tokensUpdated 29 days ago
    AI & LLM EngineeringAuto-check passed
  • Xybrid Init

    xybrid-ai/xybrid

    Generate model metadata for an ML model so it works with xybrid.

    467 GitHub stars~3k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Test Model

    guoqingbao/xinfer

    Test LLM models served by xinfer for correctness, output quality, and performance.

    334 GitHub stars~2.6k tokensUpdated 29 days ago
    AI & LLM EngineeringAuto-check passed
  • Official

    Chooses the right serving container and current image URI for deploying a Hugging Face model to a SageMaker endpoint, preferring Hugging Face images over generic ones.

    11k GitHub starsUsed in 1 repo~4.6k tokens
    AI & LLM EngineeringAuto-check passed

More from paiml/aprender

  • Dogfood

    paiml/aprender

    Sovereign-stack PRE-RELEASE protocol. An agent skill from paiml/aprender.

    127 GitHub stars~13k tokensUpdated today
    Auto-check passed
  • Pre Release

    paiml/aprender

    Pre-release QA for apr-cli — runs all gates that prevent crates.io publish breakage

    127 GitHub stars~4.3k tokensUpdated today
    Auto-check passed
  • Apr Dogfood

    paiml/aprender

    Dogfood the aprender release surface — derive every interface from the built binaries, measure gate coverage against the surface ledger, exercise the covered set, and emit a go/no-go receipt

    127 GitHub stars~21k tokensUpdated today
    Auto-check passed
  • Code Quality Review

    paiml/aprender

    A skill your agent uses to perform a comprehensive code quality and architecture review of the current project or repository, identifying code smells, architectural debt, performance bottlenecks…

    127 GitHub stars~626 tokensUpdated today
    Auto-check passed
  • PR Review

    paiml/aprender

    Adversarial PR review that must show HOW it knows — five consultations (one of them a reviewing agent from a different vendor), a three-state availability encoding no prose can fake, and a signed…

    127 GitHub stars~18k tokensUpdated today
    Auto-check passed

Questions about Find Contracts

What does Find Contracts do?

Find which provable-contracts YAML contracts a Hugging Face model needs, create missing contracts, generate Rust artifacts, and implement all stubs. Find Contracts is an agent skill from paiml/aprender. Find which provable-contracts YAML contracts a Hugging Face model needs, create missing contracts, generate Rust artifacts, and implement all stubs.

When should I use Find Contracts?

Find Contracts fits situations like: : find contracts; contract coverage; what contracts does X need; which contracts for.

How do I install Find Contracts in Claude Code?

Run `npx skills add paiml/aprender --skill find-contracts -a claude-code`. Or copy the skill folder (crates/aprender-contracts-staging/.claude/skills/find-contracts in paiml/aprender) into .claude/skills/find-contracts in your project. Claude Code loads it when a task matches its description.

How do I install Find Contracts in Codex?

Run `npx skills add paiml/aprender --skill find-contracts -a codex`. Or copy the skill folder (crates/aprender-contracts-staging/.claude/skills/find-contracts in paiml/aprender) into .agents/skills/find-contracts in your project. Codex loads it when a task matches its description.

Can I use Find Contracts in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add paiml/aprender --skill find-contracts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/find-contracts, .gemini/skills/find-contracts, .github/skills/find-contracts and .opencode/skills/find-contracts in your project.

What does Find Contracts need to run?

Going by SKILL.md and its folder, Find Contracts needs the command-line tools its instructions call (rustc, curl and huggingface-cli).

Does Find Contracts access the network?

SKILL.md names 1 domain. In commands or code: huggingface.co; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Find Contracts safe to install?

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.

What licence does Find Contracts use?

Find Contracts is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Find Contracts use?

About 3.5k 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 3.4k tokens, read only when the agent opens those files.

What are the alternatives to Find Contracts?

Skills that share tags, products or a category with Find Contracts: Hugging Face Tokenizers (Orchestra-Research/AI-Research-SKILLs, 13k stars), Add Model (guoqingbao/xinfer, 334 stars), Check Model (guoqingbao/xinfer, 334 stars) and Xybrid Init (xybrid-ai/xybrid, 467 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Find Contracts?

paiml (a GitHub organization) maintains it in paiml/aprender, which has 127 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 9, 2026.

Source: paiml/aprender on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.