Claude-skill-registry assertion-troubleshooting
Phylax Credible Layer assertions troubleshooting. Diagnoses common assertion failures and non-triggering issues. Use when phylax/credible layer assertions fail unexpectedly or do not execute.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/assertion-troubleshooting" ~/.claude/skills/majiayu000-claude-skill-registry-assertion-troubleshooting && rm -rf "$T"
manifest:
skills/data/assertion-troubleshooting/SKILL.mdsource content
Assertion Troubleshooting
Use this when assertions fail unexpectedly, revert with OutOfGas, or never execute.
Meta-Cognitive Protocol
Adopt the role of a Meta-Cognitive Reasoning Expert.
For every complex problem: 1.DECOMPOSE: Break into sub-problems 2.SOLVE: Address each with explicit confidence (0.0-1.0) 3.VERIFY: Check logic, facts, completeness, bias 4.SYNTHESIZE: Combine using weighted confidence 5.REFLECT: If confidence <0.8, identify weakness and retry For simple questions, skip to direct answer.
Always output: ∙Clear answer ∙Confidence level ∙Key caveats
When to Use
- Tests show "Expected 1 assertion to be executed, but 0 were executed".
- Assertions revert with
or unknown reasons.OutOfGas - Call inputs appear empty or duplicate.
When NOT to Use
- You need invariant design. Use
.designing-assertions - You need implementation details. Use
.implementing-assertions - You need test strategy or fuzzing. Use
.testing-assertions
Quick Start
- Confirm trigger selector matches the target function.
- Ensure
is immediately before the target call; the next external call consumes it.cl.assertion() - Check if the target call reverted before assertions ran.
- Verify cheatcodes are used in assertion functions, not constructors (
, notph.load
).vm.load - Remember internal Solidity calls are not traced; triggers only fire on external entrypoints.
- Use
for full traces and gas diagnostics.pcl test -vvvv - Confirm
when runningFOUNDRY_PROFILE=assertions
.pcl test - <u>Use
for assertion tests because it includes thepcl test
cheatcode; usecl.addAssertion
only for regular protocol tests.</u>forge test - If the failure is
, split assertions into smaller contracts.CreateContractSizeLimit - If the failure is an empty revert or ABI decode panic, re-check call input decoding (call inputs exclude selectors).
Rationalizations to Reject
- "The assertion should have run." Verify triggers and call order first.
- "It is probably a test issue." Validate the target call succeeds without assertions.
- "Gas is fine." Happy path often consumes the most gas.