Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
195f8a4
Add Foundry build system with Soldeer dependency management
clement-ux Mar 2, 2026
b9ee428
Add mock contract declarations to Base test contract
clement-ux Mar 2, 2026
1eb2741
Add OUSDVault shared test setup and mint tests
clement-ux Mar 2, 2026
58932d5
Add OUSDVault governance tests
clement-ux Mar 2, 2026
0038dab
Add OUSDVault view function tests
clement-ux Mar 2, 2026
95dcf85
Add OUSDVault admin tests
clement-ux Mar 2, 2026
e914e84
Add OUSDVault rebase and yield tests
clement-ux Mar 2, 2026
e5d06ad
Add OUSDVault allocation tests
clement-ux Mar 2, 2026
2423b4f
Add OUSDVault withdrawal queue tests
clement-ux Mar 2, 2026
70e1035
Configure Foundry test infrastructure
clement-ux Mar 2, 2026
2cd783e
Move test helpers to bottom of files and remove unused import
clement-ux Mar 3, 2026
a826bfd
Extract npm tgz dependency installation to shell script
clement-ux Mar 3, 2026
54e59e9
Add unit-test skill for generating Foundry tests
clement-ux Mar 3, 2026
1f65072
Add OUSDVault fuzz tests and Foundry fuzz configuration
clement-ux Mar 3, 2026
13b1878
docs(skill): add commit automation skill
clement-ux Mar 3, 2026
80ae99b
test(vault): add OETHVault Foundry unit tests with full branch coverage
clement-ux Mar 3, 2026
67d18cc
test(token): add OUSD Foundry unit tests and improve branch coverage …
clement-ux Mar 3, 2026
bf8df40
docs(skill): add coverage requirements to unit-test skill
clement-ux Mar 4, 2026
8e60aeb
test(token): add WOETH Foundry unit tests with 100% function coverage
clement-ux Mar 4, 2026
2610055
fix(skill): ensure commit skill stages untracked files
clement-ux Mar 4, 2026
13ea06b
test(token): add OETH, OETHBase, and OSonic view function tests
clement-ux Mar 4, 2026
f3c464a
test(token): add wrapped token unit tests (WOETHBase, WOETHPlume, WOS…
clement-ux Mar 4, 2026
5472e93
test(zapper): add Foundry unit tests with 100% coverage for all zappe…
clement-ux Mar 4, 2026
b521237
test(poolBooster): add Curve pool booster Foundry unit tests with 100…
clement-ux Mar 4, 2026
f894ddb
test(poolBooster): add Merkl pool booster Foundry unit tests
clement-ux Mar 4, 2026
c09842f
test(poolBooster): add SwapX pool booster Foundry unit tests
clement-ux Mar 4, 2026
94cd8d3
test(poolBooster): add Metropolis pool booster Foundry unit tests
clement-ux Mar 4, 2026
c581122
test(proxies): add Foundry unit tests for proxy contracts with 100% c…
clement-ux Mar 5, 2026
2f80265
refactor(tests): rename Base.sol and Shared.sol to .t.sol extension
clement-ux Mar 5, 2026
92e80f5
test(governance): add Foundry unit tests for governance contracts wit…
clement-ux Mar 5, 2026
ef97233
fix(skill): ensure commit skill always runs git commit before asking …
clement-ux Mar 5, 2026
5ffd45e
test(strategies): add Foundry unit tests for VaultValueChecker, Bridg…
clement-ux Mar 11, 2026
dc0b0a5
test(strategies): add Foundry unit tests for BaseCurveAMOStrategy and…
clement-ux Mar 11, 2026
27c8a21
test(strategies): add Foundry unit tests for SonicStakingStrategy and…
clement-ux Mar 11, 2026
9727712
docs(skill): update unit-test skill with product vault types, mock co…
clement-ux Mar 11, 2026
75cf121
test(strategies): add Foundry unit tests for CrossChainMasterStrategy…
clement-ux Mar 12, 2026
1840935
test(strategies): add Foundry unit tests for AerodromeAMOStrategy
clement-ux Mar 12, 2026
5590402
chore: add test infrastructure for NativeStaking strategies
clement-ux Mar 12, 2026
7a74420
test(strategies): add Foundry unit tests for NativeStakingSSVStrategy
clement-ux Mar 12, 2026
5104db7
test(strategies): add Foundry unit tests for CompoundingStakingSSVStr…
clement-ux Mar 12, 2026
ce2d6ca
test(automation): add Foundry unit tests for Safe automation modules
clement-ux Mar 12, 2026
54cfb1a
test(beacon): add Foundry unit tests for Endian, Merkle, and BeaconPr…
clement-ux Mar 12, 2026
fb8ad59
test(strategies): add Foundry fork tests for CurveAMOStrategy
clement-ux Mar 12, 2026
7c47419
test(strategies): add Foundry fork tests for AerodromeAMOStrategy
clement-ux Mar 12, 2026
5c76553
test(strategies): add Foundry fork tests for CrossChain strategies
clement-ux Mar 13, 2026
c5cb706
test(strategies): add Foundry fork tests for SonicStakingStrategy
clement-ux Mar 13, 2026
6e8e0d3
test(strategies): add Foundry fork tests for SonicSwapXAMOStrategy
clement-ux Mar 13, 2026
056fa36
docs(skill): add codex repo skills
clement-ux Mar 13, 2026
c8c1e73
test(strategies): add Foundry fork tests for NativeStakingSSVStrategy
clement-ux Mar 13, 2026
01ad9be
test: add foundry beacon proofs fork tests
clement-ux Mar 13, 2026
1de7903
test: add foundry beacon roots fork tests
clement-ux Mar 13, 2026
f07bd76
test: add foundry partial withdrawal fork tests
clement-ux Mar 13, 2026
afcf81c
test(poolBooster): add Foundry fork tests for CurvePoolBooster
clement-ux Mar 13, 2026
33e1895
test(poolBooster): add Foundry fork tests for SwapX, Merkl, Metropoli…
clement-ux Mar 16, 2026
3af3dc4
test(automation): add Foundry fork tests for Safe modules
clement-ux Mar 16, 2026
2189903
fix(test): pin NativeStakingSSV fork tests to block 24640000
clement-ux Mar 16, 2026
1038e99
Revert "fix(test): pin NativeStakingSSV fork tests to block 24640000"
clement-ux Mar 16, 2026
1a2ea4b
test(NativeStakingSSV): skip fork tests pending SSV ETH-payment migra…
clement-ux Mar 16, 2026
4816795
docs(skill): add smoke-test skill for Claude Code and Codex
clement-ux Mar 17, 2026
89227fd
feat(deploy): add DeployManager and Resolver infrastructure
clement-ux Mar 17, 2026
e22618a
test(smoke): add OUSD smoke tests with DeployManager bootstrapping
clement-ux Mar 17, 2026
a1910b5
feat(deploy): add Base chain support to DeployManager
clement-ux Mar 17, 2026
5db711d
test(smoke): add smoke tests for OETH, OETHBase, and wrapped tokens
clement-ux Mar 17, 2026
0a250cf
test(smoke): add OSonic smoke tests, skipped pending vault upgrade
clement-ux Mar 17, 2026
799b8f8
test(smoke): extend OUSD smoke tests with additional scenarios
clement-ux Mar 17, 2026
5f2b264
fix(smoke): use additive deal in _ensureVaultLiquidity
clement-ux Mar 17, 2026
66b0ef2
feat(deploy): add example mainnet deployment script for OUSD upgrade
clement-ux Mar 17, 2026
879e699
test(smoke): add WOETHBase wrapped token smoke tests
clement-ux Mar 17, 2026
d247770
chore: remove Echidna fuzzing contracts
clement-ux Mar 17, 2026
ba2d0c0
chore(smoke): reorganize wrapped token tests and fix WOSonic roundtri…
clement-ux Mar 17, 2026
b6464b3
fix(deploy): compile scripts/ directory and fix 000_Example template
clement-ux Mar 17, 2026
3b1d34d
feat(deploy/sonic): add 026_VaultUpgrade deploy script
clement-ux Mar 17, 2026
3f4c8c3
test(smoke): enable OSonic smoke tests
clement-ux Mar 17, 2026
909fb31
test(smoke): add CurvePoolBoosterFactory and CurvePoolBoosterPlain sm…
clement-ux Mar 18, 2026
de0dec2
chore(deploy): register automation and pool booster contracts in depl…
clement-ux Mar 18, 2026
424f425
test(smoke): add automation safe module smoke tests
clement-ux Mar 18, 2026
cd379de
refactor(smoke/poolBooster): resolve contracts via DeployManager reso…
clement-ux Mar 18, 2026
cd92233
test(smoke): add pool booster smoke tests for SwapxSingle, SwapxDoubl…
clement-ux Mar 18, 2026
9483728
test(smoke): add AerodromeAMOStrategy smoke tests
clement-ux Mar 18, 2026
c379d63
test(smoke): add CrossChainMasterStrategy smoke tests
clement-ux Mar 18, 2026
819e1ac
test(smoke): add CrossChainRemoteStrategy smoke tests
clement-ux Mar 20, 2026
a581e1a
test(smoke): add SonicStakingStrategy smoke tests
clement-ux Mar 20, 2026
df7f45a
docs(skill): enforce Resolver-only contract resolution in smoke-test …
clement-ux Mar 20, 2026
0c18d7c
test(smoke): add CurveAMO strategy smoke tests for OETH, OUSD, and Base
clement-ux Mar 20, 2026
166744c
test(smoke): add SonicSwapXAMOStrategy smoke tests and remove RevertW…
clement-ux Mar 20, 2026
23aab15
fix(js): bypass Lodestar client for beacon state SSZ fetch
clement-ux Mar 20, 2026
20f3773
ci(foundry): add Foundry CI workflow with 10 jobs
clement-ux Mar 20, 2026
da4c62d
merge: resolve beacon.js conflict — keep both fetchImpl and normalize…
clement-ux Mar 20, 2026
84657f3
fix(foundry): update tests for master merge contract changes
clement-ux Mar 20, 2026
cf00f71
fix: remove forge-std import from MockRebornMinter breaking Hardhat CI
clement-ux Mar 20, 2026
829b779
fix(ci): use forge soldeer subcommand and guard beaconProofsFixture f…
clement-ux Mar 20, 2026
e146d73
fix(ci): skip tests/ directory in foundry contract size check
clement-ux Mar 20, 2026
562d137
fix(ci): also skip scripts/ directory in foundry contract size check
clement-ux Mar 20, 2026
42114f0
fix(ci): fix foundry CI failures for coverage, fork, and smoke tests
clement-ux Mar 20, 2026
c44c4f7
fix(ci): fix remaining foundry CI failures
clement-ux Mar 20, 2026
81de2af
fix(ci): revert forge fmt, keep targeted CI fixes only
clement-ux Mar 20, 2026
8efbf41
fix(ci): replace .gitkeep with example deploy script for Base
clement-ux Mar 20, 2026
caebd73
fix(ci): specify pnpm version 10 in foundry-setup action
clement-ux Mar 20, 2026
172fc1c
fix(ci): add BEACON_PROVIDER_URL secret to fork-tests-mainnet job
clement-ux Mar 20, 2026
d71ef48
fix(ci): remove coverage job, scope fmt to scripts/ and tests/ only
clement-ux Mar 20, 2026
40ca64e
fix(ci): format utils/beacon.js with Prettier
clement-ux Mar 20, 2026
64f7a20
fix(ci): merge formatting/lint into single Foundry CI job
clement-ux Mar 20, 2026
3410a2e
fix(ci): add prettier check for Solidity in contracts/contracts/
clement-ux Mar 20, 2026
8de6363
chore(ci): remove Plume fork tests from DeFi workflow
clement-ux Mar 20, 2026
14d7d1d
fix(ci): format EnhancedBeaconProofs.sol with Prettier
clement-ux Mar 22, 2026
d5f7cdd
test(supernova): add Foundry unit, fork, and smoke tests for OETHSupe…
clement-ux Mar 22, 2026
faf6fc0
feat(hyperevm): integrate HyperEVM into Foundry fork/smoke tests and …
clement-ux Mar 22, 2026
79e0ffc
chore: remove unused UnitTests library from Addresses.sol
clement-ux Mar 23, 2026
ce46186
chore: apply Prettier formatting to Solidity files
clement-ux Mar 23, 2026
69dafcd
chore(ci): add slither and snyk jobs to Foundry workflow
clement-ux Mar 23, 2026
cf4c3da
perf(ci): speed up Foundry workflow with build caching and parallelism
clement-ux Mar 23, 2026
06affdc
test(morpho-v2): add Foundry unit, fork, and smoke tests for MorphoV2…
clement-ux Mar 23, 2026
16a7eea
perf(ci): commit BeaconProofs fixture to eliminate 10min beacon RPC c…
clement-ux Mar 23, 2026
269a17d
test(consolidation): add Foundry unit, fork, and smoke tests for Cons…
clement-ux Mar 23, 2026
353d433
refactor(ci): reorganize Foundry tests into chain-specific directorie…
clement-ux Mar 23, 2026
97665a8
chore: add Makefile and .env.example, clean up dev.env
clement-ux Mar 23, 2026
9a6e9e0
chore(ci): remove legacy defi workflow
clement-ux Mar 23, 2026
f2f607a
fix(test): increase ERC-4626 roundtrip tolerance to 2 wei in smoke tests
clement-ux Mar 23, 2026
8ba5753
fix(test): wrap exitSsvValidator in try-catch for SSV state changes
clement-ux Mar 23, 2026
f6481cd
fix(test): handle SSV state changes in NoConsolidation fork tests
clement-ux Mar 23, 2026
cb83b38
perf(test): slim down Base.t.sol and add test profile for faster comp…
clement-ux Mar 24, 2026
b3d5ca3
chore: remove test profile from foundry.toml
clement-ux Mar 24, 2026
eb9d9cc
style(test): reformat profit calculation in FrontRunning tests
clement-ux Mar 24, 2026
51937c0
test(smoke): add vault smoke tests for OUSD, OETH, OETHBase, and OSonic
clement-ux Mar 24, 2026
38ba3a4
feat: add storage layout compatibility checker for proxy upgrades
clement-ux Mar 26, 2026
e55e91f
fix: handle forge output quirks and gap-carving in storage checker
clement-ux Mar 26, 2026
7228412
fix: use install-deps.sh, forge clean, and extra_output for storage c…
clement-ux Mar 26, 2026
66dee5a
perf: use forge inspect --force instead of full forge build
clement-ux Mar 26, 2026
06d0b33
refactor: DRY up Makefile with pattern rules, targeted builds, and us…
clement-ux Mar 31, 2026
a324b95
style: format check-storage-layout.js with prettier
clement-ux Mar 31, 2026
8c2c011
fix(test): widen maxSupplyDiff in Base smoke tests to handle deal-ind…
clement-ux Mar 31, 2026
4b793bf
Foundry migration improve speed (#2868)
clement-ux Apr 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
174 changes: 174 additions & 0 deletions .claude/skills/commit/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
---
description: "Handles git commits with auto-staging, pre-commit formatting, and Conventional Commit messages. Use this skill whenever the user says commit it, commit this, commit changes, commit, or any phrase requesting a git commit. Also trigger when the user asks to save my changes or push this in a git context."
user_invocable: true
---

# Commit It

Automates the full commit workflow: inspect changes, format code, stage files, generate a Conventional Commit message, and commit. Designed to be fast — the user said "commit it" because they want it done, not to answer a bunch of questions.

## Instructions

### 1. Check Git State

First, make sure the repo is in a clean state for committing:

```bash
git status
```

If the repo is in the middle of a merge, rebase, or cherry-pick, inform the user and stop. These need to be resolved manually.

If there are no changes (nothing modified, nothing untracked), tell the user "Nothing to commit" and stop.

### 2. Inspect Changes

Run in parallel to understand what changed:
- `git diff` (unstaged changes to tracked files)
- `git diff --cached` (already staged changes)
- `git status --porcelain` (all changes including untracked files — look for `??` lines)
- `git log --oneline -5` (recent commits for style reference)

**Important:** Untracked files (`??` in `git status`) are often newly created files from the current session. They MUST be included in the commit alongside modified files.

### 3. Pre-Commit Formatting

Only run formatters relevant to the files that actually changed. Collect the full list of files to commit:

```bash
# Modified tracked files (staged + unstaged)
git diff --name-only
git diff --name-only --cached
# Untracked files (newly created)
git ls-files --others --exclude-standard
```

**If any `.sol` files under `contracts/tests/` changed:**
```bash
forge fmt <those-files>
```

**If any `.sol` files NOT under `contracts/tests/` changed:**
```bash
npx prettier --write --plugin=prettier-plugin-solidity <those-files>
```

**If any files under `src/js/` or JS config files changed:**
```bash
yarn lint --fix
yarn prettier --write <changed-js-files>
```

Do NOT run formatters on the entire project — only pass the specific changed files.

If formatting fails and can't auto-fix, tell the user what's wrong and ask whether to proceed anyway.

### 4. Stage Files

Stage ALL modified and untracked files individually. This includes:
- Modified tracked files (`M` in git status)
- Newly created untracked files (`??` in git status)

Do NOT use `git add -A` or `git add .`.

**Skip files that look like secrets:**
- `.env`, `.env.*` (environment files)
- Files with `credential` or `secret` in the name
- `*.pem`, `*.p12`, `*.pfx` (certificates)
- `*.key` files (private keys — but NOT files that merely contain "key" in the name like `keyManager.sol`)

If any sensitive files are detected, warn the user and list them.

Also re-stage any files that were modified by the formatters in step 3.

### 5. Generate Commit Message

Analyze the staged diff (`git diff --cached`) and generate a Conventional Commit message.

**Format:** `type(scope): description`

**Types:**
- `feat` — new feature or capability
- `fix` — bug fix
- `refactor` — code restructuring without behavior change
- `perf` — performance or gas optimization
- `test` — adding or updating tests
- `docs` — documentation only
- `chore` — tooling, config, dependencies, CI

**Scope** — derived from the primary area of change:
- `lido` / `etherfi` / `ethena` / `origin` — ARM-specific
- `arm` — core AbstractARM
- `deploy` — deployment scripts
- `js` — JavaScript automation/actions
- `cap` — CapManager
- `zapper` — Zapper contracts
- `market` — market adapters (Morpho, Silo)
- `pendle` — Pendle integration
- `sonic` — Sonic chain specific
- `skill` — Claude Code skills

If changes span multiple areas, use the most significant one. For mixed changes, omit the scope.

**Description:** imperative mood, lowercase, no period. Under 72 characters. Focus on "why" not "what".

For substantial changes, add a body with bullet points after a blank line.

**Examples:**
```
feat(ethena): add parallel cooldown support for sUSDe unstaking
fix(arm): prevent rounding error in withdrawal queue processing
refactor(deploy): extract shared deployment logic into DeployManager
test(lido): add fork tests for stETH discount scenarios
chore: update soldeer dependencies
perf(arm): reduce SLOAD count in swap path
docs(skill): add commit automation skill
```

### 6. Commit

**CRITICAL: Always run `git commit` in this step. Never stop after staging — the user said "commit it" and expects the commit to be created. Do NOT ask questions before committing.**

Check the user's original message for preferences:
- **Co-Authored-By**: Look for "with co-author", "add trailer", "include co-author", etc. Default: no trailer.
- **Push**: Look for "and push", "push it", "push too", etc. Default: don't push.

Create the commit using a HEREDOC:

**Without trailer (default):**
```bash
git commit -m "$(cat <<'EOF'
type(scope): description
EOF
)"
```

**With trailer:**
```bash
git commit -m "$(cat <<'EOF'
type(scope): description

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"
```

Run `git status` after to verify the commit succeeded.

Then present the result:

> Committed `<short-hash>`: `type(scope): description`

### 7. Push (Only If Requested)

If the user asked to push (either in the original message or after the commit), use `git push` (or `git push -u origin <branch>` if no upstream is set).

If they didn't ask to push, don't ask — the commit is done.

## Safety Rules

- NEVER amend existing commits unless explicitly asked
- NEVER force push
- NEVER skip hooks (no `--no-verify`)
- If a pre-commit hook fails, fix the issue, re-stage, and create a NEW commit (do not amend)
- If there are no changes to commit, inform the user and stop
Loading
Loading