with one click
find-new-curators
// Identify missing vault curators from vault databases and suggest curator feeder YAML entries
// Identify missing vault curators from vault databases and suggest curator feeder YAML entries
| name | find-new-curators |
| description | Identify missing vault curators from vault databases and suggest curator feeder YAML entries |
Use this skill when asked to discover new vault curators, improve curator coverage, or audit whether vaults in generic protocols are missing curator metadata.
The goal is to produce a reviewed shortlist of curator candidates, not to blindly add every unknown string found in vault names.
Before starting, clarify the scope if the user did not provide it:
~/.tradingstrategy/vaults, production R2 metadata, or a specific DuckDB/parquet file.eth_defi/data/feeds/curators/*.yaml files.If the user asks for "all", inspect the local data sources that are present and report any missing databases instead of failing the whole task.
Start by printing the existing machine-readable curator list:
poetry run python .claude/skills/find-new-curators/scripts/print-existing-curators.py
Useful environment variables:
FEEDS_DIR=eth_defi/data/feeds poetry run python .claude/skills/find-new-curators/scripts/print-existing-curators.py
INCLUDE_ALIASES=false poetry run python .claude/skills/find-new-curators/scripts/print-existing-curators.py
Also inspect the human reference list:
sed -n '1,140p' eth_defi/data/curators.md
Treat eth_defi/data/feeds/curators/ as the source of truth for code paths. eth_defi/data/curators.md is useful background and should be updated only when the user asks for documentation changes or the new curator is strategically important.
Use the narrowest available source for the protocols in scope.
Read scripts/erc-4626/README-vault-scripts.md before running pipeline scripts.
Usual local files live under:
~/.tradingstrategy/vaults/vault-metadata-db.pickle~/.tradingstrategy/vaults/vault-prices-1h-cleaned.parquet~/.tradingstrategy/vaults/top_vaults_by_chain.jsonFor Morpho, Euler, IPOR Fusion, Lagoon Finance, and other ERC-4626-like protocols, prefer the metadata database or exported top vault JSON over live chain calls. Pull columns or fields that contain:
Lagoon curator data can come from offchain metadata fetched from app.lagoon.finance/api/vault. See:
eth_defi/erc_4626/vault_protocol/lagoon/offchain_metadata.pytests/lagoon/test_lagoon_metadata.pyUse cached data if present. If fetching live data, be explicit that GitHub Actions/datacentre IPs may receive failures.
Use the native DuckDB databases when present:
~/.tradingstrategy/vaults/hyperliquid-vaults.duckdb~/.tradingstrategy/vaults/grvt-vaults.duckdb~/.tradingstrategy/vaults/lighter-pools.duckdbRelevant references:
scripts/hyperliquid/README-hyperliquid-vaults.mdscripts/grvt/README-grvt-vaults.mdscripts/lighter/README-lighter-vaults.mdPrefer DuckDB SQL for exploration. Use Pandas DataFrame output in notebooks and tabulate.tabulate() in scripts.
Run the current curator matcher before inventing new names:
eth_defi.vault.curator.identify_curator()eth_defi.vault.curator.CURATOR_NAME_PATTERNSeth_defi.vault.curator.PROTOCOL_CURATED_SLUGSeth_defi.vault.curator.ALL_PROTOCOL_CURATOR_SLUGSThen inspect unmatched or low-confidence vaults by protocol and TVL.
Good candidate signals:
Weak candidate signals:
Extract possible curator names from vault names with conservative heuristics.
Patterns worth checking:
Gauntlet USDC Core -> Gauntlet.RE7 Morpho USDC -> RE7.Capital, Labs, Finance, Strategies, Risk, Digital, Technologies.manager_name.Avoid single-word matches unless the word is distinctive and verified externally. If the match needs a short alias, add it to CURATOR_NAME_PATTERNS only after checking for false positives across the vault dataset.
For generic vault protocols, report candidates as third-party curators when the protocol is infrastructure and vaults are operated by outside parties.
Typical examples:
For each candidate, include:
Do not add a candidate if the only evidence is a protocol name, token name, or an unverified social handle.
Some vaults are managed by the protocol itself and should not be treated as external curators.
Check whether the protocol is already covered by:
PROTOCOL_CURATED_SLUGS for protocols where all vaults are protocol-managedALL_PROTOCOL_CURATOR_SLUGS for protocols with specific system vaultscanonical-feeder-id pointing to a protocol or stablecoin feederSuggest protocol-managed curators when:
When the same organisation already has a protocol or stablecoin feeder, prefer an alias curator YAML:
feeder-id: spark
name: Spark
role: curator
canonical-feeder-id: spark
When the protocol itself needs curator classification, update eth_defi/vault/curator.py rather than adding a fake third-party curator.
For every proposed curator:
rg -n "{name}|{slug}" eth_defi/data eth_defi/vault docs scripts tests.If web information is needed, use authoritative project pages first. For X/Twitter and LinkedIn, prefer links from the official website footer or docs.
When reporting only, use a compact table:
| Candidate | Type | Confidence | Evidence | Suggested action |
|---|
Use these type values:
third-party curatorprotocol-managed curatoralias curatorname-pattern updaterejectWhen making code/data changes:
eth_defi/data/feeds/curators/{slug}.yamlother-links when a protocol forum,
documentation page, or vault launch post proves the curator roleeth_defi/vault/curator.py only for classification/name-pattern changeseth_defi/data/curators.md only if requested or if the new curator belongs in the human reference listFor data-only YAML changes, at minimum run:
poetry run python .claude/skills/find-new-curators/scripts/print-existing-curators.py
For curator classification changes, run focused tests:
source .local-test.env && poetry run pytest tests/feed/test_canonical_feeder.py tests/vault/test_curator.py
If tests/vault/test_curator.py does not exist, search for curator tests and run the closest focused test file instead.
Add a new vault curator to feed metadata and curator detection. Use when the user wants to add a verified curator, protocol-managed curator, or curator alias discovered from vault data.
Check all stablecoin YAML files for Twitter activity and domain availability, adding a checks section to each file
Add a note to specific vault
Prepare a new release by updating version, changelog, and building the package
Extract raw price dataframe for a test case
Add support for a new ERC-4626 vault protocol. Use when the user wants to integrate a new vault protocol like IPOR, Plutus, Morpho, etc. Requires vault smart contract address, protocol name, and protocol slug as inputs.