Resilience Classification Skill
Identify stablecoins where the default inference (from backing + governance) is incorrect and apply overrides.
When to Invoke
- After the resilience types and default inference are implemented
- When a new stablecoin is added to the tracker
- When auditing resilience scores for accuracy
Process
Step 1 — Identify candidates
Read all coins from src/lib/stablecoins.ts. For each, apply the default inference rules (see inferResilienceDefaults() in src/lib/report-cards.ts). Flag coins where the default is likely wrong based on:
collateral text containing keywords: "Solana", "tBTC", "WBTC", "delta-neutral", "perpetual", "CEX", "off-exchange", "Copper", "Ceffu", "Fireblocks", "bridged"
pegMechanism text containing: "Solana", "Bitcoin L2", "not Ethereum", "Tron"
contracts[] listing only non-Ethereum chains
backing = crypto-backed but collateral text mentions RWAs, bridges, or exotic strategies
- Coins on this known-override list: HYUSD, USDe, meUSD, USDD, sUSD (Synthetix), USDJ
Step 2 — Research each candidate
For each flagged coin, in parallel:
WebFetch official docs for collateral composition, custody arrangement, and chain architecture
WebSearch for "{coin name}" stablecoin collateral custody chain to find independent analysis
- Cross-reference with existing
collateral and pegMechanism text fields
Step 3 — Classify
For each coin, determine the correct tier:
| Sub-factor |
Question |
Tiers |
chainRisk |
Where does the core protocol live and where is collateral held? |
ethereum (100), stage1-l2 (66), established-alt-l1 (33), unproven (0) |
collateralQuality |
What are the trust assumptions in backing assets? |
native (100), eth-lst (66), alt-lst-bridged-or-mixed (33), exotic (0) |
custodyModel |
Who holds the collateral and can it be verified on-chain? |
onchain (100), institutional (50), cex (0) |
Classification rules:
- chainRisk: Based on where the protocol's smart contracts and collateral vaults live, NOT where the token is bridged to
- collateralQuality: For mixed collateral, use the tier of the riskiest significant component (>15% of backing). Stablecoin portions don't count here (handled by dependency risk)
- custodyModel: If ANY significant portion is held off-chain by a non-institutional custodian, classify as
cex
- When uncertain between two tiers, choose the riskier (lower score) tier
Step 4 — Present findings
For each coin needing an override, present:
## {Name} ({Symbol}) — ID: {id}
### Default inference
- chainRisk: {inferred} — {correct/wrong because...}
- collateralQuality: {inferred} — {correct/wrong because...}
- custodyModel: {inferred} — {correct/wrong because...}
### Proposed overrides
- {field}: {value} — {justification with source URL}
### No override needed
- {fields where default is correct}
Step 5 — Apply
After user approval, edit src/lib/stablecoins.ts to add only the override fields that differ from defaults. Example:
usd("123", "Example", "EX", "crypto-backed", "decentralized", {
// ... existing fields ...
chainRisk: "established-alt-l1",
collateralQuality: "alt-lst-bridged",
}),
Run npm run build to verify.
1---2name: resilience-classify3description: Research and classify stablecoins for resilience sub-factor overrides (chainRisk, collateralQuality, custodyModel). Run after types/defaults are implemented to identify coins needing explicit overrides.4---56# Resilience Classification Skill78Identify stablecoins where the default inference (from backing + governance) is incorrect and apply overrides.910## When to Invoke1112- After the resilience types and default inference are implemented13- When a new stablecoin is added to the tracker14- When auditing resilience scores for accuracy1516## Process1718### Step 1 — Identify candidates1920Read all coins from `src/lib/stablecoins.ts`. For each, apply the default inference rules (see `inferResilienceDefaults()` in `src/lib/report-cards.ts`). Flag coins where the default is likely wrong based on:2122- `collateral` text containing keywords: "Solana", "tBTC", "WBTC", "delta-neutral", "perpetual", "CEX", "off-exchange", "Copper", "Ceffu", "Fireblocks", "bridged"23- `pegMechanism` text containing: "Solana", "Bitcoin L2", "not Ethereum", "Tron"24- `contracts[]` listing only non-Ethereum chains25- `backing` = `crypto-backed` but collateral text mentions RWAs, bridges, or exotic strategies26- Coins on this known-override list: HYUSD, USDe, meUSD, USDD, sUSD (Synthetix), USDJ2728### Step 2 — Research each candidate2930For each flagged coin, in parallel:31- `WebFetch` official docs for collateral composition, custody arrangement, and chain architecture32- `WebSearch` for `"{coin name}" stablecoin collateral custody chain` to find independent analysis33- Cross-reference with existing `collateral` and `pegMechanism` text fields3435### Step 3 — Classify3637For each coin, determine the correct tier:3839| Sub-factor | Question | Tiers |40|---|---|---|41| `chainRisk` | Where does the core protocol live and where is collateral held? | `ethereum` (100), `stage1-l2` (66), `established-alt-l1` (33), `unproven` (0) |42| `collateralQuality` | What are the trust assumptions in backing assets? | `native` (100), `eth-lst` (66), `alt-lst-bridged-or-mixed` (33), `exotic` (0) |43| `custodyModel` | Who holds the collateral and can it be verified on-chain? | `onchain` (100), `institutional` (50), `cex` (0) |4445**Classification rules:**46- **chainRisk**: Based on where the protocol's smart contracts and collateral vaults live, NOT where the token is bridged to47- **collateralQuality**: For mixed collateral, use the tier of the riskiest significant component (>15% of backing). Stablecoin portions don't count here (handled by dependency risk)48- **custodyModel**: If ANY significant portion is held off-chain by a non-institutional custodian, classify as `cex`49- When uncertain between two tiers, choose the riskier (lower score) tier5051### Step 4 — Present findings5253For each coin needing an override, present:5455```56## {Name} ({Symbol}) — ID: {id}5758### Default inference59- chainRisk: {inferred} — {correct/wrong because...}60- collateralQuality: {inferred} — {correct/wrong because...}61- custodyModel: {inferred} — {correct/wrong because...}6263### Proposed overrides64- {field}: {value} — {justification with source URL}6566### No override needed67- {fields where default is correct}68```6970### Step 5 — Apply7172After user approval, edit `src/lib/stablecoins.ts` to add only the override fields that differ from defaults. Example:7374```typescript75usd("123", "Example", "EX", "crypto-backed", "decentralized", {76 // ... existing fields ...77 chainRisk: "established-alt-l1",78 collateralQuality: "alt-lst-bridged",79}),80```8182Run `npm run build` to verify.